1

我一直在编写一个 OpenGL 游戏引擎,它使用 SDL 进行所有窗口管理和可移植性。我想使用完整的引擎创建一个关卡编辑器。除了输入之外,引擎本身与 SDL 完全不相关。我想将 wxWidgets 用于 GUI,并且我一直在查看一些非常简单易懂的 OpenGL 示例。

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

4

1 回答 1

3

与将两者合并在一起相比,每个应用程序使用一个 GUI API 很可能更容易(即更容易在游戏中使用 SDL/OpenGL,在关卡编辑器中使用 wxWidgets/OpenGL)。通常这些库不是为了合并在一起或与其他库一起使用而构建的,因此几乎不可能在一个程序中同时使用它们。例如,我对 SDL 了解不多,但是一个正确编写的 wxWidgets 程序使用内部宏来生成int main()和启动它的消息泵,等等。如果 SDL 要求您做同样的事情(在您的程序中运行一些特殊的初始化代码int main()或允许 SDL 生成自己的int main()) 如果不破坏 wxWidgets,您将无法正确初始化 SDL,反之亦然。同样,我不知道这两个库之间是否真的存在这种特殊的冲突,但这只是两者如何相互作用和相互干扰的一个例子。

也就是说,在一个完美的世界中,最好选择其中一个库并将其用于您的引擎和关卡编辑器(即使用 SDL/OpenGL 作为引擎和编辑器,或使用 wxWidgets/OpenGL 作为引擎和编辑器),但是,如果您乐于维护两个不同的 API 代码库,那么如果它没有损坏,请不要修复它。

于 2009-08-19T19:57:22.897 回答