The cursors demo, on WIN32, sometimes has a window
either filled with garbage, or filled black.
This only happens on program startup. It only happens
sometimes. I've only seen it happen after recompiling,
and attempting to start a running instance from the
Debug menu. After it has been run once (something is
cached, or a final piece of debugging info is produced?)
the program runs correctly. And, of course, after the
window is open, it runs correctly in general (obscuring
and exposing part of the affected window clears the
problem).
The exact cause is unknown. I don't know if it is
limited to subwindows. I don't know if it depeneds on
the OS (I've only been testing on XPHome) or the
compiler (MSVC++ .net 2003). I don't know if it affects
OpenGLUT or freeglut.
As a workaround, one should be able to force extra
redisplays of one's windows at the program startup.
Because there is a workaround, the problem is
rather intermittant (possibly only striking "in
development"), and it's not clear what is causing
the problem (maybe some window flags? maybe the WIN32
API's brain-dead mixed callback-and-poll event system?
maybe the OpenGLEAN window-creation or repaint handler?)
I have assigned this a low priority.
Logged In: YES
user_id=854844
I have a theory that this is caused by the funky WIN32
approach to event handling. Some events are handled
before the window creation function returns (or otherwise
are dispatched by WIN32 directly to the OpenGLEAN event
handler). This can easily happen before OpenGLEAN has
registered a display callback for a new window.
If this in fact is causing the problem, the solution is
probably simple: Have the WIN32 event handler store the
events in a queue to be drained by the real OpenGLEAN
event code. (We should really be doing this, anyway.)
Logged In: YES
user_id=854844
Interestingly, there are some problems with subwindow updates
while the program is running, when using CygWIN.