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 (alpha) 。
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_0
值: 4
指示强制将结果值设置为 0。
D3D12_SHADER_COMPONENT_MAPPING_FORCE_VALUE_1
值: 5
指示强制结果值 1。 强制 1 的值是 0x1 或 1.0f,具体取决于源格式中该组件的格式类型。

注解

此枚举允许 SRV 选择在提取内存后如何将内存路由到着色器中的四个返回组件。 对应于 RGBA) 的每个着色器组件 [0..3] (的选项为:SRV 提取结果中的组件 0..3,或者强制 0 或强制 1。

可以通过指定 D3D12_DEFAULT_SHADER_4_COMPONENT_MAPPING来指示默认的 1:1 映射,否则可以使用宏 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)

要求

要求
Header d3d12.h

另请参阅

核心枚举