Make/use custom video formats on PCs??

Started by
3 comments, last by faculaganymede 18 years, 3 months ago
Game Guru, I've downloaded some game demos from yahoo->games. When I run one of these games on my PC, I notice the program automatically loads a video format that uses a screen size and frame rate different from my PC's default settings. The only way I know how to change the screen size on a PC is through Desktop->Properties->Settings... How do game programmers do this using programming languages? For example, if they use the OpenGL API, what specific function did they use? I know on an SGI IRIX system, there are software that can be used to make custom video formats. How is this done on a PC? Are there PC software for this? For example, if I want to make a video format of frame size 512x512 with 100Hz frame rate, how is this done on a PC? Thanks.
Advertisement
The word you are looking for is "screen resolution". Yes, the screen resuolution can be changed by the user through the desktop settings only. Both, the Windows API as well as 3D APIs such as Direct3D and OpenGL provide functionality to change the screen resolution programatically.

The number of possible formats, however, is limited by the graphic hardware as well as the display device (e.g. CRT or LCD monitors).
The display device might emulate fullscreen modes that are not physically supported through interpolation. An example are LCD monitors that have a fixed physical pixel size and hence only support a single screen resolution natively, while being able to emulate a range modes through said interpolation.

CRTs have physically limited refresh rate ranges, e.g. they cannot go below - say 47Hz - at any resolution and not above a certain refresh rate for each screen resolution.

The graphics card also has a limited and fixed range of supported modes that are exposed to the windowing system and the 3D APIs through the hardware driver.
Your sample mode of 512x512 pixels will, for example not be supported by any graphics hardware AFAIK. Common modes are VGA, SVGA and XGA (I can't provide a complete list from memory).

Hope that helps,
Pat.
Pat,
Thank you for your reply. With the right search keyword "screen resolution," I've found a lot more info about the subject...

One more question: In the Glut toolkit, the screen resolution can be set by glutGameModeString(). If you look at the man page for this function http://pyopengl.sourceforge.net/documentation/ref/glut/glutgamemodestring.html

Under "The valid capability names...

num Number of the window system depenedent display
mode configuration.
..."

I am not familiar with the terminology here. Is "num" refer to the screen_id for cases where a graphics card supports multiple video outputs (e.g. dual DVI outputs)? If not, how is the screen_id specified? Thanks.
Here is another description for num I found on the internet:

Quote:
A special capability name indicating where the value represents the
Nth frame buffer configuration matching the description string.
When not specified, glutInitDisplayString also returns the first
(best matching) configuration. num requires a compartor and
numeric value.


Dunno if that helps.

Also, be careful selecting weird display resolutions. It will look awful to people with LCD displays. Much better to poll the system to find good resolutions and allow the user to pick.
Thank you, etothex.

If I am using a graphics card with dual DVI outputs (or two cards with DVI outputs) to two separate monitors, is it possible to set the screen resolutions different between the two? Or, does one call to glutGameModeString() automatically set the same screen resolution for both?

Sorry, I would try this out myself, but I don't have the graphics card(s) yet.

This topic is closed to new replies.

Advertisement