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


Метод IDirect3DDevice9::SetGammaRamp (d3d9.h)

Задает рампу гамма-коррекции для неявной цепочки буферов. Этот метод влияет на весь экран (а не только активное окно, если вы работаете в оконном режиме).

Синтаксис

void SetGammaRamp(
  [in] UINT               iSwapChain,
  [in] DWORD              Flags,
  [in] const D3DGAMMARAMP *pRamp
);

Параметры

[in] iSwapChain

Тип: UINT

Целое число без знака, указывающее цепочку буферов.

[in] Flags

Тип: DWORD

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

Элемент Описание
D3DSGR_CALIBRATE Если установлен гамма-калибратор, пандус будет изменен перед отправкой на устройство, чтобы учесть систему и отслеживать кривые отклика. Если калибратор не установлен, пандус будет передаваться непосредственно на устройство.
D3DSGR_NO_CALIBRATION Гамма-коррекция не применяется. Указанная гамма-таблица передается непосредственно на устройство.

[in] pRamp

Тип: const D3DGAMMARAMP*

Указатель на D3DGAMMARAMP структуру, представляющую рампу гамма-коррекции, устанавливаемую для неявной цепочки буферов.

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

None

Remarks

Для каждого устройства всегда существует по крайней мере одна цепочка буферов (неявная цепочка буферов), так как Direct3D 9 имеет одну цепочку буферов в качестве свойства устройства. Гамма-пандус вступает в силу немедленно; нет ожидания вертикальной синхронизации.

Если устройство не поддерживает гамма-пандусы в текущем режиме представления цепочки буферов (полноэкранный или оконный), ошибка не возвращается. Приложения могут проверка D3DCAPS2_FULLSCREENGAMMA и D3DCAPS2_CANCALIBRATEGAMMA биты возможностей в элементе Caps2 структуры D3DCAPS9, чтобы определить возможности устройства и установить ли калибратор.

Для представления гамма-коррекции в окнах используйте IDirect3DSwapChain9::P resent, если оборудование поддерживает эту функцию. В DirectX 8 SetGammaRamp устанавливает гамма-пандус только в полноэкранном режиме. Дополнительные сведения о гамма-коррекции см. в разделе Гамма (Direct3D 9).

Требования

Требование Значение
Целевая платформа Windows
Header d3d9.h (включая D3D9.h)
Библиотека D3D9.lib

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

IDirect3DDevice9

IDirect3DDevice9::GetGammaRamp

IDirect3DSwapChain9