D3D12_DESCRIPTOR_RANGE1 是 Direct3D 12 中的结构体,用于描述描述符范围的扩展版本。以下是该结构体的定义:
typedef struct D3D12_DESCRIPTOR_RANGE1 {
  D3D12_DESCRIPTOR_RANGE_TYPE RangeType;
  UINT                        NumDescriptors;
  UINT                        BaseShaderRegister;
  UINT                        RegisterSpace;
  D3D12_DESCRIPTOR_RANGE_FLAGS Flags;
  UINT                        OffsetInDescriptorsFromTableStart;
} D3D12_DESCRIPTOR_RANGE1;

相比于 D3D12_DESCRIPTOR_RANGE,D3D12_DESCRIPTOR_RANGE1 多了一个 Flags 成员,用于设置描述符范围的标志。这个结构体的成员包括:

  •  RangeType: 描述符范围的类型,使用 D3D12_DESCRIPTOR_RANGE_TYPE 枚举值,表示是着色器资源视图描述符、常量缓冲区视图描述符、无序访问视图描述符还是采样器描述符。

  •  NumDescriptors: 描述符范围中包含的描述符数量。

  •  BaseShaderRegister: 描述符范围中的第一个着色器寄存器索引。

  •  RegisterSpace: 着色器寄存器空间。

  •  Flags: 描述符范围的标志,使用 D3D12_DESCRIPTOR_RANGE_FLAGS 枚举值。这可以包括描述符是否可见于所有着色器阶段等信息。

  •  OffsetInDescriptorsFromTableStart: 描述符相对于描述符表起始处的偏移量。


这个结构体同样通常在根签名(Root Signature)中的描述符表中使用。在创建根签名时,你需要使用这个结构体的信息来定义描述符范围。


转载请注明出处:http://www.zyzy.cn/article/detail/25920/Win32 API/D3d12.h/D3D12_DESCRIPTOR_RANGE1