I'm working on OpenGL based game on windows. If I make the window with the OpenGL context cover the whole screen, it seems that Vista automatically flags the app as being 'full screen', and disables aero to boost performance. I don't even have to call ChangeDisplaySettings(..., CDS_FULLSCREEN) - It is entirely automatic!
Now, the problem is, what if I don't want it do that? I would like to control myself whether aero is disabled (or not disabled, as the case may be). Enabling or disabling aero is a fairly disruptive event, taking up to 10 seconds to complete and flashing the screen several times. And this happens every time the user alt-tabs to/from our game.
Frankly, I don't understand why Microsoft would do this. If an application wants fullscreen mode, it can specify that by calling ChangeDisplaySettings with CDS_FULLSCREEN. That's how it worked on XP so everyone is doing it already anyway.
I have noticed that some other apps that do hardware accelerated 3D, specifically VLC and Media Player Classic, CAN toggle between windowed and fullscreen without causing aero to get toggled. I don't know if they use OpenGL though.
So, my question is, does anyone know anything about this automatic fullscreen thing in Vista, and how to control it? I apologise in advance if my google-fu is weak, but I just couldn't find anything related to this at all. Not in the documentation or on the net in general.




