D3D11_SIGNATURE_PARAMETER_DESC-Struktur (d3d11shader.h)

Beschreibt eine Shadersignatur.

Syntax

typedef struct _D3D11_SIGNATURE_PARAMETER_DESC {
  LPCSTR                      SemanticName;
  UINT                        SemanticIndex;
  UINT                        Register;
  D3D_NAME                    SystemValueType;
  D3D_REGISTER_COMPONENT_TYPE ComponentType;
  BYTE                        Mask;
  BYTE                        ReadWriteMask;
  UINT                        Stream;
  D3D_MIN_PRECISION           MinPrecision;
} D3D11_SIGNATURE_PARAMETER_DESC;

Member

SemanticName

Typ: LPCSTR

Eine Zeichenfolge pro Parameter, die angibt, wie die Daten verwendet werden. Weitere Informationen finden Sie unter Semantik.

SemanticIndex

Typ: UINT

Semantischer Index, der die Semantik ändert. Wird verwendet, um verschiedene Parameter zu unterscheiden, die dieselbe Semantik verwenden.

Register

Typ: UINT

Das Register, das die Daten dieser Variablen enthält.

SystemValueType

Typ: D3D_NAME

Ein D3D_NAME typisierter Wert, der eine vordefinierte Zeichenfolge identifiziert, die die Funktionalität bestimmter Pipelinephasen bestimmt.

ComponentType

Typ: D3D_REGISTER_COMPONENT_TYPE

Ein D3D_REGISTER_COMPONENT_TYPE typisierter Wert, der den komponentenspezifischen Datentyp identifiziert, der in einem Register gespeichert ist. Jedes Register kann bis zu vier Komponenten von Daten speichern.

Mask

Typ: BYTE

Mask, die angibt, welche Komponenten eines Registers verwendet werden.

ReadWriteMask

Typ: BYTE

Maske, die angibt, ob eine bestimmte Komponente nie geschrieben (wenn die Signatur eine Ausgabesignatur ist) oder immer gelesen wird (wenn es sich bei der Signatur um eine Eingabesignatur handelt).

Stream

Typ: UINT

Gibt an, welchen Stream der Geometrie-Shader für den Signaturparameter verwendet.

MinPrecision

Typ: D3D_MIN_PRECISION

Ein D3D_MIN_PRECISION typisierter Wert, der die minimale gewünschte Interpolationsgenauigkeit angibt. Weitere Informationen finden Sie unter Verwenden der minimalen HLSL-Genauigkeit.

Hinweise

Ein Shader kann n-Eingaben annehmen und m-Ausgaben erzeugen. Die Reihenfolge der Eingabe- (oder Ausgabe)-Parameter, der zugehörigen Typen und der angefügten Semantik bilden die Shadersignatur. Jeder Shader verfügt über eine Eingabe- und eine Ausgabesignatur.

Beim Kompilieren eines Shaders oder effekts überprüfen einige API-Aufrufe Shadersignaturen. Das heißt, sie vergleichen die Ausgabesignatur eines Shaders (z. B. einen Vertex-Shader) mit der Eingabesignatur eines anderen Shaders (z. B. einem Pixelshader). Dadurch wird sichergestellt, dass ein Shader Daten ausgibt, die mit einem Downstream-Shader kompatibel sind, der diese Daten verbraucht. Kompatibel bedeutet, dass eine Shadersignatur eine exakt übereinstimmende Teilmenge der vorherigen Shaderphase ist. Exakte Übereinstimmung bedeutet, dass Parametertypen und Semantik genau übereinstimmen müssen. Teilmenge bedeutet, dass ein Parameter, der für eine Downstreamphase nicht erforderlich ist, diesen Parameter nicht in seine Shadersignatur einschließen muss.

Rufen Sie eine Shadersignatur aus einem Shader oder effekt ab, indem Sie APIs wie ID3D11ShaderReflection::GetInputParameterDesc aufrufen.

Anforderungen

Anforderung Wert
Header d3d11shader.h

Weitere Informationen

Shader-Strukturen