主功能和窗口,支持 Opengl 3.0+ 和 DirectX 10+

Main function and window that supports Opengl 3.0+ and DirectX 10+

本文关键字:DirectX Opengl 支持 功能 窗口      更新时间:2023-10-16

我目前正在开发游戏引擎,并希望同时支持DirectX和OpenGL,但据我所知,directX必须使用WINAPI打开其窗口,但这是一个窗口专用点。

是否有任何支持OpenGL和DirectX的入口点,以及是否有OpenGL和DirectX都支持的窗口库。

如果没有简单的方法可以做到这一点,您能否建议解决此问题的良好替代方案。

窗口系统通常独立于图形 API。在Windows上,HWND的HDC表面是渲染操作的目标,无论你使用的是DirectX还是OpenGL(或GDI+等),都是如此。若要创建 DirectX 设备,需要一个 HWND,因此,只要其消息循环与图形 API 兼容,任何可以获取所创建窗口的本机句柄的跨平台窗口系统就足够了。在Windows上使用WGL初始化OpenGL时,您需要HDC(通常从HWND获得),因此它实际上与DirectX没有任何不同。

WxWidgets(https://www.wxwidgets.org/)是一个跨平台的窗口系统,通过GLCanvas内置了对OpenGL的支持,并且可以通过获取其本机句柄(http://comp.soft-sys.wxwindows.narkive.com/D9t98DQM/direct3d-wxwidgets-do-they-play-nice-together)相当容易地适应在wxPanel上使用DirectX。