以下是 IDirect3DResource9 接口的定义:
// 定义在头文件 <d3d9.h> 中
class IDirect3DResource9 : public IUnknown
{
public:
// 获取资源的优先级
virtual HRESULT STDMETHODCALLTYPE GetPriority() = 0;
// 设置资源的优先级
virtual HRESULT STDMETHODCALLTYPE SetPriority(DWORD PriorityNew) = 0;
// 获取资源的使用情况
virtual DWORD STDMETHODCALLTYPE GetLOD() = 0;
// 设置资源的使用情况
virtual DWORD STDMETHODCALLTYPE SetLOD(DWORD LODNew) = 0;
// 获取设备
virtual HRESULT STDMETHODCALLTYPE GetDevice(IDirect3DDevice9** ppDevice) = 0;
// 释放资源
virtual ULONG STDMETHODCALLTYPE Release() = 0;
};
这个接口主要包括以下几个关键方法:
- GetPriority, SetPriority: 获取和设置资源的优先级,用于设定资源在内存中的优先级。
- GetLOD, SetLOD: 获取和设置资源的使用级别(Level of Detail),用于设定资源在渲染过程中的使用程度。
- GetDevice: 获取与资源相关联的 IDirect3DDevice9 接口。
- Release: 释放资源,减少资源的引用计数。这是 COM 接口通用的释放方法。
IDirect3DResource9 接口主要用作其他特定资源接口的基类,例如 IDirect3DTexture9、IDirect3DVertexBuffer9、IDirect3DIndexBuffer9 等,它们都是 IDirect3DResource9 接口的派生接口。这些特定资源接口提供了更多与其类型相关的方法和属性。
转载请注明出处:http://www.zyzy.cn/article/detail/26253/Win32 API/D3d9helper.h/IDirect3DResource9