D3DXFilterTexture 函数

筛选纹理的 mipmap 级别。

语法

HRESULT D3DXFilterTexture(
  _In_        LPDIRECT3DBASETEXTURE9 pBaseTexture,
  _Out_ const PALETTEENTRY           *pPalette,
  _In_        UINT                   SrcLevel,
  _In_        DWORD                  MipFilter
);

参数

pBaseTexture [in]

类型: LPDIRECT3DBASETEXTURE9

指向表示要筛选的纹理对象的 IDirect3DBaseTexture9 接口的指针。

pPalette [out]

类型: const PALETTEENTRY*

指向 PALETTEENTRY 结构的指针,该结构表示要填充的 256 色调色板;对于非调整格式,为 NULL 。 如果未指定调色板,则提供默认 Direct3D 调色板 (全不透明的白色调色板) 。 请参阅“备注”。

SrcLevel [in]

类型: UINT

其映像用于生成后续级别的级别。 为此参数指定D3DX_DEFAULT等效于指定 0。

MipFilter [in]

类型: DWORD

控制 mipmap 筛选方式的一个或多个 D3DX_FILTER 的组合。 为此参数指定D3DX_DEFAULT等效于指定D3DX_FILTER_BOX(如果纹理大小为 2 的幂),D3DX_FILTER_BOX |否则D3DX_FILTER_DITHER。

返回值

类型: HRESULT

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

备注

筛选器以递归方式应用于每个纹理级别,以生成下一个纹理级别。

写入纹理的非零级图面不会导致更新脏矩形。 如果调用了 D3DXFilterTexture,并且表面尚未脏 (这在正常使用方案中不太可能) ,则应用程序需要在纹理上显式调用 AddDirtyRect

在默认池 (D3DPOOL_DEFAULT) 中创建的纹理不能与 D3DXFilterTexture (一起使用,除非使用 D3DUSAGE_DYNAMIC) 创建,因为需要对 对象执行锁定操作。 请注意,默认池 (中的纹理上禁止锁定,除非它们是动态) 。

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

只有一个纹理筛选函数,但有两个调用此方法的宏。

#define D3DXFilterCubeTexture D3DXFilterTexture
#define D3DXFilterVolumeTexture D3DXFilterTexture

要求

要求
标头
D3dx9tex.h

D3dx9.lib

另请参阅

D3DX 9 中的纹理函数