概要
TwinklebearDev という SDL2 のチュートリアルをやろうとして、Lesson1 の bmp 画像の表示でウィンドウが表示されずはまっていた。調べた結果、macOS において、SDL2 にイベントループを追加しないとウィンドウが描画されないことがある、ということがわかった。
システム情報
- macOS 10.15.4 Catalina
- SDL 2.0.12
- C++ Compiler: Apple clang version 11.0.3
解決策
以下のようなコードをメインループに追加するとウインドウが表示されるようになった。少しググったところ macOS でこういった問題に遭遇する人はちらほらいるようだが、他の OS ではなさそう?
SDL_Event ev; while(SDL_PollEvent(&ev)) { if (ev.type == SDL_QUIT) { SDL_DestroyTexture(tex); SDL_DestroyRenderer(ren); SDL_DestroyWindow(win); SDL_Quit(); return 0; } }
ソースコードの全文は ここ にあります。