<html>
  <head>
    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Hello!<br>
    <br>
    I'm currently developing a preliminary object orientated framework
    for Graphical Input Output (GIO) based on a concurrent native
    implementation of the X protocol in Scheme (SCA/X).<br>
    <br>
    The early pixmap support fails for the <i>GetImage</i> and <i>PutImage</i>
    requests: <i>GetImage</i> provokes and <i>undefined</i> error from
    the X server where <i>PutImage</i> always seems to result in a
    match error. My question to the experienced ones: what are the
    prerequisites especially for <i>PutImage</i>? Is it the X security
    extensions, the big request extension, the shared memory extension,
    the render extension or some other "magic" again? (Currently the
    only extension implemented is the X keyboard extension.)<br>
    <br>
    Maybe some extension provides better means to achieve the following
    task which serves as an example to guide development of GIO and
    SCA/X:<br>
     1) a matrix of exact color vectors is converted to a pixel array
    (should equal Zpixmap) and it should be displayed in a window.<br>
     2) X server / hardware drawing routines should be used on an image
    / pixmap which should then be retrieved to be further processed by
    the client's exact / double precision color routines or to be stored
    in a file or similar<br>
    <br>
    I hope there's an easy answer similar to the case of the keyboard
    mappings where the server just didn't respond to the core protocol
    request anymore. Since the implementation of the X keyboard
    extension those mappings work and the core protocol request isn't
    needed anymore.<br>
    <br>
    The current request arguments used are the following (<i>depth</i>
    and<i> left-pad</i> are hardcoded in the early prototype but do
    match the visual type and the protocol specifications):<br>
    <font face="monospace">  (xrp-put-image:set-format!         rb
      (byte->byte-string 2)) ; 0 bitmap 1 xypixmap 2 zpixmap<br>
        (xrp-put-image:set-depth!          rb (byte->byte-string 8))<br>
        (xrp-put-image:set-left-pad!       rb (byte->byte-string 0))
      ; 0 for zpixmap pp.55<br>
        (xrp-put-image:set-drawable!       rb drawable)<br>
        (xrp-put-image:set-gc!             rb gc)<br>
        (xrp-put-image:set-dst-x!          rb
      (number+sign->byte-string-2 dst-x))<br>
        (xrp-put-image:set-dst-y!          rb
      (number+sign->byte-string-2 dst-y))<br>
        (xrp-put-image:set-width!          rb (number->byte-string-2
      width))<br>
        (xrp-put-image:set-height!         rb (number->byte-string-2
      height))<br>
        (xrp-put-image:set-request-length! rb (number->byte-string-2
      (/ (+ rl (byte-string-length pad)) 4)))<br>
        (X-request connection (byte-string-adjoin rb pixel pad)
      no-response)<br>
    </font><br>
    No matter how the window, the pixmap and the graphics context are
    associated this request currently always results in a match error
    event.<br>
    <br>
    Regards,<br>
    Michael<br>
    <br>
    --<br>
    The Viper System Interface: some sort of pure Scheme<br>
    <br>
    byte strings, brass, name spaces, the Viper Object System <br>
    <a class="moz-txt-link-freetext"
      href="https://launchpad.net/viper-system-interface">https://launchpad.net/viper-system-interface</a><br>
  </body>
</html>