D3DHAL_DP2RENDERSTATE structure (d3dhal.h)

Une ou plusieurs structures D3DHAL_DP2RENDERSTATE sont analysées à partir de la mémoire tampon de commandes par le rappel D3dDrawPrimitives2 lorsque le membre bCommand de la structure D3DHAL_DP2COMMAND est défini sur D3DDP2OP_RENDERSTATE et sont utilisées pour définir l’état de rendu approprié.

Syntaxe

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

Membres

RenderState

Spécifie un D3DRENDERSTATETYPE type énuméré qui indique l’état de rendu à mettre à jour. Les états de rendu demandés au niveau de l’application sont décrits dans la documentation du Kit de développement logiciel (SDK) DirectX. Les états de rendu utilisés exclusivement par les pilotes sont décrits dans D3DRENDERSTATETYPE.

dvState

Spécifie la valeur que le pilote doit mettre à jour l’état de rendu identifié par le membre RenderState avec. Ce membre est valide lorsque RenderState nécessite un D3DVALUE.

dwState

Spécifie la valeur vers laquelle le pilote doit mettre à jour l’état de rendu identifié par RenderState . Ce membre est valide lorsque RenderState nécessite un DWORD.

Remarques

D3dDrawPrimitives2 doit traiter wStateCount D3DHAL_DP2RENDERSTATE structures à partir de la mémoire tampon de commandes. La valeur de wStateCount est spécifiée dans la structure D3DHAL_DP2COMMAND.

Pour chaque structure D3DHAL_DP2RENDERSTATE, D3dDrawPrimitives2 doit mettre à jour l’état de rendu privé du pilote et le tableau d’état de rendu vers lequel pointe le membre lpdwRStates de D3DHAL_DRAWPRIMITIVES2DATA . L’élément à mettre à jour dans le tableau d’états de rendu public est lpdwRStates[RenderState].

L’illustration suivante montre une partie d’un exemple de mémoire tampon de commandes contenant une commande D3DDP2OP_RENDERSTATE et deux structures D3DHAL_DP2RENDERSTATE. Le pilote doit mettre à jour lpdwRStates[D3DRENDERSTATE_FILLMODE] pour être D3DFILL_SOLID et lpdwRStates[D3DRENDERSTATE_SHADEMODE] doit être D3DSHADE_GOURAUD. Le pilote doit également mettre à jour son état privé en conséquence.

Figure montrant une mémoire tampon de commandes avec une commande D3DDP2OP_RENDERSTATE et deux structures D3DHAL_DP2RENDERSTATE Bien que les états de rendu dont les valeurs sont booléennes de type soient documentés comme acceptant uniquement TRUE(1) et FALSE(0), le runtime ne le valide pas et accepte toute valeur de sous-zéro comme true. L’exemple de pilote interprète cela strictement et interprète des valeurs autres que 1 comme étant TRUE. Toutefois, étant donné que le runtime n’offre pas de validation, votre pilote doit interpréter 0 comme FALSE et toute autre valeur sous-zéro comme TRUE. À cet égard, votre pilote ne doit pas imiter le comportement de l’exemple de pilote fourni.

Configuration requise

Condition requise Valeur
En-tête d3dhal.h (inclure D3dhal.h)

Voir aussi

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2