After sleeping on it, I solved my own problem. For the benefit of anyone else who has it, the answer is that when you create a gcontext for use when drawing into a pixmap, the gcontext should specify the pixmap as its drawable, not any window.
If it specifies a window, drawing operations will sometimes work... provided that the window and the pixmap share the same pixel format. Which, obviously, a 1-bit pixmap and a 16-bit window do not. The CLX manual makes this clear once you already realize it, but it could perhaps do with some additional verbiage to explain it more thorougly. To be fair, the xlib documentation is just as poor. -- | Dan Knapp, Knight of the Random Seed | http://brain.mics.net/~dankna/ | ONES WHO DOES NOT HAVE TRIFORCE CAN'T GO IN.
