轻量级的OpenGL用户界面库

7

正如标题所说,我正在寻找一个平台无关且轻量级的库,用于在OpenGL中显示按钮、滑块、复选框等内容。理想情况下,最好不直接与OpenGL耦合(即使需要,也可以将渲染替换为DirectX)。

我的“理想”库应该有支持回调或类似功能的事件系统。这是一种好东西,但并非绝对必要。

我研究了Qt和wxWidgets,它们都看起来很重。CEGUI看起来像一堆代码。我见过的大多数其他库都是基于GLUT的。

3个回答

6

2
你可能想看一下游戏引擎,比如Irrlicht,它提供OpenGL、DirectX和软件渲染器,并支持带有按钮、列表和编辑框的2D GUI系统。请查看特性页面以了解其功能以及用户界面示例以尝试此特定UI功能。
Irrlicht是开源的,适用于许多平台。从特性页面上可以看到,它支持:
  • Windows 98、ME、NT 4、2000、XP、XP64、Vista、CE
  • Linux
  • OSX
  • Sun Solaris/SPARC
  • 所有使用SDL的平台

同意,不过你需要修改IrrCompileConfig.h文件来去除所有的3D内容(网格加载器、视频驱动程序、场景管理器等)。 - Gareth Davidson

2
无论是wxWidgets还是Qt都不会在OpenGL中进行绘制;它们不使用OpenGL渲染命令进行绘制。它们允许您创建OpenGL窗口,但常规GUI控件(如按钮、列表等)不是通过OpenGL进行绘制的。它们是通过您选择的平台的本地绘制机制进行绘制的。
通常情况下,您不太可能找到很多独立的GUI库实际上会在OpenGL中进行渲染。我知道的唯一一个是CeGUI,它符合您所有的要求,但您却将其视为“一堆代码的混乱”。其他东西通常会是“重量级”的,因为它是游戏引擎的一部分。
现在,如果您不是在寻找实际上使用OpenGL命令进行绘制的东西,而只是想要在OpenGL窗口旁边使用的东西,那么事情就有些不同了。然而,您对wxWidgets被认为是“非常沉重”的否定让人感到不安,因为GUI库不会比它轻得多。一个好的GUI系统需要很多东西。
支持创建OpenGL窗口的最小跨平台GUI库可能是FLTK。即使这个库也相当大。

Qt 5将使用Lighthouse(即OpenGL ES 2)进行所有窗口渲染。但稳定版本将在几个月到1年之后发布。 - Afriza N. Arief
Glgooey是一个相当不错的CEGUI替代品,尽管近来一直处于缺乏维护的状态。 - Flexo
你错了。Qt使用OpenGL进行绘图。从4.5版本开始,Qt可以使用OpenGL Graphics System来绘制OpenGL。请参阅Qt的Graphics Systems以获取更多信息。 - happy_marmoset

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