目次 - API(機能別) - サーフェイスの生成と単純な描画 - SDL_LoadBMP_RW

SDL_LoadBMP_RW

シーク可能なSDLデータストリームからBMP形式をサーフェイスに読み込む

構文

SDL_Surface* SDL_LoadBMP_RW(SDL_RWops* src, int freesrc)

引数

srcデータストリーム
freesrc0以外のとき読み終えたときストリームを閉じる

戻り値

成功のとき生成されたSDL_Surface, 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

サンプルコード

const char *image_path = "myimage.bmp";

/* "rb" は "読込 バイナリ" を表す */
SDL_RWops *file = SDL_RWFromFile(image_path, "rb");

/* freesrcが真なのでファイルは自動的に閉じる */
SDL_Surface *image = SDL_LoadBMP_RW(file, SDL_TRUE);

/* ファイルの読み込みに失敗したらユーザに知らせる */
if (!image) {
    printf("画像の読み込みに失敗した %s: %s\n", image_path, SDL_GetError());
    return;
}

/* ここで画像を使う */

/* 最後にサーフェイスの資源を解放する */
SDL_FreeSurface(image);

詳細

生成されたサーフェイスはSDL_FreeSurface()で解放する必要がある. そうしないとメモリリークを引き起こすだろう.

srcはSDL_RWopsバッファで, 通常はSDL_RWFromFile()で読み込む. この関数の代わりに, SDL_LoadBMP()マクロを使ってビットマップファイルを読み込み, それをSDL_Surfaceに変換した後にファイルをクローズしてもよい.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_FreeSurface
SDL_LoadBMP
SDL_SaveBMP_RW

SDL Wikiへのリンク

SDL_LoadBMP_RW - SDL Wiki