Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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_0Valeur : 0 Indique le composant de retour 0 (rouge). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1Valeur : 1 Indique le composant de retour 1 (vert). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2Valeur : 2 Indique le composant de retour 2 (bleu). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3Valeur : 3 Indique le composant de retour 3 (alpha). |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0Valeur : 4 Indique de forcer la valeur résultante à 0. |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1Valeur : 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 |