перечисление D3D12_SHADER_COMPONENT_MAPPING (d3d12.h)

Указывает, как память направляется представлением ресурсов шейдера (SRV).

Синтаксис

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

Константы

 
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_0
Значение: 0
Указывает возвращаемый компонент 0 (красный цвет).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_1
Значение: 1
Указывает возвращаемый компонент 1 (зеленый).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_2
Значение: 2
Указывает возвращаемый компонент 2 (синий).
D3D12_SHADER_COMPONENT_MAPPING_FROM_MEMORY_COMPONENT_3
Значение: 3
Указывает возвращаемый компонент 3 (альфа).
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
Значение: 4
Указывает, что результирующее значение равно 0.
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
Значение: 5
Указывает принудительное применение результирующего значения 1. Значение принудительного применения 1 равно 0x1 или 1,0f в зависимости от типа формата для этого компонента в исходном формате.

Комментарии

Это перечисление позволяет SRV выбрать способ перенаправления памяти к четырем возвращаемым компонентам в шейдере после получения памяти. Параметры для каждого компонента шейдера [0..3] (соответствующий RGBA) : компонент 0..3 из результата выборки SRV или принудительное значение 0 или сила 1.

Сопоставление по умолчанию 1:1 можно указать с помощью D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING, в противном случае произвольное сопоставление можно указать с помощью макроса D3D12_ENCODE_SHADER_4_COMPONENT_MAPPING.

См. ниже.

Обратите внимание на следующие определения.

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

Требования

Требование Значение
Заголовок d3d12.h

См. также раздел

Базовые перечисления