2009-08-19 19 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