Метод IDirect3DDevice9::SetGammaRamp (d3d9.h)
Задает рампу гамма-коррекции для неявной цепочки буферов. Этот метод влияет на весь экран (а не только активное окно, если вы работаете в оконном режиме).
Синтаксис
void SetGammaRamp(
[in] UINT iSwapChain,
[in] DWORD Flags,
[in] const D3DGAMMARAMP *pRamp
);
Параметры
[in] iSwapChain
Тип: UINT
Целое число без знака, указывающее цепочку буферов.
[in] Flags
Тип: DWORD
Указывает, следует ли применять исправление. Гамма-коррекция приводит к более согласованному отображению, но может повлечь за собой дополнительные затраты на обработку и не должна использоваться часто. Краткосрочные эффекты, такие как мигание всего экрана красным цветом, не должны быть откалиброваны, но следует откалибировать длительные гамма-изменения. Можно задать одно из следующих значений:
[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 |