Verarbeiten von Shadercodes

Der Benutzermodusanzeigetreiber verwendet Vertexdeklarationen und die Token in jedem einzelnen Pixel- und Vertex-Shadercode, um Shaderassen zu programmieren.

Der Benutzermodusanzeigetreiber empfängt Vertex- und Pixel-Shadercode, wenn die Microsoft Direct3D-Runtime die CreateVertexShaderFunc - bzw . CreatePixelShader-Funktionen des Treibers aufruft. Der Benutzermodusanzeigetreiber empfängt Vertexdeklarationen, wenn die Runtime die CreateVertexShaderDecl-Funktion des Treibers aufruft. Die Vertexdeklarationen bestehen aus Arrays von D3DDDIVERTEXELEMENT-Strukturen . Der Benutzermodusanzeigetreiber konvertiert Shadercode und Vertex-Shaderdeklarationen in ein hardwarespezifisches Format und verknüpft den Shadercode und die Deklarationen mit Shader- und Deklarationshandles. Die Runtime verwendet die erstellten Handles in Aufrufen der Funktionen SetVertexShaderDecl, SetVertexShaderFunc und SetPixelShader , um die Vertex-Shaderdeklaration und die Vertex- und Pixel-Shader so festzulegen, dass sie von allen nachfolgenden Zeichnungsvorgängen verwendet werden.

Weitere Informationen zum Format eines einzelnen Shadercodes und zu den Token, aus denen jeder Shadercode besteht, finden Sie unter Direct3D-Shadercodes.

Hinweis Wenn eine Anwendung Vertex-Shader, Pixel-Shader und Vertexdeklarationen erstellt, enden der Shadercode und die Deklaration für jede Anwendung mit einem Endtoken. Wenn die Direct3D-Runtime wiederum Vertex- und Pixel-Shadererstellungsanforderungen an den Anzeigetreiber für den Benutzermodus übergibt, endet der Vertex- und Pixel-Shadercode, der die Anforderungen begleitet, mit Endtoken. Wenn die Runtime jedoch Vertexdeklarationserstellungsanforderungen übergibt, enden die Vertexdeklarationen, die den Anforderungen beiliegen, nicht mit Endtoken.