Finding Available Display Modes
Before any of the drawing functions can be called, one of the supported
display modes must be initialized by the application program by calling
the SetVideoMode function. The SciTech
SNAP Graphics Architecture does not define a standard display mode
numbering scheme but rather relies on the application to search through
the list of available display modes for one that has the desired
resolution and pixel depth. In order to find a valid video mode number
to be passed to SetVideoMode, the GetVideoModeInfo function
is used to obtain specific information about all of the available video
modes supported by the loaded driver. The list of available video modes
is stored in the AvailableModes field of the GA_devCtx structure.
Once the desired display mode has been identified, this display mode
number can be used in the call to SetVideoMode.
The general procedure you would normally follow to find the identifier
for a display mode with a particular X and Y resolution is as follows:
N_uint16 FindGraphicsMode(
GA_devCtx *dc,
int xRes,
int yRes,
int bitsPerPixel)
{
GA_initFuncs init;
GA_modeInfo modeInfo;
N_uint16 *modes;
/* Load the driver init functions */
init.dwSize = sizeof(init);
if
(!GA_queryFunctions(dc,GA_GET_INITFUNCS,&init))
return 0xFFFF;
/* Search for the display mode */
for (modes = dc->AvailableModes; *modes !=
0xFFFF; modes++) {
modeInfo.dwSize =
sizeof(modeInfo);
if
(init.GetVideoModeInfo(*modes,&modeInfo) != 0)
continue;
if (modeInfo.Attributes
& gaIsTextMode)
continue;
if (modeInfo.XResolution ==
xRes &&
modeInfo.YResolution
== yRes &&
modeInfo.BitsPerPixel
== bitsPerPixel)
return
*modes;
}
return 0xFFFF;
}
Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com