スクリーンをアップデートする。
int SDL_Flip(SDL_Surface *screen);
screenはアップデートするスクリーン。
SDL_SetVideoMode()でSDL_DOUBLEBUFを指定していると、効果的。
返り値は -1: エラー、 0:成功
#include <SDL/SDL.h> int main(){ /* ビデオサーフェス */ SDL_Surface* videoSurface = NULL; /* 矩形 */ SDL_Rect rect; /* 背景色 */ Uint32 bgColor; /* ループ変数 */ int loop; /* 初期化処理 */ SDL_Init(SDL_INIT_EVERYTHING); /* ウインドウオープン */ SDL_SetVideoMode(640, 480, 0, SDL_HWSURFACE | SDL_DOUBLEBUF); /* ビデオサーフェスの取得 */ videoSurface = SDL_GetVideoSurface(); /* 矩形の初期化 */ rect.w = 640; rect.h = 2; rect.x = 0; rect.y = 0; /* 塗りつぶし処理 */ for(loop = 0; loop < 240; loop++){ bgColor = SDL_MapRGB(videoSurface->format, 0x00, 0x00, 0xFF - loop); rect.y = loop * 2; SDL_FillRect(videoSurface, &rect, bgColor); } /* フリップ */ SDL_Flip(videoSurface); /* 3秒ウエイト */ SDL_Delay(3000); /* 終了処理 */ SDL_Quit(); return 0; }
少しずつ色を変えてグラデーションを作成する例