| Home
| Previous
| Next
| Up

GA_AttributeFlagsType

Declaration

typedef enum {
gaHaveDisplayStart = 0x00000001,
gaHaveBankedBuffer = 0x00000002,
gaHaveLinearBuffer = 0x00000004,
gaHaveAccel2D = 0x00000008,
gaHaveHWCursor = 0x00000010,
gaHave8BitDAC = 0x00000020,
gaHaveNonVGAMode = 0x00000040,
gaHaveDoubleScan = 0x00000080,
gaHaveTripleScan = 0x00000100,
gaHaveInterlaced = 0x00000200,
gaHaveTripleBuffer = 0x00000400,
gaHaveStereo = 0x00000800,
gaHaveHWStereoSync = 0x00001000,
gaHaveEVCStereoSync = 0x00002000,
gaHaveAccelVideo = 0x00004000,
gaHaveAccel3D = 0x00008000,
gaHave8bppRGBCursor = 0x00010000,
gaHaveAccelIOPL = 0x00040000,
gaHaveEngineClock = 0x00200000,
gaIsGUIDesktop = 0x01000000,
gaIsVirtualMode = 0x08000000,
gaHaveMultiHead = 0x02000000,
gaHaveDFPOutput = 0x04000000,
gaHaveLCDOutput = 0x10000000,
gaHaveTVOutput = 0x20000000,
gaIsTextMode = 0x40000000
} GA_AttributeFlagsType

Prototype In

snap/graphics.h

Description

Flags for the Attributes member of the GA_modeInfo structure and in the Attributes member of the main GA_devCtx device context block structure. These flags define the hardware capabilities of the particular device or graphics mode.

The gaHaveDisplayStart flag is used to determine whether the graphics mode supports changing the CRTC display start address. This is used to implement hardware virtual scrolliong and multi-buffering for flicker free animation. If this bit is 0, then the application cannot change the display start address after initialising a display mode.

The gaHaveBankedBuffer flag is used to determine if the graphics mode supports the banked framebuffer access modes. If this bit is 0, then the application cannot use the banked framebuffer style access. Some controllers may not support a banked framebuffer mode in some modes. In this case a linear framebuffer mode will be provided (either a banked buffer or linear buffer must be available for the mode to be valid).

The gaHaveLinearBuffer flag is used to determine if the graphics mode supports the linear framebuffer access modes. If this bit is 0, then the application cannot start the linear framebuffer graphics mode.

The gaHaveAccel2D flag is used to determine if the graphics mode supports 2D accelerator functions. If this bit is 0, then the application can only use direct framebuffer access in this video mode, and the 2D acceleration functions are not available. The cases where this might crop up are more common than you might think. This bit may be 0 for very low resolution graphics modes on some controllers, and on older controllers for the 24 bit and above graphics modes.

The gaHaveHWCursor flag is used to determine if the controller supports a hardware cursor for the specified graphics mode. You must check this flag for each graphics mode before attempting to use the hardware cursor functions as some graphics modes will not be able to support the hardware cursor (but may still support 2D acceleration).

The gaHave8BitDAC flag is used to determine if the controller will be using the 8 bit wide palette DAC modes when runing in 256 color index modes. The 8 bit DAC modes allow the palette to be selected from a range of 16.7 million colors rather than the usual 256k colors available in 6 bit DAC mode. The 8 bit DAC mode allows the 256 color modes to display a full range of 256 grayscales, while the 6 bit mode only allows a selection of 64 grayscales. Note that the 8 bit DAC mode is not selectable. If the hardware supports an 8 bit DAC, it will always be used by default.

The gaHaveNonVGAMode flag is used to determine if the mode is a VGA compatible mode or a NonVGA mode. If this flag is set, the application software must ensure that no attempts are made to directly program any of the standard VGA compatible registers such as the RAMDAC control registers and inpus status registers while the NonVGA graphics mode is used. Attempting to use these registers in NonVGA modes generally results in the application program hanging the system.

The gaHaveDoubleScan flag is used to determine if the mode requires double scanning. If this bit is set, the double scan bit must be set for the graphics mode if it is initialised with generic refresh control turned on.

The gaHaveTripleScan flag is used to determine if the mode requires triple scanning. If this bit is set, the triple scan bit must be set for the graphics mode if it is initialised with generic refresh control turned on.

The gaHaveInterlaced flag is used to determine if the mode supports interlaced operation or not. If this bit is set, the mode may be initialized for interlaced operation when using the refresh rate control to initialise the mode.

The gaHaveTripleBuffer flag is used to determine if the mode supports hardware triple buffering.

The gaHaveStereo flag is used to determine if the mode supports hardware support for stereo LC shutter glasses.

The gaHaveHWStereoSync flag is used to determine if the controller supports the hardware stereo LC shutter glasses sync signal via the VESA EVC Enhanced Video Connector. The gaHaveEVCStereoSync flag is used to determine if the controller supports the hardware stereo LC shutter glasses sync signal via the VESA mini-DIN3 stereo connector. If either of these values are set, the application can disable all software stero sync mechanisms and rely on the the hardware stereo sync for maximum performance.

The gaHaveAccelVideo flag is used to determine if the mode supports hardware video acceleration. If this bit is not 0, then the application can use the hardware video functions for video overlay windows.

The gaHaveAccel3D flag is used to determine if the mode supports hardware 3D acceleration. If this bit is not 0, then the application can use the hardware 3D accleration functions for high performance 3D graphics.

The gaHave8bppRGBCursor flag is used to determine if the color values for the hardware cursor in 8bpp modes are defined as a color index or as a TrueColor RGB tuple. Most cards require a color index in 8bpp modes, but some new hardware uses a TrueColor cursor in 8bpp display modes and this flag will be set if this is the case.

The gaHaveAccelIOPL flag indicates that the accelerated drawing functions require IOPL access to be enabled. If this flag is not set, then the 2D and 3D drawing functions use only memory mapped registers and hence can be executed entirely in ring-3 without needing IOPL to be enabled. Note that this does not include hardware cursor functions or hardware video overlay functions, only 2D and 3D drawing functions. It is assumed that all initialisation and driver functions require IOPL to be enabled.

The gaIsVirtualMode flag indicates that the mode is a special multi-controller virtual display mode that spans multiple display devices. This is an informational flag so that any high level OS drivers can know when one of these modes is in use.

The gaHaveMultiHead flag is used to determine if the controller is capable of supporting dual head operation via two separate CRTC connector output. This flag is generally only included the GA_devCtx Attribute member and not in the Attributes member of the GA_modeInfo structure.

The gaHaveDFPOutput flag is used to determine if a mode can be displayed on an LCD flat panel monitor using the DFP or DVI connectors. This flag is generally only available for graphics cards that have DVI or DFP connector and indicates display modes can support output to the LCD flat panel monitor monitor as well as simulatenous output to both displays at the same time.

The gaHaveLCDOutput flag is used to determine if a mode can be displayed on an LCD flat panel. This flag is generally only available for laptop chipsets, and indicates display modes can support output to the LCD panel as well as simulatenous output to both displays at the same time.

The gaHaveTVOutput flag is used to determine if a mode can be displayed via the TVOut connector for the graphics card. If the graphics card does not support TVOut capabilities this flag will never be set. Otherwise it will be set for those display modes that can be displayed on the TV. Note that both PAL and NTSC output may be supported, or only one or the other depending on the underlying hardware.

The gaIsTextMode flag is used to determine if the mode is a graphics mode or a text mode. If this flag is set to 1, then the mode is a hardware text mode and not a graphics mode.

Members

gaHaveDisplayStart | Mode supports changing the display start address
gaHaveBankedBuffer | Mode supports banked framebuffer access
gaHaveLinearBuffer | Mode supports linear framebuffer access
gaHaveAccel2D | Mode supports 2D acceleration
gaHaveHWCursor | Mode supports a hardware cursor
gaHave8BitDAC | Mode uses an 8 bit palette DAC
gaHaveNonVGAMode | Mode is a NonVGA mode
gaHaveDoubleScan | Mode is double scanned
gaHaveTripleScan | Mode is triple scanned
gaHaveInterlaced | Mode supports interlacing
gaHaveTripleBuffer | Mode supports triple buffering
gaHaveStereo | Mode supports stereo LCD glasses
gaHaveHWStereoSync | Mode supports stereo signalling
gaHaveEVCStereoSync | Mode supports stereo sync via EVC connector
gaHaveAccelVideo | Mode supports video playback acceleration
gaHaveAccel3D | Mode supports 3D acceleration
gaHave8bppRGBCursor | Mode requires RGB colors for 8bpp hardware cursor
gaHaveAccelIOPL | Mode needs IOPL for drawing functions
gaHaveEngineClock | Display adapter supports programmable engine clock
gaIsGUIDesktop | The mode is the original GUI desktop mode
gaIsVirtualMode | Mode is a multi-head or multi-controller virtual mode
gaHaveMultiHead | Display adapter supports multi head operation
gaHaveDFPOutput | Mode supports output to DFP digital flat panel
gaHaveLCDOutput | Mode supports output to LCD laptop display
gaHaveTVOutput | Mode supports output to TV connector
gaIsTextMode | Mode is a text mode rather than a graphics mode

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