2016-05

2016-05-05

SDL2での起動時のウィンドウのチラつき対処法

環境依存かもしれないが、SDL2を使って素直にコードを書きWindows上で実行すると起動時に一瞬空白のウィンドウが表示され、それが消えた後にちゃんと描画もされるウィンドウが表示される。

SDL_CreateWindow実行時にウィンドウが生成され、SDL_CreateREnderer実行時にウィンドウが再生成されるからっぽい(?)

なので、以下のように、SDL_WINDOW_HIDDENフラグを与えて初期化時にはウィンドウを非表示とし、 レンダラの作成後にウィンドウを表示するとチラつかない。

SDL_Init(SDL_INIT_VIDEO);
SDL_Window* window = SDL_CreateWindow("Yeah",SDL_WINDOWPOS_CENTERED,SDL_WINDOWPOS_CENTERED,640,480,SDL_WINDOW_HIDDEN);
SDL_Renderer* render = SDL_CreateRenderer(window, -1, 0);
SDL_ShowWindow(window);

ひとつ上へ