ID3D11Device3::CreateTexture2D1 方法 (d3d11_3.h)

创建 2D 纹理

语法

HRESULT CreateTexture2D1(
  [in]            const D3D11_TEXTURE2D_DESC1  *pDesc1,
  [in, optional]  const D3D11_SUBRESOURCE_DATA *pInitialData,
  [out, optional] ID3D11Texture2D1             **ppTexture2D
);

参数

[in] pDesc1

类型: const D3D11_TEXTURE2D_DESC1*

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

[in, optional] pInitialData

类型: const D3D11_SUBRESOURCE_DATA*

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

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

可以使用以下计算,根据 pDesc1 指向的 D3D11_TEXTURE2D_DESC1 结构的 MipLevelsArraySize 成员中的值来确定此数组的大小:

MipLevels * ArraySize

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

[out, optional] ppTexture2D

类型: ID3D11Texture2D1**

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

返回值

类型: HRESULT

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

注解

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

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

对于具有完整 mipmap 链的 32 x 32 纹理, pInitialData 数组具有以下 6 个元素:

  • pInitialData[0] = 32x32
  • pInitialData[1] = 16x16
  • pInitialData[2] = 8x8
  • pInitialData[3] = 4x4
  • pInitialData[4] = 2x2
  • pInitialData[5] = 1x1

要求

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

另请参阅

ID3D11Device3