D3D10_SIGNATURE_PARAMETER_DESC-Struktur (d3d10shader.h)
Beschreibt eine Shadersignatur.
Syntax
typedef struct _D3D10_SIGNATURE_PARAMETER_DESC {
LPCSTR SemanticName;
UINT SemanticIndex;
UINT Register;
D3D10_NAME SystemValueType;
D3D10_REGISTER_COMPONENT_TYPE ComponentType;
BYTE Mask;
BYTE ReadWriteMask;
} D3D10_SIGNATURE_PARAMETER_DESC;
Member
SemanticName
Typ: LPCSTR
Eine Zeichenfolge pro Parameter, die angibt, wie die Daten verwendet werden. Siehe Semantik (DirectX HLSL).
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: D3D10_NAME
Eine vordefinierte Zeichenfolge, die die Funktionalität bestimmter Pipelinephasen bestimmt. Siehe D3D10_NAME.
ComponentType
Typ: D3D10_REGISTER_COMPONENT_TYPE
Der Datentyp pro Komponente, der in einem Register gespeichert ist. Siehe D3D10_REGISTER_COMPONENT_TYPE. 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
Mask, 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). Die Maske ist eine Kombination aus D3D10_REGISTER_COMPONENT_TYPE Werten.
Hinweise
Ein Shader kann n Eingaben annehmen und m-Ausgaben erzeugen. Die Reihenfolge der Eingabe- oder Ausgabeparameter, die zugehörigen Typen und alle angefügten Semantiken bilden die Shadersignatur. Jeder Shader verfügt über eine Eingabe- und eine Ausgabesignatur.
Beim Kompilieren eines Shaders oder Effekts ruft einige API-Instanzen auf, die Shadersignaturen überprüfen (z. B. D3D10CompileShader und D3D10CompileEffectFromMemory). Das heißt, sie vergleichen die Ausgabesignatur eines Shaders (wie einen Vertexshader) 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 verwendet. Kompatibel bedeutet, dass eine Shadersignatur eine exakt übereinstimmende Teilmenge der vorherigen Shaderphase ist. Genaue Ü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 einem Effekt ab, indem Sie APIs wie ID3D10ShaderReflection::GetInputParameterDesc oder ID3D10EffectShaderVariable::GetInputSignatureElementDesc aufrufen.
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d10shader.h |