SDLにはサーフェスをクリアする命令がないと思っていたけど、SDL_FillRectという指定したカラーで矩形を塗りつぶすという命令があった。それで画面のクリアを実現できる。
わざわざクリア用のテクスチャを用意する必要はなかった。
ということでクリアカラーを設定できる関数も用意して、シーン描画の最初にクリアするように設定。
SDL_Surface* m_pScreen; // 描画サーフェス Uint32 m_ClearColor; // クリアカラー // クリアカラーの設定 void setClearColor(Uint8 r, Uint8 g, Uint8 b) { m_ClearColor = SDL_MapRGB( SDL_GetVideoInfo()->vfmt, r, g, b ); } // シーンの描画 void drawScene() { SDL_FillRect( m_pScreen, NULL, m_ClearColor ); // 以下、シーン中のさまざまな描画 }