2009-08-19 18 views
1

我一直在编写OpenGL游戏引擎一段时间,它使用SDL进行所有窗口管理和便携性。我想创建一个使用完整引擎的关卡编辑器。除输入外,引擎本身并不与SDL绑定。我想在GUI中使用wxWidgets,我一直在寻找一些非常简单易懂的OpenGL示例。游戏引擎地图编辑器。 SDL-> wxWidgets

尝试将SDL与wxWidgets集成并将它们同时使用或在它们之间切换以用于不同的应用程序会更简单吗?什么是在两个系统之间切换的最佳方式?

回答

3

很可能在每个应用程序中使用一个GUI API比将两者合并在一起更容易(即更容易在游戏中使用SDL/OpenGL,在您的关卡编辑器中使用wxWidgets/OpenGL)。通常这些库不会被合并在一起或与其他库一起使用,因此几乎不可能在一个程序中使用它们。例如,我对SDL知之甚少,但正确编写的wxWidgets程序使用内部宏来生成int main()并启动其消息泵等。如果SDL要求您执行相同的操作(在您的int main()中运行一些特殊的初始化代码或允许SDL生成它自己的int main()),则无法在不破坏wxWidgets的情况下正确初始化SDL,反之亦然。再次,我不知道这两个图书馆之间是否存在这种特殊的冲突,但这只是两个人如何相互影响和相互干扰的一个例子。这就是说,在一个完美的世界中,选择其中一个库并将其同时用于引擎和级别编辑器(例如,使用SDL/OpenGL作为引擎和编辑器,或者使用wxWidgets/OpenGL作为引擎和编辑器),但如果您很高兴维护两个不同的API代码库,那么如果它没有损坏,请不要修复它。

+0

SDL不使用main()宏,可以在部分中进行初始化,但我猜测消息循环会重叠。 (SDL要求你实现你自己的循环。) – aib 2009-08-24 02:17:22

+0

是的,如果不是int main(),那么在消息循环中会有问题。 wxWidgets创建自己的本地消息循环,完全从最终用户隐藏;修改它甚至会轻易破坏图书馆。 – GRB 2009-08-24 02:59:30