0

我将开始着手一个新项目。这是一款在 Windows、Linux 和 Mac OS X 上使用 OpenGL 的 3D 游戏。我需要一个用于 GUI、窗口化和处理输入的库。我最终选择了 3 个 Qt、WxWidgets 和 GTK+。所有这些都在 LGPL 许可下。

1- LGPL 是否允许使用这些库来制作专有应用程序?

2- 这三个应用程序中的哪一个最适合我?

4

3 回答 3

13
  1. 是的,只要您不静态链接到它们(即:将它们用作 DLL)。虽然 wxWidgets 允许您静态链接而不会成为 GPL 的。

  2. 以上都不是。如果您正在制作 3D 游戏,那么这些都不适合您的需求。游戏的 GUI需求与典型桌面应用程序的 GUI 需求大不相同。在游戏中,您希望特定的 GUI 元素与特定的艺术方向保持一致,而不是与桌面环境保持一致。另外,您可能希望您的 GUI 元素比这些工具包通常允许的更具表现力。

    CEGUI正是基于这样的原因而存在的。那是为游戏需求而设计的GUI系统。

    此外,这些都没有提供游戏通常想要处理的输入方式。您通常需要比这些工具包提供的更低级别的游戏。这就是存在 SDL 和 SFML 等项目的原因。

于 2011-08-30T17:57:22.387 回答
1

1 - 是的,前提是您的项目不需要更改库本身

2 -如果没有其他原因,我强烈推荐 Qt用于新的窗口应用程序,因为它具有出色的文档(尽管还有许多其他获胜点,但它很快就会变得主观)。GTK 和 WxWidgets 都会让你浪费脑力去思考你真正不应该考虑的事情。Qt 更容易 a) 定制,并且 b) 当您不关心定制时忽略。

虽然对于 3D 的东西,你可能想研究成熟的引擎,比如,哦,Irrlicht 或 Ogre3D 或其他任何一个

于 2011-08-30T16:14:40.000 回答
1

WxWidgets 使用 LGPL,这意味着您可以在项目中动态链接到它,而不会强制您的项目成为 GPL 或 LGPL。

但是,对于任何游戏或渲染应用程序,我建议使用CEGUI

而不是您建议的库, CEGUI 使用的 MIT 许可证没有 LGPL 严格,并且还允许您动态(首选)或静态链接到库,而无需强迫您拥有您自己的项目的特定许可证。

  • 支持 OpenGL 3.2+ Core Profile (OpenGL3 Renderer)
  • 支持非常旧的 OpenGL 版本(OpenGL 渲染器)
  • 如果要使用 Ogre 或 Irrlicht 引擎,也可以依赖 OpenGL,CEGUI 也通过 CEGUIOgreRenderer 和 CEGUIIrrlichtRenderer 支持这两个渲染器
  • 随心所欲地支持 Windows、Linux 和 Mac OS X
  • 因为有人在评论中问:完全支持 Unicode 字符,因此
    您可以使用希伯来语、阿拉伯语、各种亚洲字母等,如当前字体演示所示 - 当然您需要安装其中一种 CEGUI 字体或使用另一种开源字体
  • 专为游戏、模拟和渲染应用而设计
  • 您可以为 UI 中的所有元素设置皮肤(目前只能通过 XML,很快也可以使用编辑器)
  • 提供功能强大的编辑器 (CEED),可免费使用 WYSIWYG (!) 进行布局编辑!
  • 通过 C++ 代码和/或 XML 的更改完全可扩展和自适应
  • 强大的事件系统

设置 CEGUI 及其依赖项并让它与您的项目一起运行可能需要一些时间,但从长远来看,它仍然会得到回报,因为它比大多数免费的 UI 解决方案具有更多的功能。想象一下,如果您使用 UI 库,然后发现它没有提供您需要的特定功能,并且几乎不可能添加它,那将是多么烦人 - 因为 CEGUI 是基于 C++ 和 XML 的,并且由于它的设计,您可以随时向 CEGUI 添加特定的调整。因此,即使从长远来看,您也很可能不会遇到限制。此外,它已经拥有很多开箱即用的功能 - 比同类库更多。

于 2014-06-01T08:49:24.540 回答