D3D12_SHADER_COMPONENT_MAPPING-Enumeration (d3d12.h)
Gibt an, wie arbeitsspeicher durch eine Shaderressourcenansicht (SRV) weitergeleitet wird.
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
} ;
Konstanten
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 Wert: 0 Gibt die Rückgabekomponente 0 (rot) an. |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 Wert: 1 Gibt rückgabekomponente 1 (grün) an. |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 Wert: 2 Gibt rückgabekomponente 2 (blau) an. |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 Wert: 3 Gibt die Rückgabekomponente 3 (Alpha) an. |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 Wert: 4 Gibt an, dass der resultierende Wert auf 0 erzwungen wird. |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 Wert: 5 Gibt an, dass der resultierende Wert 1 erzwungen wird. Der Wert des Erzwingens von 1 ist entweder 0x1 oder 1,0f abhängig vom Formattyp für diese Komponente im Quellformat. |
Hinweise
Mit dieser Enumeration kann die SRV auswählen, wie der Arbeitsspeicher nach einem Speicherabruf an die vier Rückgabekomponenten in einem Shader weitergeleitet wird. Die Optionen für jede Shaderkomponente [0..3] (entsprechend RGBA) sind: Komponente 0..3 aus dem SRV-Abrufergebnis oder Erzwingen von 0 oder Kraft 1.
Die Standardmäßige 1:1-Zuordnung kann durch Angabe D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING angegeben werden, andernfalls kann eine beliebige Zuordnung mithilfe des Makros D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING angegeben werden.
Siehe unten.
Beachten Sie die folgenden Definierten.
#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)
Anforderungen
Anforderung | Wert |
---|---|
Header | d3d12.h |