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

# SDL_LoadBMP_RW

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

## 構文

`SDL_Surface* SDL_LoadBMP_RW(SDL_RWops* src, int freesrc)`

## 引数

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

## 戻り値

成功のとき生成された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