| Home
| Previous
| Next
| Up

GA_WorkAroundsFlagsType

Declaration

typedef enum {
gaSlowBltSys = 0x00000001,
gaHWCursor32x32 = 0x00000002,
gaHWCursorBlackBackground = 0x00000004,
gaSlow24bpp = 0x00000008,
gaSlow32bpp = 0x00000010,
gaBrokenLines = 0x00000020,
gaNoDDCBIOS = 0x00000040,
gaNoWriteCombine = 0x00000080,
gaNoInterlacedCursor = 0x00000100,
gaHWCursorBlackAndWhite8bpp = 0x00000200,
gaNoLCDSwitching = 0x00000400,
gaNoLCDExpandCursor = 0x00000800,
gaUsesBIOS = 0x00001000,
gaNeedFullBIOS = 0x00002000,
gaNeedContiguousFlipBuffers = 0x00004000,
gaNeed3DTiledAddressing = 0x00008000,
gaNoWHQLTransparentBlit = 0x00010000
} GA_WorkAroundsFlagsType

Prototype In

snap/graphics.h

Description

Flags for the WorkArounds member of the GA_devCtx structure. These flags define conditions for uncommon hardware bugs that can't easily be handled via the generic SNAP Graphics information reporting mechanism. Any code that calls the SNAP Graphics hardware drivers directly must be aware of these workarounds and how to deal with them. However the SNAP Graphics Software Reference Rasteriser knows how to deal with all currently known bugs, so application developers should use the reference rasteriser at all times for maximum compatibility with new hardware drivers.

The gaSlowBltSys flag indicates that the hardware BitBltSys function is faster than a direct linear framebuffer software blit. Most modern hardware can do a software blit as fast or faster than using the hardware, but some hardware can be faster than a pure software blit. This is only true when the mix mode is GA_REPLACE_MIX, since software reads from the framebuffer over the PCI bus are terribly slow.

The gaHWCursor32x32 flag indicates that the hardware only supports a 32x32 hardware cursor, while the SNAP Graphics specification implements an interface for 64x64 hardware cursors. SNAP Graphics drivers will still implement hardware cursor support for hardware that only supports a 32x32 cursor, however this flag will be set. If the high level operating system drivers require a cursor larger than 32x32, then this flag should be checked and a software cursor used in it's place when this is the case.

The gaSlow24bpp flag indicates that although the 24bpp display modes are accelerated, they are only partically accelerated. Hence if there is an equiavlent 32bpp display mode, that most should be used in preference to the 24bpp display mode if possible.

The gaSlow32bpp flag indicates that although the 32bpp display modes are accelerated, they are only partically accelerated. Hence if there is an equiavlent 24bpp display mode, that most should be used in preference to the 32bpp display mode if possible.

The gaBrokenLines flag indicates that the hardware line drawing produces slightly different pixels than the software reference rasterizer and cannot be made to produce correct pixels. For this reason, conformance testing for line drawing will be skipped on this hardware.

The gaNoDDCBIOS flag is an internal flag to indicate that the card does not have DDC BIOS support, and hence we should not attempt to use the DDC BIOS functions to read the EDID for legacy devices.

The gaNoWriteCombine flag is an internal flag to indicate that the graphics chipset does not work properly when write combining is enabled for later processors. If write combining is used, it may cause the system to lock or hang.

The gaNoInterlacedCursor flag is an internal flag to indicate that the graphics chipset does not properly handle hardware cursors in interlaced display modes. Hence a software cursor should be used instead for these modes.

The gaNoLCDSwitching flag is set if the SetOptions function does not properly implement LCD/CRT switching. This is usually set for situations where the BIOS is not working properly, and it will be up to the user to use the function keys on the laptop to do the switching.

The gaNoLCDExpandCursor flag is set if the hardware does not support the hardware cursor correctly in LCD panel expansion modes. Hence a software mouse cursor should be used instead.

The gaUsesBIOS flag is set if the driver internally uses the BIOS for mode sets. This is mostly a flag to let the OS/2 driver know that it does not need to implement BIOS specific hacks that can slow down mode switching as the BIOS is already being used internally in the drivers. The BIOS is generally only used for laptop support and for legacy drivers where there is not enough information available to work without the BIOS.

Members

gaSlowBltSys | Software is slower than hardware for GA_REPLACE_MODE
gaHWCursor32x32 | The hardware cursor is only 32x32 in size
gaHWCursorBlackBackground | The hardware cursor requires that the background color always be black (0's)
gaSlow24bpp | The 24bpp modes are only partially accelerated
gaSlow32bpp | The 32bpp modes are only partially accelerated
gaBrokenLines | The hardware line drawing is not conformant
gaNoDDCBIOS | Card does not have DDC BIOS support
gaNoWriteCombine | Card does not support write combining
gaNoInterlacedCursor | HW cursor in interlaced modes is broken
gaHWCursorBlackAndWhite8bpp | The hardware cursor in 8bpp is always black and white and cannot be changed.
gaNoLCDSwitching | This flag is set if LCD switching does not work
gaNoLCDExpandCursor | This flag is set to disable cursor in LCD expand modes
gaUsesBIOS | Internally this driver uses the BIOS
gaNeedFullBIOS | This driver needs a full BIOS implementation on OS/2 in order to function
gaNeedContiguousFlipBuffers | Contiguous flip buffers needed for Win32 DirectDraw
gaNeed3DTiledAddressing | 3D tiled addressing needed for Win32 DirectDraw
gaNoWHQLTransparentBlit | Chipset does not support WHQL style transparent blits.

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