D3DHAL_DP2RENDERSTATE Struktur (d3dhal.h)

Mindestens eine D3DHAL_DP2RENDERSTATE Strukturen werden vom D3dDrawPrimitives2-Rückruf aus dem Befehlspuffer analysiert, wenn der bCommand-Member der D3DHAL_DP2COMMAND-Struktur auf D3DDP2OP_RENDERSTATE festgelegt ist und zum Festlegen des entsprechenden Renderzustands verwendet wird.

Syntax

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

Member

RenderState

Gibt einen D3DRENDERSTATETYPE aufgezählten Typ an, der den zu aktualisierenden Renderzustand angibt. Renderzustände, die auf Anwendungsebene angefordert werden, werden in der DirectX SDK-Dokumentation beschrieben. Renderzustände, die ausschließlich von Treibern verwendet werden, werden in D3DRENDERSTATETYPE beschrieben.

dvState

Gibt den Wert an, mit dem der Treiber den vom RenderState-Member identifizierten Renderzustand aktualisieren soll. Dieser Member ist gültig, wenn RenderState eine D3DVALUE erfordert.

dwState

Gibt den Wert an, in den der Treiber den von RenderState identifizierten Renderzustand aktualisieren soll. Dieser Member ist gültig, wenn RenderState ein DWORD erfordert.

Hinweise

D3dDrawPrimitives2 sollte wStateCount D3DHAL_DP2RENDERSTATE Strukturen aus dem Befehlspuffer verarbeiten. Der Wert von wStateCount wird in der D3DHAL_DP2COMMAND-Struktur angegeben.

Für jede D3DHAL_DP2RENDERSTATE Struktur sollte D3dDrawPrimitives2 den privaten Renderzustand des Treibers und das Renderzustandsarray aktualisieren, auf das das lpdwRStates-MitgliedD3DHAL_DRAWPRIMITIVES2DATA . Das Element, das im Array des öffentlichen Renderzustands aktualisiert werden soll, ist lpdwRStates[RenderState].

Die folgende Abbildung zeigt einen Teil eines Beispielbefehlspuffers, der einen D3DDP2OP_RENDERSTATE-Befehl und zwei D3DHAL_DP2RENDERSTATE-Strukturen enthält. Der Treiber sollte lpdwRStates[D3DRENDERSTATE_FILLMODE] aktualisieren, um D3DFILL_SOLID und lpdwRStates[D3DRENDERSTATE_SHADEMODE] zu D3DSHADE_GOURAUD. Der Treiber sollte auch seinen privaten Zustand entsprechend aktualisieren.

Abbildung eines Befehlspuffers mit einem D3DDP2OP_RENDERSTATE-Befehl und zwei D3DHAL_DP2RENDERSTATE Strukturen Obwohl Renderzustände, deren Werte vom Typ boolesch sind, als nur TRUE(1) und FALSE(0) akzeptiert werden, überprüft die Runtime dies nicht und akzeptiert jeden Unterzerowert als true. Der Beispieltreiber interpretiert dies streng und interpretiert andere Werte als 1 als TRUE. Da die Runtime jedoch keine Validierung bietet, sollte Ihr Treiber 0 als FALSE und alle anderen Unterzero-Werte als TRUE interpretieren. In dieser Hinsicht sollte Ihr Treiber das Verhalten des bereitgestellten Beispieltreibers nicht imitieren.

Anforderungen

Anforderung Wert
Header d3dhal.h (einschließlich D3dhal.h)

Weitere Informationen

D3DDP2OP_RENDERSTATE

D3DHAL_DP2COMMAND

D3DHAL_DRAWPRIMITIVES2DATA

D3DRENDERSTATETYPE

D3dDrawPrimitives2