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_DRAWPRIMITIVES2DATAlpdwRStates 成员指向的呈现状态数组。 公共呈现状态数组中要更新的元素为 lpdwRStates[RenderState]。

下图显示了包含一个D3DDP2OP_RENDERSTATE命令和两个D3DHAL_DP2RENDERSTATE结构的示例命令缓冲区的一部分。 驱动程序应将 lpdwRStates[D3DRENDERSTATE_FILLMODE] 更新为 D3DFILL_SOLID,并将 lpdwRStates[D3DRENDERSTATE_SHADEMODE] 更新为D3DSHADE_GOURAUD。 驱动程序还应相应地更新其专用状态。

显示具有D3DDP2OP_RENDERSTATE命令和两个D3DHAL_DP2RENDERSTATE结构的命令缓冲区的图 尽管在 类型中其值为布尔值的呈现状态记录为仅接受 TRUE (1) 和 FALSE (0) 运行时不会对此进行验证,并且接受任何子零值为 true。 示例驱动程序对此进行严格解释,并将 1 以外的值解释为 TRUE。 但是,由于运行时不提供验证,因此驱动程序应将 0 解释为 FALSE ,将任何其他子零值解释为 TRUE。 在这方面,驱动程序不应模拟提供的示例驱动程序的行为。

要求

要求
Header d3dhal.h (包括 D3dhal.h)

另请参阅

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2