Partager via


D3D10_SIGNATURE_PARAMETER_DESC structure (d3d10shader.h)

Décrit une signature de nuanceur.

Syntaxe

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;

Membres

SemanticName

Type : LPCSTR

Chaîne par paramètre qui identifie la façon dont les données seront utilisées. Consultez Sémantique (DirectX HLSL).

SemanticIndex

Type : UINT

Index sémantique qui modifie la sémantique. Permet de différencier différents paramètres qui utilisent la même sémantique.

Register

Type : UINT

Registre qui contiendra les données de cette variable.

SystemValueType

Type : D3D10_NAME

Chaîne prédéfinie qui détermine les fonctionnalités de certaines étapes de pipeline. Voir D3D10_NAME.

ComponentType

Type : D3D10_REGISTER_COMPONENT_TYPE

Type de données par composant stocké dans un registre. Voir D3D10_REGISTER_COMPONENT_TYPE. Chaque registre peut stocker jusqu’à quatre composants de données.

Mask

Type : BYTE

Masque qui indique les composants d’un registre qui sont utilisés.

ReadWriteMask

Type : BYTE

Masque qui indique si un composant donné n’est jamais écrit (si la signature est une signature de sortie) ou toujours lu (si la signature est une signature d’entrée). Le masque est une combinaison de valeurs D3D10_REGISTER_COMPONENT_TYPE .

Remarques

Un nuanceur peut prendre n entrées et produire des sorties m. L’ordre des paramètres d’entrée (ou de sortie), leurs types associés et toute sémantique attachée constituent la signature du nuanceur. Chaque nuanceur a une signature d’entrée et de sortie.

Lors de la compilation d’un nuanceur ou d’un effet, certains appels d’API valident les signatures du nuanceur (par exemple , D3D10CompileShader et D3D10CompileEffectFromMemory). Autrement dit, ils comparent la signature de sortie d’un nuanceur (comme un nuanceur de vertex) à la signature d’entrée d’un autre nuanceur (comme un nuanceur de pixels). Cela garantit qu’un nuanceur génère des données compatibles avec un nuanceur en aval qui consomme ces données. Compatible signifie qu’une signature de nuanceur est un sous-ensemble de correspondance exacte de la phase précédente du nuanceur. Correspondance exacte signifie que les types de paramètres et la sémantique doivent correspondre exactement. Sous-ensemble signifie qu’un paramètre qui n’est pas requis par une étape en aval n’a pas besoin d’inclure ce paramètre dans sa signature de nuanceur.

Obtenez une signature de nuanceur à partir d’un nuanceur ou d’un effet en appelant des API telles que ID3D10ShaderReflection ::GetInputParameterDesc ou ID3D10EffectShaderVariable ::GetInputSignatureElementDesc.

Configuration requise

Condition requise Valeur
En-tête d3d10shader.h

Voir aussi

Structures de nuanceur