I'm writing an OpenGL app under Windows and I'd like
to have the viewport to full screen, how do I do that ?
"Jean-Christophe" :
I'm writing an OpenGL app under Windows and I'd like to have the viewport
to full screen, how do I do that ?
"James Van Buskirk"
That's pretty much the content of NeHe Lesson1. My
recollection is that NeHe uses 16 bits per pixel which my
current video card and monitor (GTX 650 and 50HU6950)
don't support so you would have to change to 32 bpp.
Also Lesson1 changes resolution to 640 X 480 which is
suboptimal on the above video subsystem. You can use
GetSystemMetrics to get the current dimensions of the
screen which one would normally assume are the optimal
dimensions unless the user like to do things suboptimally.
But since Windows Vista or so, Windows lies to you about the
dimensions of the screen, so you have to use SetProcessDPIAware
to tell Windows not to lie, but since older versions of Windows
don't have this API, you have to attempt to load it dynamically
via LoadLibrary/GetProcAddress and only if that worked you
can invoke SetProcessDPIAware. Annoying that you have to
invoke those extra 3 functions before GetSystemMetrics works,
but that's Windows.
I think I have an example in Fortran at http://home.comcast.net/~kmbtib/Fortran_stuff/testpattern.zip
Newer versions of Windows use SetProcessDpiAwareness
which complicates matters further and is used also in the
above example.
I'm a bit surprised it sounds so heavy to implement such a simple thing.
I thought I just had to set the OpenGL viewport to the maximal screen resolution to put the window of my software into full screen display (?) However it seems that Windows will interfer, there's something missing,
and I'm pretty shure that it's just a few lines of code, not a bunch.
I understand that my question is not OpenGL-only related,
but I really didn' t find how to do that and I badly need this.
( BTW, I never experienced a mismatch between the actual screen
resolution and the values returned by a call to GetSystemMetrics )
I'm a bit surprised it sounds so heavy to implement such a simple thing.
I thought I just had to set the OpenGL viewport to the maximal screen resolution to put the window of my software into full screen display (?) However it seems that Windows will interfer, there's something missing,
and I'm pretty shure that it's just a few lines of code, not a bunch.
"Alberto Luaces"
At this point I'd recommend you to use a library like
SDL2 to handle the window and GL context for you.
"James Van Buskirk" :
As I said, the code you need is available in several
programming languages in the NeHe website.
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 285 |
Nodes: | 16 (2 / 14) |
Uptime: | 77:15:18 |
Calls: | 6,489 |
Files: | 12,096 |
Messages: | 5,276,375 |