ID3D11Device3::CreateTexture3D1 方法 (d3d11_3.h)

创建 3D 纹理

语法

HRESULT CreateTexture3D1(
  [in]            const D3D11_TEXTURE3D_DESC1  *pDesc1,
  [in, optional]  const D3D11_SUBRESOURCE_DATA *pInitialData,
  [out, optional] ID3D11Texture3D1             **ppTexture3D
);

参数

[in] pDesc1

类型: const D3D11_TEXTURE3D_DESC1*

指向描述 3D 纹理资源的 D3D11_TEXTURE3D_DESC1 结构的指针。 若要创建可在运行时解释为不同兼容格式的无类型资源,请在纹理说明中指定无类型格式。 若要自动生成 mipmap 级别,请将 mipmap 级别数设置为 0。

[in, optional] pInitialData

类型: const D3D11_SUBRESOURCE_DATA*

指向描述 3D 纹理资源的子资源的 D3D11_SUBRESOURCE_DATA 结构的数组的指针。 应用程序无法在创建 IMMUTABLE 资源时为 pInitialData 指定 NULL, (请参阅D3D11_USAGE) 。 如果资源是多重采样的, pInitialData 必须为 NULL ,因为多重采样资源在创建时无法使用数据进行初始化。

如果未将任何内容传递给 pInitialData,则资源内存的初始内容未定义。 在这种情况下,需要在读取资源之前以其他方式编写资源内容。

可以从 pDesc1 指向的 D3D11_TEXTURE3D_DESC1 结构的 MipLevels 成员中的值来确定此数组的大小。 不支持 3D 体积纹理数组。

有关此数组大小的详细信息,请参阅备注。

[out, optional] ppTexture3D

类型: ID3D11Texture3D1**

指向内存块的指针,该内存块接收指向所创建纹理的 ID3D11Texture3D1 接口的指针。 将此参数设置为 NULL 以验证其他输入参数, (如果其他输入参数通过 验证) ,该方法将返回S_FALSE。

返回值

类型: HRESULT

如果方法成功,则 返回代码S_OK。 有关失败的错误代码,请参阅 Direct3D 11 返回 代码。

备注

CreateTexture3D1 创建一个可以包含大量 3D 子资源的 3D 纹理资源。 纹理说明中指定了纹理数量。 资源中的所有纹理必须具有相同的格式、大小和 mipmap 级别数。

所有资源都由一个或多个子资源组成。 若要将数据加载到纹理中,应用程序最初可将数据作为 pInitialData 指向的D3D11_SUBRESOURCE_DATA结构数组提供,也可以使用 D3DX11CreateTextureFromFile 等 D3DX 纹理函数之一。

pInitialData 的每个元素都提供为给定错误级别定义的所有切片。 例如,对于具有完整 mipmap 链的 32 x 32 x 4 体积纹理,数组具有以下 6 个元素:

  • pInitialData[0] = 32x32,包含 4 个切片
  • pInitialData[1] = 16x16,包含 2 个切片
  • pInitialData[2] = 8x8,包含 1 个切片
  • pInitialData[3] = 4x4,包含 1 个切片
  • pInitialData[4] = 2x2,包含 1 个切片
  • pInitialData[5] = 1x1,包含 1 个切片

要求

   
最低受支持的客户端 Windows 10 [仅限桌面应用]
最低受支持的服务器 Windows Server 2016 [仅限桌面应用]
目标平台 Windows
标头 d3d11_3.h
Library D3D11.lib

另请参阅

ID3D11Device3