GA_CRTCInfo

Declaration

typedef struct {
    N_uint16    HorizontalTotal;
    N_uint16    HorizontalSyncStart;
    N_uint16    HorizontalSyncEnd;
    N_uint16    VerticalTotal;
    N_uint16    VerticalSyncStart;
    N_uint16    VerticalSyncEnd;
    N_uint32    PixelClock;
    N_uint16    RefreshRate;
    N_uint8     Flags;
    } GA_CRTCInfo

Prototype In

snap/graphics.h

Description

CRTC information block for refresh rate control, passed in to the SetVideoMode function.

The HorizontalTotal, HorizontalSyncStart, HorizontalSyncEnd, VerticalTotal, VerticalSyncStart and VerticalSyncEnd members define the default normalized CRTC values that will be programmed if the gaRefreshCtl flag is passed to SetVideoMode. The CRTC values for a particular resolution will always be the same regardless of color depth. Note also that the CRTC table does not contain any information about the horizontal and vertical blank timing positions. It is up the the driver implementation to determine the correct blank timings to use for the mode when it is initialized depending on the constraints of the underlying hardware (some hardware does not require this information, and most VGA compatible hardware can be very picky about the values programmed for the blank timings).

The Flags member defines the flags that modify the operation of the mode, and the values for this member are defined in the GA_CRTCInfoFlagsType enumeration.

The PixelClock member defines the normalized pixel clock that will be programmed into the hardware. This value is represented in a 32 bit unsigned integer in units of Hz. For example to represent a pixel clock of 25.18Mhz one would code a value of 25,180,000. From the pixel clock and the horizontal and vertical totals, you can calculate the refresh rate for the specific graphics mode using the following formula:

refresh rate = (PixelClock * 10,000) /
               (HorizontalTotal * VerticalTotal)

For example a 1024x768 mode with a HTotal of 1360, VTotal of 802, a pixel clock of 130Mhz might be computed as follows:

refresh rate = (130 * 10,000) / (1360 * 802)
             = 59.59 Hz

The RefreshRate field defines the refresh rate that the CRTC information values define. This value may not actually be used by the driver but must be calculated by the application program using the above formulas before initializing the mode. This entry may be used by the driver to identify any special cases that may need to be handled when setting the mode for specific refresh rates.  The value in this field should be represented in units if 0.01 Hz (ie: a value 7200 represents a refresh rate of 72.00Hz).

Note:    The dwSize member is intended for future compatibility, and should be set to the size of the structure as defined in this header file. Future drivers will be compatible with older software by examiming this value.

Members

HorizontalTotal

Horizontal total (pixels)

HorizontalSyncStart

Horizontal sync start position

HorizontalSyncEnd

Horizontal sync end position

VerticalTotal

Vertical Total (lines)

VerticalSyncStart

Vertical sync start position

VerticalSyncEnd

Vertical sync end position

PixelClock

Pixel clock in units of Hz

RefreshRate

Expected refresh rate in .01Hz

Flags

Initialisation flags for mode

 

Copyright © 2002 SciTech Software, Inc. Visit our web site at http://www.scitechsoft.com