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]
-
指向 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]
-
指向 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 参数中。
要求
要求 | 值 |
---|---|
标头 |
|
库 |
|
另请参阅