fullscreen question

Is changing the screen resolution and resizing a window to take up the whole screen using OS api’s the only way to make a program run in fullscreen?

our team has decided to port our game to c++, and plan to make it run on (minimum) Linux/Windows OS. It would be great if we may easily port it to Mac and maby some other OS’s.

Thanks in advance!

Well, resizing windows (and changing resolution, though I’m not sure why you think this is necessary) is the windowing system’s job, yes. OpenGL doesn’t take over the machine.

That doesn’t mean you have to use nonportable OS API calls, though; most if not all of the toolkits can abstract this stuff for you. Try SDL.

Yes, probably SDL is the best solution. From another point of view you could also create a class and encapsulate there the windowing functions, so later on you only have to change the class. But it could prove to be buggy.

It depends on the OS, but OS X for example distinguishes between windowed and fullscreen contexts. Windowed contexts are always composited through the window manager so overlapping windows (system volume indicator, tab-switcher etc) don’t destroy the front buffer contents (see XP’s tooltips.) Real fullscreen contexts take over all the available VRAM and do hardware pageflipping. They are also allowed to reconfigure the framebuffer layout for optimal hardware access (rowbytes, swizzling etc.)