Pinboard Flashing...
Hmmm... Well, I tried my own idea of managing the damaged regions myself, and then telling CAPI to invalidate some rectangle off port. CAPI does call back to the display callback routine, but then the clipping rectangle is preset to ignore all my drawing details. And attempting to set my own drawing mask with gp:with-graphics-state is wholly ineffective. So this idea won't work.There are no mentions of drawing routines anywhere in my code. Mousing callbacks in response to user interaction only modify positions of objects, and never actually perform any drawing. They do, however, call gp:invalidate-rectangle, and that in turn causes my display-callback routine to run, which is the only thing that actually draws anything.
And lastly, using gp:clear-graphics-port is completely indiscriminate about restricting redrawing to damaged subregions. Instead, it completely wipes my graphics port. And whenever my mouse nears a movable object, which will be highlighted, the entire port goes blank, and can only be restored by using a screen refresh that calls gp:invalidate-rectangle -- to get the display callback routine to run. In other words, using gp:clear-graphics-port does not invoke the display callback routine. This is even worse than before.
I have a completely satisfactory display image constructed in a backing pixmap store. All I want to do is repaint portions of the visible graphics port directly from this backing image. I don't want anything else in preparation to the drawing -- like clearing the damaged region ahead of my blitting. That is what is causing the flashing...
David McClain
Chief Technical Officer
Refined Audiometrics Laboratory
4391 N. Camino Ferreo
Tucson, AZ 85750
email: dbm@refined-audiometrics.com
phone: 1.520.390.3995