dargiro@blackstone.UUCP (Danielle Argiro-S) (12/10/87)
Hello - I am currently in the process of converting our plot package (written originally under X10.4) to X11. I am having major problems using XGetImage and I was hoping you could help me, since I am totally out of ideas. Here is the scenario: I need to get a dump of the displayed window in order to enable laser printer capabilities. Previously, I was using XPixmapGetXY and XPixmapGetZ to dump the window information, and then I was converting the information (bytes and shorts, respectively) into the type I needed (bits). This worked fine. Under X11, in the "X11 diffs" document, it says that if you were using XPixmapGetXY or XPixmapGetZ, you should now use XGetImage with the format = XYPixmap or format = ZPixmap. So this is what I did: XImage *window_image; int x, y; unsigned int width, height; etc. here is the call: window_image = XGetImage(DSP_str, workspace, x, y, width, height, plane_mask, format); where: 1) DSP_str is the display pointer, the same global one that's used everywhere else and works fine. 2) workspace is the Window that I'm using (also works fine everyplace else) 3) x and y are ints, both equal to 32. 4) width and height are unsigned ints, both equal to 512. 5) the plane_mask is tricky. I've tried 0xffff, AllPlanes, 1L, 0L, and everything else I could think of. 6) for format, I've been sending either XYPixmap or ZPixmap It seems that no matter *what* I do, it comes back with an X ERROR message about "mismatched parameters" just before it crashes. I suspect it may well be the plane_mask that is the problem, but I don't know what to use! Regardless of whether or not I am sending the proper plane_mask for the results I'm expecting, I should at least get the structure that I'm asking for (even if the information in it is not quite what I had in mind) instead of a crash. PLEASE if you can help me in any way it would be VERY MUCH appreciated! ALL our laser-output capabilities hang on this one call. thank you *so much* for your time! Danielle Argiro - UNM EECE Dept.
RWS@ZERMATT.LCS.MIT.EDU (Robert Scheifler) (12/10/87)
Date: Wed, 9 Dec 87 15:42:25 mst From: hi!blackstone!dargiro@hc.dspo.gov (Danielle Argiro-S) window_image = XGetImage(DSP_str, workspace, x, y, width, height, plane_mask, format); where: 3) x and y are ints, both equal to 32. 4) width and height are unsigned ints, both equal to 512. It seems that no matter *what* I do, it comes back with an X ERROR message about "mismatched parameters" just before it crashes. The protocol requires that the requested rectangle be wholly contained in the window, and fully visible on the screen. Since I have no idea what geometry your window has, I can't know for sure, but the "parameter mismatch" error is consistent with asking for an inappropriate rectangle. Since you don't say what "it" is that crashes, I can't comment on that aspect. If it is the server crashing, please submit a bug report to xbugs@athena.mit.edu.