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;

要求

要求
标头
D3DX9Effect.h

D3dx9.lib

另请参阅

效果接口