ゲームが作れるようになるまでがんばる日記

ゲーム制作のことを中心にゲームに関することを書いています

描画のクリアその2

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 );

    // 以下、シーン中のさまざまな描画
}