【发布时间】:2012-02-20 21:56:19
【问题描述】:
我目前正在编写一个即将进行重大改写的游戏引擎。首先,我正在考虑将哪个库与引擎结合使用。显然,我将在这里使用 OpenGL,并将尽我所能使其向前和向后兼容。
不过,主要问题是,根据我的大部分研究,我发现像 SDL 这样的优秀库(除了 1.3 - 我不认为它是稳定的?我可能错了)只支持直到 OpenGL 3 而不是 4.2。然而,FreeGlut 确实支持最新和最强大的,并且似乎是了解引擎基础知识的好方法。
然而,唯一的事情就是设置一些东西,比如键盘 I/O 和声音输入音频,以及其他东西。因此,我正在考虑是否可以使用 glut 来初始化 opengl 并使用 opengl,然后让 SDL 与键盘 I/O、声音等一起进行窗口管理。
当然,始终可以选择将 Qt 与 OpenGL 一起使用,但如果可能的话,我肯定希望能够控制我的主循环(是否这可能与 Qt 和 OpenGL 一起使用?)。
我也听说过 SFML,但最终我想坚持使用 C 编写的库,因为我计划编写一个 C 库来处理大部分原始渲染(为了纯粹的速度和内存管理,程序上)。
因此,我不知道在这里做什么。 Qt 是一个不错的选择吗,还是有其他类似 C 的替代方案(如 FreeGlut)允许主循环控制(如 SDL)并提供我正在寻找的必要自定义?
【问题讨论】:
-
除了创建上下文之外,我认为这些库中没有任何一个对 OpenGL 有任何作用。所以(如果我错了,有人纠正我)他们都可以使用 OpenGL 4.2。
-
另外,如果可以使用 C++,为什么要避免使用它?如果您愿意,仍然可以使用类似 C 的风格编写性能关键部分。
-
主要是因为在 C++ 中要避免使用诸如 Malloc 和 Free 之类的东西,而且我实际上更喜欢 C 中的某些东西而不是 C++。 C 可以很好地处理指针,C++ 也是如此,但仍然存在一些需要考虑的细微差别。例如,我计划使用大量 C 风格的字符串和解析。另外,如果没有 OO 风格的开销,测试会更容易。
-
@Holland:您的意思是您不必使用“OO 风格的开销”?
标签: c++ c opengl libraries game-engine