以下是 IDirect3DBaseTexture9 接口的定义:
// 定义在头文件 <d3d9.h> 中
class IDirect3DBaseTexture9 : public IDirect3DResource9
{
public:
// 获取纹理的级别信息
virtual HRESULT STDMETHODCALLTYPE GetLevelDesc(UINT Level, D3DSURFACE_DESC *pDesc) = 0;
// 获取一个表面级别
virtual HRESULT STDMETHODCALLTYPE GetSurfaceLevel(UINT Level, IDirect3DSurface9** ppSurfaceLevel) = 0;
// 锁定纹理表面的矩形区域
virtual HRESULT STDMETHODCALLTYPE LockRect(UINT Level, D3DLOCKED_RECT* pLockedRect, CONST RECT* pRect, DWORD Flags) = 0;
// 解锁纹理表面的矩形区域
virtual HRESULT STDMETHODCALLTYPE UnlockRect(UINT Level) = 0;
// 添加一个需要更新的区域
virtual HRESULT STDMETHODCALLTYPE AddDirtyRect(CONST RECT* pDirtyRect) = 0;
};
这个接口继承自 IDirect3DResource9 接口,它包含了一些与基本纹理操作相关的方法。主要的方法包括:
- GetLevelDesc: 获取指定级别的纹理描述信息。
- GetSurfaceLevel: 获取指定级别的表面(IDirect3DSurface9 接口)。
- LockRect: 锁定指定级别的纹理表面的矩形区域,用于直接访问纹理数据。
- UnlockRect: 解锁先前使用 LockRect 锁定的纹理表面。
- AddDirtyRect: 添加一个需要更新的区域,通知Direct3D运行时这部分区域的纹理数据需要更新。
具体纹理类型的接口,如2D纹理、立方体纹理、体素纹理等,都是基于这个基类接口进行扩展的。如果你需要更具体类型的纹理接口,可以查阅相关的文档或头文件。
请注意,在使用完毕后,要调用 Release 方法释放纹理接口的资源,以避免内存泄漏。
转载请注明出处:http://www.zyzy.cn/article/detail/26247/Win32 API/D3d9helper.h/IDirect3DBaseTexture9