enumerazione D3D12_SHADER_COMPONENT_MAPPING (d3d12.h)
Specifica il modo in cui la memoria viene instradata da una visualizzazione risorsa shader (SRV).
Sintassi
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
} ;
Costanti
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0 Valore: 0 Indica il componente restituito 0 (rosso). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1 Valore: 1 Indica il componente restituito 1 (verde). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2 Valore: 2 Indica il componente restituito 2 (blu). |
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3 Valore: 3 Indica il componente restituito 3 (alfa). |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0 Valore: 4 Indica la forzatura del valore risultante su 0. |
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1 Valore: 5 Indica la forzatura del valore risultante 1. Il valore di forza 1 è 0x1 o 1,0f a seconda del tipo di formato per tale componente nel formato di origine. |
Commenti
Questa enumerazione consente al SRV di selezionare il modo in cui la memoria viene instradata ai quattro componenti restituiti in uno shader dopo un recupero della memoria. Le opzioni per ogni componente shader [0..3] (corrispondente a RGBA) sono: componente 0..3 dal risultato di recupero SRV o forza 0 o forza 1.
Il mapping predefinito 1:1 può essere indicato specificando D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING, altrimenti è possibile specificare un mapping arbitrario usando la macro D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING.
Vedere qui di seguito.
Si noti che segue.
#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)
Requisiti
Requisito | Valore |
---|---|
Intestazione | d3d12.h |