ADC Home > Reference Library > Reference > Hardware & Drivers > I/O Kit Framework Reference
|
IOGraphicsTypes.h |
Includes: |
<IOKit/IOTypes.h> <IOKit/IOKitKeys.h> |
Use the links in the table of contents to the left to access the documentation.
IOColorEntry |
A structure defining one entry of a color lookup table.
struct IOColorEntry { UInt16 index; IOColorComponent red; IOColorComponent green; IOColorComponent blue; };
index
Number of pixels visible per row.
red
Value of red component 0-65535.
green
Value of green component 0-65535.
blue
Value 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 };
__reservedA
Set to zero.
horizontalScaledInset
If the mode is scaled, sets the number of active pixels to remove the left and right edges in order to display an underscanned image.
verticalScaledInset
If the mode is scaled, sets the number of active lines to remove the top and bottom edges in order to display an underscanned image.
scalerFlags
If 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.
horizontalScaled
If the mode is scaled, sets the size of the image before scaling or rotation.
verticalScaled
If the mode is scaled, sets the size of the image before scaling or rotation.
signalConfig
kIOAnalogSetupExpected 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.
signalLevels
One 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.
pixelClock
Pixel clock frequency in Hz.
minPixelClock
Minimum pixel clock frequency in Hz, with error.
maxPixelClock
Maximum pixel clock frequency in Hz, with error.
horizontalActive
Pixel clocks per line.
horizontalBlanking
Blanking clocks per line.
horizontalSyncOffset
First clock of horizontal sync.
horizontalSyncPulseWidth
Width of horizontal sync.
verticalActive
Number of lines per frame.
verticalBlanking
Blanking lines per frame.
verticalSyncOffset
First line of vertical sync.
verticalSyncPulseWidth
Height of vertical sync.
horizontalBorderLeft
Number of pixels in left horizontal border.
horizontalBorderRight
Number of pixels in right horizontal border.
verticalBorderTop
Number of lines in top vertical border.
verticalBorderBottom
Number of lines in bottom vertical border.
horizontalSyncConfig
kIOSyncPositivePolarity for positive polarity horizontal sync (0 for negative).
horizontalSyncLevel
Zero.
verticalSyncConfig
kIOSyncPositivePolarity for positive polarity vertical sync (0 for negative).
verticalSyncLevel
Zero.
numLinks
number of links to be used by a dual link timing, if zero, assume one link.
__reservedB
Reserved 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 ]; };
nominalWidth
Number of pixels visible per row.
nominalHeight
Number of visible pixel rows.
refreshRate
Refresh rate in fixed point 16.16.
maxDepthIndex
Highest depth index available in this display mode.
flags
Flags 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.
reserved
Set 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 };
__reservedA
Set to zero.
version
Set to zero.
__reservedB
Set to zero.
scalerFeatures
Mask 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.
maxHorizontalPixels
Maximum number of horizontal source pixels (horizontalScaled).
maxVerticalPixels
Maximum number of vertical source pixels (verticalScaled).
__reservedC
Set 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 };
__reservedA
Set to zero.
version
Set to zero.
__reservedB
Set to zero.
minPixelClock
minimum pixel clock frequency in range, in Hz.
minPixelClock
maximum pixel clock frequency in range, in Hz.
maxPixelError
largest variation between specified and actual pixel clock frequency, in Hz.
supportedSyncFlags
mask 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.
supportedSignalLevels
mask 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.
supportedSignalConfigs
mask 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.
minFrameRate
minimum frame rate (vertical refresh frequency) in range, in Hz.
maxFrameRate
maximum frame rate (vertical refresh frequency) in range, in Hz.
minLineRate
minimum line rate (horizontal refresh frequency) in range, in Hz.
maxLineRate
maximum line rate (horizontal refresh frequency) in range, in Hz.
maxHorizontalTotal
maximum clocks in horizontal line (active + blanking).
maxVerticalTotal
maximum lines in vertical frame (active + blanking).
__reservedD
Set to zero.
charSizeHorizontalActive
horizontalActive must be a multiple of charSizeHorizontalActive.
charSizeHorizontalBlanking
horizontalBlanking must be a multiple of charSizeHorizontalBlanking.
charSizeHorizontalSyncOffset
horizontalSyncOffset must be a multiple of charSizeHorizontalSyncOffset.
charSizeHorizontalSyncPulse
horizontalSyncPulse must be a multiple of charSizeHorizontalSyncPulse.
charSizeVerticalActive
verticalActive must be a multiple of charSizeVerticalActive.
charSizeVerticalBlanking
verticalBlanking must be a multiple of charSizeVerticalBlanking.
charSizeVerticalSyncOffset
verticalSyncOffset must be a multiple of charSizeVerticalSyncOffset.
charSizeVerticalSyncPulse
verticalSyncPulse must be a multiple of charSizeVerticalSyncPulse.
charSizeHorizontalBorderLeft
horizontalBorderLeft must be a multiple of charSizeHorizontalBorderLeft.
charSizeHorizontalBorderRight
horizontalBorderRight must be a multiple of charSizeHorizontalBorderRight.
charSizeVerticalBorderTop
verticalBorderTop must be a multiple of charSizeVerticalBorderTop.
charSizeVerticalBorderBottom
verticalBorderBottom must be a multiple of charSizeVerticalBorderBottom.
charSizeHorizontalTotal
(horizontalActive + horizontalBlanking) must be a multiple of charSizeHorizontalTotal.
charSizeVerticalTotal
(verticalActive + verticalBlanking) must be a multiple of charSizeVerticalTotal.
__reservedE
Set to zero.
minHorizontalActiveClocks
minimum value of horizontalActive.
maxHorizontalActiveClocks
maximum value of horizontalActive.
minHorizontalBlankingClocks
minimum value of horizontalBlanking.
maxHorizontalBlankingClocks
maximum value of horizontalBlanking.
minHorizontalSyncOffsetClocks
minimum value of horizontalSyncOffset.
maxHorizontalSyncOffsetClocks
maximum value of horizontalSyncOffset.
minHorizontalPulseWidthClocks
minimum value of horizontalPulseWidth.
maxHorizontalPulseWidthClocks
maximum value of horizontalPulseWidth.
minVerticalActiveClocks
minimum value of verticalActive.
maxVerticalActiveClocks
maximum value of verticalActive.
minVerticalBlankingClocks
minimum value of verticalBlanking.
maxVerticalBlankingClocks
maximum value of verticalBlanking.
minVerticalSyncOffsetClocks
minimum value of verticalSyncOffset.
maxVerticalSyncOffsetClocks
maximum value of verticalSyncOffset.
minVerticalPulseWidthClocks
minimum value of verticalPulseWidth.
maxVerticalPulseWidthClocks
maximum value of verticalPulseWidth.
minHorizontalBorderLeft
minimum value of horizontalBorderLeft.
maxHorizontalBorderLeft
maximum value of horizontalBorderLeft.
minHorizontalBorderRight
minimum value of horizontalBorderRight.
maxHorizontalBorderRight
maximum value of horizontalBorderRight.
minVerticalBorderTop
minimum value of verticalBorderTop.
maxVerticalBorderTop
maximum value of verticalBorderTop.
minVerticalBorderBottom
minimum value of verticalBorderBottom.
maxVerticalBorderBottom
maximum value of verticalBorderBottom.
maxNumLinks
number of links supported, if zero, 1 link is assumed.
minLink0PixelClock
minimum pixel clock for link 0 (kHz).
maxLink0PixelClock
maximum pixel clock for link 0 (kHz).
minLink1PixelClock
minimum pixel clock for link 1 (kHz).
maxLink1PixelClock
maximum pixel clock for link 1 (kHz).
__reservedF
Set 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]; };
majorVersion
Set to kHardwareCursorDescriptorMajorVersion.
minorVersion
Set to kHardwareCursorDescriptorMinorVersion.
height
Maximum size of the cursor.
width
Maximum size of the cursor.
bitDepth
Number bits per pixel, or a QD/QT pixel type, for example kIO8IndexedPixelFormat, kIO32ARGBPixelFormat.
maskBitDepth
Unused.
numColors
Number of colors for indexed pixel types.
colorEncodings
An array pointer specifying the pixel values corresponding to the indices into the color table, for indexed pixel types.
flags
None defined, set to zero.
supportedSpecialEncodings
Mask of supported special pixel values, eg. kTransparentEncodedPixel, kInvertingEncodedPixel.
specialEncodings
Array 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 ]; };
bytesPerRow
The number of bytes per row.
bytesPerPlane
Not used.
bitsPerPixel
The number of bits per pixel, including unused bits and alpha.
pixelType
One of kIOCLUTPixels (indexed pixels with changeable CLUT), kIORGBDirectPixels (direct pixels).
componentCount
One for indexed pixels, three for direct pixel formats.
bitsPerComponent
Number of bits per component in each pixel.
componentMasks
Mask of the bits valid for each component of the pixel - in R, G, B order for direct pixels.
pixelFormat
String description of the pixel format - IO32BitDirectPixels, IO16BitDirectPixels etc.
flags
None defined - set to zero.
activeWidth
Number of pixels visible per row.
activeHeight
Number of visible pixel rows.
reserved
Set to zero.
This structure is used by IOFramebuffer to define the format of the pixels.
|
Last Updated: 2009-02-23