D3DHAL_DP2RENDERSTATE结构 (d3dhal.h)
当 D3DHAL_DP2COMMAND 结构的 bCommand 成员设置为D3DDP2OP_RENDERSTATE时,D3dDrawPrimitives2 回调从命令缓冲区分析一个或多个D3DHAL_DP2RENDERSTATE结构,并用于设置适当的呈现状态。
语法
typedef struct _D3DHAL_DP2RENDERSTATE {
D3DRENDERSTATETYPE RenderState;
union {
D3DVALUE dvState;
DWORD dwState;
};
} D3DHAL_DP2RENDERSTATE;
成员
RenderState
指定要更新的呈现状态的D3DRENDERSTATETYPE枚举类型。 DirectX SDK 文档中介绍了在应用程序级别请求的呈现状态。 驱动程序独占使用的呈现状态在 D3DRENDERSTATETYPE中介绍。
dvState
指定驱动程序应使用 更新由 RenderState 成员标识的呈现状态的值。 RenderState 需要D3DVALUE时,此成员有效。
dwState
指定驱动程序应更新 RenderState 标识的呈现状态的值。 RenderState 需要 DWORD 时,此成员有效。
言论
D3dDrawPrimitives2 应从命令缓冲区处理 wStateCount D3DHAL_DP2RENDERSTATE 结构。 wStateCount 的值在D3DHAL_DP2COMMAND结构中指定。
对于每个D3DHAL_DP2RENDERSTATE结构,D3dDrawPrimitives2 应更新驱动程序的专用呈现状态和 lpdwRStates 指向 D3DHAL_DRAWPRIMITIVES2DATA 成员的呈现状态数组。 在公共呈现状态数组中更新的元素 lpdwRStates[RenderState]。
下图显示了包含D3DDP2OP_RENDERSTATE命令和两个D3DHAL_DP2RENDERSTATE结构的示例命令缓冲区的一部分。 驱动程序应更新 lpdwRStates[D3DRENDERSTATE_FILLMODE] D3DFILL_SOLID ,并将 lpdwRStates[D3DRENDERSTATE_SHADEMODE] 更新为D3DSHADE_GOURAUD。 驱动程序还应相应地更新其专用状态。
尽管呈现状态其值为布尔类型的呈现状态仅接受 TRUE(1) 和 FALSE(0) 运行时不会验证此值并接受任何子零值作为 true。 示例驱动程序严格解释这一点,并将 1 以外的值解释为 TRUE。 但是,由于运行时不提供验证,因此驱动程序应将 0 解释为 FALSE,将任何其他子零值解释为 TRUE。 在这方面,驱动程序不应模仿提供的示例驱动程序的行为。要求
要求 | 价值 |
---|---|
标头 | d3dhal.h (包括 D3dhal.h) |
另请参阅
D3DDP2OP_RENDERSTATE