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。 驱动程序还应相应地更新其专用状态。

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

要求

要求 价值
标头 d3dhal.h (包括 D3dhal.h)

另请参阅

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2