Partager via


énumération D3D12_SHADER_COMPONENT_MAPPING (d3d12.h)

Spécifie la façon dont la mémoire est acheminée par un mode de ressources de nuanceur (SRV).

Syntax

typedef enum D3D12_SHADER_COMPONENT_MAPPING {
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 = 0,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 = 1,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 = 2,
  D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 = 3,
  D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 = 4,
  D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 = 5
} ;

Constantes

 
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
Valeur : 0
Indique le composant de retour 0 (rouge).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
Valeur : 1
Indique le composant de retour 1 (vert).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
Valeur : 2
Indique le composant de retour 2 (bleu).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
Valeur : 3
Indique le composant de retour 3 (alpha).
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
Valeur : 4
Indique de forcer la valeur résultante à 0.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
Valeur : 5
Indique forcer la valeur 1 résultante. La valeur de forçage 1 est 0x1 ou 1.0f selon le type de format de ce composant au format source.

Remarques

Cette énumération permet au SRV de sélectionner la façon dont la mémoire est acheminée vers les quatre composants de retour dans un nuanceur après une récupération de mémoire. Les options pour chaque composant de nuanceur [0..3] (correspondant à RVBA) sont les suivantes : composant 0..3 à partir du résultat d’extraction SRV ou force 0 ou force 1.

Le mappage 1 :1 par défaut peut être indiqué en spécifiant D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING, sinon un mappage arbitraire peut être spécifié à l’aide de la macro D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING.

Voir ci-dessous.

Notez que ce qui suit définit.

#define D3D12_SHADER_COMPONENT_MAPPING_MASK 0x7
#define D3D12_SHADER_COMPONENT_MAPPING_SHIFT 3
#define D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES \
    (1<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*4))
#define D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(Src0,Src1,Src2,Src3) \
    ((((Src0)&D3D12_SHADER_COMPONENT_MAPPING_MASK)| \
    (((Src1)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<D3D12_SHADER_COMPONENT_MAPPING_SHIFT)| \
    (((Src2)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*2))| \
    (((Src3)&D3D12_SHADER_COMPONENT_MAPPING_MASK)<<(D3D12_SHADER_COMPONENT_MAPPING_SHIFT*3))| \
    D3D12_SHADER_COMPONENT_MAPPING_ALWAYS_SET_BIT_AVOIDING_ZEROMEM_MISTAKES))
#define D3D12_DECODE_SHADER_4_COMPONENT_MAPPING(ComponentToExtract,Mapping) \
    ((D3D12_SHADER_COMPONENT_MAPPING)(Mapping >> (D3D12_SHADER_COMPONENT_MAPPING_SHIFT*ComponentToExtract) & D3D12_SHADER_COMPONENT_MAPPING_MASK))
#define D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING(0,1,2,3)

Configuration requise

Condition requise Valeur
En-tête d3d12.h

Voir aussi

Principales énumérations