Compartir a través de


estructura D3DHAL_DP2RENDERSTATE (d3dhal.h)

La devolución de llamada D3dDrawPrimitives2 analiza una o varias estructuras de D3DHAL_DP2RENDERSTATE cuando el miembro bCommand de la estructura D3DHAL_DP2COMMAND se establece en D3DDP2OP_RENDERSTATE y se usa para establecer el estado de representación adecuado.

Sintaxis

typedef struct _D3DHAL_DP2RENDERSTATE {
  D3DRENDERSTATETYPE RenderState;
  union {
    D3DVALUE dvState;
    DWORD    dwState;
  };
} D3DHAL_DP2RENDERSTATE;

Miembros

RenderState

Especifica un tipo enumerado D3DRENDERSTATETYPE que indica el estado de representación que se va a actualizar. Los estados de representación solicitados en el nivel de aplicación se describen en la documentación del SDK de DirectX. Los estados de representación que usan exclusivamente los controladores se describen en D3DRENDERSTATETYPE.

dvState

Especifica el valor con el que el controlador debe actualizar el estado de representación identificado por el miembro RenderState . Este miembro es válido cuando RenderState requiere un D3DVALUE.

dwState

Especifica el valor en el que el controlador debe actualizar el estado de representación identificado por RenderState . Este miembro es válido cuando RenderState requiere un DWORD.

Comentarios

D3dDrawPrimitives2 debe procesar estructuras wStateCount D3DHAL_DP2RENDERSTATE desde el búfer de comandos. El valor de wStateCount se especifica en la estructura D3DHAL_DP2COMMAND.

Para cada estructura de D3DHAL_DP2RENDERSTATE, D3dDrawPrimitives2 debe actualizar el estado de representación privado del controlador y la matriz de estado de representación a la que apunta el miembro lpdwRStates de D3DHAL_DRAWPRIMITIVES2DATA . El elemento que se va a actualizar en la matriz de estado de representación pública es lpdwRStates[RenderState].

En la ilustración siguiente se muestra una parte de un búfer de comandos de ejemplo que contiene un comando D3DDP2OP_RENDERSTATE y dos estructuras D3DHAL_DP2RENDERSTATE. El controlador debe actualizar lpdwRStates[D3DRENDERSTATE_FILLMODE] para que sea D3DFILL_SOLID y lpdwRStates[D3DRENDERSTATE_SHADEMODE] para que sea D3DSHADE_GOURAUD. El controlador también debe actualizar su estado privado en consecuencia.

Figura que muestra un búfer de comandos con un comando D3DDP2OP_RENDERSTATE y dos estructuras D3DHAL_DP2RENDERSTATE Aunque los estados de representación cuyos valores son booleanos en el tipo se documentan como solo aceptar TRUE(1) y FALSE(0), el tiempo de ejecución no valida esto y acepta cualquier valor de subzero como true. El controlador de ejemplo interpreta esto estrictamente y interpreta los valores distintos de 1 como TRUE. Sin embargo, dado que el tiempo de ejecución no ofrece validación, el controlador debe interpretar 0 como FALSE y cualquier otro valor de subzero como TRUE. En este sentido, el controlador no debe imitar el comportamiento del controlador de muestra proporcionado.

Requisitos

Requisito Valor
Header d3dhal.h (incluya D3dhal.h)

Consulte también

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2