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 |