problems with fullscreen mode


i have a (little) problem with opengl
in fullscreen mode.
i changed the video mode with changedisplaysettings(), and created a
popup window (those with no border/title bar)

rendering into this window works fine, but
if you press alt-tab, the whole system hangs.
if the program runs in windowed mode, this doesn’t happen.

does anybody have a clue what’s wrong with my code ?


When your lose focus you should set the resolution back, when you get focus again you can set it to your res and continue.
The problem that can occur otherwise is that your program is in front, but another program has inputfocus and it’ll look like you computer is dead.

Hmm, yes, sure this can be a problem.
But I don’t think it’s the problem
in my case.

When I hit alt-tab, windows displays
the usual dialog box that occurs when
your program misbehaved really bad
(general protection fault

this dialog box has (probably) the focus,
because it’s title bar is blue, but the
system is really dead…it doesn’t react
to any keystrokes.

by the way : how about using DDraw to change
the display mode ? It seems that DDraw’s fuctions are more powerful than ChangeDisplaySettings()


Now I understand you problem a little better … but I don’t have any solution … this kind of errors shouldn’t occur by alt-tabbing and I think it’s not your programs fault. I would blame the drivers …

I would recommend that you take a look
at Nehe’s tutorials on this web site…
his examples is the only example I’ve seen that does all the correct windows handling
and freeing…
try one of his examples on your machine then
take a look at the way he sets up the
window (glcreatewindow).
If you are using this primarily on windows, I recomend using this type of code to set up windows, as opposed to using glut or anything else…


NeHe’s code does more or less the same
on my system…
It seems actually to be the driver, since
even demogl bombs on my comp, and on other
ppl’s pc it runs fine.

Tom: that indeed is a driver problem, well, problem is a large word, it’s pretty undefined what should happen (allthough a ‘crash’ should be avoided). In a fullscreen application, when you press alt-tab, the desktop resolution will be resetted, resulting in a rescale of the popup window that is created.

Does DemoGL run on your computer or does it crash? I’m aware of problems with voodoo2 cards, but not aware of problems on other cards. Can you enlighten me what kind of videocard you have and what kind of OS/driver?


Frans Bouma
Main programmer DemoGL

a bit of an aside, but this question is in regards to both fullscreen and nehe’s code:

does anyone else have the problem that i am experiencing with lesson 13 (bitmapped fonts) in which if i select windowed mode, everything is fine, but in fullscreen, the program takes a huge crap.
definition of crap: the program almost freezes up on me with the fonts blurring in a very bad way. it almost seems the program doesn’t know how to figure out the raster position while in fullscreen
(by the way: voodooIII/16mb video, if that helps any)

[This message has been edited by Bad Karma (edited 09-19-2000).]

I read on this message board a while ago something about having to re-create the rendering context when you minimise an application: in windowed modes it usually happens that you do not have to but when the video card takes charge of fullscreen and then you alt-tab out it loses its context so you should create a new one (however, I know I don’t and have never seen code that does ). I am not sure of the exact reason why it loses its context but someone out there must know…

Also, I tried Nehe’s BMP fonts and it doesn’t work in fullscreen on my voodoo3. I assume because they seem to set the rendering context and then try to do GDI stuff which is slow and corrupted (notice how it takes a long time to start up in fullscreen mode). I don’t know whether this is 3DFX’s fault or not: I suppose it is.