Поделиться через


Функция SetDeviceGammaRamp (wingdi.h)

Функция SetDeviceGammaRamp задает гамма-пандус на прямых цветных дисплеях с драйверами, поддерживающими скачиваемые гамма-пандусы в оборудовании.

Важно!

Мы настоятельно рекомендуем не использовать этот API. Использование этого API налагается на основные ограничения:

  • SetDeviceGammaRamp реализует эвристические средства для проверка, приведет ли предоставленный пандус к нечитаемому экрану. Если пандус нарушает эти эвристики, то функция выходит из строя автоматически (то есть возвращает true, но не устанавливает ваш пандус). По этой причине вы не можете использовать эту функцию для установки произвольного гамма-пандуса. В частности, эвристика предотвращает пандусы, которые приводят к тому, что почти все пиксели приближаются к одному значению (например, полноэкранный черный/белый), так как это может помешать пользователю восстановить экран.

  • Из-за глобального характера функции любое другое приложение в системе может в любой момент перезаписать любой набор, который вы задали. В некоторых случаях сама операционная система может зарезервировать использование этой функции, что приводит к перезаписи любой существующей платформы. Гамма-пандус также сбрасывается при большинстве событий отображения (подключение или отключение монитора, изменение разрешения и т. д.). Таким образом, вы не можете быть уверены, что любой пандус вы установили в действии.

  • Этот API имеет неопределенное поведение в режимах HDR.

  • Этот API имеет неопределенное взаимодействие со встроенными и сторонними решениями для калибровки цвета.

Для калибровки цвета рекомендуется создать профиль Международного консорциума цветов (ICC) и разрешить ОПЕРАЦИОННОй системе применить профиль. Для передовых сценариев изготовителя исходного оборудования (OEM) существует модель драйвера устройства, которую можно использовать для более непосредственной настройки калибровки цвета. Сведения об управлении цветными профилями см. в разделе Система цветов Windows .

Для фильтрации синего света Windows теперь предоставляет встроенную поддержку ночного света. Рекомендуется направлять пользователей на эту функцию.

Для цветовой адаптации (например, для настройки калибровки цвета на основе датчиков внешнего освещения) Windows теперь предоставляет встроенную поддержку, которую мы рекомендуем использовать изготовителям оборудования.

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

Синтаксис

BOOL SetDeviceGammaRamp(
  HDC    hdc,
  LPVOID lpRamp
);

Параметры

hdc

Указывает контекст устройства для рассматриваемой цветной доски.

lpRamp

Указатель на буфер, содержащий гамма-пандус для установки. Гамма-пандус задается в трех массивах по 256 элементов WORD , каждый из которых содержит сопоставление значений RGB в буфере кадров и значений цифрового аналогового преобразователя (DAC ). Последовательность массивов : красная, зеленая, синяя. Значения RGB должны храниться в наиболее значимых битах каждого приложения WORD, чтобы повысить независимость приложения уровня данных.

Возвращаемое значение

Если эта функция завершается успешно, возвращается значение TRUE.

Если эта функция завершается сбоем, возвращается значение FALSE.

Комментарии

Режимы отображения прямых цветов не используют таблицы подстановки цветов и обычно имеют 16, 24 или 32 бит. Не все прямые цветные видео платы поддерживают загружаемые гамма-пандусы. SetDeviceGammaRamp выполняется успешно только для устройств с драйверами, поддерживающими скачиваемые гамма-пандусы в оборудовании.

Примечание

Выполнение этого API может занять нетривиальное время. Для возврата на некоторое оборудование может потребоваться до 200 мс.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header wingdi.h
Библиотека Gdi32.lib
DLL Gdi32.dll

См. также раздел