D3D11_SUBRESOURCE_DATA 结构 (d3d11.h)

指定用于初始化子资源的数据。

语法

typedef struct D3D11_SUBRESOURCE_DATA {
  const void *pSysMem;
  UINT       SysMemPitch;
  UINT       SysMemSlicePitch;
} D3D11_SUBRESOURCE_DATA;

成员

pSysMem

类型: const void*

指向初始化数据的指针。

SysMemPitch

类型: UINT

从纹理一行的开头到下一行的距离) (字节。
系统内存间距仅用于 2D 和 3D 纹理数据,因为它对其他资源类型没有意义。 指定从 3D 纹理的一个 2D 切片的第一个像素到 SysMemSlicePitch 成员中该纹理中下一个 2D 切片的第一个像素的距离。

SysMemSlicePitch

类型: UINT

从一个深度级别开始到下一个深度级别) 的距离 ((以字节为单位)。
系统内存切片间距仅用于 3D 纹理数据,因为它对其他资源类型没有意义。

注解

此结构用于 (ID3D11Device::CreateBuffer) 和纹理的调用中创建缓冲区, (ID3D11Device::CreateTexture1DID3D11Device::CreateTexture2DID3D11Device::CreateTexture3D) 。 如果创建的资源不需要系统内存间距或系统内存切片间距,则可以使用这些成员传递大小信息,这可能会在调试创建资源的问题时有所帮助。

子资源是单个 mipmap 级别的图面。 可以将子资源数组传递给上述方法之一以创建资源。 子资源可以是 1D、2D 或 3D。 如何设置 D3D11_SUBRESOURCE_DATA 的成员取决于子资源是 1D、2D 还是 3D。

x、y 和 d 值都是从 0 开始的索引, BytesPerPixel 取决于像素格式。 对于被误用的 3D 图面,每个级别的深度切片数是上一个级别数的一半, (最小 1) 如果除以 2 会导致非整数,则向下舍入。

注意 应用程序不得依赖于 SysMemPitch 完全等于行中的纹素数乘以纹素大小。 在某些情况下, SysMemPitch 将包含填充,以跳过行中的其他数据。 这可以是对齐的填充,也可以是较大纹理的子部分。 例如, D3D11_SUBRESOURCE_DATA 结构可以表示 128 乘 128 纹理的 32 乘 32 子部分。 SysMemSlicePitch 的值将反映 SysMemPitch 中包含的任何填充。
 

要求

要求
Header d3d11.h

另请参阅

资源结构