é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 |