| 
 ADC Home > Reference Library > Reference > Darwin > Kernel Framework Reference
 
  | 
IOGraphicsTypes.h | 
| Includes: | 
<IOKit/IOTypes.h> <IOKit/IOKitKeys.h>  | 
IOColorEntry | 
A structure defining one entry of a color lookup table.
struct IOColorEntry { UInt16 index; IOColorComponent red; IOColorComponent green; IOColorComponent blue; };
indexNumber of pixels visible per row.
redValue of red component 0-65535.
greenValue of green component 0-65535.
blueValue of blue component 0-65535.
This structure is used by IOFramebuffer to define an entry of a color lookup table.
IODetailedTimingInformationV2 | 
A structure defining the detailed timing information of a display mode.
struct IODetailedTimingInformationV2 { UInt32 __reservedA[3]; // Init to 0 UInt32 horizontalScaledInset; // pixels UInt32 verticalScaledInset; // lines UInt32 scalerFlags; UInt32 horizontalScaled; UInt32 verticalScaled; UInt32 signalConfig; UInt32 signalLevels; UInt64 pixelClock; // Hz UInt64 minPixelClock; // Hz - With error what is slowest actual clock UInt64 maxPixelClock; // Hz - With error what is fasted actual clock UInt32 horizontalActive; // pixels UInt32 horizontalBlanking; // pixels UInt32 horizontalSyncOffset; // pixels UInt32 horizontalSyncPulseWidth; // pixels UInt32 verticalActive; // lines UInt32 verticalBlanking; // lines UInt32 verticalSyncOffset; // lines UInt32 verticalSyncPulseWidth; // lines UInt32 horizontalBorderLeft; // pixels UInt32 horizontalBorderRight; // pixels UInt32 verticalBorderTop; // lines UInt32 verticalBorderBottom; // lines UInt32 horizontalSyncConfig; UInt32 horizontalSyncLevel; // Future use (init to 0) UInt32 verticalSyncConfig; UInt32 verticalSyncLevel; // Future use (init to 0) UInt32 numLinks; UInt32 __reservedB[7]; // Init to 0 };
__reservedASet to zero.
horizontalScaledInsetIf the mode is scaled, sets the number of active pixels to remove the left and right edges in order to display an underscanned image.
verticalScaledInsetIf the mode is scaled, sets the number of active lines to remove the top and bottom edges in order to display an underscanned image.
scalerFlagsIf the mode is scaled, kIOScaleStretchToFit may be set to allow stretching. kIOScaleRotateFlags is mask which may have the value given by kIOScaleRotate90, kIOScaleRotate180, kIOScaleRotate270 to display a rotated framebuffer.
horizontalScaledIf the mode is scaled, sets the size of the image before scaling or rotation.
verticalScaledIf the mode is scaled, sets the size of the image before scaling or rotation.
signalConfigkIOAnalogSetupExpected set if display expects a blank-to-black setup or pedestal.  See VESA signal standards. 
kIOInterlacedCEATiming set for a CEA style interlaced timing:
Field 1 vertical blanking = half specified vertical blanking lines. 
Field 2 vertical blanking = (half vertical blanking lines) + 1 line. 
Field 1 vertical offset = half specified vertical sync offset. 
Field 2 vertical offset = (half specified vertical sync offset) + 0.5 lines. 
signalLevelsOne of:
kIOAnalogSignalLevel_0700_0300 0.700 - 0.300 V p-p.
kIOAnalogSignalLevel_0714_0286 0.714 - 0.286 V p-p.
kIOAnalogSignalLevel_1000_0400 1.000 - 0.400 V p-p.
kIOAnalogSignalLevel_0700_0000 0.700 - 0.000 V p-p.
pixelClockPixel clock frequency in Hz.
minPixelClockMinimum pixel clock frequency in Hz, with error.
maxPixelClockMaximum pixel clock frequency in Hz, with error.
horizontalActivePixel clocks per line.
horizontalBlankingBlanking clocks per line.
horizontalSyncOffsetFirst clock of horizontal sync.
horizontalSyncPulseWidthWidth of horizontal sync.
verticalActiveNumber of lines per frame.
verticalBlankingBlanking lines per frame.
verticalSyncOffsetFirst line of vertical sync.
verticalSyncPulseWidthHeight of vertical sync.
horizontalBorderLeftNumber of pixels in left horizontal border.
horizontalBorderRightNumber of pixels in right horizontal border.
verticalBorderTopNumber of lines in top vertical border.
verticalBorderBottomNumber of lines in bottom vertical border.
horizontalSyncConfigkIOSyncPositivePolarity for positive polarity horizontal sync (0 for negative).
horizontalSyncLevelZero.
verticalSyncConfigkIOSyncPositivePolarity for positive polarity vertical sync (0 for negative).
verticalSyncLevelZero.
numLinksnumber of links to be used by a dual link timing, if zero, assume one link.
__reservedBReserved set to zero.
This structure is used by IOFramebuffer to define detailed timing information for a display mode. The VESA EDID document has more information.
IODisplayModeInformation | 
A structure defining the format of a framebuffer.
struct IODisplayModeInformation { UInt32 nominalWidth; UInt32 nominalHeight; IOFixed1616 refreshRate; IOIndex maxDepthIndex; UInt32 flags; UInt32 reserved[ 4 ]; };
nominalWidthNumber of pixels visible per row.
nominalHeightNumber of visible pixel rows.
refreshRateRefresh rate in fixed point 16.16.
maxDepthIndexHighest depth index available in this display mode.
flagsFlags for the mode, including: 
kDisplayModeInterlacedFlag mode is interlaced. 
kDisplayModeSimulscanFlag mode is available on multiple display connections. 
kDisplayModeNotPresetFlag mode is not a factory preset for the display (geometry may need correction). 
kDisplayModeStretchedFlag mode is stretched/distorted to match the display aspect ratio. 
reservedSet to zero.
This structure is used by IOFramebuffer to define the format of the pixels.
IODisplayScalerInformation | 
A structure defining the scaling capabilities of a framebuffer.
struct IODisplayScalerInformation { UInt32 __reservedA[1]; // Init to 0 UInt32 version; // Init to 0 UInt32 __reservedB[2]; // Init to 0 IOOptionBits scalerFeatures; UInt32 maxHorizontalPixels; UInt32 maxVerticalPixels; UInt32 __reservedC[5]; // Init to 0 };
__reservedASet to zero.
versionSet to zero.
__reservedBSet to zero.
scalerFeaturesMask of scaling features. The following are defined:
kIOScaleStretchOnly If set the framebuffer can only provide stretched scaling with non-square pixels, without borders.
kIOScaleCanUpSamplePixels If set framebuffer can scale up from a smaller number of source pixels to a larger native timing (eg. 640x480 pixels on a 1600x1200 timing).
kIOScaleCanDownSamplePixels If set framebuffer can scale down from a larger number of source pixels to a smaller native timing (eg. 1600x1200 pixels on a 640x480 timing).
kIOScaleCanScaleInterlaced If set framebuffer can scale an interlaced detailed timing.
kIOScaleCanSupportInset If set framebuffer can support scaled modes with non-zero horizontalScaledInset, verticalScaledInset fields.
kIOScaleCanRotate If set framebuffer can support some of the flags in the kIOScaleRotateFlags mask.
maxHorizontalPixelsMaximum number of horizontal source pixels (horizontalScaled).
maxVerticalPixelsMaximum number of vertical source pixels (verticalScaled).
__reservedCSet to zero.
This structure is used to define the limits for modes programmed as detailed timings by the OS. A data property with this structure under the key kIOFBScalerInfoKey in a framebuffer will allow the OS to program detailed timings that are scaled to a displays native resolution.
IODisplayTimingRange | 
A structure defining the limits and attributes of a display or framebuffer.
struct IODisplayTimingRange { UInt32 __reservedA[2]; // Init to 0 UInt32 version; // Init to 0 UInt32 __reservedB[5]; // Init to 0 UInt64 minPixelClock; // Min dot clock in Hz UInt64 maxPixelClock; // Max dot clock in Hz UInt32 maxPixelError; // Max dot clock error UInt32 supportedSyncFlags; UInt32 supportedSignalLevels; UInt32 supportedSignalConfigs; UInt32 minFrameRate; // Hz UInt32 maxFrameRate; // Hz UInt32 minLineRate; // Hz UInt32 maxLineRate; // Hz UInt32 maxHorizontalTotal; // Clocks - Maximum total (active + blanking) UInt32 maxVerticalTotal; // Clocks - Maximum total (active + blanking) UInt32 __reservedD[2]; // Init to 0 UInt8 charSizeHorizontalActive; UInt8 charSizeHorizontalBlanking; UInt8 charSizeHorizontalSyncOffset; UInt8 charSizeHorizontalSyncPulse; UInt8 charSizeVerticalActive; UInt8 charSizeVerticalBlanking; UInt8 charSizeVerticalSyncOffset; UInt8 charSizeVerticalSyncPulse; UInt8 charSizeHorizontalBorderLeft; UInt8 charSizeHorizontalBorderRight; UInt8 charSizeVerticalBorderTop; UInt8 charSizeVerticalBorderBottom; UInt8 charSizeHorizontalTotal; // Character size for active + blanking UInt8 charSizeVerticalTotal; // Character size for active + blanking UInt16 __reservedE; // Reserved (Init to 0) UInt32 minHorizontalActiveClocks; UInt32 maxHorizontalActiveClocks; UInt32 minHorizontalBlankingClocks; UInt32 maxHorizontalBlankingClocks; UInt32 minHorizontalSyncOffsetClocks; UInt32 maxHorizontalSyncOffsetClocks; UInt32 minHorizontalPulseWidthClocks; UInt32 maxHorizontalPulseWidthClocks; UInt32 minVerticalActiveClocks; UInt32 maxVerticalActiveClocks; UInt32 minVerticalBlankingClocks; UInt32 maxVerticalBlankingClocks; UInt32 minVerticalSyncOffsetClocks; UInt32 maxVerticalSyncOffsetClocks; UInt32 minVerticalPulseWidthClocks; UInt32 maxVerticalPulseWidthClocks; UInt32 minHorizontalBorderLeft; UInt32 maxHorizontalBorderLeft; UInt32 minHorizontalBorderRight; UInt32 maxHorizontalBorderRight; UInt32 minVerticalBorderTop; UInt32 maxVerticalBorderTop; UInt32 minVerticalBorderBottom; UInt32 maxVerticalBorderBottom; UInt32 maxNumLinks; // number of links, if zero, assume link 1 UInt32 minLink0PixelClock; // min pixel clock for link 0 (kHz) UInt32 maxLink0PixelClock; // max pixel clock for link 0 (kHz) UInt32 minLink1PixelClock; // min pixel clock for link 1 (kHz) UInt32 maxLink1PixelClock; // max pixel clock for link 1 (kHz) UInt32 __reservedF[3]; // Init to 0 };
__reservedASet to zero.
versionSet to zero.
__reservedBSet to zero.
minPixelClockminimum pixel clock frequency in range, in Hz.
minPixelClockmaximum pixel clock frequency in range, in Hz.
maxPixelErrorlargest variation between specified and actual pixel clock frequency, in Hz.
supportedSyncFlagsmask of supported sync attributes. The following are defined:
kIORangeSupportsSeparateSyncs - digital separate syncs.
kIORangeSupportsSyncOnGreen - sync on green.
kIORangeSupportsCompositeSync - composite sync.
kIORangeSupportsVSyncSerration - vertical sync has serration and equalization pulses.
supportedSignalLevelsmask of possible signal levels. The following are defined:
kIORangeSupportsSignal_0700_0300 0.700 - 0.300 V p-p.
kIORangeSupportsSignal_0714_0286 0.714 - 0.286 V p-p.
kIORangeSupportsSignal_1000_0400 1.000 - 0.400 V p-p.
kIORangeSupportsSignal_0700_0000 0.700 - 0.000 V p-p.
supportedSignalConfigsmask of possible signal configurations. The following are defined:
kIORangeSupportsInterlacedCEATiming Supports CEA style interlaced timing:
Field 1 vertical blanking = specified vertical blanking lines. 
Field 2 vertical blanking = vertical blanking lines + 1 line. 
Field 1 vertical offset = specified vertical sync offset. 
Field 2 vertical offset = specified vertical sync offset + 0.5 lines. 
minFrameRateminimum frame rate (vertical refresh frequency) in range, in Hz.
maxFrameRatemaximum frame rate (vertical refresh frequency) in range, in Hz.
minLineRateminimum line rate (horizontal refresh frequency) in range, in Hz.
maxLineRatemaximum line rate (horizontal refresh frequency) in range, in Hz.
maxHorizontalTotalmaximum clocks in horizontal line (active + blanking).
maxVerticalTotalmaximum lines in vertical frame (active + blanking).
__reservedDSet to zero.
charSizeHorizontalActivehorizontalActive must be a multiple of charSizeHorizontalActive.
charSizeHorizontalBlankinghorizontalBlanking must be a multiple of charSizeHorizontalBlanking.
charSizeHorizontalSyncOffsethorizontalSyncOffset must be a multiple of charSizeHorizontalSyncOffset.
charSizeHorizontalSyncPulsehorizontalSyncPulse must be a multiple of charSizeHorizontalSyncPulse.
charSizeVerticalActiveverticalActive must be a multiple of charSizeVerticalActive.
charSizeVerticalBlankingverticalBlanking must be a multiple of charSizeVerticalBlanking.
charSizeVerticalSyncOffsetverticalSyncOffset must be a multiple of charSizeVerticalSyncOffset.
charSizeVerticalSyncPulseverticalSyncPulse must be a multiple of charSizeVerticalSyncPulse.
charSizeHorizontalBorderLefthorizontalBorderLeft must be a multiple of charSizeHorizontalBorderLeft.
charSizeHorizontalBorderRighthorizontalBorderRight must be a multiple of charSizeHorizontalBorderRight.
charSizeVerticalBorderTopverticalBorderTop must be a multiple of charSizeVerticalBorderTop.
charSizeVerticalBorderBottomverticalBorderBottom must be a multiple of charSizeVerticalBorderBottom.
charSizeHorizontalTotal(horizontalActive + horizontalBlanking) must be a multiple of charSizeHorizontalTotal.
charSizeVerticalTotal(verticalActive + verticalBlanking) must be a multiple of charSizeVerticalTotal.
__reservedESet to zero.
minHorizontalActiveClocksminimum value of horizontalActive.
maxHorizontalActiveClocksmaximum value of horizontalActive.
minHorizontalBlankingClocksminimum value of horizontalBlanking.
maxHorizontalBlankingClocksmaximum value of horizontalBlanking.
minHorizontalSyncOffsetClocksminimum value of horizontalSyncOffset.
maxHorizontalSyncOffsetClocksmaximum value of horizontalSyncOffset.
minHorizontalPulseWidthClocksminimum value of horizontalPulseWidth.
maxHorizontalPulseWidthClocksmaximum value of horizontalPulseWidth.
minVerticalActiveClocksminimum value of verticalActive.
maxVerticalActiveClocksmaximum value of verticalActive.
minVerticalBlankingClocksminimum value of verticalBlanking.
maxVerticalBlankingClocksmaximum value of verticalBlanking.
minVerticalSyncOffsetClocksminimum value of verticalSyncOffset.
maxVerticalSyncOffsetClocksmaximum value of verticalSyncOffset.
minVerticalPulseWidthClocksminimum value of verticalPulseWidth.
maxVerticalPulseWidthClocksmaximum value of verticalPulseWidth.
minHorizontalBorderLeftminimum value of horizontalBorderLeft.
maxHorizontalBorderLeftmaximum value of horizontalBorderLeft.
minHorizontalBorderRightminimum value of horizontalBorderRight.
maxHorizontalBorderRightmaximum value of horizontalBorderRight.
minVerticalBorderTopminimum value of verticalBorderTop.
maxVerticalBorderTopmaximum value of verticalBorderTop.
minVerticalBorderBottomminimum value of verticalBorderBottom.
maxVerticalBorderBottommaximum value of verticalBorderBottom.
maxNumLinksnumber of links supported, if zero, 1 link is assumed.
minLink0PixelClockminimum pixel clock for link 0 (kHz).
maxLink0PixelClockmaximum pixel clock for link 0 (kHz).
minLink1PixelClockminimum pixel clock for link 1 (kHz).
maxLink1PixelClockmaximum pixel clock for link 1 (kHz).
__reservedFSet to zero.
This structure is used to define the limits for modes programmed as detailed timings by the OS. The VESA EDID is useful background information for many of these fields. A data property with this structure under the key kIOFBTimingRangeKey in a framebuffer will allow the OS to program detailed timings that fall within its range.
IOHardwareCursorDescriptor | 
A structure defining the format of a hardware cursor.
struct IOHardwareCursorDescriptor { UInt16 majorVersion; UInt16 minorVersion; UInt32 height; UInt32 width; UInt32 bitDepth; // bits per pixel, or a QD/QT pixel type UInt32 maskBitDepth; // unused UInt32 numColors; // number of colors in the colorMap. ie. UInt32 *colorEncodings; UInt32 flags; UInt32 supportedSpecialEncodings; UInt32 specialEncodings[16]; };
majorVersionSet to kHardwareCursorDescriptorMajorVersion.
minorVersionSet to kHardwareCursorDescriptorMinorVersion.
heightMaximum size of the cursor.
widthMaximum size of the cursor.
bitDepthNumber bits per pixel, or a QD/QT pixel type, for example kIO8IndexedPixelFormat, kIO32ARGBPixelFormat.
maskBitDepthUnused.
numColorsNumber of colors for indexed pixel types.
colorEncodingsAn array pointer specifying the pixel values corresponding to the indices into the color table, for indexed pixel types.
flagsNone defined, set to zero.
supportedSpecialEncodingsMask of supported special pixel values, eg. kTransparentEncodedPixel, kInvertingEncodedPixel.
specialEncodingsArray of pixel values for each supported special encoding.
This structure is used by IOFramebuffer to define the format of a hardware cursor.
IOPixelInformation | 
A structure defining the format of a framebuffer.
struct IOPixelInformation { IOByteCount bytesPerRow; IOByteCount bytesPerPlane; UInt32 bitsPerPixel; UInt32 pixelType; UInt32 componentCount; UInt32 bitsPerComponent; UInt32 componentMasks[ 8 * 2 ]; IOPixelEncoding pixelFormat; UInt32 flags; UInt32 activeWidth; UInt32 activeHeight; UInt32 reserved[ 2 ]; };
bytesPerRowThe number of bytes per row.
bytesPerPlaneNot used.
bitsPerPixelThe number of bits per pixel, including unused bits and alpha.
pixelTypeOne of kIOCLUTPixels (indexed pixels with changeable CLUT), kIORGBDirectPixels (direct pixels).
componentCountOne for indexed pixels, three for direct pixel formats.
bitsPerComponentNumber of bits per component in each pixel.
componentMasksMask of the bits valid for each component of the pixel - in R, G, B order for direct pixels.
pixelFormatString description of the pixel format - IO32BitDirectPixels, IO16BitDirectPixels etc.
flagsNone defined - set to zero.
activeWidthNumber of pixels visible per row.
activeHeightNumber of visible pixel rows.
reservedSet to zero.
This structure is used by IOFramebuffer to define the format of the pixels.
  | 
		
Last Updated: 2008-12-19