Contents

Introduction
What is SciTech SNAP?
What is SciTech SNAP Graphics Architecture?
Installing SciTech SNAP Graphics
Downloading and Installing SciTech SNAP Graphics
Makefile Utilities Configuration
DOS/Windows hosted tools (start-sdk.bat)
Win32 hosted tools (start-sdk.bat)
Windows hosted tools for RTTarget-32 (start-sdk.bat)
OS/2 hosted tools (start-sdk.cmd)
Linux hosted tools (start-sdk.linux)
QNX hosted tools (start-sdk.qnx)
Compiling SciTech SNAP Graphics
Compiling release and debug builds
Compiling the sample programs
Setting up Your Compiler Configuration
Using the Makefile Utilities
Standard Makefile Targets
Standard Makefile Options
CauseWay DOS Extender Support
Connecting with Perforce
Download a Perforce Client
Setting up your environment for anonymous access
Setting up your client mapping
Syncing up for the first time
Using Perforce from the command line
Programming with SNAP Graphics
Loading and Initializing SciTech SNAP Graphics
Runtime Library Standard Locations
Enumerating Installed Devices and Loading a Driver
Locating and Calling Device Driver Functions
Querying Device Configuration Information
Working With Display Modes
Finding Available Display Modes
Refresh Rate Control
Using Custom Display Modes
2D Coordinate System
Multi Buffering
Accessing Offscreen Video Memory
Virtual Buffer Scrolling
Palette Programming During Double Buffering
Integer Coordinates
Color Values
Direct Framebuffer Access
Hardware Triple Buffering
Using the Buffer Manager
Hardware Video Overlay Functions
Stereoscopic Liquid Crystal Shutter Glasses
Refresh rates and stereoscopic imaging
Software driven display start address swapping
Developing for Maximum Compatibility
Support Both 15-bit and 16-bits Per Pixel Modes
Support Both 24-bit and 32-bits per Pixel Modes
Do Not Assume Support for Double Scanned Modes
Graphics Device Driver Overview
Overview of Global Functions
Driver Loading and Initialization Functions
Display Mode Management Functions
Rectangle Arithmetic Functions
Monitor Detection Functions
Monitor Database Functions
Monitor Command Set Functions
Overview of Queried Function Groups
Display Driver Initialization Functions
Device Driver Control Functions
2D Rendering State Functions
2D Drawing Functions
Buffer Manager Functions
Complex Region Management Functions
Hardware Video Overlay Functions
Hardware Cursor Functions
Graphics Device Driver Reference
External Functions
DDC_init
DDC_initExt
DDC_readEDID
DDC_writeEDID
EDID_parse
GA_addMode
GA_addRefresh
GA_computeCRTCTimings
GA_delMode
GA_detectPnPMonitor
GA_disableVBEMode
GA_disjointRect
GA_emptyRect
GA_enableVBEMode
GA_enumerateDevices
GA_equalRect
GA_errorMsg
GA_getCRTCTimings
GA_getCurrentRef2d
GA_getDaysLeft
GA_getDisplaySerialNo
GA_getDisplayUserName
GA_getFakePCIID
GA_getGlobalOptions
GA_getInternalName
GA_getLicensedDevices
GA_getMaxRefreshRate
GA_getParsedEDID
GA_getSNAPConfigPath
GA_insetRect
GA_isLiteVersion
GA_isOEMVersion
GA_isSharedDriverLoaded
GA_isSimpleRegion
GA_loadDriver
GA_loadInGUI
GA_loadModeProfile
GA_loadRef2d
GA_loadRegionMgr
GA_offsetRect
GA_programMTRRegisters
GA_ptInRect
GA_queryFunctions
GA_readGlobalOptions
GA_registerLicense
GA_restoreCRTCTimings
GA_saveCRTCTimings
GA_saveGlobalOptions
GA_saveModeProfile
GA_saveMonitorInfo
GA_saveOptions
GA_sectRect
GA_sectRectCoord
GA_sectRectFast
GA_sectRectFastCoord
GA_setActiveDevice
GA_setCRTCTimings
GA_setDefaultRefresh
GA_setGlobalOptions
GA_setMinimumDriverVersion
GA_softStereoExit
GA_softStereoGetFlipStatus
GA_softStereoInit
GA_softStereoOff
GA_softStereoOn
GA_softStereoScheduleFlip
GA_softStereoWaitTillFlipped
GA_status
GA_unionRect
GA_unionRectCoord
GA_unloadDriver
GA_unloadRef2d
GA_unloadRegionMgr
GA_useDoubleScan
MCS_begin
MCS_beginExt
MCS_enableControl
MCS_end
MCS_getCapabilitiesString
MCS_getControlMax
MCS_getControlValue
MCS_getControlValues
MCS_getSelfTestReport
MCS_getTimingReport
MCS_isControlSupported
MCS_resetControl
MCS_saveCurrentSettings
MCS_setControlValue
MCS_setControlValues
MDBX_close
MDBX_first
MDBX_flush
MDBX_getErrCode
MDBX_getErrorMsg
MDBX_importINF
MDBX_insert
MDBX_last
MDBX_next
MDBX_open
MDBX_prev
MDBX_update
PE_freeLibrary
PE_getError
PE_getFileSize
PE_getProcAddress
PE_loadLibrary
PE_loadLibraryExt
PE_loadLibraryMGL
REF2D_loadDriver
REF2D_queryFunctions
REF2D_unloadDriver
Type Definitions
DDC_ChannelsType
DDC_DPMSStatesType
DDC_SCIFlagsType
DDC_errCode
EDID_detailedTiming
EDID_displayTypes
EDID_flags
EDID_maxResCodes
EDID_record
EDID_signalLevels
EDID_standardTiming
EDID_timingTypes
GA_2DRenderFuncs
BitBlt
BitBltBM
BitBltColorPatt
BitBltColorPattBM
BitBltColorPattLin
BitBltColorPattSys
BitBltFx
BitBltFxBM
BitBltFxLin
BitBltFxSys
BitBltFxTest
BitBltLin
BitBltPatt
BitBltPattBM
BitBltPattLin
BitBltPattSys
BitBltPlaneMasked
BitBltPlaneMaskedBM
BitBltPlaneMaskedLin
BitBltPlaneMaskedSys
BitBltSys
ClipEllipse
ClipMonoImageLSBBM
ClipMonoImageLSBLin
ClipMonoImageLSBSys
ClipMonoImageMSBBM
ClipMonoImageMSBLin
ClipMonoImageMSBSys
DrawBresenhamLine
DrawBresenhamStippleLine
DrawBresenhamStyleLine
DrawClippedBresenhamLine
DrawClippedBresenhamStippleLine
DrawClippedBresenhamStyleLine
DrawClippedLineInt
DrawClippedStippleLineInt
DrawClippedStyleLineInt
DrawColorPattEllipseList
DrawColorPattFatEllipseList
DrawColorPattRect
DrawColorPattScanList
DrawColorPattTrap
DrawEllipse
DrawEllipseList
DrawFatEllipseList
DrawLineInt
DrawPattEllipseList
DrawPattFatEllipseList
DrawPattRect
DrawPattScanList
DrawPattTrap
DrawRect
DrawRectExt
DrawRectLin
DrawScanList
DrawStippleLineInt
DrawStyleLineInt
DrawTrap
DstTransBlt
DstTransBltBM
DstTransBltLin
DstTransBltSys
GetBitmapBM
GetBitmapSys
GetPixel
PutMonoImageLSBBM
PutMonoImageLSBLin
PutMonoImageLSBSys
PutMonoImageMSBBM
PutMonoImageMSBLin
PutMonoImageMSBSys
PutPixel
SrcTransBlt
SrcTransBltBM
SrcTransBltLin
SrcTransBltSys
StretchBlt
StretchBltBM
StretchBltLin
StretchBltSys
UpdateScreen
GA_2DStateFuncs
BuildTranslateVector
DisableDirectAccess
EnableDirectAccess
IsIdle
Set8x8ColorPattern
Set8x8MonoPattern
SetAlphaValue
SetBackColor
SetBlendFunc
SetDrawBuffer
SetForeColor
SetLineStipple
SetLineStippleCount
SetLineStyle
SetMix
SetPlaneMask
Use8x8ColorPattern
Use8x8MonoPattern
Use8x8TransColorPattern
Use8x8TransMonoPattern
WaitTillIdle
GA_AccelFlagsType
GA_AttributeExtFlagsType
GA_AttributeFlagsType
GA_BitBltFxFlagsType
GA_BresenhamLineFlagsType
GA_BufferFlagsType
GA_CRTCInfo
GA_CRTCInfoFlagsType
GA_CertifyFlagsType
GA_DPMSFuncs
DPMSdetect
DPMSsetState
GA_LCDUseBIOSFlagsType
GA_MakeVisibleBufferFlagsType
GA_OutputFlagsType
GA_SCIFuncs
SCIbegin
SCIdetect
SCIend
SCIreadSCL
SCIreadSDA
SCIwriteSCL
SCIwriteSDA
GA_TVParams
GA_VBEFuncs
GetPaletteData
Set8BitDAC
SetBytesPerLine
SetPaletteData
GA_VideoBufferFormatsType
GA_VideoOutputFlagsType
GA_WorkAroundsFlagsType
GA_blendFuncType
GA_bltFx
GA_buf
GA_buffer
GA_bufferFuncs
AllocBuffer
BitBltBuf
BitBltColorPattBuf
BitBltFxBuf
BitBltPattBuf
BitBltPlaneMaskedBuf
DrawRectBuf
DstTransBltBuf
FlipToBuffer
FlipToStereoBuffer
FreeBuffer
GetClipper
GetFlipStatus
GetFlippableBuffer
GetPrimaryBuffer
InitBuffers
LockBuffer
SetActiveBuffer
SetClipper
SrcTransBltBuf
StretchBltBuf
UnlockBuffer
UpdateCache
UpdateFromCache
WaitTillFlipped
GA_busType
GA_certifyChipInfo
GA_certifyInfo
GA_clipper
GA_clipperFuncs
CreateClipper
DestroyClipper
GetClipList
IsClipListChanged
GA_color
GA_colorCursor
GA_colorCursor256
GA_colorCursorRGB
GA_colorCursorRGBA
GA_colorPattern
GA_colorPattern_1
GA_colorPattern_16
GA_colorPattern_24
GA_colorPattern_32
GA_colorPattern_4
GA_colorPattern_8
GA_configInfo
GA_cursorFuncs
BeginAccess
EndAccess
IsHardwareCursor
SetColorCursor
SetColorCursor256
SetColorCursorRGB
SetColorCursorRGBA
SetCursorPos
SetMonoCursor
SetMonoCursorColor
ShowCursor
GA_devCtx
GA_driverFuncs
EnableStereoMode
GetCurrentScanLine
GetDisplayStartStatus
GetGammaCorrectData
GetGammaCorrectDataExt
GetPaletteData
GetPaletteDataExt
GetVSyncWidth
IsVSync
SetBank
SetDisplayStart
SetDisplayStartXY
SetGammaCorrectData
SetGammaCorrectDataExt
SetPaletteData
SetPaletteDataExt
SetStereoDisplayStart
SetVSyncWidth
WaitVSync
GA_funcGroupsType
GA_globalOptions
GA_initFuncs
AlignLinearBuffer
GetActiveHead
GetCRTCTimings
GetCertifyInfo
GetClosestPixelClock
GetConfigInfo
GetCurrentRefreshRate
GetCurrentVideoModeInfo
GetCustomVideoModeInfo
GetCustomVideoModeInfoExt
GetDisplayOutput
GetMonitorInfo
GetNumberOfHeads
GetOptions
GetUniqueFilename
GetVideoMode
GetVideoModeInfo
GetVideoModeInfoExt
PerformDisplaySwitch
PollForDisplaySwitch
SaveCRTCTimings
SaveRestoreState
SetActiveHead
SetCRTCTimings
SetCustomVideoMode
SetDisplayOutput
SetGlobalRefresh
SetModeProfile
SetMonitorInfo
SetOptions
SetRef2dPointer
SetSoftwareRenderFuncs
SetVideoMode
SwitchPhysicalResolution
GA_largeInteger
GA_layout
GA_loaderFuncs
InitDriver
QueryFunctions
UnloadDriver
GA_mixCodesType
GA_mode
GA_modeFlagsType
GA_modeInfo
GA_modeProfile
GA_monitor
GA_monitorFlagsType
GA_monoCursor
GA_multiHeadType
GA_options
GA_palette
GA_paletteExt
GA_pattern
GA_pixelFormat
GA_recMode
GA_rect
GA_region
GA_regionFuncs
ClearRegion
CopyIntoRegion
CopyRegion
DiffRegion
DiffRegionRect
FreeRegion
IsEmptyRegion
IsEqualRegion
NewRectRegion
NewRegion
OffsetRegion
OptimizeRegion
PtInRegion
SectRegion
SectRegionRect
TraverseRegion
UnionRegion
UnionRegionOfs
UnionRegionRect
GA_rop3CodesType
GA_segment
GA_span
GA_stipple
GA_trap
GA_videoFuncs
AllocVideoBuffer
EndVideoFrame
FreeVideoBuffer
SetVideoColorKey
SetVideoOutput
StartVideoFrame
GA_videoInf
MCS_controlsType
MCS_polarityFlagsType
MDBX_errCodes
N_errorType
N_fix32
N_flt32
N_int16
N_int32
N_int8
N_physAddr
N_uint16
N_uint32
N_uint8
PE_errorCodes
REF2D_driver
DrawRectExtSW
ForceSoftwareOnly
PostSwitchPhysicalResolution
QueryFunctions
RotateBitmap
SetColorCompareMask
SetDrawBuffer
SetDrawSurface
PM Library Reference
External Functions
CPU_getProcessorName
CPU_getProcessorSpeed
CPU_getProcessorSpeedInHZ
CPU_getProcessorType
CPU_have3DNow
CPU_haveMMX
CPU_haveRDTSC
CPU_haveSSE
EVT_allowLEDS
EVT_asciiCode
EVT_flush
EVT_getCodePage
EVT_getHeartBeatCallback
EVT_getMousePos
EVT_getNext
EVT_halt
EVT_isKeyDown
EVT_joyIsPresent
EVT_joySetCenter
EVT_joySetLowerRight
EVT_joySetUpperLeft
EVT_peekNext
EVT_pollJoystick
EVT_post
EVT_repeatCount
EVT_scanCode
EVT_setCodePage
EVT_setHeartBeatCallback
EVT_setMousePos
EVT_setUserEventFilter
LZTimerCount
LZTimerCountExt
LZTimerLap
LZTimerLapExt
LZTimerOff
LZTimerOffExt
LZTimerOn
LZTimerOnExt
PCI_accessReg
PCI_enumerate
PCI_getNumDevices
PCI_readRegBlock
PCI_writeRegBlock
PE_freeLibrary
PE_getError
PE_getFileSize
PE_getProcAddress
PE_loadLibrary
PE_loadLibraryExt
PE_loadLibraryMGL
PM_agpCommitPhysical
PM_agpExit
PM_agpFreePhysical
PM_agpInit
PM_agpReleasePhysical
PM_agpReservePhysical
PM_allocLockedMem
PM_allocPage
PM_allocRealSeg
PM_backslash
PM_blockUntilTimeout
PM_callRealMode
PM_calloc
PM_closeConsole
PM_doSuspendApp
PM_enableWriteCombine
PM_enumWriteCombine
PM_fatalError
PM_findBPD
PM_findClose
PM_findFirstFile
PM_findNextFile
PM_flushTLB
PM_free
PM_freeLibrary
PM_freeLockedMem
PM_freePage
PM_freePhysicalAddr
PM_freeRealSeg
PM_freeShared
PM_getA0000Pointer
PM_getBIOSPointer
PM_getBootDrive
PM_getCOMPort
PM_getConsoleStateSize
PM_getCurrentPath
PM_getDirectDrawWindow
PM_getFileAttr
PM_getFileTime
PM_getIOPL
PM_getLPTPort
PM_getMachineName
PM_getOSName
PM_getOSType
PM_getPhysicalAddr
PM_getPhysicalAddrRange
PM_getProcAddress
PM_getSNAPConfigPath
PM_getSNAPPath
PM_getUniqueID
PM_getVESABuf
PM_getVGAStateSize
PM_getch
PM_getdcwd
PM_haveBIOSAccess
PM_init
PM_inpb
PM_inpd
PM_inpw
PM_installService
PM_installServiceExt
PM_int86
PM_int86x
PM_isSDDActive
PM_kbhit
PM_loadDirectDraw
PM_loadLibrary
PM_lockCodePages
PM_lockDataPages
PM_makepath
PM_malloc
PM_mallocShared
PM_mapPhysicalAddr
PM_mapRealPointer
PM_mkdir
PM_openConsole
PM_outpb
PM_outpd
PM_outpw
PM_realloc
PM_removeService
PM_restartRealTimeClock
PM_restoreConsoleState
PM_restoreRealTimeClockHandler
PM_restoreThreadPriority
PM_restoreVGAState
PM_rmdir
PM_runningInAWindow
PM_saveConsoleState
PM_saveVGAState
PM_setDebugLog
PM_setFatalErrorCleanup
PM_setFileAttr
PM_setFileTime
PM_setIOPL
PM_setLocalBPDPath
PM_setMaxThreadPriority
PM_setOSCursorLocation
PM_setOSScreenWidth
PM_setRealTimeClockFrequency
PM_setRealTimeClockHandler
PM_setSuspendAppCallback
PM_sleep
PM_splitpath
PM_startService
PM_stopRealTimeClock
PM_stopService
PM_unloadDirectDraw
PM_unlockCodePages
PM_unlockDataPages
PM_useLocalMalloc
ULZElapsedTime
ULZReadTime
ULZTimerCount
ULZTimerLap
ULZTimerOff
ULZTimerOn
ULZTimerResolution
ZTimerInit
ZTimerInitExt
Type Definitions
CPU_largeInteger
CPU_processorType
EVT_asciiCodesType
EVT_eventJoyAxisType
EVT_eventJoyMaskType
EVT_eventMaskType
EVT_eventModMaskType
EVT_eventMouseMaskType
EVT_eventType
EVT_masksType
EVT_scanCodesType
LZTimerObject
PCIAGPCapability
PCIAGPCommand
PCIAGPStatus
PCIAccessRegFlags
PCICapsHeader
PCICapsType
PCIClassTypes
PCICommandFlags
PCIDeviceInfo
PCIHeaderTypeFlags
PCIStatusFlags
PCIType0Info
PCIType1Info
PCIType2Info
PCIslot
PE_errorCodes
PMBYTEREGS
PMDWORDREGS
PMEnableWriteCombineErrors
PMEnableWriteCombineFlags
PMFileFlagsType
PMREGS
PMSREGS
PMSplitPathFlags
PMWORDREGS
PM_HWND
PM_IRQHandle
PM_MODULE
PM_agpMemoryType
PM_enumWriteCombine_t
PM_fatalCleanupHandler
PM_findData
PM_intHandler
PM_irqHandler
PM_lockHandle
PM_physAddr
PM_suspendAppCodesType
PM_suspendAppFlagsType
PM_suspendApp_cb
PM_time
RMREGS
RMSREGS
__codePtr
codepage_entry_t
codepage_t
event_t