typedef struct IDirect3DVertexDeclaration9Vtbl
{
// 一系列接口方法的函数指针
} *LPDIRECT3DVERTEXDECLARATION9, IDirect3DVertexDeclaration9;
// IDirect3DVertexDeclaration9 接口
DECLARE_INTERFACE_(IDirect3DVertexDeclaration9, IDirect3DUnknown)
{
STDMETHOD(QueryInterface)(THIS_ REFIID riid, void** ppvObj) PURE;
STDMETHOD_(ULONG, AddRef)(THIS) PURE;
STDMETHOD_(ULONG, Release)(THIS) PURE;
STDMETHOD(GetDevice)(THIS_ IDirect3DDevice9** ppDevice) PURE;
STDMETHOD(GetDeclaration)(THIS_ D3DVERTEXELEMENT9* pElement, UINT* pNumElements) PURE;
};
// IDirect3DVertexDeclaration9 接口的宏定义
#undef INTERFACE
#define INTERFACE IDirect3DVertexDeclaration9
DECLARE_INTERFACE_(IDirect3DVertexDeclaration9, IDirect3DUnknown)
{
// 一系列接口方法的宏定义
};
这个接口主要包括以下几个方法:
1. QueryInterface: 查询接口,用于获取其他相关接口。
2. AddRef: 增加接口引用计数。
3. Release: 减少接口引用计数。
4. GetDevice: 获取与该顶点声明相关的设备接口。
5. GetDeclaration: 获取顶点声明的描述信息,包括元素数组和元素数量。
在使用这个接口时,你通常会先创建一个顶点声明对象,然后在绘制图形时使用该声明对象指定顶点格式。这有助于图形 API 正确解释顶点缓冲区中的数据。
请注意,上述代码是一个简化版本,实际使用时需要包含正确的头文件和链接正确的库。
转载请注明出处:http://www.zyzy.cn/article/detail/26259/Win32 API/D3d9helper.h/IDirect3DVertexDeclaration9