Bagikan melalui


enumerasi D3D12_SHADER_COMPONENT_MAPPING (d3d12.h)

Menentukan bagaimana memori dirutekan oleh tampilan sumber daya shader (SRV).

Sintaks

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
} ;

Konstanta

 
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
Nilai: 0
Menunjukkan komponen pengembalian 0 (merah).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
Nilai: 1
Menunjukkan komponen pengembalian 1 (hijau).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
Nilai: 2
Menunjukkan komponen pengembalian 2 (biru).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
Nilai: 3
Menunjukkan komponen pengembalian 3 (alfa).
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
Nilai: 4
Menunjukkan memaksa nilai yang dihasilkan ke 0.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
Nilai: 5
Menunjukkan memaksa nilai yang dihasilkan 1. Nilai memaksa 1 adalah 0x1 atau 1,0f tergantung pada jenis format untuk komponen tersebut dalam format sumber.

Keterangan

Enum ini memungkinkan SRV untuk memilih bagaimana memori dirutekan ke empat komponen pengembalian dalam shader setelah pengambilan memori. Opsi untuk setiap komponen shader [0..3] (sesuai dengan RGBA) adalah: komponen 0..3 dari hasil pengambilan SRV atau paksa 0 atau paksa 1.

Pemetaan default 1:1 dapat ditunjukkan dengan menentukan D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING, jika tidak, pemetaan arbitrer dapat ditentukan menggunakan makro D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING.

Lihat di bawah ini.

Perhatikan definisi berikut.

#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)

Persyaratan

Persyaratan Nilai
Header d3d12.h

Lihat juga

Enumerasi inti