Freigeben über


D3DHAL_DP2VERTEXSHADER Struktur (d3dhal.h)

Nur DirectX 8.0 und höhere Versionen.

Die D3DHAL_DP2VERTEXSHADER Struktur legt den aktuellen Vertex-Shader fest oder löscht einen Vertex-Shader, abhängig von der opcode empfangen (D3DDP2OP_SETVERTEXSHADER oder D3DDP2OP_DELETEVERTEXSHADER) durch D3dDrawPrimitives2.

Syntax

typedef struct _D3DHAL_DP2VERTEXSHADER {
  DWORD dwHandle;
} D3DHAL_DP2VERTEXSHADER;

Angehörige

dwHandle

Ein Ziehpunkt für die Anzeige.

Bemerkungen

Alle DirectX 8.0-Ebenentreiber müssen das D3DDP2OP_SETVERTEXSHADER-Token unterstützen, da es gesendet wird, auch wenn der Treiber keine programmierbare Vertexverarbeitung unterstützt. In diesem Fall ist der Shaderhandle jedoch immer ein FVF-Code, der die feste Funktionsverarbeitung der Vertexdaten angibt. Der Treiber sollte den FVF-Code verwenden, der im dwHandle Member als Format der Vertexdaten in Datenstrom 0 gespeichert ist. Ein Treiber, der die programmierbare Vertexverarbeitung unterstützt, muss das Handle untersuchen, um festzustellen, ob er auf einen shader verweist, der zuvor mit D3DDP2OP_CREATEVERTEXSHADER oder einem FVF-Code erstellt wurde und die entsprechende Aktion ausführt.

Pixel- und Vertex-Shader sind orthogonal. Wenn daher ein älteren FVF-Code als aktueller Vertex-Shader ausgewählt wird, bedeutet dies keine legacy-Pixelverarbeitung. Um die Pixelverarbeitung auf einen unterprogrammierbaren Modus zurückzusetzen, muss der aktuelle Pixelshader auch auf Null festgelegt werden. Achten Sie darauf, dass im Treiber nur der Vertexverarbeitungszustand auf einen festen Funktionsmodus und nicht auf den Pixelverarbeitungszustand zurückgesetzt wird, wenn der Vertex-Shader auf einen FVF-Code festgelegt ist.

Wenn Sie von der Verarbeitung fester Funktionen zur programmierbaren Vertexverarbeitung wechseln, sollten die Werte des älteren Renderzustands und der Matrizen beibehalten werden. Wenn und wenn ein Wechsel von programmierbarer zu fester Funktionsvertexverarbeitung erfolgt (der Treiber empfängt eine D3DDP2OP_SETVERTEXSHADER mit einem FVF als Shaderhandle), sollte dieser beibehaltene Zustand wiederhergestellt werden.

Beim Wechseln zwischen programmierbaren Shadern sollte jedes Konstantenregister, das einen in der Definition dieses Shaders angegebenen Wert enthält, auf diesen Wert festgelegt werden. Die Werte aller anderen Konstantenregister sollten unverändert bleiben.

Für D3DDP2OP_SETVERTEXSHADERDECL Vorgänge gibt die Laufzeit einen älteren FVF-Code oder ein DirectX 9.0-Deklarationshandle im dwHandle Member an. Die Laufzeit gibt ein DirectX 9.0-Deklarationshandle an, indem Bit 0 des Handles festgelegt wird. Bei D3DDP2OP_SETVERTEXSHADERFUNC Vorgängen legt die Laufzeit dwHandle- auf Null fest, um eine pipeline mit fester Funktion anzugeben.

Anforderungen

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

Siehe auch

D3DDP2OP_CREATEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADER

D3DDP2OP_DELETEVERTEXSHADERDECL

D3DDP2OP_DELETEVERTEXSHADERFUNC

D3DDP2OP_SETSTREAMSOURCE

D3DDP2OP_SETSTREAMSOURCEUM

D3DDP2OP_SETVERTEXSHADER

D3DDP2OP_SETVERTEXSHADERDECL

D3DDP2OP_SETVERTEXSHADERFUNC

D3DHAL_DP2CREATEVERTEXSHADER

D3DHAL_DP2SETVERTEXSHADERCONST

D3dDrawPrimitives2