Получение информации о дисплеях

Quartz Display Services обеспечивает много функций для получения информации о состоянии дисплея и режимах отображения. Эта статья кратко касается нескольких из этих функций. Для полного списка посмотрите Ссылку Quartz Display Services.

Получение информации состояния Дисплея (OS X v10.6 или позже)

Quartz Display Services включает функции средства доступа, сообщающие о текущих свойствах аппаратных средств дисплея, свойства, также найденные в текущем режиме отображения. Поскольку эти функции не полагаются на информацию от текущего режима отображения, они предоставляют наиболее точную информацию, доступную о дисплее (свойства режима отображения подвержены изменениям драйвером устройства). Эти функции, перечисленные затем, являются прямыми для использования:

Функция

Описание

CGDisplayPixelsWide

Возвращает drawable ширину дисплея в пиксельных модулях.

CGDisplayPixelsHigh

Возвращает drawable высоту дисплея в пиксельных модулях.

API включает другие функции средства доступа, сообщающие дополнительную информацию о текущей конфигурации и состоянии дисплея. В следующей таблице перечислены репрезентативную пробу этих функций:

Функция

Описание

CGDisplayIsActive

Возвращает булево значение, указывающее, активен ли дисплей или drawable).

CGDisplayIsBuiltin

Возвращает булево значение, указывающее, встроен ли дисплей, таков как внутренний дисплей в переносимых системах.

CGDisplayIsMain

Возвращает булево значение, указывающее, является ли дисплей основным дисплеем.

CGDisplayScreenSize

Возвращает ширину и высоту дисплея в миллиметрах.

CGDisplayUsesOpenGLAcceleration

Возвращает булево значение, указывающее, использует ли Кварц основанное на OpenGL ускорение окна (Кварцевое Экстремальное значение) для рендеринга в дисплее.

Получение информации состояния Дисплея (OS X v10.5)

Quartz Display Services включает несколько функций средства доступа, сообщающих о текущих свойствах аппаратных средств дисплея, свойства, также найденные в текущем словаре режима отображения. Поскольку эти функции не полагаются на информацию от текущего режима отображения, они предоставляют наиболее точную информацию, доступную о дисплее (свойства режима отображения подвержены изменениям драйвером устройства). Эти функции, перечисленные затем, являются прямыми для использования:

Функция

Описание

CGDisplayPixelsWide

Возвращает drawable ширину дисплея в пиксельных модулях.

CGDisplayPixelsHigh

Возвращает drawable высоту дисплея в пиксельных модулях.

CGDisplayBitsPerPixel

Возвращается число битов раньше представляло пиксель в кадровом буфере.

CGDisplayBitsPerSample

Возвращается число битов раньше представляло пиксельный компонент в кадровом буфере.

CGDisplaySamplesPerPixel

Возвращается число компонентов раньше представляло пиксель в кадровом буфере.

CGDisplayBytesPerRow

Возвращает число байтов на строку в кадровом буфере.

API включает другие функции средства доступа, сообщающие дополнительную информацию о текущей конфигурации и состоянии дисплея. В следующей таблице перечислены репрезентативную пробу этих функций:

Функция

Описание

CGDisplayIsActive

Возвращает булево значение, указывающее, активен ли дисплей или drawable).

CGDisplayIsBuiltin

Возвращает булево значение, указывающее, встроен ли дисплей, таков как внутренний дисплей в переносимых системах.

CGDisplayIsMain

Возвращает булево значение, указывающее, является ли дисплей основным дисплеем.

CGDisplayScreenSize

Возвращает ширину и высоту дисплея в миллиметрах.

CGDisplayUsesOpenGLAcceleration

Возвращает булево значение, указывающее, использует ли Кварц основанное на OpenGL ускорение окна (Кварцевое Экстремальное значение) для рендеринга в дисплее.

Получение информации Режима отображения (OS X v10.6 или позже)

Каждый онлайновый дисплей имеет текущий режим отображения и ряд доступных режимов отображения. Драйвер устройства использует информацию в текущем режиме отображения для конфигурирования дисплея.

Можно получить значения свойств в режиме отображения с надлежащим CGDisplayMode функция. Перечисление 1 показывает, как получить несколько свойств режима.

Перечисление 1  , Получающее свойства режима отображения на OS X v10.6 или позже

bool gui;
double refresh;
uint32_t ioflags;
 
CGDisplayModeRef currentMode = CGDisplayCopyDisplayMode(kCGDirectMainDisplay);
 
refresh = CGDisplayModeGetRefreshRate(currentMode);
gui = CGDisplayModeIsUsableForDesktopGUI(currentMode);
ioflags = CGDisplayModeGetIOFlags(currentMode);
 
CGDisplayModeRelease(currentMode);

Получение информации Режима отображения (OS X v10.5)

Каждый онлайновый дисплей имеет текущий режим отображения и ряд доступных режимов отображения. Драйвер устройства использует информацию в текущем режиме отображения для конфигурирования дисплея.

Можно получить значения свойств в словаре режима отображения с CFDictionaryGetValue функция. Затем Вы, возможно, должны бросить возвращенное значение к надлежащему типу данных. Перечисление 1 показывает, как получить несколько свойств режима и бросить их к базовому типу данных.

Перечисление 2  , Получающее свойства режима отображения на OS X v10.5

CFNumberRef number;
CFBoolean booleanValue;
Boolean gui;
long mode, refresh, ioflags;
 
CFDictionaryRef currentMode = CGDisplayCurrentMode (kCGDirectMainDisplay);
 
number = CFDictionaryGetValue (currentMode, kCGDisplayMode);
CFNumberGetValue (number, kCFNumberLongType, &mode);
 
number = CFDictionaryGetValue (currentMode, kCGDisplayRefreshRate);
CFNumberGetValue (number, kCFNumberLongType, &refresh);
 
booleanValue = CFDictionaryGetValue (currentMode, kCGDisplayModeUsableForDesktopGUI);
gui = CFBooleanGetValue (booleanValue);
 
number = CFDictionaryGetValue (currentMode, kCGDisplayIOFlags);
CFNumberGetValue (number, kCFNumberLongType, &ioflags);