ID3D11Device::CreateTexture3D 方法 (d3d11.h)
创建单个 3D 纹理。
语法
HRESULT CreateTexture3D(
[in] const D3D11_TEXTURE3D_DESC *pDesc,
[in, optional] const D3D11_SUBRESOURCE_DATA *pInitialData,
[out, optional] ID3D11Texture3D **ppTexture3D
);
参数
[in] pDesc
类型: const D3D11_TEXTURE3D_DESC*
指向描述 3D 纹理资源的 D3D11_TEXTURE3D_DESC 结构的指针。 若要创建可在运行时解释为不同兼容格式的无类型资源,请在纹理说明中指定无类型格式。 若要自动生成 mipmap 级别,请将 mipmap 级别数设置为 0。
[in, optional] pInitialData
类型: const D3D11_SUBRESOURCE_DATA*
指向描述 3D 纹理资源的子资源的 D3D11_SUBRESOURCE_DATA 结构的数组的指针。 应用程序无法在创建 IMMUTABLE 资源时为 pInitialData 指定 NULL, (请参阅D3D11_USAGE) 。 如果资源是多重采样的, pInitialData 必须为 NULL ,因为多重采样资源在创建时无法使用数据进行初始化。
如果未将任何内容传递给 pInitialData,则资源内存的初始内容未定义。 在这种情况下,需要在读取资源之前以其他方式编写资源内容。
可以从 pDesc 指向的 D3D11_TEXTURE3D_DESC 结构的 MipLevels 成员中的值来确定此数组的大小。 不支持 3D 体积纹理数组。
有关此数组大小的详细信息,请参阅备注。
[out, optional] ppTexture3D
类型: ID3D11Texture3D**
指向缓冲区的指针,该缓冲区接收指向所创建纹理的 ID3D11Texture3D 接口的指针。 将此参数设置为 NULL 以验证其他输入参数, (如果其他输入参数通过验证) ,该方法将返回S_FALSE。
返回值
类型: HRESULT
如果方法成功,则返回代码S_OK。 有关失败的错误代码,请参阅 Direct3D 11 返回 代码。
注解
CreateTexture3D 创建一个 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 |
标头 | d3d11.h |
Library | D3D11.lib |