Редактор карт игрового движка. SDL-> WxWidgets - PullRequest
1 голос
/ 19 августа 2009

Я некоторое время писал игровой движок OpenGL, который использует SDL для всего управления окнами и для переносимости. Я хотел бы создать редактор уровней, используя полный движок. Сам движок никак не связан с SDL, за исключением ввода. Я хотел бы использовать wxWidgets для графического интерфейса, и я рассматривал некоторые примеры OpenGL, которые довольно просты и понятны.

Было бы проще попробовать интегрировать SDL с wxWidgets и использовать оба или переключаться между ними для использования в разных приложениях? Как лучше всего переключаться между двумя системами?

1 Ответ

3 голосов
/ 19 августа 2009

По всей вероятности, было бы проще использовать один API-интерфейс GUI для каждого приложения, а не объединять их вместе (т.е. проще иметь SDL / OpenGL в вашей игре и wxWidgets / OpenGL в вашем редакторе уровней). Обычно эти библиотеки не создаются для объединения или использования вместе с другими библиотеками, поэтому практически невозможно использовать их обе в одной программе. Например, я не очень разбираюсь в SDL, но правильно написанная программа wxWidgets использует внутренние макросы для генерации int main() и запускает свой насос сообщений, среди прочего. Если SDL требует, чтобы вы делали то же самое (запустите какой-то специальный код инициализации в вашем int main() или разрешите SDL генерировать свой собственный int main()), вы не сможете правильно инициализировать SDL, не нарушая wxWidgets, и наоборот. Опять же, я не знаю, существует ли этот конкретный конфликт между двумя библиотеками, но это всего лишь пример того, как они могут взаимодействовать и мешать друг другу.

Тем не менее, в идеальном мире было бы лучше выбрать одну из библиотек и использовать ее как для своего движка, так и для редактора уровней (т. Е. Использовать SDL / OpenGL для движка и редактора или wxWidgets / OpenGL для движка и редактор), но если вы довольны поддержкой двух разных кодовых баз API, то если они не сломаны, не исправляйте их.

...