Конфигурирование дисплеев Используя транзакцию
Quartz Display Services позволяет сконфигурировать ряд дисплеев в единственной транзакции. Во время выполнения изменений конфигурации Кварц выполняет стандарт, исчезают эффект на все онлайновые дисплеи. Дисплеи исчезают к монохроматическому цвету, конфигурация имеет место, и дисплеи возвращаются к нормальному. Для получения дополнительной информации об исчезают эффекты, видят Используя, Исчезают Эффекты.
Вы начинаете новую транзакцию путем вызова CGBeginDisplayConfiguration
. Следующий шаг должен объявить то, что изменяется, Вы хотите сделать. Например, можно использовать эти функции:
CGConfigureDisplayWithDisplayMode
устанавливает режим отображения дисплея. (В OS X v10.5 использованиеCGConfigureDisplayMode
вместо этого.)CGConfigureDisplayMirrorOfDisplay
добавляет дисплей к набору зеркального отражения.CGConfigureDisplayOrigin
устанавливает источник дисплея в глобальном выставочном пространстве.CGConfigureDisplayFadeEffect
настраивает исчезнуть эффект. (Вызывающий эту функцию изменяет исчезнуть поведение для единственной конфигурации дисплея и не имеет никакого постоянного эффекта.)
После того, как Вы будете закончены, подготавливая транзакцию, Вы вызываете CGCompleteDisplayConfiguration
выполнить его. В этом вызове Вы также указываете объем изменения конфигурации. Как правило, Вы указываете kCGConfigureForAppOnly
применять изменения для времени жизни Вашего приложения.
Перечисление 1 показывает, как использовать транзакцию конфигурации с пользовательским, исчезают эффект изменить режим отображения единственного дисплея для OS X v10.6 и позже. Для OS X v10.5 или ранее, см. Перечисление 2 вместо этого. Подробное объяснение каждой пронумерованной строки кода появляется после списков.
Перечисление 1 простая транзакция конфигурации (OS X v10.6 или позже)
void MyDisplaySwitchToMode (CGDirectDisplayID display, CGDisplayModeRef mode) |
{ |
CGDisplayConfigRef config; // 1 |
CGBeginDisplayConfiguration (&config); // 2 |
CGConfigureDisplayWithDisplayMode (config, display, mode, NULL); // 3 |
CGConfigureDisplayFadeEffect ( // 4 |
config, |
0.6, // fade out interval in seconds |
1.0, // fade in interval |
0.5, // red |
0.5, // green |
0.5 // blue |
); |
CGCompleteDisplayConfiguration (config, kCGConfigureForAppOnly); // 5 |
} |
Перечисление 2 простая транзакция конфигурации (OS X v 10.5)
void MyDisplaySwitchToMode (CGDirectDisplayID display, CFDictionaryRef mode) |
{ |
CGDisplayConfigRef config; // 1 |
CGBeginDisplayConfiguration (&config); // 2 |
CGConfigureDisplayMode (config, display, mode); // 3 |
CGConfigureDisplayFadeEffect ( // 4 |
config, |
0.6, // fade out interval in seconds |
1.0, // fade in interval |
0.5, // red |
0.5, // green |
0.5 // blue |
); |
CGCompleteDisplayConfiguration (config, kCGConfigureForAppOnly); // 5 |
} |
Вот то, что делает код:
Объявляет объект конфигурации дисплея, переменная, обеспечивающая контекст для ряда изменений конфигурации дисплея.
Начинает новую транзакцию конфигурации и пасует назад объект конфигурации дисплея.
Объявляет изменение режима отображения для этой конфигурации.
Настраивает значение по умолчанию, исчезают эффект для этой конфигурации. Новые исчезают, цвет является серым.
Применяет новую конфигурацию с областью действия приложения. По возврату объект конфигурации больше не действителен.