D3DXCreateVolumeTextureFromFileEx 函数

从文件创建卷纹理。

语法

HRESULT D3DXCreateVolumeTextureFromFileEx(
  _In_    LPDIRECT3DDEVICE9        pDevice,
  _In_    LPCTSTR                  pSrcFile,
  _In_    UINT                     Width,
  _In_    UINT                     Height,
  _In_    UINT                     Depth,
  _In_    UINT                     MipLevels,
  _In_    DWORD                    Usage,
          D3DFORMAT                Format,
  _In_    D3DPOOL                  Pool,
  _In_    DWORD                    Filter,
  _In_    DWORD                    MipFilter,
  _In_    D3DCOLOR                 ColorKey,
  _Inout_ D3DXIMAGE_INFO           *pSrcInfo,
  _Out_   PALETTEENTRY             *pPalette,
  _Out_   LPDIRECT3DVOLUMETEXTURE9 *ppTexture
);

parameters

pDevice [in]

类型: LPDIRECT3DDEVICE9

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

pSrcFile [in]

类型: LPCTSTR

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

Width [in]

类型: UINT

宽度(以像素为单位)。 如果此值为零或D3DX_DEFAULT,则维度取自文件。 驱动程序支持的宽度、高度和深度) (的最大尺寸可以在 D3DCAPS9 中的 MaxVolumeExtent 中找到。

高度 [in]

类型: UINT

高度(以像素为单位)。 如果此值为零或D3DX_DEFAULT,则维度取自文件。 驱动程序支持的宽度、高度和深度) (的最大尺寸可以在 D3DCAPS9 中的 MaxVolumeExtent 中找到。

深度 [in]

类型: UINT

深度(以像素为单位)。 如果此值为零或D3DX_DEFAULT,则维度取自文件。 驱动程序支持的宽度、高度和深度) (的最大尺寸可以在 D3DCAPS9 中的 MaxVolumeExtent 中找到。

MipLevels [in]

类型: UINT

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

用法 [in]

类型: DWORD

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

格式

类型: 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 指定要在将 .dds 纹理加载到内存中时从 mipmap 链顶部跳过 (mip 级别的数目) ;这允许跳过最多 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

ppTexture [out]

类型: LPDIRECT3DVOLUMETEXTURE9*

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

返回值

类型: HRESULT

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

备注

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

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

Mipmed 纹理会自动使用加载的音量纹理填充每个级别。 将图像加载到错误纹理中时,某些设备无法转到 1x1 图像,并且此功能将失败。 如果发生这种情况,则需要手动加载映像。

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

要求

要求
标头
D3dx9tex.h

D3dx9.lib

请参阅

D3DXCreateVolumeTextureFromFile

D3DXCreateVolumeTextureFromFileInMemory

D3DXCreateVolumeTextureFromFileInMemoryEx

D3DXCreateVolumeTextureFromResource

D3DXCreateVolumeTextureFromResourceEx

D3DX 9 中的纹理函数