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 结构的指针,表示要为隐式交换链设置的伽玛校正渐变。

返回值

备注

每个设备始终至少有一个交换链 (隐式交换链) ,因为 Direct3D 9 有一个交换链作为设备的属性。 伽马渐变立即生效:无需等待垂直同步。

如果设备在交换链的当前演示模式中不支持伽玛渐变, (全屏或窗口化) ,则不会给出错误返回。 应用程序可以在D3DCAPS9结构的 Caps2 成员中检查D3DCAPS2_FULLSCREENGAMMA和D3DCAPS2_CANCALIBRATEGAMMA功能位,以确定设备的功能以及是否安装了校准器。

对于窗口化伽玛更正演示,如果硬件支持该功能,请使用 IDirect3DSwapChain9::P resent 。 在 DirectX 8 中,SetGammaRamp 仅在全屏模式应用程序上设置伽玛渐变。 有关伽玛校正的详细信息,请参阅 Gamma (Direct3D 9)

要求

要求
目标平台 Windows
标头 d3d9.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9

IDirect3DDevice9::GetGammaRamp

IDirect3DSwapChain9