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

Vedi anche

Enumerazioni di base