1

私はしばらくの間、すべてのウィンドウ管理と移植性のためにSDLを使用するOpenGLゲームエンジンを作成してきました。フルエンジンを使用してレベルエディタを作成したいと思います。エンジン自体は、入力を除いてSDLとはまったく関係がありません。GUIにwxWidgetsを使用したいのですが、非常にシンプルで理解しやすいOpenGLサンプルをいくつか見てきました。

SDLをwxWidgetsと統合して両方を使用するか、異なるアプリケーションで使用するためにそれらを切り替える方が簡単でしょうか?2つのシステムを切り替える最良の方法は何でしょうか?

4

1 に答える 1

3

おそらく、2つをマージするよりもアプリケーションごとに1つのGUI APIを使用する方が簡単です(つまり、ゲームにSDL / OpenGLを、レベルエディターにwxWidgets / OpenGLを使用する方が簡単です)。通常、これらのライブラリは、一緒にマージしたり、他のライブラリと組み合わせて使用​​したりするようには構築されていないため、1つのプログラムで両方を使用することはほぼ不可能です。たとえば、SDLについてはよくわかりませんが、正しく記述されたwxWidgetsプログラムは、内部マクロを使用int main()して、メッセージポンプを生成し、起動します。SDLで同じことを行う必要がある場合(で特別な初期化コードを実行するint main()か、SDLが独自のコードを生成できるようにします)int main())wxWidgetsを壊さずにSDLを適切に初期化することはできません。その逆も同様です。繰り返しになりますが、この特定の競合が2つのライブラリ間に実際に存在するかどうかはわかりませんが、これは2つが相互作用して相互に干渉する方法の例にすぎません。

とはいえ、完璧な世界では、ライブラリの1つを選択し、それをエンジンとレベルエディタの両方に使用することをお勧めします(つまり、エンジンとエディタにSDL / OpenGLを使用するか、エンジンとエディタにwxWidgets / OpenGLを使用します)。ただし、2つの異なるAPIコードベースを維持することに満足している場合は、それが壊れていない場合は修正しないでください。

于 2009-08-19T19:57:22.897 に答える