#include <IOKit/ndrvsupport/IOMacOSVideo.h>
IOKit/ndrvsupport/IOMacOSVideo.h Kernel.framework
84 typedefs · 46 enums · 38 structs · 2 macros
#define PRAGMA_STRUCT_ALIGN 1
#define FOUR_CHAR_CODE(x) (x)
underlying type unsigned int
| mBaseOffset | 1 | Id of mBaseOffset. |
| mRowBytes | 2 | Video sResource parameter Id's |
| mBounds | 3 | Video sResource parameter Id's |
| mVersion | 4 | Video sResource parameter Id's |
| mHRes | 5 | Video sResource parameter Id's |
| mVRes | 6 | Video sResource parameter Id's |
| mPixelType | 7 | Video sResource parameter Id's |
| mPixelSize | 8 | Video sResource parameter Id's |
| mCmpCount | 9 | Video sResource parameter Id's |
| mCmpSize | 10 | Video sResource parameter Id's |
| mPlaneBytes | 11 | Video sResource parameter Id's |
| mVertRefRate | 14 | Video sResource parameter Id's |
| mVidParams | 1 | Video parameter block id. |
| mTable | 2 | Offset to the table. |
| mPageCnt | 3 | Number of pages |
| mDevType | 4 | Device Type |
| oneBitMode | 128 | Id of OneBitMode Parameter list. |
| twoBitMode | 129 | Id of TwoBitMode Parameter list. |
| fourBitMode | 130 | Id of FourBitMode Parameter list. |
| eightBitMode | 131 | Id of EightBitMode Parameter list. |
underlying type unsigned int
| sixteenBitMode | 132 | Id of SixteenBitMode Parameter list. |
| thirtyTwoBitMode | 133 | Id of ThirtyTwoBitMode Parameter list. |
| firstVidMode | 128 | The new, better way to do the above. |
| secondVidMode | 129 | QuickDraw only supports six video |
| thirdVidMode | 130 | at this time. |
| fourthVidMode | 131 | |
| fifthVidMode | 132 | |
| sixthVidMode | 133 | |
| spGammaDir | 64 | |
| spVidNamesDir | 65 | |
typedef UInt32 VideoDeviceType
csTimingFormat values in VDTimingInfo
look in the declaration rom for timing info
underlying type unsigned int
| kDeclROMtables | 1684366188 | |
| kDetailedTimingFormat | 1634886241 | Timing is a detailed timing |
Size of a block of EDID (Extended Display Identification Data)
underlying type unsigned int
ddcBlockType constants
underlying type unsigned int
| kDDCBlockTypeEDID | 0 | EDID block type. |
ddcFlags constants
underlying type unsigned int
| kDDCForceReadBit | 0 | Force a new read of the EDID. |
| kDDCForceReadMask | 1 | Mask for kddcForceReadBit. |
Timing mode constants for Display Manager MultiMode support
Corresponding .h equates are in Video.h
.a equates are in Video.a
.r equates are in DepVideoEqu.r
The second enum is the old names (for compatibility).
The first enum is the new names.
underlying type unsigned int
| timingInvalid | 0 | Unknown timing... force user to confirm. |
| timingInvalid_SM_T24 | 8 | Work around bug in SM Thunder24 card. |
| timingApple_FixedRateLCD | 42 | Lump all fixed-rate LCDs into one category. |
| timingApple_512x384_60hz | 130 | 512x384 (60 Hz) Rubik timing. |
| timingApple_560x384_60hz | 135 | 560x384 (60 Hz) Rubik-560 timing. |
| timingApple_640x480_67hz | 140 | 640x480 (67 Hz) HR timing. |
| timingApple_640x400_67hz | 145 | 640x400 (67 Hz) HR-400 timing. |
| timingVESA_640x480_60hz | 150 | 640x480 (60 Hz) VGA timing. |
| timingVESA_640x480_72hz | 152 | 640x480 (72 Hz) VGA timing. |
| timingVESA_640x480_75hz | 154 | 640x480 (75 Hz) VGA timing. |
| timingVESA_640x480_85hz | 158 | 640x480 (85 Hz) VGA timing. |
| timingGTF_640x480_120hz | 159 | 640x480 (120 Hz) VESA Generalized Timing Formula |
| timingApple_640x870_75hz | 160 | 640x870 (75 Hz) FPD timing. |
| timingApple_640x818_75hz | 165 | 640x818 (75 Hz) FPD-818 timing. |
| timingApple_832x624_75hz | 170 | 832x624 (75 Hz) GoldFish timing. |
| timingVESA_800x600_56hz | 180 | 800x600 (56 Hz) SVGA timing. |
| timingVESA_800x600_60hz | 182 | 800x600 (60 Hz) SVGA timing. |
| timingVESA_800x600_72hz | 184 | 800x600 (72 Hz) SVGA timing. |
| timingVESA_800x600_75hz | 186 | 800x600 (75 Hz) SVGA timing. |
| timingVESA_800x600_85hz | 188 | 800x600 (85 Hz) SVGA timing. |
| timingVESA_1024x768_60hz | 190 | 1024x768 (60 Hz) VESA 1K-60Hz timing. |
| timingVESA_1024x768_70hz | 200 | 1024x768 (70 Hz) VESA 1K-70Hz timing. |
| timingVESA_1024x768_75hz | 204 | 1024x768 (75 Hz) VESA 1K-75Hz timing (very similar to timingApple_1024x768_75hz). |
| timingVESA_1024x768_85hz | 208 | 1024x768 (85 Hz) VESA timing. |
| timingApple_1024x768_75hz | 210 | 1024x768 (75 Hz) Apple 19" RGB. |
| timingApple_1152x870_75hz | 220 | 1152x870 (75 Hz) Apple 21" RGB. |
| timingAppleNTSC_ST | 230 | 512x384 (60 Hz, interlaced, non-convolved). |
| timingAppleNTSC_FF | 232 | 640x480 (60 Hz, interlaced, non-convolved). |
| timingAppleNTSC_STconv | 234 | 512x384 (60 Hz, interlaced, convolved). |
| timingAppleNTSC_FFconv | 236 | 640x480 (60 Hz, interlaced, convolved). |
| timingApplePAL_ST | 238 | 640x480 (50 Hz, interlaced, non-convolved). |
| timingApplePAL_FF | 240 | 768x576 (50 Hz, interlaced, non-convolved). |
| timingApplePAL_STconv | 242 | 640x480 (50 Hz, interlaced, convolved). |
| timingApplePAL_FFconv | 244 | 768x576 (50 Hz, interlaced, convolved). |
| timingVESA_1280x960_75hz | 250 | 1280x960 (75 Hz) |
| timingVESA_1280x960_60hz | 252 | 1280x960 (60 Hz) |
| timingVESA_1280x960_85hz | 254 | 1280x960 (85 Hz) |
| timingVESA_1280x1024_60hz | 260 | 1280x1024 (60 Hz) |
| timingVESA_1280x1024_75hz | 262 | 1280x1024 (75 Hz) |
| timingVESA_1280x1024_85hz | 268 | 1280x1024 (85 Hz) |
| timingVESA_1600x1200_60hz | 280 | 1600x1200 (60 Hz) VESA timing. |
| timingVESA_1600x1200_65hz | 282 | 1600x1200 (65 Hz) VESA timing. |
| timingVESA_1600x1200_70hz | 284 | 1600x1200 (70 Hz) VESA timing. |
| timingVESA_1600x1200_75hz | 286 | 1600x1200 (75 Hz) VESA timing (pixel clock is 189.2 Mhz dot clock). |
| timingVESA_1600x1200_80hz | 288 | 1600x1200 (80 Hz) VESA timing (pixel clock is 216>? Mhz dot clock) - proposed only. |
| timingVESA_1600x1200_85hz | 289 | 1600x1200 (85 Hz) VESA timing (pixel clock is 229.5 Mhz dot clock). |
| timingVESA_1792x1344_60hz | 296 | 1792x1344 (60 Hz) VESA timing (204.75 Mhz dot clock). |
| timingVESA_1792x1344_75hz | 298 | 1792x1344 (75 Hz) VESA timing (261.75 Mhz dot clock). |
| timingVESA_1856x1392_60hz | 300 | 1856x1392 (60 Hz) VESA timing (218.25 Mhz dot clock). |
| timingVESA_1856x1392_75hz | 302 | 1856x1392 (75 Hz) VESA timing (288 Mhz dot clock). |
| timingVESA_1920x1440_60hz | 304 | 1920x1440 (60 Hz) VESA timing (234 Mhz dot clock). |
| timingVESA_1920x1440_75hz | 306 | 1920x1440 (75 Hz) VESA timing (297 Mhz dot clock). |
| timingSMPTE240M_60hz | 400 | 60Hz V, 33.75KHz H, interlaced timing, 16:9 aspect, typical resolution of 1920x1035. |
| timingFilmRate_48hz | 410 | 48Hz V, 25.20KHz H, non-interlaced timing, typical resolution of 640x480. |
| timingSony_1600x1024_76hz | 500 | 1600x1024 (76 Hz) Sony timing (pixel clock is 170.447 Mhz dot clock). |
| timingSony_1920x1080_60hz | 510 | 1920x1080 (60 Hz) Sony timing (pixel clock is 159.84 Mhz dot clock). |
| timingSony_1920x1080_72hz | 520 | 1920x1080 (72 Hz) Sony timing (pixel clock is 216.023 Mhz dot clock). |
| timingSony_1920x1200_76hz | 540 | 1900x1200 (76 Hz) Sony timing (pixel clock is 243.20 Mhz dot clock). |
| timingApple_0x0_0hz_Offline | 550 | Indicates that this timing will take the display off-line and remove it from the system. |
Deprecated timing names.
underlying type unsigned int
| timingApple12 | 130 | |
| timingApple12x | 135 | |
| timingApple13 | 140 | |
| timingApple13x | 145 | |
| timingAppleVGA | 150 | |
| timingApple15 | 160 | |
| timingApple15x | 165 | |
| timingApple16 | 170 | |
| timingAppleSVGA | 180 | |
| timingApple1Ka | 190 | |
| timingApple1Kb | 200 | |
| timingApple19 | 210 | |
| timingApple21 | 220 | |
| timingSony_1900x1200_74hz | 530 | 1900x1200 (74 Hz) Sony timing (pixel clock is 236.25 Mhz dot clock). |
| timingSony_1900x1200_76hz | 540 | 1900x1200 (76 Hz) Sony timing (pixel clock is 245.48 Mhz dot clock). |
csConnectFlags values in VDDisplayConnectInfo
underlying type unsigned int
| kAllModesValid | 0 | All modes not trimmed by primary init are good close enough to try |
| kAllModesSafe | 1 | All modes not trimmed by primary init are know to be safe |
| kReportsTagging | 2 | Can detect tagged displays (to identify smart monitors) |
| kHasDirectConnection | 3 | True implies that driver can talk directly to device (e.g. serial data link via sense lines) |
| kIsMonoDev | 4 | Says whether there's an RGB (0) or Monochrome (1) connection. |
| kUncertainConnection | 5 | There may not be a display (no sense lines?). |
| kTaggingInfoNonStandard | 6 | Set when csConnectTaggedType/csConnectTaggedData are non-standard (i.e., not the Apple CRT sense codes). |
| kReportsDDCConnection | 7 | Card can do ddc (set kHasDirectConnect && kHasDDCConnect if you actually found a ddc display). |
| kHasDDCConnection | 8 | Card has ddc connect now. |
| kConnectionInactive | 9 | Set when the connection is NOT currently active (generally used in a multiconnection environment). |
| kDependentConnection | 10 | Set when some ascpect of THIS connection depends on another (will generally be set in a kModeSimulscan environment). |
| kBuiltInConnection | 11 | Set when connection is KNOWN to be built-in (this is not the same as kHasDirectConnection). |
| kOverrideConnection | 12 | Set when the reported connection is not the true one, but is one that has been forced through a SetConnection call |
| kFastCheckForDDC | 13 | Set when all 3 are true: 1) sense codes indicate DDC display could be attached 2) attempted fast check 3) DDC failed |
| kReportsHotPlugging | 14 | Detects and reports hot pluggging on connector (via VSL also implies DDC will be up to date w/o force read) |
| kStereoSyncConnection | 15 | Connection supports stereo sync signalling |
csDisplayType values in VDDisplayConnectInfo
underlying type unsigned int
| kUnknownConnect | 1 | Not sure how we'll use this, but seems like a good idea. |
| kPanelConnect | 2 | For use with fixed-in-place LCD panels. |
| kPanelTFTConnect | 2 | Alias for kPanelConnect |
| kFixedModeCRTConnect | 3 | For use with fixed-mode (i.e., very limited range) displays. |
| kMultiModeCRT1Connect | 4 | 320x200 maybe, 12" maybe, 13" (default), 16" certain, 19" maybe, 21" maybe |
| kMultiModeCRT2Connect | 5 | 320x200 maybe, 12" maybe, 13" certain, 16" (default), 19" certain, 21" maybe |
| kMultiModeCRT3Connect | 6 | 320x200 maybe, 12" maybe, 13" certain, 16" certain, 19" default, 21" certain |
| kMultiModeCRT4Connect | 7 | Expansion to large multi mode (not yet used) |
| kModelessConnect | 8 | Expansion to modeless model (not yet used) |
| kFullPageConnect | 9 | 640x818 (to get 8bpp in 512K case) and 640x870 (these two only) |
| kVGAConnect | 10 | 640x480 VGA default -- question everything else |
| kNTSCConnect | 11 | NTSC ST (default), FF, STconv, FFconv |
| kPALConnect | 12 | PAL ST (default), FF, STconv, FFconv |
| kHRConnect | 13 | Straight-6 connect -- 640x480 and 640x400 (to get 8bpp in 256K case) (these two only) |
| kPanelFSTNConnect | 14 | For use with fixed-in-place LCD FSTN (aka "Supertwist") panels |
| kMonoTwoPageConnect | 15 | 1152x870 Apple color two-page display |
| kColorTwoPageConnect | 16 | 1152x870 Apple B&W two-page display |
| kColor16Connect | 17 | 832x624 Apple B&W two-page display |
| kColor19Connect | 18 | 1024x768 Apple B&W two-page display |
| kGenericCRT | 19 | Indicates nothing except that connection is CRT in nature. |
| kGenericLCD | 20 | Indicates nothing except that connection is LCD in nature. |
| kDDCConnect | 21 | DDC connection, always set kHasDDCConnection |
| kNoConnect | 22 | No display is connected - load sensing or similar level of hardware detection is assumed (used by resident drivers that support hot plugging when nothing is currently connected) |
csTimingFlags values in VDTimingInfoRec
underlying type unsigned int
| kModeValid | 0 | Says that this mode should NOT be trimmed. |
| kModeSafe | 1 | This mode does not need confirmation |
| kModeDefault | 2 | This is the default mode for this type of connection |
| kModeShowNow | 3 | This mode should always be shown (even though it may require a confirm) |
| kModeNotResize | 4 | This mode should not be used to resize the display (eg. mode selects a different connector on card) |
| kModeRequiresPan | 5 | This mode has more pixels than are actually displayed |
| kModeInterlaced | 6 | This mode is interlaced (single pixel lines look bad). |
| kModeShowNever | 7 | This mode should not be shown in the user interface. |
| kModeSimulscan | 8 | Indicates that more than one display connection can be driven from a single framebuffer controller. |
| kModeNotPreset | 9 | Indicates that the timing is not a factory preset for the current display (geometry may need correction) |
| kModeBuiltIn | 10 | Indicates that the display mode is for the built-in connect only (on multiconnect devices like the PB 3400) Only the driver is quieried |
| kModeStretched | 11 | Indicates that the display mode will be stretched/distorted to match the display aspect ratio |
| kModeNotGraphicsQuality | 12 | Indicates that the display mode is not the highest quality (eg. stretching artifacts). Intended as a hint |
| kModeValidateAgainstDisplay | 13 | Indicates that this mode should be validated against the display EDID |
csDepthFlags in VDVideoParametersInfoRec
underlying type unsigned int
| kDepthDependent | 0 | Says that this depth mode may cause dependent changes in other framebuffers (and . |
| kDepthDependentMask | 1 | mask for kDepthDependent |
csResolutionFlags bit flags for VDResolutionInfoRec
underlying type unsigned int
| kResolutionHasMultipleDepthSizes | 0 | Says that this mode has different csHorizontalPixels, csVerticalLines at different depths (usually slightly larger at lower depths) |
underlying type unsigned int
| kAVPowerOff | 0 | Power Mode constants for VDPowerStateRec.powerState. Note the numeric order does not match the power state order Power fully off |
| kAVPowerStandby | 1 | |
| kAVPowerSuspend | 2 | |
| kAVPowerOn | 3 | |
| kHardwareSleep | 128 | |
| kHardwareWake | 129 | |
| kHardwareWakeFromSuspend | 130 | |
| kHardwareWakeToDoze | 131 | |
| kHardwareWakeToDozeFromSuspend | 132 | |
| kHardwarePark | 133 | |
| kHardwareDrive | 134 | |
Reduced perf level, for GetPowerState, SetPowerState
underlying type unsigned int
| kPowerStateReducedPowerMask | 768 | |
| kPowerStateFullPower | 0 | |
| kPowerStateReducedPower1 | 256 | |
| kPowerStateReducedPower2 | 512 | |
| kPowerStateReducedPower3 | 768 | |
underlying type unsigned int
| kPowerStateNeedsRefresh | 0 | Power Mode masks and bits for VDPowerStateRec.powerFlags. When leaving this power mode, a display will need refreshing |
| kPowerStateSleepAwareBit | 1 | if gestaltPCCardDockingSelectorFix, Docking mgr checks this bit before checking kPowerStateSleepAllowedBit |
| kPowerStateSleepForbiddenBit | 2 | if kPowerStateSleepAwareBit, Docking mgr checks this bit before sleeping |
| kPowerStateSleepCanPowerOffBit | 3 | supports power down sleep (ie PCI power off) |
| kPowerStateSleepNoDPMSBit | 4 | Bug #2425210. Do not use DPMS with this display. |
| kPowerStateSleepWaketoDozeBit | 5 | Supports Wake to Doze |
| kPowerStateSleepWakeNeedsProbeBit | 6 | Does not sense connection changes on wake |
| kPowerStateNeedsRefreshMask | 1 | |
| kPowerStateSleepAwareMask | 2 | |
| kPowerStateSleepForbiddenMask | 4 | |
| kPowerStateSleepCanPowerOffMask | 8 | |
| kPowerStateSleepNoDPMSMask | 16 | |
| kPowerStateSleepWaketoDozeMask | 32 | |
| kPowerStateSleepWakeNeedsProbeMask | 64 | |
| kPowerStateSupportsReducedPower1Bit | 10 | |
| kPowerStateSupportsReducedPower2Bit | 11 | |
| kPowerStateSupportsReducedPower3Bit | 12 | |
| kPowerStateSupportsReducedPower1BitMask | 1024 | |
| kPowerStateSupportsReducedPower2BitMask | 2048 | |
| kPowerStateSupportsReducedPower3BitMask | 4096 | |
underlying type unsigned int
| cscReset | 0 | Control Codes |
| cscKillIO | 1 | |
| cscSetMode | 2 | |
| cscSetEntries | 3 | |
| cscSetGamma | 4 | |
| cscGrayPage | 5 | |
| cscGrayScreen | 5 | |
| cscSetGray | 6 | |
| cscSetInterrupt | 7 | |
| cscDirectSetEntries | 8 | |
| cscSetDefaultMode | 9 | |
| cscSwitchMode | 10 | Takes a VDSwitchInfoPtr |
| cscSetSync | 11 | Takes a VDSyncInfoPtr |
| cscSavePreferredConfiguration | 16 | Takes a VDSwitchInfoPtr |
| cscSetHardwareCursor | 22 | Takes a VDSetHardwareCursorPtr |
| cscDrawHardwareCursor | 23 | Takes a VDDrawHardwareCursorPtr |
| cscSetConvolution | 24 | Takes a VDConvolutionInfoPtr |
| cscSetPowerState | 25 | Takes a VDPowerStatePtr |
| cscPrivateControlCall | 26 | Takes a VDPrivateSelectorDataRec |
| cscSetMultiConnect | 28 | From a GDI point of view, this call should be implemented completely in the HAL and not at all in the core. |
| cscSetClutBehavior | 29 | Takes a VDClutBehavior |
| cscSetDetailedTiming | 31 | Takes a VDDetailedTimingPtr |
| cscDoCommunication | 33 | Takes a VDCommunicationPtr |
| cscProbeConnection | 34 | Takes nil pointer |
| cscSetScaler | 36 | (may generate a kFBConnectInterruptServiceType service interrupt) Takes a VDScalerPtr |
| cscSetMirror | 37 | Takes a VDMirrorPtr |
| cscSetFeatureConfiguration | 38 | Takes a VDConfigurationPtr |
| cscUnusedCall | 127 | This call used to expand the scrn resource. Its imbedded data contains more control info |
underlying type unsigned int
| cscGetMode | 2 | Status Codes |
| cscGetEntries | 3 | |
| cscGetPageCnt | 4 | |
| cscGetPages | 4 | This is what C&D 2 calls it. |
| cscGetPageBase | 5 | |
| cscGetBaseAddr | 5 | This is what C&D 2 calls it. |
| cscGetGray | 6 | |
| cscGetInterrupt | 7 | |
| cscGetGamma | 8 | |
| cscGetDefaultMode | 9 | |
| cscGetCurMode | 10 | Takes a VDSwitchInfoPtr |
| cscGetSync | 11 | Takes a VDSyncInfoPtr |
| cscGetConnection | 12 | Return information about the connection to the display |
| cscGetModeTiming | 13 | Return timing info for a mode |
| cscGetModeBaseAddress | 14 | Return base address information about a particular mode |
| cscGetScanProc | 15 | QuickTime scan chasing routine |
| cscGetPreferredConfiguration | 16 | Takes a VDSwitchInfoPtr |
| cscGetNextResolution | 17 | Takes a VDResolutionInfoPtr |
| cscGetVideoParameters | 18 | Takes a VDVideoParametersInfoPtr |
| cscGetGammaInfoList | 20 | Takes a VDGetGammaListPtr |
| cscRetrieveGammaTable | 21 | Takes a VDRetrieveGammaPtr |
| cscSupportsHardwareCursor | 22 | Takes a VDSupportsHardwareCursorPtr |
| cscGetHardwareCursorDrawState | 23 | Takes a VDHardwareCursorDrawStatePtr |
| cscGetConvolution | 24 | Takes a VDConvolutionInfoPtr |
| cscGetPowerState | 25 | Takes a VDPowerStatePtr |
| cscPrivateStatusCall | 26 | Takes a VDPrivateSelectorDataRec |
| cscGetDDCBlock | 27 | Takes a VDDDCBlockRec |
| cscGetMultiConnect | 28 | From a GDI point of view, this call should be implemented completely in the HAL and not at all in the core. |
| cscGetClutBehavior | 29 | Takes a VDClutBehavior |
| cscGetTimingRanges | 30 | Takes a VDDisplayTimingRangePtr |
| cscGetDetailedTiming | 31 | Takes a VDDetailedTimingPtr |
| cscGetCommunicationInfo | 32 | Takes a VDCommunicationInfoPtr |
| cscGetScalerInfo | 35 | Takes a VDScalerInfoPtr |
| cscGetScaler | 36 | Takes a VDScalerPtr |
| cscGetMirror | 37 | Takes a VDMirrorPtr |
| cscGetFeatureConfiguration | 38 | Takes a VDConfigurationPtr |
| cscGetFeatureList | 39 | |
Bit definitions for the Get/Set Sync call
underlying type unsigned int
| kDisableHorizontalSyncBit | 0 | |
| kDisableVerticalSyncBit | 1 | |
| kDisableCompositeSyncBit | 2 | |
| kEnableSyncOnBlue | 3 | |
| kEnableSyncOnGreen | 4 | |
| kEnableSyncOnRed | 5 | |
| kNoSeparateSyncControlBit | 6 | |
| kTriStateSyncBit | 7 | |
| kHorizontalSyncMask | 1 | |
| kVerticalSyncMask | 2 | |
| kCompositeSyncMask | 4 | |
| kDPMSSyncMask | 7 | |
| kTriStateSyncMask | 128 | |
| kSyncOnBlueMask | 8 | |
| kSyncOnGreenMask | 16 | |
| kSyncOnRedMask | 32 | |
| kSyncOnMask | 56 | |
underlying type unsigned int
| kDPMSSyncOn | 0 | Power Mode constants for translating DPMS modes to Get/SetSync calls. |
| kDPMSSyncStandby | 1 | |
| kDPMSSyncSuspend | 2 | |
| kDPMSSyncOff | 7 | |
Bit definitions for the Get/Set Convolution call
underlying type unsigned int
| kConvolved | 0 | |
| kLiveVideoPassThru | 1 | |
| kConvolvedMask | 1 | |
| kLiveVideoPassThruMask | 2 | |
size 44, align 4
| UInt32 | vpBaseOffset | Offset to page zero of video RAM (From minorBaseOS). |
| UInt32 | vpRowBytes | Width of each row of video memory. |
| Rect | vpBounds | BoundsRect for the video display (gives dimensions). |
| SInt16 | vpVersion | PixelMap version number. |
| SInt16 | vpPackType | |
| UInt32 | vpPackSize | |
| UInt32 | vpHRes | Horizontal resolution of the device (pixels per inch). |
| UInt32 | vpVRes | Vertical resolution of the device (pixels per inch). |
| SInt16 | vpPixelType | Defines the pixel type. |
| SInt16 | vpPixelSize | Number of bits in pixel. |
| SInt16 | vpCmpCount | Number of components in pixel. |
| SInt16 | vpCmpSize | Number of bits per component |
| UInt32 | vpPlaneBytes | Offset from one plane to the next. |
typedef struct VPBlock VPBlock
size 8, align 8
| Ptr | csTable | pointer to color table entry=value, r,g,b:INTEGER |
typedef struct VDEntryRecord VDEntryRecord
size 2, align 1
| Boolean | csMode | Same as GDDevType value (0=color, 1=mono) |
| SInt8 | filler | |
typedef struct VDGrayRecord VDGrayRecord
typedef struct VDFlagRecord VDFlagRecord
size 16, align 8
| ColorSpec * | csTable | Pointer to an array of color specs |
| SInt16 | csStart | Which spec in array to start with, or -1 |
| SInt16 | csCount | Number of color spec entries to set |
typedef struct VDSetEntryRecord VDSetEntryRecord
typedef VDSetEntryRecord * VDSetEntryPtr
size 8, align 8
| Ptr | csGTable | pointer to gamma table |
typedef struct VDGammaRecord VDGammaRecord
typedef struct VDSwitchInfoRec VDSwitchInfoRec
size 32, align 8
| DisplayModeID | csTimingMode | timing mode (a la InitGDevice) |
| uintptr_t | csTimingReserved | reserved |
| UInt32 | csTimingFormat | what format is the timing info |
| UInt32 | csTimingData | data supplied by driver |
| UInt32 | csTimingFlags | mode within device |
typedef struct VDTimingInfoRec VDTimingInfoRec
size 24, align 8
| UInt16 | csDisplayType | Type of display connected |
| UInt8 | csConnectTaggedType | type of tagging |
| UInt8 | csConnectTaggedData | tagging data |
| UInt32 | csConnectFlags | tell us about the connection |
| uintptr_t | csDisplayComponent | if the card has a direct connection to the display, it returns the display component here (FUTURE) |
| uintptr_t | csConnectReserved | reserved |
typedef struct VDDisplayConnectInfoRec VDDisplayConnectInfoRec
size 32, align 8
| UInt32 | csDisplayCountOrNumber | For GetMultiConnect, returns count n of 1..n connections; otherwise, indicates the ith connection. |
| VDDisplayConnectInfoRec | csConnectInfo | Standard VDDisplayConnectionInfo for connection i. |
typedef struct VDMultiConnectInfoRec VDMultiConnectInfoRec
RawSenseCode
This abstract data type is not exactly abstract. Rather, it is merely enumerated constants
for the possible raw sense code values when 'standard' sense code hardware is implemented.
For 'standard' sense code hardware, the raw sense is obtained as follows:
o Instruct the frame buffer controller NOT to actively drive any of the monitor sense lines
o Read the state of the monitor sense lines 2, 1, and 0. (2 is the MSB, 0 the LSB)
IMPORTANT Note:
When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is
FALSE, then these constants
are valid 'csConnectTaggedType' values in 'VDDisplayConnectInfo'
typedef UInt8 RawSenseCode
underlying type unsigned int
| kRSCZero | 0 | |
| kRSCOne | 1 | |
| kRSCTwo | 2 | |
| kRSCThree | 3 | |
| kRSCFour | 4 | |
| kRSCFive | 5 | |
| kRSCSix | 6 | |
| kRSCSeven | 7 | |
ExtendedSenseCode
This abstract data type is not exactly abstract. Rather, it is merely enumerated constants
for the values which are possible when the extended sense algorithm is applied to hardware
which implements 'standard' sense code hardware.
For 'standard' sense code hardware, the extended sense code algorithm is as follows:
(Note: as described here, sense line 'A' corresponds to '2', 'B' to '1', and 'C' to '0')
o Drive sense line 'A' low and read the values of 'B' and 'C'.
o Drive sense line 'B' low and read the values of 'A' and 'C'.
o Drive sense line 'C' low and read the values of 'A' and 'B'.
In this way, a six-bit number of the form BC/AC/AB is generated.
IMPORTANT Note:
When the 'kTaggingInfoNonStandard' bit of 'csConnectFlags' is
FALSE, then these constants
are valid 'csConnectTaggedData' values in 'VDDisplayConnectInfo'
typedef UInt8 ExtendedSenseCode
underlying type unsigned int
| kESCZero21Inch | 0 | 21" RGB |
| kESCOnePortraitMono | 20 | Portrait Monochrome |
| kESCTwo12Inch | 33 | 12" RGB |
| kESCThree21InchRadius | 49 | 21" RGB (Radius) |
| kESCThree21InchMonoRadius | 52 | 21" Monochrome (Radius) |
| kESCThree21InchMono | 53 | 21" Monochrome |
| kESCFourNTSC | 10 | NTSC |
| kESCFivePortrait | 30 | Portrait RGB |
| kESCSixMSB1 | 3 | MultiScan Band-1 (12" thru 1Six") |
| kESCSixMSB2 | 11 | MultiScan Band-2 (13" thru 19") |
| kESCSixMSB3 | 35 | MultiScan Band-3 (13" thru 21") |
| kESCSixStandard | 43 | 13"/14" RGB or 12" Monochrome |
| kESCSevenPAL | 0 | PAL |
| kESCSevenNTSC | 20 | NTSC |
| kESCSevenVGA | 23 | VGA |
| kESCSeven16Inch | 45 | 16" RGB (GoldFish) |
| kESCSevenPALAlternate | 48 | PAL (Alternate) |
| kESCSeven19Inch | 58 | Third-Party 19" |
| kESCSevenDDC | 62 | DDC display |
| kESCSevenNoDisplay | 63 | No display connected |
DepthMode
This abstract data type is used to to reference RELATIVE pixel depths.
Its definition is largely derived from its past usage, analogous to 'xxxVidMode'
Bits per pixel DOES NOT directly map to 'DepthMode' For example, on some
graphics hardware, 'kDepthMode1' may represent 1 BPP, whereas on other
hardware, 'kDepthMode1' may represent 8BPP.
DepthMode IS considered to be ordinal, i.e., operations such as <, >, ==, etc.
behave as expected. The values of the constants which comprise the set are such
that 'kDepthMode4 < kDepthMode6' behaves as expected.
underlying type unsigned int
| kDepthMode1 | 128 | |
| kDepthMode2 | 129 | |
| kDepthMode3 | 130 | |
| kDepthMode4 | 131 | |
| kDepthMode5 | 132 | |
| kDepthMode6 | 133 | |
underlying type unsigned int
| kFirstDepthMode | 128 | These constants are obsolete, and just included |
| kSecondDepthMode | 129 | for clients that have converted to the above |
| kThirdDepthMode | 130 | kDepthModeXXX constants. |
| kFourthDepthMode | 131 | |
| kFifthDepthMode | 132 | |
| kSixthDepthMode | 133 | |
typedef struct VDPageInfo VDPageInfo
size 8, align 2
| SInt16 | csHSize | desired/returned h size |
| SInt16 | csHPos | desired/returned h position |
| SInt16 | csVSize | desired/returned v size |
| SInt16 | csVPos | desired/returned v position |
typedef struct VDSizeInfo VDSizeInfo
typedef struct VDSettings VDSettings
typedef struct VDDefMode VDDefMode
typedef struct VDSyncInfoRec VDSyncInfoRec
All displayModeID values from 0x80000000 to 0xFFFFFFFF and 0x00
are reserved for Apple Computer.
Constants for the cscGetNextResolution call
underlying type int
| kDisplayModeIDCurrent | 0 | Reference the Current DisplayModeID |
| kDisplayModeIDInvalid | -1 | A bogus DisplayModeID in all cases |
| kDisplayModeIDFindFirstResolution | -2 | Used in cscGetNextResolution to reset iterator |
| kDisplayModeIDNoMoreResolutions | -3 | Used in cscGetNextResolution to indicate End Of List |
| kDisplayModeIDFindFirstProgrammable | -4 | Used in cscGetNextResolution to find unused programmable timing |
| kDisplayModeIDBootProgrammable | -5 | This is the ID given at boot time by the OF driver to a programmable timing |
| kDisplayModeIDReservedBase | -2147483648 | Lowest (unsigned) DisplayModeID reserved by Apple |
Constants for the GetGammaInfoList call
underlying type unsigned int
| kGammaTableIDFindFirst | 4294967294 | Get the first gamma table ID |
| kGammaTableIDNoMoreTables | 4294967293 | Used to indicate end of list |
| kGammaTableIDSpecific | 0 | Return the info for the given table id |
Constants for GetMultiConnect call
underlying type unsigned int
| kGetConnectionCount | 4294967295 | Used to get the number of possible connections in a "multi-headed" framebuffer environment. |
| kActivateConnection | 0 | Used for activating a connection (csConnectFlags value). |
| kDeactivateConnection | 512 | Used for deactivating a connection (csConnectFlags value.) |
VDCommunicationRec.csBusID values
underlying type unsigned int
VDCommunicationInfoRec.csBusType values
underlying type unsigned int
| kVideoBusTypeInvalid | 0 | |
| kVideoBusTypeI2C | 1 | |
| kVideoBusTypeDisplayPort | 2 | |
VDCommunicationRec.csSendType and VDCommunicationRec.csReplyType values
underlying type unsigned int
| kVideoNoTransactionType | 0 | No transaction |
| kVideoNoTransactionTypeMask | 1 | |
| kVideoSimpleI2CType | 1 | Simple I2C message |
| kVideoSimpleI2CTypeMask | 2 | |
| kVideoDDCciReplyType | 2 | DDC/ci message (with imbedded length) |
| kVideoDDCciReplyTypeMask | 4 | |
| kVideoCombinedI2CType | 3 | Combined format I2C R/~W transaction |
| kVideoCombinedI2CTypeMask | 8 | |
| kVideoDisplayPortNativeType | 4 | DisplayPort Native |
| kVideoDisplayPortNativeTypeMask | 16 | |
VDCommunicationRec.csCommFlags and VDCommunicationInfoRec.csSupportedCommFlags
underlying type unsigned int
| kVideoReplyMicroSecDelayBit | 0 | If bit set, the driver should delay csMinReplyDelay micro seconds between send and receive |
| kVideoReplyMicroSecDelayMask | 1 | |
| kVideoUsageAddrSubAddrBit | 1 | If bit set, the driver understands to use the lower 16 bits of the address field as two 8 bit values (address/subaddress) for the I2C transaction |
| kVideoUsageAddrSubAddrMask | 2 | |
size 40, align 8
| DisplayModeID | csPreviousDisplayModeID | ID of the previous resolution in a chain |
| DisplayModeID | csDisplayModeID | ID of the next resolution |
| UInt32 | csHorizontalPixels | # of pixels in a horizontal line at the max depth |
| UInt32 | csVerticalLines | # of lines in a screen at the max depth |
| Fixed | csRefreshRate | Vertical Refresh Rate in Hz |
| DepthMode | csMaxDepthMode | 0x80-based number representing max bit depth |
| UInt32 | csResolutionFlags | Reserved - flag bits |
| uintptr_t | csReserved | Reserved |
typedef struct VDResolutionInfoRec VDResolutionInfoRec
size 32, align 8
| DisplayModeID | csDisplayModeID | the ID of the resolution we want info on |
| DepthMode | csDepthMode | The bit depth we want the info on (0x80 based) |
| VPBlockPtr | csVPBlockPtr | Pointer to a video parameter block |
| UInt32 | csPageCount | Number of pages supported by the resolution |
| VideoDeviceType | csDeviceType | Device Type: Direct, Fixed or CLUT; |
| UInt32 | csDepthFlags | Flags |
typedef struct VDVideoParametersInfoRec VDVideoParametersInfoRec
typedef struct VDGammaInfoRec VDGammaInfoRec
typedef VDGammaInfoRec * VDGammaInfoPtr
size 24, align 8
| GammaTableID | csPreviousGammaTableID | ID of the previous gamma table |
| GammaTableID | csGammaTableID | ID of the gamma table following csPreviousDisplayModeID |
| UInt32 | csGammaTableSize | Size of the gamma table in bytes |
| char * | csGammaTableName | Gamma table name (c-string) |
typedef struct VDGetGammaListRec VDGetGammaListRec
size 16, align 8
| GammaTableID | csGammaTableID | ID of gamma table to retrieve |
| GammaTbl * | csGammaTablePtr | Location to copy desired gamma to |
typedef struct VDRetrieveGammaRec VDRetrieveGammaRec
size 16, align 8
| void * | csCursorRef | reference to cursor data |
| UInt32 | csReserved1 | reserved for future use |
| UInt32 | csReserved2 | should be ignored |
typedef struct VDSetHardwareCursorRec VDSetHardwareCursorRec
size 20, align 4
| SInt32 | csCursorX | x coordinate |
| SInt32 | csCursorY | y coordinate |
| UInt32 | csCursorVisible | true if cursor is must be visible |
| UInt32 | csReserved1 | reserved for future use |
| UInt32 | csReserved2 | should be ignored |
typedef struct VDDrawHardwareCursorRec VDDrawHardwareCursorRec
size 12, align 4
| UInt32 | csSupportsHardwareCursor | |
| UInt32 | csReserved1 | true if hardware cursor is supported reserved for future use |
| UInt32 | csReserved2 | must be zero |
typedef struct VDSupportsHardwareCursorRec VDSupportsHardwareCursorRec
size 24, align 4
| SInt32 | csCursorX | x coordinate |
| SInt32 | csCursorY | y coordinate |
| UInt32 | csCursorVisible | true if cursor is visible |
| UInt32 | csCursorSet | true if cursor successfully set by last set control call |
| UInt32 | csReserved1 | reserved for future use |
| UInt32 | csReserved2 | must be zero |
typedef struct VDHardwareCursorDrawStateRec VDHardwareCursorDrawStateRec
typedef struct VDConvolutionInfoRec VDConvolutionInfoRec
typedef struct VDPowerStateRec VDPowerStateRec
size 32, align 8
| LogicalAddress | privateParameters | Caller's parameters |
| ByteCount | privateParametersSize | Size of data sent from caller to driver |
| LogicalAddress | privateResults | Caller's return area. Can be nil, or same as privateParameters. |
| ByteCount | privateResultsSize | Size of data driver returns to caller. Can be nil, or same as privateParametersSize. |
typedef struct VDPrivateSelectorDataRec VDPrivateSelectorDataRec
typedef struct VDPrivateSelectorRec VDPrivateSelectorRec
size 144, align 4
| UInt32 | ddcBlockNumber | Input -- DDC EDID (Extended Display Identification Data) number (1-based) |
| ResType | ddcBlockType | Input -- DDC block type (EDID/VDIF) |
| UInt32 | ddcFlags | Input -- DDC Flags |
| UInt32 | ddcReserved | Reserved |
| Byte[128] | ddcBlockData | Output -- DDC EDID/VDIF data (kDDCBlockSize) |
typedef struct VDDDCBlockRec VDDDCBlockRec
underlying type unsigned int
| kSyncInterlaceMask | 128 | timingSyncConfiguration |
| kSyncAnalogCompositeMask | 0 | |
| kSyncAnalogCompositeSerrateMask | 4 | |
| kSyncAnalogCompositeRGBSyncMask | 2 | |
| kSyncAnalogBipolarMask | 8 | |
| kSyncAnalogBipolarSerrateMask | 4 | |
| kSyncAnalogBipolarSRGBSyncMask | 2 | |
| kSyncDigitalCompositeMask | 16 | |
| kSyncDigitalCompositeSerrateMask | 4 | |
| kSyncDigitalCompositeMatchHSyncMask | 4 | |
| kSyncDigitalSeperateMask | 24 | |
| kSyncDigitalVSyncPositiveMask | 4 | |
| kSyncDigitalHSyncPositiveMask | 2 | |
size 240, align 8
| UInt32 | csRangeSize | Init to sizeof(VDDisplayTimingRangeRec) |
| UInt32 | csRangeType | Init to 0 |
| UInt32 | csRangeVersion | Init to 0 |
| UInt32 | csRangeReserved | Init to 0 |
| UInt32 | csRangeBlockIndex | Requested block (first index is 0) |
| UInt32 | csRangeGroup | set to 0 |
| UInt32 | csRangeBlockCount | # blocks |
| UInt32 | csRangeFlags | dependent video |
| UInt64 | csMinPixelClock | Min dot clock in Hz |
| UInt64 | csMaxPixelClock | Max dot clock in Hz |
| UInt32 | csMaxPixelError | Max dot clock error |
| UInt32 | csTimingRangeSyncFlags | |
| UInt32 | csTimingRangeSignalLevels | |
| UInt32 | csTimingRangeSupportedSignalConfigs | |
| UInt32 | csMinFrameRate | Hz |
| UInt32 | csMaxFrameRate | Hz |
| UInt32 | csMinLineRate | Hz |
| UInt32 | csMaxLineRate | Hz |
| UInt32 | csMaxHorizontalTotal | Clocks - Maximum total (active + blanking) |
| UInt32 | csMaxVerticalTotal | Clocks - Maximum total (active + blanking) |
| UInt32 | csMaxTotalReserved1 | Reserved |
| UInt32 | csMaxTotalReserved2 | Reserved |
| UInt8 | csCharSizeHorizontalActive | Character size |
| UInt8 | csCharSizeHorizontalBlanking | Character size |
| UInt8 | csCharSizeHorizontalSyncOffset | Character size |
| UInt8 | csCharSizeHorizontalSyncPulse | Character size |
| UInt8 | csCharSizeVerticalActive | Character size |
| UInt8 | csCharSizeVerticalBlanking | Character size |
| UInt8 | csCharSizeVerticalSyncOffset | Character size |
| UInt8 | csCharSizeVerticalSyncPulse | Character size |
| UInt8 | csCharSizeHorizontalBorderLeft | Character size |
| UInt8 | csCharSizeHorizontalBorderRight | Character size |
| UInt8 | csCharSizeVerticalBorderTop | Character size |
| UInt8 | csCharSizeVerticalBorderBottom | Character size |
| UInt8 | csCharSizeHorizontalTotal | Character size for active + blanking |
| UInt8 | csCharSizeVerticalTotal | Character size for active + blanking |
| UInt16 | csCharSizeReserved1 | Reserved (Init to 0) |
| UInt32 | csMinHorizontalActiveClocks | |
| UInt32 | csMaxHorizontalActiveClocks | |
| UInt32 | csMinHorizontalBlankingClocks | |
| UInt32 | csMaxHorizontalBlankingClocks | |
| UInt32 | csMinHorizontalSyncOffsetClocks | |
| UInt32 | csMaxHorizontalSyncOffsetClocks | |
| UInt32 | csMinHorizontalPulseWidthClocks | |
| UInt32 | csMaxHorizontalPulseWidthClocks | |
| UInt32 | csMinVerticalActiveClocks | |
| UInt32 | csMaxVerticalActiveClocks | |
| UInt32 | csMinVerticalBlankingClocks | |
| UInt32 | csMaxVerticalBlankingClocks | |
| UInt32 | csMinVerticalSyncOffsetClocks | |
| UInt32 | csMaxVerticalSyncOffsetClocks | |
| UInt32 | csMinVerticalPulseWidthClocks | |
| UInt32 | csMaxVerticalPulseWidthClocks | |
| UInt32 | csMinHorizontalBorderLeft | |
| UInt32 | csMaxHorizontalBorderLeft | |
| UInt32 | csMinHorizontalBorderRight | |
| UInt32 | csMaxHorizontalBorderRight | |
| UInt32 | csMinVerticalBorderTop | |
| UInt32 | csMaxVerticalBorderTop | |
| UInt32 | csMinVerticalBorderBottom | |
| UInt32 | csMaxVerticalBorderBottom | |
| UInt32 | csMaxNumLinks | number of links, if zero, assume link 1 |
| UInt32 | csMinLink0PixelClock | min pixel clock for link 0 (kHz) |
| UInt32 | csMaxLink0PixelClock | max pixel clock for link 0 (kHz) |
| UInt32 | csMinLink1PixelClock | min pixel clock for link 1 (kHz) |
| UInt32 | csMaxLink1PixelClock | max pixel clock for link 1 (kHz) |
| UInt32 | csReserved6 | Reserved (Init to 0) |
| UInt32 | csReserved7 | Reserved (Init to 0) |
| UInt32 | csReserved8 | Reserved (Init to 0) |
typedef struct VDDisplayTimingRangeRec VDDisplayTimingRangeRec
underlying type unsigned int
| kDMSModeReady | 0 | csDisplayModeState Display Mode ID is configured and ready |
| kDMSModeNotReady | 1 | Display Mode ID is is being programmed |
| kDMSModeFree | 2 | Display Mode ID is not associated with a timing |
Video driver Errors -10930 to -10959
underlying type int
| kTimingChangeRestrictedErr | -10930 | |
| kVideoI2CReplyPendingErr | -10931 | |
| kVideoI2CTransactionErr | -10932 | |
| kVideoI2CBusyErr | -10933 | |
| kVideoI2CTransactionTypeErr | -10934 | |
| kVideoBufferSizeErr | -10935 | |
| kVideoCannotMirrorErr | -10936 | |
underlying type unsigned int
| kRangeSupportsSignal_0700_0300_Bit | 0 | csTimingRangeSignalLevels |
| kRangeSupportsSignal_0714_0286_Bit | 1 | |
| kRangeSupportsSignal_1000_0400_Bit | 2 | |
| kRangeSupportsSignal_0700_0000_Bit | 3 | |
| kRangeSupportsSignal_0700_0300_Mask | 1 | |
| kRangeSupportsSignal_0714_0286_Mask | 2 | |
| kRangeSupportsSignal_1000_0400_Mask | 4 | |
| kRangeSupportsSignal_0700_0000_Mask | 8 | |
underlying type unsigned int
| kDigitalSignalBit | 0 | csSignalConfig Do not set. Mac OS does not currently support arbitrary digital timings |
| kAnalogSetupExpectedBit | 1 | Analog displays - display expects a blank-to-black setup or pedestal. See VESA signal standards. |
| kInterlacedCEA861SyncModeBit | 2 | |
| kDigitalSignalMask | 1 | |
| kAnalogSetupExpectedMask | 2 | |
| kInterlacedCEA861SyncModeMask | 4 | |
underlying type unsigned int
| kAnalogSignalLevel_0700_0300 | 0 | csSignalLevels for analog |
| kAnalogSignalLevel_0714_0286 | 1 | |
| kAnalogSignalLevel_1000_0400 | 2 | |
| kAnalogSignalLevel_0700_0000 | 3 | |
underlying type unsigned int
| kRangeSupportsSeperateSyncsBit | 0 | csTimingRangeSyncFlags |
| kRangeSupportsSyncOnGreenBit | 1 | |
| kRangeSupportsCompositeSyncBit | 2 | |
| kRangeSupportsVSyncSerrationBit | 3 | |
| kRangeSupportsSeperateSyncsMask | 1 | |
| kRangeSupportsSyncOnGreenMask | 2 | |
| kRangeSupportsCompositeSyncMask | 4 | |
| kRangeSupportsVSyncSerrationMask | 8 | |
underlying type unsigned int
| kSyncPositivePolarityBit | 0 | csHorizontalSyncConfig and csVerticalSyncConfig Digital separate sync polarity for analog interfaces (0 => negative polarity) |
| kSyncPositivePolarityMask | 1 | |
size 160, align 8
| UInt32 | csTimingSize | Init to sizeof(VDDetailedTimingRec) |
| UInt32 | csTimingType | Init to 0 |
| UInt32 | csTimingVersion | Init to 0 |
| UInt32 | csTimingReserved | Init to 0 |
| DisplayModeID | csDisplayModeID | Init to 0 |
| UInt32 | csDisplayModeSeed | |
| UInt32 | csDisplayModeState | Display Mode state |
| UInt32 | csDisplayModeAlias | Mode to use when programmed. |
| UInt32 | csSignalConfig | |
| UInt32 | csSignalLevels | |
| UInt64 | csPixelClock | Hz |
| UInt64 | csMinPixelClock | Hz - With error what is slowest actual clock |
| UInt64 | csMaxPixelClock | Hz - With error what is fasted actual clock |
| UInt32 | csHorizontalActive | Pixels |
| UInt32 | csHorizontalBlanking | Pixels |
| UInt32 | csHorizontalSyncOffset | Pixels |
| UInt32 | csHorizontalSyncPulseWidth | Pixels |
| UInt32 | csVerticalActive | Lines |
| UInt32 | csVerticalBlanking | Lines |
| UInt32 | csVerticalSyncOffset | Lines |
| UInt32 | csVerticalSyncPulseWidth | Lines |
| UInt32 | csHorizontalBorderLeft | Pixels |
| UInt32 | csHorizontalBorderRight | Pixels |
| UInt32 | csVerticalBorderTop | Lines |
| UInt32 | csVerticalBorderBottom | Lines |
| UInt32 | csHorizontalSyncConfig | |
| UInt32 | csHorizontalSyncLevel | Future use (init to 0) |
| UInt32 | csVerticalSyncConfig | |
| UInt32 | csVerticalSyncLevel | Future use (init to 0) |
| UInt32 | csNumLinks | number of links, if 0 = assume link - 0 |
| UInt32 | csReserved2 | Init to 0 |
| UInt32 | csReserved3 | Init to 0 |
| UInt32 | csReserved4 | Init to 0 |
| UInt32 | csReserved5 | Init to 0 |
| UInt32 | csReserved6 | Init to 0 |
| UInt32 | csReserved7 | Init to 0 |
| UInt32 | csReserved8 | Init to 0 |
typedef struct VDDetailedTimingRec VDDetailedTimingRec
csScalerFeatures
underlying type unsigned int
| kScaleStretchOnlyMask | 1 | True means the driver cannot add borders to avoid non-square pixels |
| kScaleCanUpSamplePixelsMask | 2 | True means timings with more active clocks than pixels (ie 640x480 pixels on a 1600x1200 timing) |
| kScaleCanDownSamplePixelsMask | 4 | True means timings with fewer active clocks than pixels (ie 1600x1200 pixels on a 640x480 timing) |
| kScaleCanScaleInterlacedMask | 8 | True means can scale an interlaced timing |
| kScaleCanSupportInsetMask | 16 | True means can scale a timing with insets |
| kScaleCanRotateMask | 32 | True means can rotate image |
| kScaleCanBorderInsetOnlyMask | 64 | True means can scale a timing with insets |
csScalerFlags
underlying type unsigned int
| kScaleStretchToFitMask | 1 | True means the driver should avoid borders and allow non-square pixels |
| kScaleRotateFlagsMask | 240 | |
| kScaleSwapAxesMask | 16 | |
| kScaleInvertXMask | 32 | |
| kScaleInvertYMask | 64 | |
| kScaleRotate0Mask | 0 | |
| kScaleRotate90Mask | 48 | |
| kScaleRotate180Mask | 96 | |
| kScaleRotate270Mask | 80 | |
underlying type unsigned int
| kSetClutAtSetEntries | 0 | SetEntries behavior is to update clut during SetEntries call |
| kSetClutAtVBL | 1 | SetEntries behavior is to upate clut at next vbl |
size 80, align 8
| SInt32 | csBusID | kVideoDefaultBus for single headed cards. |
| UInt32 | csCommFlags | Always zero |
| UInt32 | csMinReplyDelay | Minimum delay between send and reply transactions (units depend on csCommFlags) |
| UInt32 | csReserved2 | Always zero |
| UInt32 | csSendAddress | Usually I2C address (eg 0x6E) |
| UInt32 | csSendType | See kVideoSimpleI2CType etc. |
| LogicalAddress | csSendBuffer | Pointer to the send buffer |
| ByteCount | csSendSize | Number of bytes to send |
| UInt32 | csReplyAddress | Address from which to read (eg 0x6F for kVideoDDCciReplyType I2C address) |
| UInt32 | csReplyType | See kVideoDDCciReplyType etc. |
| LogicalAddress | csReplyBuffer | Pointer to the reply buffer |
| ByteCount | csReplySize | Max bytes to reply (size of csReplyBuffer) |
| UInt32 | csReserved3 | |
| UInt32 | csReserved4 | |
| UInt32 | csReserved5 | Always zero |
| UInt32 | csReserved6 | Always zero |
typedef struct VDCommunicationRec VDCommunicationRec
size 48, align 4
| SInt32 | csBusID | kVideoDefaultBus for single headed cards. |
| UInt32 | csBusType | See kVideoBusI2C etc. |
| SInt32 | csMinBus | Minimum bus (usually kVideoDefaultBus). Used to probe additional busses |
| SInt32 | csMaxBus | Max bus (usually kVideoDefaultBus). Used to probe additional busses |
| UInt32 | csSupportedTypes | Bit field for first 32 supported transaction types. Eg. 0x07 => support for kVideoNoTransactionType, kVideoSimpleI2CType and kVideoDDCciReplyType. |
| UInt32 | csSupportedCommFlags | Return the flags csCommFlags understood by this driver. |
| UInt32 | csReserved2 | Always zero |
| UInt32 | csReserved3 | Always zero |
| UInt32 | csReserved4 | Always zero |
| UInt32 | csReserved5 | Always zero |
| UInt32 | csReserved6 | Always zero |
| UInt32 | csReserved7 | Always zero |
typedef struct VDCommunicationInfoRec VDCommunicationInfoRec
size 64, align 4
| UInt32 | csScalerSize | Init to sizeof(VDScalerRec) |
| UInt32 | csScalerVersion | Init to 0 |
| UInt32 | csReserved1 | Init to 0 |
| UInt32 | csReserved2 | Init to 0 |
| DisplayModeID | csDisplayModeID | Display Mode ID modified by this call. |
| UInt32 | csDisplayModeSeed | |
| UInt32 | csDisplayModeState | Display Mode state |
| UInt32 | csReserved3 | Init to 0 |
| UInt32 | csScalerFlags | Init to 0 |
| UInt32 | csHorizontalPixels | Graphics system addressable pixels |
| UInt32 | csVerticalPixels | Graphics system addressable lines |
| UInt32 | csHorizontalInset | Border pixels for underscan |
| UInt32 | csVerticalInset | Border lines for underscan |
| UInt32 | csReserved6 | Init to 0 |
| UInt32 | csReserved7 | Init to 0 |
| UInt32 | csReserved8 | Init to 0 |
typedef struct VDScalerRec VDScalerRec
size 48, align 4
| UInt32 | csScalerInfoSize | Init to sizeof(VDScalerInfoRec) |
| UInt32 | csScalerInfoVersion | Init to 0 |
| UInt32 | csReserved1 | Init to 0 |
| UInt32 | csReserved2 | Init to 0 |
| UInt32 | csScalerFeatures | Feature flags |
| UInt32 | csMaxHorizontalPixels | limit to horizontal scaled pixels |
| UInt32 | csMaxVerticalPixels | limit to vertical scaled pixels |
| UInt32 | csReserved3 | Init to 0 |
| UInt32 | csReserved4 | Init to 0 |
| UInt32 | csReserved5 | Init to 0 |
| UInt32 | csReserved6 | Init to 0 |
| UInt32 | csReserved7 | Init to 0 |
typedef struct VDScalerInfoRec VDScalerInfoRec
underlying type unsigned int
| kMirrorSameDepthOnlyMirrorMask | 1 | csMirrorFeatures Commonly true - Mirroring can only be done if the displays are the same bitdepth |
| kMirrorSameSizeOnlyMirrorMask | 2 | Commonly false - Mirroring can only be done if the displays are the same size |
| kMirrorSameTimingOnlyMirrorMask | 4 | Sometimes true - Mirroring can only be done if the displays are the same timing |
| kMirrorCommonGammaMask | 8 | Sometimes true - Only one gamma correction LUT. |
underlying type unsigned int
| kMirrorCanMirrorMask | 1 | csMirrorSupportedFlags and csMirrorFlags Set means we can HW mirrored right now (uses csMirrorEntryID) |
| kMirrorAreMirroredMask | 2 | Set means we are HW mirrored right now (uses csMirrorEntryID) |
| kMirrorUnclippedMirrorMask | 4 | Set means mirrored displays are not clipped to their intersection |
| kMirrorHAlignCenterMirrorMask | 8 | Set means mirrored displays can/should be centered horizontally |
| kMirrorVAlignCenterMirrorMask | 16 | Set means mirrored displays can/should be centered vertically |
| kMirrorCanChangePixelFormatMask | 32 | Set means mirrored the device should change the pixel format of mirrored displays to allow mirroring. |
| kMirrorCanChangeTimingMask | 64 | Set means mirrored the device should change the timing of mirrored displays to allow mirroring. |
| kMirrorClippedMirrorMask | 128 | Set means mirrored displays are clipped to their intersection (driver handles blacking and base address adjustment) |
size 104, align 8
| UInt32 | csMirrorSize | Init to sizeof(VDMirrorRec) |
| UInt32 | csMirrorVersion | Init to 0 |
| RegEntryID | csMirrorRequestID | Input RegEntryID to check for mirroring support and state |
| RegEntryID | csMirrorResultID | Output RegEntryID of the next mirrored device |
| UInt32 | csMirrorFeatures | Output summary features of the driver |
| UInt32 | csMirrorSupportedFlags | Output configuration options supported by the driver |
| UInt32 | csMirrorFlags | Output configuration options active now |
| UInt32 | csReserved1 | Init to 0 |
| UInt32 | csReserved2 | Init to 0 |
| UInt32 | csReserved3 | Init to 0 |
| UInt32 | csReserved4 | Init to 0 |
| UInt32 | csReserved5 | Init to 0 |
typedef struct VDMirrorRec VDMirrorRec
size 32, align 8
| UInt32 | csConfigFeature | input what feature to config - always input |
| UInt32 | csConfigSupport | output support value - always output |
| uintptr_t | csConfigValue | input/output feature value - input on Control(), output on Status() |
| uintptr_t | csReserved1 | |
| uintptr_t | csReserved2 | |
typedef struct VDConfigurationRec VDConfigurationRec
underlying type unsigned int
| kDVIPowerSwitchFeature | 1 | Used for csConfigFeature |
| kDVIPowerSwitchSupportMask | 1 | Read-only |
| kDVIPowerSwitchActiveMask | 1 | Read/write for csConfigValue |
typedef struct VDConfigurationFeatureListRec VDConfigurationFeatureListRec