IDirect3DDevice9::CreateTexture 方法 (d3d9.h)

创建纹理资源。

语法

HRESULT CreateTexture(
  [in]          UINT              Width,
  [in]          UINT              Height,
  [in]          UINT              Levels,
  [in]          DWORD             Usage,
  [in]          D3DFORMAT         Format,
  [in]          D3DPOOL           Pool,
  [out, retval] IDirect3DTexture9 **ppTexture,
  [in]          HANDLE            *pSharedHandle
);

参数

[in] Width

类型: UINT

纹理的顶层宽度(以像素为单位)。 后续级别的像素维度将是上一个级别的像素维度的一半的截断值, (独立) 。 每个维度的固定大小为 1 个像素。 因此,如果除以 2 的结果为 0,则将改用 1。

[in] Height

类型: UINT

纹理的顶层高度(以像素为单位)。 后续级别的像素维度将是上一个级别的像素维度的一半的截断值, (独立) 。 每个维度的固定大小为 1 个像素。 因此,如果除以 2 的结果为 0,则将改用 1。

[in] Levels

类型: UINT

纹理中的级别数。 如果为零,Direct3D 将为支持错误纹理的硬件生成 1 x 1 像素的所有纹理子级别。 调用 IDirect3DBaseTexture9::GetLevelCount 以查看生成的级别数。

[in] Usage

类型: DWORD

使用情况可以为 0,这表示没有使用值。 但是,如果需要使用,请使用一个或多个 D3DUSAGE 常量的组合。 最好将 usage 参数与 IDirect3D9::CreateDevice 中的行为标志匹配。

[in] Format

类型: D3DFORMAT

D3DFORMAT 枚举类型的成员,描述纹理中所有级别的格式。

[in] Pool

类型: D3DPOOL

D3DPOOL 枚举类型的成员,描述应放置纹理的内存类。

[out, retval] ppTexture

类型: IDirect3DTexture9**

指向 IDirect3DTexture9 接口的指针,表示创建的纹理资源。

[in] pSharedHandle

类型: 句柄*

保留。 将此参数设置为 NULL。 此参数可用于 Direct3D 9 for Windows Vista 共享资源

返回值

类型: HRESULT

如果方法成功,则返回值D3D_OK。 如果方法失败,则返回值可以是以下值之一:D3DERR_INVALIDCALL、D3DERR_OUTOFVIDEOMEMORY E_OUTOFMEMORY。

备注

应用程序可以通过使用 D3DUSAGE_AUTOGENMIPMAP 调用 IDirect3D9::CheckDeviceFormat,发现对特定格式的 Mipmaps (Direct3D 9) 自动生成的支持。 如果 IDirect3D9::CheckDeviceFormat 返回D3DOK_NOAUTOGEN, IDirect3DDevice9::CreateTexture 将成功,但它将返回一级纹理。

在 Windows Vista 中,CreateTexture 可以从系统内存指针创建纹理,使应用程序能够更灵活地使用、分配和删除系统内存。 例如,应用程序可以传递 GDI 系统内存位图指针,并获取其周围的 Direct3D 纹理接口。 将系统内存指针与 CreateTexture 结合使用具有以下限制。

  • 纹理的间距必须等于宽度乘以每个像素的字节数。
  • 仅支持具有单个 mipmap 级别的纹理。 Levels 参数必须为 1。
  • 参数必须 D3DPOOL_SYSTEMMEM。
  • pSharedHandle 参数必须是指向可以保存系统内存点的缓冲区的有效指针;*pSharedHandle 必须是指向系统内存的有效指针,大小(以纹理宽度 * 纹理高度 * 每像素纹理格式的字节为单位)。

要求

   
目标平台 Windows
标头 d3d9.h (包括 D3D9.h)
Library D3D9.lib

请参阅

D3DXCreateTexture

D3DXCreateTextureFromFile

D3DXCreateTextureFromFileEx

D3DXCreateTextureFromFileInMemory

D3DXCreateTextureFromFileInMemoryEx

D3DXCreateTextureFromResource

D3DXCreateTextureFromResourceEx

IDirect3DDevice9