D3DXCreateCubeTextureFromFileEx 函数

从文件创建立方体纹理。 这是比 D3DXCreateCubeTextureFromFile 更高级的函数。

语法

HRESULT D3DXCreateCubeTextureFromFileEx(
  _In_  LPDIRECT3DDEVICE9      pDevice,
  _In_  LPCTSTR                pSrcFile,
  _In_  UINT                   Size,
  _In_  UINT                   MipLevels,
  _In_  DWORD                  Usage,
  _In_  D3DFORMAT              Format,
  _In_  D3DPOOL                Pool,
  _In_  DWORD                  Filter,
  _In_  DWORD                  MipFilter,
  _In_  D3DCOLOR               ColorKey,
  _Out_ D3DXIMAGE_INFO         *pSrcInfo,
  _Out_ PALETTEENTRY           *pPalette,
  _Out_ LPDIRECT3DCUBETEXTURE9 *ppCubeTexture
);

参数

pDevice [in]

类型: LPDIRECT3DDEVICE9

指向 IDirect3DDevice9 接口的指针,表示要与立方体纹理关联的设备。

pSrcFile [in]

类型: LPCTSTR

指向指定文件名的字符串的指针。 如果编译器设置需要 Unicode,则数据类型 LPCTSTR 解析为 LPCWSTR。 否则,字符串数据类型解析为 LPCSTR。 请参阅“备注”。

大小 [in]

类型: UINT

立方体纹理的宽度和高度(以像素为单位)。 例如,如果立方体纹理是 8 像素 x 8 像素立方体,则此参数的值应为 8。 如果此值为 0 或 D3DX_DEFAULT,则维度取自文件。

MipLevels [in]

类型: UINT

请求的 mip 级别数。 如果此值为零或D3DX_DEFAULT,则会创建完整的 mipmap 链。

用法 [in]

类型: DWORD

0、D3DUSAGE_RENDERTARGET或D3DUSAGE_DYNAMIC。 将此标志设置为D3DUSAGE_RENDERTARGET表示该图面将用作呈现目标。 然后,可以将资源传递给 SetRenderTarget 方法的 pNewRenderTarget 参数。 如果指定了D3DUSAGE_RENDERTARGET,则应用程序应通过调用 CheckDeviceFormat 检查设备支持此操作。 D3DUSAGE_DYNAMIC指示应动态处理图面。 有关使用动态纹理的详细信息,请参阅 使用动态纹理

格式 [in]

类型: D3DFORMAT

D3DFORMAT 枚举类型的成员,描述多维数据集纹理的请求像素格式。 返回的立方体纹理的格式可能与 Format 指定的格式不同。 应用程序应检查返回的多维数据集纹理的格式。 如果 D3DFMT_UNKNOWN,则格式取自文件。 如果D3DFMT_FROM_FILE,则采用的格式与文件中的格式完全相同,如果这违反了设备功能,调用将失败。

[in]

类型: D3DPOOL

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

筛选器 [in]

类型: DWORD

一个或多个 D3DX_FILTER 常量的组合,用于控制图像的筛选方式。 为此参数指定D3DX_DEFAULT等效于指定D3DX_FILTER_TRIANGLE |D3DX_FILTER_DITHER。

MipFilter [in]

类型: DWORD

控制图像筛选方式的一个或多个 D3DX_FILTER 常量的组合。 为此参数指定D3DX_DEFAULT等效于指定D3DX_FILTER_BOX。 此外,使用位 27-31 指定要从 mipmap 链顶部 (跳过的 mip 级别数,) .dds 纹理加载到内存中时;这样,最多可以跳过 32 个级别。

ColorKey [in]

类型: D3DCOLOR

D3DCOLOR 值替换为透明黑色,或 0 表示禁用颜色键。 这始终是 32 位 ARGB 颜色,与源图像格式无关。 Alpha 非常重要,对于不透明颜色键,通常应设置为 FF。 因此,对于不透明的黑色,该值将等于 0xFF000000。

pSrcInfo [out]

类型: D3DXIMAGE_INFO*

指向要用源图像文件中数据的说明填充 的D3DXIMAGE_INFO 结构的指针,或 NULL

pPalette [out]

类型: PALETTEENTRY*

指向 PALETTEENTRY 结构的指针,表示要填充的 256 色调色板或 NULL

ppCubeTexture [out]

类型: LPDIRECT3DCUBETEXTURE9*

指向 IDirect3DCubeTexture9 接口的指针的地址,表示创建的立方体纹理对象。

返回值

类型: HRESULT

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

备注

编译器设置还确定函数版本。 如果定义了 Unicode,则函数调用将解析为 D3DXCreateCubeTextureFromFileExW。 否则,函数调用将解析为 D3DXCreateCubeTextureFromFileExA ,因为正在使用 ANSI 字符串。

此函数支持以下文件格式:.bmp、.dds、.dib、.hdr、.jpg、.pfm、.png、.ppm 和 .tga。 请参阅 D3DXIMAGE_FILEFORMAT

立方体纹理与其他表面的不同之处在于,它们是图面的集合。 若要使用立方体纹理调用 SetRenderTarget ,必须使用 GetCubeMapSurface 选择单个面,并将生成的图面传递给 SetRenderTarget

D3DXCreateCubeTextureFromFileEx 使用 DirectDraw surface (DDS) 文件格式。 使用 DirectX 纹理编辑器 (Dxtex.exe) ,可以从其他文件格式生成多维数据集贴图并将其保存为 DDS 文件格式。 可以从 DirectX SDK 获取Dxtex.exe并了解它。 有关 DirectX SDK 的信息,请参阅 DirectX SDK 在哪里?

加载 .dds 文件时跳过 mipmap 级别时,请使用 D3DX_SKIP_DDS_MIP_LEVELS 宏生成 MipFilter 值。 此宏采用要跳过的级别数和筛选器类型,并返回筛选器值,该值随后将传递到 MipFilter 参数中。

要求

要求
标头
D3dx9tex.h

D3dx9.lib

另请参阅

D3DXCreateCubeTextureFromFile

D3DX 9 中的纹理函数