我一直在编写一个OpenGL游戏引擎,它使用SDL进行所有窗口管理和可移植性。我想使用完整的引擎创建一个关卡编辑器。除输入外,引擎本身与SDL完全无关。我想将wxWidgets用于GUI,我一直在研究一些非常简单易懂的OpenGL示例。
尝试将SDL与wxWidgets集成并使用它们或在它们之间切换以便在不同的应用程序中使用会更简单吗?什么是在两个系统之间切换的最佳方式?
答案 0 :(得分:3)
很可能每个应用程序使用一个GUI API会更容易,而不是将两者合并在一起(即在游戏中更容易拥有SDL / OpenGL,在关卡编辑器中更容易使用wxWidgets / OpenGL)。通常这些库不是为了合并在一起或与其他库一起使用而构建的,因此几乎不可能在一个程序中使用它们。例如,我对SDL知之甚少,但正确编写的wxWidgets程序使用内部宏来生成int main()
并启动其消息泵等。如果SDL要求您执行相同的操作(在int main()
中运行一些特殊的初始化代码或允许SDL生成自己的int main()
),则无法在不破坏wxWidgets的情况下正确初始化SDL,反之亦然。同样,我不知道这两个库之间是否存在这种特殊冲突,但它只是两者如何相互作用和相互干扰的一个例子。
也就是说,在一个完美的世界中,最好选择一个库并将其用于引擎和关卡编辑器(即使用SDL / OpenGL作为引擎和编辑器,或者使用wxWidgets / OpenGL作为引擎和编辑),但如果你很高兴维护两个不同的API代码库,那么如果它没有破坏,请不要修复它。