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 应更新驱动程序的专用呈现状态和D3DHAL_DRAWPRIMITIVES2DATA的 lpdwRStates 成员指向的呈现状态数组。 公共呈现状态数组中要更新的元素为 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。 在这方面,驱动程序不应模拟提供的示例驱动程序的行为。要求
要求 | 值 |
---|---|
Header | d3dhal.h (包括 D3dhal.h) |
另请参阅
D3DDP2OP_RENDERSTATE