Archived

This topic is now archived and is closed to further replies.

Deokhee Lee

How can I ...?

Recommended Posts

Well the supportable graphics modes depends on your video card and Windows settings.

I''m not sure about doing it using OpenGL commands but take a look into the EnumDisplayDevices and EnumDisplaySettings on MSDN. These are standard Windows functions which should work just fine.

Seeya
Krippy

Share this post


Link to post
Share on other sites
GLUT and SDL have such functions.
If you switched to DirectX just for that, I''ve nothing to say to you.
(In old arabic countries, avoiding to speak to someone was the most insulting thing one could do.)

-* So many things to do, so little time to spend. *-

Share this post


Link to post
Share on other sites
Of course an OpenGL app can change the display mode!!! How do you think Quake III Arena does it?!

Neither OpenGL nor Direct3D have any functions for doing things specific to the windowing system. DirectX does: if you have DirectX 8.0, DirectGraphics includes a branch which will do this; otherwise, DirectDraw does it. OpenGL relies on the window system for that functionality since all it's a 3D API. To change the display mode, you use the Win32 API function ChangeDisplaySettings.

I'm getting sick of people comparing OpenGL to DirectX. OpenGL is a 3D API. DirectX is a set of APIs including DirectDraw, Direct3D, DirectSound, DirectInput, and DirectPlay.

OpenGL == Direct3D
OpenGL + GLU == DirectGraphics || Direct3D + DirectDraw
SDL == DirectX

See the breakdown?

Elixir, if you switched just because you lacked the intellectual capacity to figure this out, then I do have something to say to you: you're an idiot. I mean, there are tons of OpenGL tutorials that cover this!

Edited by - merlin9x9 on July 26, 2001 10:22:05 AM

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
>You can''t.
Wrong. You have to use standard Windows functions to do that, eg. EnumDisplayDevices and EnumDisplaySettings, this works fine.
OpenGL is a 3D API, not a window management system.

>This is one of the main reasons I switched to DirectX (Please don''t flame me!).
This is the most stupid thing I ever heard of an excuse. What are you doing in the forum then ? Go to the DirectX forum and be happy that you can enumerate display modes, this seems to be the only thing D3D can do right.

Share this post


Link to post
Share on other sites
No. No..
Very thank you to all.
But..
My question is different-thing...
Ex) 640x480x16 <- If this mode is OpenGL hardware accelatable,
1600x1024x32 <- If this card is not supportable OpenGL hardware accelation...
How can I find these modes?

Share this post


Link to post
Share on other sites
To my knowledge, there's no way to test specific modes, nor would there be any reason to. Theoretically, you always get hardware acceleration, though you might get it in the form of a small window on your desktop rather than the full-screen mode change you were expecting. I don't see why it matters. If you get acceleration, that's great. If you don't, what's there to do? It would be a hardware limitation, and, of course, not an OpenGL issue. Anyway, the best you can do is to determine if acceleration is available in general. To do that: in the PIXELFORMATDESCRIPTOR structure you have to pass to SetPixelFormat, add the PFD_GENERIC_ACCELERATED flag to the dwFlags member. If SetPixelFormat fails, you know that hardware acceleration is not possible.

Edited by - merlin9x9 on July 26, 2001 2:03:15 PM

Share this post


Link to post
Share on other sites
one possible cause of losing hardware acceleration by changing to a higher resoluition is youve used up the cards onboard vidmemory
eg it takes way more memory to store the info for a 1600x1200x32 window than it does 1024x768x16. more than 4x as much memory in this case in fact.

>>As I know, OpenGL is not support all graphic modes.
How can I get OpenGL supportable graphic modes<<

ok i understand this now, opengl does support all resolutions+colour depths any that aint supported eg 32bit colour on a voodoo3 are due to the card not being able to do them and not opengl.
ie if directx can support a certain resolution/colour depth then opengl can support the same

Share this post


Link to post
Share on other sites