My OpenGL Window was working without any problem until recently one customer found this bug. Following are the steps to create this.
Drag the window such that part of the window is outside the desktop
Resize the window
Bring the window in to the desktop by dragging the title bar
Now you see the area which was outside the desktop as black. It is not redrawn. If I resize the window again this area starts getting updated. What could be the reason ?
Already heard about something like this in these forums, but I do not remember the details.
To me this sounds like a bug in the GL driver.
Do you handle all windowing messages ?
Do you know the OS, card, drivers ?
It’s not a driver bug. You simply did not update your window after the window was moved. Windows doesn’t necessarily guarantee that the window will get a WM_PAINT message after being moved.
When you resized the window, the window got a WM_PAINT message. However, those pixels that were off screen failed the pixel ownership tests and therefore were not rendered to. Since the window did not get redrawn after moving it back on screen, those failed pixels (which are now real pixels) don’t get drawn into.
Actually it cannot be that. I have a zoom capability. During zooming I am calling Invalidate() of the controller. Zooming updates the rest of the window but not the black area.
It cannot be a driver bug as well because this is there in different kinds of machines as well.