jstravis@athena.mit.edu (John S. Travis) (10/27/89)
I have a Pixmap called draw_map that i copy my graphics images to
when i call a function save_bitmap. The images are lines, rectangles,
circles. I then wish to write that Pixmap to file, yet i crash somewhere.
A file "draw.bitmap" is created but it is empty and the program does
not go on. Here is the line I use to write the file
if (XWriteBitmapFile(data->dpy,"draw.bitmap",draw_map,canvas_width,
canvas_height,-1,-1)!=BitmapSuccess)
printf("cannot write bitmap\n");
printf("done writing to bitmap\n");
"cannot write bitmap" is NOT written out!
Here is the error messages. Where does X_ClearArea come into it?
X Protocol error: not a valid window ID
Major opcode of failed request: 61 (X_ClearArea)
Minor opcode of failed request: 0
Resource id in failed request: 0x1400a2
Serial number of failed request: 626
Current serial number in output stream: 631
execution completed (exit code 1)
(dbx) where
exit.exit(0x1) at 0x335a1
_XDefaultError(0x49000, 0x7fff0eb0) at 0x2ae94
_XError(0x49000, 0x7fff0f3c) at 0x2ac83
_XReply(0x49000, 0x7fff0f3c, 0x0, 0x0) at 0x2a674
XGetImage.XGetImage(0x49000, 0x1400a2, 0x0,
0x0, 0x11b, 0x122, 0x1, 0x1) at 0x24176
XWriteBitmapFile(0x49000, 0x28a8, 0x1400a2, 0x11b,
0x122, 0xffffffff, 0xffffffff) at 0x29f62
save_bitmap(0x60600, 0x7fff177c, 0x0) at 0x2959
_XtCallCallbacks(0x606a0, 0x0) at 0x1790d
XtCallCallbacks(0x60600, 0x3527d, 0x0) at 0x179a2
MenuBtn.Select(0x60600, 0x7fff1704, 0x0, 0x61acc) at 0x6a64
_XtTranslateEvent(PopupMgr.TraverseHome = 3, 0x6064c, 0x7fff1704) at 0x201b2
DispatchEvent(0x7fff1704, 0x60600, 0x8) at 0x1929c
XtDispatchEvent(0x7fff1704) at 0x1951c
XtMainLoop() at 0x198ef
main(0x1, 0x7fffe350, 0x7fffe358) at 0x31d
Thnaks for any help!
john travis
jstravis@athena.mit.edurws@EXPO.LCS.MIT.EDU (Bob Scheifler) (10/28/89)
"cannot write bitmap" is NOT written out!
Here is the error messages. Where does X_ClearArea come into it?
From somewhere earlier in your program. Remember, operations in X
are mostly asynchronous, you normally don't see errors until long
after the operation has been issued. To track this down, run your
program synchronously (see XSynchronize).