fullscreen at specific res

I remember back in the day (this was on a PC and using directx) I could go fullscreen but at a specific resolution. E.g. run the app at 640x480 in a window, then go fullscreen but still at 640x480 - the display resolution is changed and 640x480 covers the full screen. If this possible with OF? I think glut supports this under the name ‘game mode’.

The reason I’d like to do this is because I’d like to run an app across 6 x 24" monitors (with native resolution of 1920x1200) without having to use multiple computers, MPE style communication etc. To get the app running at 6 x 1920 x 1200 (11520 x 1200) is not possible and a very simple solution would be to run the app at 6 x 800 x 500 - which would be a good enough res for what I want to do. Is this possible to setup?

Hey Memo,
If your monitors support a resolution of 800x500 you should be able to do this.
I regularly use GLUT_GAME_MODE on linux to get fullscreen, otherwise I get window bars (an issue with GLUT vs linux window managers).

After changing my desktop resolution to 800x512 I got 800x512 fullscreen in an OF app (which is the closest to 800x500 my monitor with native 1280x1024 resolution supports).

You should simply replace (OF_WINDOW) with (OF_GAME_MODE) in your main.cpp.

On my old MBP the performance seems to be slightly worse though. And right now it only works on one monitor.

ah yea, OF_GAME_MODE kind of does the trick… but like you say it does only work on one monitor. I saw in GLUT settings an option for ‘GAME_MODE only captures single display’. But that only affects whether the second monitor goes black or not, there is no actual rendering on teh second display.

This mode should work fine using a dual/triple head on the external port on a MBP with it set as the primary display - but i’d like to use 2 triple heads on both ports of a mac pro, so I I can’t use it for now…

i guess in the meantime I manually have to set my display resolutions to lower from system preferences.

Hey I’ve been playing around with this “gameMode” thought It might solve my problem. I’ve made up my animation in Open Frameworks 1280 X 768 pixels. I’m wanting to play it on a plasma 1024 X 768, the reason I made it wider is because the pixels on the plasma are wider and the image gets elongated. In the past I’ve been able to squash the wider image onto the plasma and theres no noticeable distorting.

So my question is: is it possible to get openFrameworks to run full screen and just attempt to fit the screen as best it can at the set res.

I hope that makes sense.


What I usually do when for instance dealing with a 16:9 monitor with a 1024x768 resolution is to:

  • Open in fullscreen 1024x768.

  • Create an offscreen surface with the resolution of 1360x768, draw everything on to this in that resolution.

  • Draw this surface to the screen at a size of 1024x768, it gets squashed, but the GL_LINEAR filtering does a pretty good job of making it look ok.

  • The TV then stretches it back out. The scaler in the TV usually does a very good job of this and you won’t really notice the difference, perhaps if you have 1px lines and that sort of thing you might want to do some tests first.

I use my own FBO class, which I can upload for you if you want, but there is a more OF’ified one here:



A solution for a kind fullscreen mode without windows bar…

2-change freeGlut_window.c -> glutCreateWindow -> fgCreateWindow: last param to TRUE


    FREEGLUT_EXIT_IF_NOT_INITIALISED ( "glutCreateWindow" );  
    return fgCreateWindow( NULL, title, fgState.Position.X, fgState.Position.Y,  
                           fgState.Size.X, fgState.Size.Y, GL_FALSE,  
                           GL_FALSE, GL_TRUE )->ID;  

instead of

    return fgCreateWindow( NULL, title, fgState.Position.X, fgState.Position.Y,  
                           fgState.Size.X, fgState.Size.Y, GL_FALSE,  
                           GL_FALSE, GL_FALSE )->ID;            

Hope that helps