OpenGL跨平台窗口

6
我正在寻找一个用于OpenGL的窗口界面库,目前我一直在使用SDL,但最近发现它在我所见过的代码中并不能完全满足我的需求。我希望找到一个GUI库,可以让我使用OpenGL(如果可能还包括SDL),具有菜单栏、侧边选项和可以直接关闭的功能。Qt是我想要的东西,但我希望使用不强制我开源的工具。
以下是我想要的一些功能:可以正常关闭、支持OGL、跨平台、不强制开源、免费,以及可以随时全屏和改变分辨率。
我已经自己搜索了一些,我并不是一个懒惰的人 ;) 只是希望在深入研究之前能够听取一些意见,以确定是否真正适合我的需求。
非常感谢您提供的任何反馈。
7个回答

4

尝试使用wxWidgets。这里有一个关于如何与OpenGL一起使用它的链接here


我同意使用wxWidgets的建议。 - Ivan Vučica

4

当Qt 4.5发布(我想是这个月晚些时候)时,它将采用LGPL许可证,因此如果您可以等待几周,您就可以使用Qt而无需开源您的程序。


1
我也强烈推荐Qt4。它比wxWidgets成熟得多,在OpenGL集成方面也更强大。你可以让Qt使用GL作为渲染后端,也可以在QGLWidget上执行Qt绘图任务,即在GL上下文中执行。 - ypnos

2

GLUT(OpenGL实用工具包)接近于您所需的功能。它快速、易于使用且跨平台,尽管它不支持菜单栏。 此页面还列出了许多类似于GLUT的替代品。


GLUT相当糟糕(全局变量太过时了;)但它随处可见于OpenGL,使其成为最简单的解决方案。 - ephemient
全局变量 ROCK。另请参阅http://www.yosefk.com/blog/i-love-globals-or-google-core-dump.html。 - Adam Rosenfield

2
对于开启了默认关闭按钮的窗口,你可以使用如前所述的GLUT,如果你的额外GUI需求非常简单,我认为GLUT可以提供一些帮助。
你也可以选择使用简单的OpenGL渲染菜单和按钮,可以使用NVidia WidgetsAntTweakBar

1
如果他对SDL不满意,他如何能对GLUT感到满意呢?话虽如此,鉴于推荐的渲染小部件,我仍然给您+1。 - Ivan Vučica

1

只要您能传递正确的信息给OGL,就不需要为其提供“支持”。至少在Windows上,如果您有一个可以挂接HWND的窗口API,您可以设置OGL使用几乎任何您想要的窗口。我已经成功地使用wxWidgets和纯win32实现了这一点。我无法帮助您处理其他平台,但我认为您可以做类似的事情。

这也适用于D3D,并且是将渲染代码与窗口API分离的好方法。


0

我知道这一点,就像我说的那样,我现在正在使用SDL,但它并没有足够的功能,使得我计划很快推出的应用程序可以使用。 - Auraomega
哦,如果SDL的功能不够用,GLUT可能也不会好到哪里去。你缺少什么功能呢? - ephemient

0

有许多渲染小部件库,例如rotoglup建议的那些。看看CEGUI和QuickGUI,它们可能会让你感到满意(尽管CEGUI滥用XML令我失望)。这里还有一个不要脸的推销:GLICT


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接