戻る


SDL_Flip

スクリーンをアップデートする。

使い方

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

少しずつ色を変えてグラデーションを作成する例

関連項目