IDirect3DDevice9::SetGammaRamp 方法 (d3d9helper.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
标头 d3d9helper.h (包括 D3D9.h)
Library D3D9.lib

另请参阅

IDirect3DDevice9

IDirect3DDevice9::GetGammaRamp

IDirect3DSwapChain9