私のopenGLフレームワークでウィンドウ管理を処理するためにSDL1.2を使用しています。
を呼び出さずにプログラムの実行中にウィンドウ (サーフェス) を破棄することは可能SDL_Quit()
ですか?
背景: 私のフレームワークは、マルチメディア環境における (潜在的に多くのそのような gfx コンポーネントの) 1 つの gfx コンポーネントにすぎません。他のコンポーネントが何をしようとしているのか (たとえば、SDL を使用しているかどうか) について、私は何も推測できません。呼び出すSDL_Quit()
と、他のコンポーネントに副作用が生じるのではないかと心配しています。
現在、私は次のようなことをしています:
SDL_Surface m_surface=0;
bool create_window() {
int videoFlags = SDL_OPENGL;
if(m_surface) {
pritnf("window already made\n");
return false;
}
if(SDL_Init(SDL_INIT_VIDEO) < 0 ) {
pritnf("unable to initialize SDLn");
return false;
}
m_surface = SDL_SetVideoMode(WIDTH, HEIGHT, BPP, videoFlags);
return(m_surface!=0);
}
bool destroy_window() {
if(m_surface) {
SDL_Quit();
}
m_surface=0;
}
両方ともcreate_window()
、destroy_window()
アプリケーションのライフサイクル中に複数回呼び出されることになっています。SDL_Init()
ただし、SDL_Quit()
何度も呼び出すのは奇妙に感じます。
ところで、私は現在 Linux を使用していますが、クロスプラットフォーム (少なくとも Linux、osx、w32) をターゲットにしています。