D3DXCreateTextureFromFileInMemoryEx 函数

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

语法

HRESULT D3DXCreateTextureFromFileInMemoryEx(
  _In_    LPDIRECT3DDEVICE9  pDevice,
  _In_    LPCVOID            pSrcData,
  _In_    UINT               SrcDataSize,
  _In_    UINT               Width,
  _In_    UINT               Height,
  _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_   LPDIRECT3DTEXTURE9 *ppTexture
);

parameters

pDevice []

类型 :LPDIRECT3DDEVICE9

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

pSrcData []

类型 :LPCVOID

指向内存中要创建纹理的文件的指针。

SrcDataSize []

类型 :UINT

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

宽度 []

类型 :UINT

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

高度 []

类型 :UINT

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

MipLevels []

类型 :UINT

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

用法 []

类型 :DWORD

0、D3DUSAGE _ RENDERTARGET 或 D3DUSAGE _ DYNAMIC。 将此标志设置为 D3DUSAGE RENDERTARGET 指示将图面 _ 用作呈现器目标。 然后,可以将资源传递给 SetRenderTarget方法的 pNewRenderTarget 参数。 如果指定了 D3DUSAGE _ RENDERTARGET 或 D3DUSAGE DYNAMIC,则必须将池设置为 _ D3DPOOL DEFAULT,并且应用程序应调用 _ CheckDeviceFormat来检查设备是否支持此操作。 有关使用动态纹理的信息,请参阅 使用动态纹理

格式 []

类型 :D3DFORMAT

D3DFORMAT枚举类型的成员,描述纹理请求的像素格式。 返回的纹理的格式可能不同于 Format 指定的 格式。 应用程序应检查返回的纹理的格式。 如果 D3DFMT _ 未知,则格式取自 文件。 如果 D3DFMT FROM FILE,则采用的格式与文件中的格式完全相同,如果违反设备功能,则 _ _ 调用将失败。

[]

类型 :D3DPOOL

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

筛选器 []

类型 :DWORD

控制图像筛选方式的一个或多个标志的组合。 为此参数指定 D3DX DEFAULT 等效于指定 _ D3DX _ FILTER _ TRIANGLE | D3DX _ FILTER _ DITHER。 每个有效的筛选器都必须包含 D3DX FILTER 中的一 _ 个标志

MipFilter []

类型 :DWORD

控制图像筛选方式的一个或多个标志的组合。 为此参数指定 D3DX DEFAULT 等效于 _ 指定 D3DX _ FILTER _ BOX。 每个有效的筛选器都必须包含 D3DX FILTER 中的一 _ 个标志。 此外,使用位 27-31 指定在 .dds 纹理加载到内存中时 (从 mipmap 链顶部跳过的 mip 级别数) ;这允许你跳过最多 32 个级别。

ColorKey []

类型 :D3DCOLOR

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

pSrcInfo [in、out]

类型 :D3DXIMAGE _ INFO*

指向要用源映像文件中数据的说明填充的 D3DXIMAGE _ INFO结构的指针,或 为 NULL。

pPalette [out]

类型 :PALETTEENTRY*

指向 PALETTEENTRY 结构的指针,表示要填充的 256 色调色板或 NULL。 请参阅“备注”。

ppTexture [out]

类型 :LPDIRECT3DTEXTURE9*

指向 IDirect3DTexture9 接口的指针的地址,表示创建的纹理对象。

返回值

类型 :HRESULT

如果函数成功,则返回值为 D3D _ OK。 如果函数失败,则返回值可以是以下值之一 _ :D3DERR NOTAVAILABLE、D3DERR _ OUTOFVIDEOMEMORY、D3DERR _ INVALIDCALL、D3DXERR _ INVALIDDATA、E _ OUTOFMEMORY。

备注

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

有关 PALETTEENTRY 的详细信息,请参阅平台 SDK。 请注意,从 DirectX 8.0 起 ,PALETTEENTRY 结构的 peFlags 成员无法正常工作,如平台 SDK 中记录。 peFlags 成员现在是 8 位 palized 格式的 alpha 通道。

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

要求

要求 Value
标头
D3dx9tex.h

D3dx9.lib

另请参阅

D3DXCreateTextureFromFileInMemory

D3DX 9 中的纹理函数