C++ D3D11_BUFFER_SRV-如何使用它?
在DirectX11中,创建缓冲区的着色器资源视图时;我们必须填写C++ D3D11_BUFFER_SRV-如何使用它?,c++,directx,buffer,directx-11,C++,Directx,Buffer,Directx 11,在DirectX11中,创建缓冲区的着色器资源视图时;我们必须填写D3D11\u BUFFER\u SRV结构 结构如下所示: typedef struct D3D11_BUFFER_SRV { union { UINT FirstElement; UINT ElementOffset; }; union { UINT NumElements; UINT ElementWidth; }; } D3D11_BUFFER_SRV; 我似乎找不到任何关
D3D11\u BUFFER\u SRV
结构
结构如下所示:
typedef struct D3D11_BUFFER_SRV {
union {
UINT FirstElement;
UINT ElementOffset;
};
union {
UINT NumElements;
UINT ElementWidth;
};
} D3D11_BUFFER_SRV;
我似乎找不到任何关于我应该在每个联盟中使用哪个字段、何时使用,甚至是它们真正的含义的文档。MSDN页面()对每个字段都有相当明显的描述,但没有什么帮助。据我所知,对于结构化缓冲区,D3D11始终将这些并集中的值解释为第一个索引和条目数,这意味着您始终希望使用
第一个元素
和数值
ElementWidth
似乎不需要,因为元素大小已使用D3D11\u BUFFER\u DESC::StructureByteStride
声明。
另外,文档也有误导性,因为FirstElement
实际上是第一个元素的索引,而不是以字节为单位的偏移量
其他两个值真的没有理由。我唯一的猜测是,这个结构是打算在其他地方使用的,可能会与一个标志一起使用,该标志表示如何解释工会,但我从未见过它使用任何其他方式