window repair w2k

Hi. I am writing an in-house stereo program on w2k (msvc++ 6.0) with an oxygen vx1 card. Whenever I drop a menu down or another window overlaps mine, I lose parts of my images and I can’t find a way to stop this from happening. My images are >=1024x1024 and there are two different ones, so it takes a few seconds to refresh them. I know there have been similar posts to mine on this group, but not regarding stereo. I know that setting the PFD_SWAP_COPY bit would work, but I need a pixelformat that has these bits set specifically:

PFD_STEREO, PFD_DOUBLE_BUFFER, PFD_SUPPORT_OPENGL, PFD_DRAW_TO_WINDOW and .bReserved > 0 because I need at least one overlay (My oxygen vx1 has 2 formats that support these options, but not PFD_SWAP_COPY as well).

I guess what I am asking is: is there a piece of hardware that supports a suitable pixelformat that would allow me to fix this problem, or is there another more obscure way to fix this problem?

Thank you to whomever can help me,
Stewart

This sounds as though your Oxygen card is using a unified back/depth buffer. This means that the back and depth buffers, rather than being allocated per window, are fullscreen and shared between all windows.

The result is that when a window obscures another window, the driver has to make sure it doesn’t render into that region, even for the back and depth buffers, whereas normally it would only do this for the front buffer.

On NVIDIA cards, if UBB is enabled, you can always turn it off in the control panel. This is one solution, though not really a satisfactory one.

The correct solution is that you really do have to redraw damaged regions somehow. Buffer regions are one way of doing this efficiently, but the best way will really depend on what your app is doing.

  • Matt