D3DXCreateCubeTextureFromFileInMemoryEx 函数

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

语法

HRESULT D3DXCreateCubeTextureFromFileInMemoryEx(
  _In_    LPDIRECT3DDEVICE9      pDevice,
  _In_    LPCVOID                pSrcData,
  _In_    UINT                   SrcDataSize,
  _In_    UINT                   Size,
  _In_    UINT                   MipLevels,
  _In_    DWORD                  Usage,
  _In_    D3DFORMAT              Format,
  _In_    D3DPOOL                Pool,
  _In_    DWORD                  Filter,
  _In_    DWORD                  MipFilter,
  _In_    D3DCOLOR               ColorKey,
  _Inout_ D3DXIMAGE_INFO         *pSrcInfo,
  _Out_   PALETTEENTRY           *pPalette,
  _Out_   LPDIRECT3DCUBETEXTURE9 *ppCubeTexture
);

参数

pDevice [in]

类型: LPDIRECT3DDEVICE9

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

pSrcData [in]

类型: LPCVOID

指向内存中要从中创建立方体纹理的文件的指针。 请参阅“备注”。

SrcDataSize [in]

类型: UINT

内存中文件的大小(以字节为单位)。

大小 [in]

类型: UINT

宽度 (或高度) (以像素为单位)。 如果此值为零或D3DX_DEFAULT,则维度取自文件。

MipLevels [in]

类型: UINT

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

用法 [in]

类型: DWORD

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

格式 [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 [in, 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。

备注

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

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

此方法旨在用于加载存储为 RT_RCDATA 的图像文件,该文件是应用程序定义的资源, (原始数据) 。 否则此方法将失败。

有关 PALETTEENTRY 的详细信息,请参阅平台 SDK。 请注意,从 DirectX 8.0 开始, PALETTEENTRY 结构的 peFlags 成员的功能不如平台 SDK 中所述。 peFlags 成员现在是 8 位平化格式的 alpha 通道。

D3DXCreateCubeTextureFromFileInMemoryEx 使用 DirectDraw 图面 (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

另请参阅

D3DX 9 中的纹理函数