<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>