ID3DXEffectStateManager 接口
这是一个用户实现的接口,允许用户根据效果设置设备状态。 此接口中的每个方法必须由用户实现,然后在发生以下任一情况时用作应用程序的回调:
- 效果调用 ID3DXEffect::BeginPass。
- 通过调用相应的状态更改 API 动态更新效果状态。 有关详细信息,请参阅各个方法页。
当应用程序使用状态管理器实现自定义回调时,在调用 ID3DXEffect::BeginPass 和 ID3DXEffect::EndPass 时,效果不再自动保存和还原状态。 由于应用程序已在回调中实现了自定义保存和还原行为,因此会绕过此自动行为。
成员
ID3DXEffectStateManager 接口继承自 IUnknown 接口。 ID3DXEffectStateManager 也具有以下类型的成员:
方法
ID3DXEffectStateManager 接口具有这些方法。
方法 | 说明 |
---|---|
LightEnable | 一个回调函数,必须由用户实现才能启用/禁用灯。 |
SetFVF | 必须由用户实现才能设置 FVF 代码的回调函数。 |
SetLight | 一个回调函数,必须由用户实现才能设置灯光。 |
SetMaterial | 一个回调函数,用户必须实现该函数才能设置材料状态。 |
SetNPatchMode | 一个回调函数,用户必须实现该函数才能设置 N 补丁的细分段数。 |
SetPixelShader | 一个回调函数,用户必须实现该函数才能设置像素着色器。 |
SetPixelShaderConstantB | 一个回调函数,用户必须实现该函数才能设置顶点着色器布尔常量数组。 |
SetPixelShaderConstantF | 一个回调函数,用户必须实现该函数才能设置顶点着色器浮点常量数组。 |
SetPixelShaderConstantI | 一个回调函数,必须由用户实现才能设置顶点着色器整数常量数组。 |
SetRenderState | 一个回调函数,用户必须实现该函数才能设置呈现状态。 |
SetSamplerState | 一个回调函数,必须由用户实现才能设置采样器。 |
SetTexture | 必须由用户实现才能设置纹理的回调函数。 |
SetTextureStageState | 一个回调函数,必须由用户实现才能设置纹理阶段状态。 |
SetTransform | 用户必须实现才能设置转换的回调函数。 |
SetVertexShader | 必须由用户实现才能设置顶点着色器的回调函数。 |
SetVertexShaderConstantB | 一个回调函数,用户必须实现该函数才能设置顶点着色器布尔常量数组。 |
SetVertexShaderConstantF | 一个回调函数,用户必须实现该函数才能设置顶点着色器浮点常量数组。 |
SetVertexShaderConstantI | 一个回调函数,必须由用户实现才能设置顶点着色器整数常量数组。 |
备注
用户通过实现派生自此接口的类并实现所有接口方法来创建 ID3DXEffectStateManager 接口。 创建接口后,可以使用 ID3DXEffect::GetStateManager 和 ID3DXEffect::SetStateManager 获取或设置效果中的状态管理器。
LPD3DXEFFECTSTATEMANAGER 类型定义为指向此接口的指针。
typedef interface ID3DXEffectStateManager ID3DXEffectStateManager;
typedef interface ID3DXEffectStateManager *LPD3DXEFFECTSTATEMANAGER;
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅