以下是 IDirect3DDevice9Ex 接口的一些常见函数,这些函数与 IDirect3DDevice9 接口的函数相似,但包含一些额外的功能:
DECLARE_INTERFACE_(IDirect3DDevice9Ex, IDirect3DDevice9)
{
// 在设备上创建附加线程
STDMETHOD(RegisterSoftwareDevice)(THIS_ void* pInitializeFunction) PURE;
// 从设备上注销附加线程
STDMETHOD(UnregisterSoftwareDevice)(THIS) PURE;
// 创建附加的视图,例如深度模板视图
STDMETHOD(CreateAdditionalSwapChain)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** pSwapChain) PURE;
// 在设备上创建附加的视图
STDMETHOD(GetSwapChain)(THIS_ UINT iSwapChain, IDirect3DSwapChain9** pSwapChain) PURE;
// 确保设备上的所有渲染目标缓冲区和深度/模板缓冲区都已被渲染完成
STDMETHOD(ResetEx)(THIS_ D3DPRESENT_PARAMETERS* pPresentationParameters, D3DDISPLAYMODEEX *pFullscreenDisplayMode) PURE;
// 为设备设置GPU线程的优先级
STDMETHOD(SetConvolutionMonoKernel)(THIS_ UINT width, UINT height, float* rows, float* columns) PURE;
// 获取GPU线程的优先级
STDMETHOD(ComposeRects)(THIS_ IDirect3DSurface9* pSrc, IDirect3DSurface9* pDst, IDirect3DVertexBuffer9* pSrcRectDescs, UINT NumRects, IDirect3DVertexBuffer9* pDstRectDescs, D3DCOMPOSERECTSOP Operation, int Xoffset, int Yoffset) PURE;
// 更多其他操作函数...
};
IDirect3DDevice9Ex 继承自 IDirect3DDevice9 接口,因此包含了 IDirect3DDevice9 的所有功能,并添加了一些额外的功能。这些额外的功能包括支持多线程、更好的窗口管理、更灵活的资源共享等,使得在多线程和多任务应用程序中更容易进行图形渲染。
如果您的应用程序对性能和多线程支持有更高的要求,那么 IDirect3DDevice9Ex 接口可能是一个更好的选择。
转载请注明出处:http://www.zyzy.cn/article/detail/26229/Win32 API/D3d9.h/IDirect3DDevice9Ex