Ссылка пространства пользователя IOGraphicsTypes.h
Включенные заголовки
<IOKit/IOTypes.h>
<IOKit/IOKitKeys.h>
См. Обзор для документации уровня заголовка.
-
Структура, определяющая одну запись таблицы цветов.
Объявление
Objective C
struct IOColorEntry { UInt16 index; IOColorComponent red; IOColorComponent green; IOColorComponent blue; };
Поля
index
Число пикселей, видимых на строку.
red
Значение красных 0-65535 компонента.
green
Значение зеленых 0-65535 компонента.
blue
Значение синих 0-65535 компонента.
Обсуждение
Эта структура используется IOFramebuffer для определения записи таблицы цветов.
-
Структура, определяющая подробную информацию синхронизации режима отображения.
Объявление
Objective C
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
Обнулить.
horizontalScaledInset
Если режим масштабируется, определяет номер активных пикселей для удаления левых и правых краев для отображения изображения underscanned.
verticalScaledInset
Если режим масштабируется, определяет номер активных строк для удаления верхних и нижних краев для отображения изображения underscanned.
scalerFlags
Если режим масштабируется, kIOScaleStretchToFit может быть установлен позволить простираться. kIOScaleRotateFlags является маской, которой мог дать значение kIOScaleRotate90, kIOScaleRotate180, kIOScaleRotate270 для отображения повернутого кадрового буфера.
horizontalScaled
Если режим масштабируется, устанавливает размер изображения прежде, чем масштабироваться или вращение.
verticalScaled
Если режим масштабируется, устанавливает размер изображения прежде, чем масштабироваться или вращение.
signalConfig
набор kIOAnalogSetupExpected, если дисплей ожидает установку пробела-к-черному или опору. См. стандарты сигнала VESA.
набор kIOInterlacedCEATiming для стиля CEA чередовал синхронизацию:
Поле 1 вертикальное очищение = половина указанных вертикальных строк очищения.
Поле 2 вертикальное очищение = (половина вертикальных строк очищения) + 1 строка.
Поле 1 вертикальное смещение = половина указанного вертикального синхронизирующего смещения.
Поле 2 вертикальное смещение = (половина указанного вертикального синхронизирующего смещения) + 0,5 строки.
signalLevels
Один из:
kIOAnalogSignalLevel_0700_0300 0.700 - 0.300 В p-p.
kIOAnalogSignalLevel_0714_0286 0.714 - 0,286 В p-p.
kIOAnalogSignalLevel_1000_0400 1.000 - 0.400 В p-p.
kIOAnalogSignalLevel_0700_0000 0.700 - 0.000 В p-p.
pixelClock
Пиксельная тактовая частота в Гц.
minPixelClock
Минимальная пиксельная тактовая частота в Гц, с ошибкой.
maxPixelClock
Максимальная пиксельная тактовая частота в Гц, с ошибкой.
horizontalActive
Пиксель синхронизирует на строку.
horizontalBlanking
Очищение часов на строку.
horizontalSyncOffset
Первые часы горизонтальной синхронизации.
horizontalSyncPulseWidth
Ширина горизонтальной синхронизации.
verticalActive
Число строк на кадр.
verticalBlanking
Очищение строк на кадр.
verticalSyncOffset
Первая строка вертикальной синхронизации.
verticalSyncPulseWidth
Высота вертикальной синхронизации.
horizontalBorderLeft
Число пикселей в левой горизонтальной границе.
horizontalBorderRight
Число пикселей в правильной горизонтальной границе.
verticalBorderTop
Число строк в главной вертикальной границе.
verticalBorderBottom
Число строк в нижней части вертикальная граница.
horizontalSyncConfig
kIOSyncPositivePolarity для положительной горизонтальной синхронизации полярности (0 для отрицания).
horizontalSyncLevel
Нуль.
verticalSyncConfig
kIOSyncPositivePolarity для положительной полярности вертикальная синхронизация (0 для отрицания).
verticalSyncLevel
Нуль.
numLinks
число ссылок, которые будут использоваться двойной синхронизацией ссылки, если нуль, принимает одну ссылку.
__reservedB
Зарезервированный обнуленный.
Обсуждение
Эта структура используется IOFramebuffer для определения подробной информации синхронизации для режима отображения. VESA документ EDID имеет больше информации.
-
Структура, определяющая формат кадрового буфера.
Объявление
Objective C
struct IODisplayModeInformation { UInt32 nominalWidth; UInt32 nominalHeight; IOFixed1616 refreshRate; IOIndex maxDepthIndex; UInt32 flags; UInt16 imageWidth; UInt16 imageHeight; UInt32 reserved[ 3 ]; };
Поля
nominalWidth
Число пикселей, видимых на строку.
nominalHeight
Число видимых пиксельных строк.
refreshRate
Частота обновления в фиксированной точке 16.16.
maxDepthIndex
Самый высокий индекс глубины, доступный в этом режиме отображения.
flags
Флаги для режима, включая:
режим kDisplayModeInterlacedFlag чередуется.
режим kDisplayModeSimulscanFlag доступен на многократных соединениях дисплея.
режим kDisplayModeNotPresetFlag не является предварительной установкой фабрики для дисплея (геометрии, возможно, понадобится исправление).
режим kDisplayModeStretchedFlag простирается/искажается для соответствия форматного соотношения дисплея.
imageWidth
Физическая ширина активного изображения, если известный, в миллиметрах, иначе обнуляет.
imageHeight
Физическая высота активного изображения, если известный, в миллиметрах, иначе обнуляет.
reserved
Обнулить.
Обсуждение
Эта структура используется IOFramebuffer для определения формата пикселей.
-
Структура, определяющая масштабирующиеся возможности кадрового буфера.
Объявление
Objective C
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
Обнулить.
version
Обнулить.
__reservedB
Обнулить.
scalerFeatures
Маска масштабирующихся функций. Следующее определяется:
kIOScaleStretchOnly, Если установлено кадровый буфер может только предоставить расширенному масштабированию неквадратные пиксели без границ.
kIOScaleCanUpSamplePixels, Если установленный кадровый буфер может увеличиться от меньшего числа исходных пикселей более крупному собственному компоненту, синхронизирующему (например, 640x480 пикселей на 1600x1200 синхронизирующий).
kIOScaleCanDownSamplePixels, Если установленный кадровый буфер может уменьшиться от большего числа исходных пикселей меньшему собственному компоненту, синхронизирующему (например, 1600x1200 пикселей на 640x480 синхронизирующий).
kIOScaleCanScaleInterlaced, Если установленный кадровый буфер может масштабировать чересстрочную подробную синхронизацию.
kIOScaleCanSupportInset, Если установленный кадровый буфер может поддерживать масштабируемые режимы с ненулевым horizontalScaledInset, verticalScaledInset поля.
kIOScaleCanRotate, Если установленный кадровый буфер может поддерживать некоторые флаги в kIOScaleRotateFlags маске.
kIOScaleCanBorderInsetOnly, Если установленный кадровый буфер может поддерживать масштабируемые режимы с ненулевым horizontalScaledInset, verticalScaledInset поля, но требует, чтобы активные пиксели были равны в размере области вставки, т.е. может сделать вставки с границей по сравнению с масштабированием изображения.
maxHorizontalPixels
Максимальное количество горизонтальных исходных пикселей (horizontalScaled).
maxVerticalPixels
Максимальное количество вертикальных исходных пикселей (verticalScaled).
__reservedC
Обнулить.
Обсуждение
Эта структура используется для определения пределов для режимов, запрограммированных как подробные синхронизации OS. Свойство данных с этой структурой под ключом kIOFBScalerInfoKey в кадровом буфере позволит OS программировать подробные синхронизации, масштабирующиеся к родному разрешению дисплеев.
-
Структура, определяющая пределы и атрибуты дисплея или кадрового буфера.
Объявление
Objective C
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 (kHz) UInt32 maxLink0PixelClock; // max pixel clock for link (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
Обнулить.
version
Обнулить.
__reservedB
Обнулить.
minPixelClock
минимальная пиксельная тактовая частота в диапазоне, в Гц.
максимальная пиксельная тактовая частота в диапазоне, в Гц.
maxPixelError
самое большое изменение между тактовой частотой указанного и фактического пикселя, в Гц.
supportedSyncFlags
маска поддерживаемых синхронизирующих атрибутов. Следующее определяется:
kIORangeSupportsSeparateSyncs - цифровые отдельные синхронизации.
kIORangeSupportsSyncOnGreen - синхронизация на зеленом.
kIORangeSupportsCompositeSync - составная синхронизация.
kIORangeSupportsVSyncSerration - вертикальная синхронизация имеет импульсы коррекции и зазубренность.
supportedSignalLevels
маска возможных уровней сигнала. Следующее определяется:
kIORangeSupportsSignal_0700_0300 0.700 - 0.300 В p-p.
kIORangeSupportsSignal_0714_0286 0.714 - 0,286 В p-p.
kIORangeSupportsSignal_1000_0400 1.000 - 0.400 В p-p.
kIORangeSupportsSignal_0700_0000 0.700 - 0.000 В p-p.
supportedSignalConfigs
маска возможных сигнальных конфигураций. Следующее определяется:
Поддержки kIORangeSupportsInterlacedCEATiming стиль CEA чередовали синхронизацию:
Поле 1 вертикальное очищение = указало вертикальные строки очищения.
Поле 2 вертикальное очищение = вертикальные строки очищения + 1 строка.
Поле 1 вертикальное смещение = указало вертикальное синхронизирующее смещение.
Поле 2 вертикальное смещение = указало вертикальное синхронизирующее смещение + 0,5 строки.
Поддержки kIORangeSupportsInterlacedCEATimingWithConfirm стиль CEA чередовал синхронизацию, но потребуйте подтверждения.
minFrameRate
минимальная частота кадров (вертикальная частота обновления) в диапазоне, в Гц.
maxFrameRate
максимальная частота кадров (вертикальная частота обновления) в диапазоне, в Гц.
minLineRate
минимальная частота строчной развертки (горизонтальная частота обновления) в диапазоне, в Гц.
maxLineRate
максимальная частота строчной развертки (горизонтальная частота обновления) в диапазоне, в Гц.
maxHorizontalTotal
максимальные часы в горизонтальной строке (активный + очищающий).
maxVerticalTotal
максимальные строки в вертикальном кадре (активный + очищающий).
__reservedD
Обнулить.
charSizeHorizontalActive
horizontalActive должен быть кратным числом charSizeHorizontalActive.
charSizeHorizontalBlanking
horizontalBlanking должен быть кратным числом charSizeHorizontalBlanking.
charSizeHorizontalSyncOffset
horizontalSyncOffset должен быть кратным числом charSizeHorizontalSyncOffset.
charSizeHorizontalSyncPulse
horizontalSyncPulse должен быть кратным числом charSizeHorizontalSyncPulse.
charSizeVerticalActive
verticalActive должен быть кратным числом charSizeVerticalActive.
charSizeVerticalBlanking
verticalBlanking должен быть кратным числом charSizeVerticalBlanking.
charSizeVerticalSyncOffset
verticalSyncOffset должен быть кратным числом charSizeVerticalSyncOffset.
charSizeVerticalSyncPulse
verticalSyncPulse должен быть кратным числом charSizeVerticalSyncPulse.
charSizeHorizontalBorderLeft
horizontalBorderLeft должен быть кратным числом charSizeHorizontalBorderLeft.
charSizeHorizontalBorderRight
horizontalBorderRight должен быть кратным числом charSizeHorizontalBorderRight.
charSizeVerticalBorderTop
verticalBorderTop должен быть кратным числом charSizeVerticalBorderTop.
charSizeVerticalBorderBottom
verticalBorderBottom должен быть кратным числом charSizeVerticalBorderBottom.
charSizeHorizontalTotal
(horizontalActive + horizontalBlanking), должно быть кратное число charSizeHorizontalTotal.
charSizeVerticalTotal
(verticalActive + verticalBlanking), должно быть кратное число charSizeVerticalTotal.
__reservedE
Обнулить.
minHorizontalActiveClocks
минимальное значение horizontalActive.
maxHorizontalActiveClocks
максимальное значение horizontalActive.
minHorizontalBlankingClocks
минимальное значение horizontalBlanking.
maxHorizontalBlankingClocks
максимальное значение horizontalBlanking.
minHorizontalSyncOffsetClocks
минимальное значение horizontalSyncOffset.
maxHorizontalSyncOffsetClocks
максимальное значение horizontalSyncOffset.
minHorizontalPulseWidthClocks
минимальное значение horizontalPulseWidth.
maxHorizontalPulseWidthClocks
максимальное значение horizontalPulseWidth.
minVerticalActiveClocks
минимальное значение verticalActive.
maxVerticalActiveClocks
максимальное значение verticalActive.
minVerticalBlankingClocks
минимальное значение verticalBlanking.
maxVerticalBlankingClocks
максимальное значение verticalBlanking.
minVerticalSyncOffsetClocks
минимальное значение verticalSyncOffset.
maxVerticalSyncOffsetClocks
максимальное значение verticalSyncOffset.
minVerticalPulseWidthClocks
минимальное значение verticalPulseWidth.
maxVerticalPulseWidthClocks
максимальное значение verticalPulseWidth.
minHorizontalBorderLeft
минимальное значение horizontalBorderLeft.
maxHorizontalBorderLeft
максимальное значение horizontalBorderLeft.
minHorizontalBorderRight
минимальное значение horizontalBorderRight.
maxHorizontalBorderRight
максимальное значение horizontalBorderRight.
minVerticalBorderTop
минимальное значение verticalBorderTop.
maxVerticalBorderTop
максимальное значение verticalBorderTop.
minVerticalBorderBottom
минимальное значение verticalBorderBottom.
maxVerticalBorderBottom
максимальное значение verticalBorderBottom.
maxNumLinks
если нуль, 1 ссылка принята, число ссылок поддерживало.
minLink0PixelClock
минимальные пиксельные часы для ссылки 0 (kHz).
maxLink0PixelClock
максимальные пиксельные часы для ссылки 0 (kHz).
minLink1PixelClock
минимальные пиксельные часы для ссылки 1 (kHz).
maxLink1PixelClock
максимальные пиксельные часы для ссылки 1 (kHz).
__reservedF
Обнулить.
Обсуждение
Эта структура используется для определения пределов для режимов, запрограммированных как подробные синхронизации OS. VESA EDID является полезной справочной информацией для многих из этих полей. Свойство данных с этой структурой под ключом kIOFBTimingRangeKey в кадровом буфере позволит OS программировать подробные синхронизации, находящиеся в пределах его диапазона.
-
Структура, определяющая формат аппаратного курсора.
Объявление
Objective C
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
Набор к kHardwareCursorDescriptorMajorVersion.
minorVersion
Набор к kHardwareCursorDescriptorMinorVersion.
height
Максимальный размер курсора.
width
Максимальный размер курсора.
bitDepth
Биты на пиксель числа или пиксельный тип QD/QT, например kIO8IndexedPixelFormat, kIO32ARGBPixelFormat.
maskBitDepth
Неиспользованный.
numColors
Число цветов для индексируемых пиксельных типов.
colorEncodings
Указатель массива, указывающий пиксельные значения, соответствующие индексам в таблицу цветов, для индексируемых пиксельных типов.
flags
Ни одно определенное, обнуленное.
supportedSpecialEncodings
Маска поддерживаемых специальных пиксельных значений, например, kTransparentEncodedPixel, kInvertingEncodedPixel.
specialEncodings
Массив пиксельных значений для каждого поддерживаемого специального кодирования.
Обсуждение
Эта структура используется IOFramebuffer для определения формата аппаратного курсора.
-
Структура, определяющая преобразованные данные аппаратного курсора.
Объявление
Objective C
struct IOHardwareCursorInfo { UInt16 majorVersion; UInt16 minorVersion; UInt32 cursorHeight; UInt32 cursorWidth; // nil or big enough for hardware's max colors IOColorEntry *colorMap; UInt8 *hardwareCursorData; UInt16 cursorHotSpotX; UInt16 cursorHotSpotY; UInt32 reserved[5]; };
Поля
majorVersion
Набор к kHardwareCursorInfoMajorVersion.
minorVersion
Набор к kHardwareCursorInfoMinorVersion.
cursorHeight
Фактический размер курсора возвращается.
cursorWidth
Фактический размер курсора возвращается.
colorMap
Указатель на массив структур IOColorEntry, с числом элементов установлен numColors полем IOHardwareCursorDescriptor. Нуль должен быть передан для прямых форматов пикселя.
hardwareCursorData
Буфер для получения преобразованных данных курсора.
cursorHotSpotX
Горячая точка курсора.
cursorHotSpotY
Горячая точка курсора.
reserved
Зарезервированный, обнуленный.
Обсуждение
Эта структура используется IOFramebuffer для возврата данных аппаратного курсора convertCursorImage () после того, как преобразование на основе IOHardwareCursorDescriptor передало той подпрограмме.
-
Структура, определяющая формат кадрового буфера.
Объявление
Objective C
struct IOPixelInformation { UInt32 bytesPerRow; UInt32 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
Число байтов на строку.
bytesPerPlane
Не используемый.
bitsPerPixel
Число бит на пиксель, включая неиспользованные биты и альфу.
pixelType
Один из kIOCLUTPixels (индексированные пиксели с изменяемым CLUT), kIORGBDirectPixels (прямые пиксели).
componentCount
Один для индексируемых пикселей, три для прямых форматов пикселя.
bitsPerComponent
Число битов на компонент в каждом пикселе.
componentMasks
Маска битов, допустимых для каждого компонента пикселя - в R, G, B упорядочивают для прямых пикселей.
pixelFormat
Строковое описание формата пикселя - IO32BitDirectPixels, IO16BitDirectPixels и т.д.
flags
Ни одно определенное - обнуленный.
activeWidth
Число пикселей, видимых на строку.
activeHeight
Число видимых пиксельных строк.
reserved
Обнулить.
Обсуждение
Эта структура используется IOFramebuffer для определения формата пикселей.