struttura D3D10_SIGNATURE_PARAMETER_DESC (d3d10shader.h)
Descrive una firma dello shader.
Sintassi
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;
Members
SemanticName
Tipo: LPCSTR
Stringa per parametro che identifica la modalità di utilizzo dei dati. Vedere Semantics (DirectX HLSL).
SemanticIndex
Tipo: UINT
Indice semantico che modifica la semantica. Usato per distinguere parametri diversi che usano la stessa semantica.
Register
Tipo: UINT
Registro che conterrà i dati di questa variabile.
SystemValueType
Tipo: D3D10_NAME
Stringa predefinita che determina la funzionalità di determinate fasi della pipeline. Vedere D3D10_NAME.
ComponentType
Tipo: D3D10_REGISTER_COMPONENT_TYPE
Tipo di dati per componente archiviato in un registro. Vedere D3D10_REGISTER_COMPONENT_TYPE. Ogni registro può archiviare fino a quattro componenti di dati.
Mask
Tipo: BYTE
Maschera che indica quali componenti di un registro vengono utilizzati.
ReadWriteMask
Tipo: BYTE
Maschera che indica se un determinato componente non viene mai scritto (se la firma è una firma di output) o sempre letta (se la firma è una firma di input). La maschera è una combinazione di valori D3D10_REGISTER_COMPONENT_TYPE .
Commenti
Uno shader può accettare n input e produrre m output. L'ordine dei parametri di input (o output), i relativi tipi associati e qualsiasi semantica associata costituiscono la firma dello shader. Ogni shader ha un input e una firma di output.
Quando si compila uno shader o un effetto, alcune chiamate API convalidano le firme dello shader, ad esempio D3D10CompileShader e D3D10CompileEffectFromMemory. Ovvero confrontano la firma di output di uno shader (ad esempio un vertex shader) con la firma di input di un altro shader (ad esempio un pixel shader). Ciò garantisce che uno shader restituisca dati compatibili con uno shader downstream che utilizza tali dati. Compatibile significa che una firma dello shader è un subset esatto della fase dello shader precedente. Corrispondenza esatta indica che i tipi di parametri e la semantica devono corrispondere esattamente. Il subset indica che un parametro non richiesto da una fase downstream non deve includere tale parametro nella firma dello shader.
Ottenere una firma shader da uno shader o da un effetto chiamando API come ID3D10ShaderReflection::GetInputParameterDesc o ID3D10EffectShaderVariable::GetInputSignatureElementDesc.
Requisiti
Requisito | Valore |
---|---|
Intestazione | d3d10shader.h |