SDL_Texture * IMG_LoadTextureTyped_IO(SDL_Renderer *renderer, SDL_IOStream *src, bool closeio, const char *type);
| SDL_Renderer * | renderer | テクスチャを生成するために使用するSDL_Renderer |
| SDL_IOStream * | src | 読み込むSDL_IOStream |
| bool | closeio | 真のときsrcを自動的に閉じる/解放する. 偽のとき開いたままにする |
| const char * | type | データの種類を表すファイルの拡張子("BMP", "GIF", "PNG"など) |
SDL_TextureはGPUメモリ内の画像で, SDLの2DレンダリングAPIで使用できる. これは読み込んだ後に画像を直接編集するのでなければ, CPUを使用するSDL_Surfaceよりもはるかに効率的である.
読み込んだ画像に透明色またはカラーキーがある場合ば, テクスチャにはαチャネルが生成される. そうでない場合は, 画像データを表すのに最も合理的な形式でSDL_Textureを生成しようとする(しかしほとんどの場合は32ビットRGBまたは32ビットRGBAとなる).
closeioが真の場合, 処理が成功してもしなくてもsrcは閉じる.
この関数を呼んだとき, どのような場合でもSDL_imageは必要ならばsrcを全て読み込む.
この関数はファイルの種別を指定できるが, 画像データを別の形式として読み込める場合, SDL_imageは別のデコーダを見つけようとする.
しかし, 自動検出できない場合は呼び出し側の画像種別文字列を信頼する.
typeがNULLのとき, SDL_imageは何も参考にせずに形式を推定する.
SDL_IOStreamを使わずにディスクからファイルを読み込む別の関数も存在する. IMG_LoadTexture(renderer, "filename.jpg")のようにすると, 内部でこの関数を呼び, ファイル名の拡張子からファイル種別を類推する.
IMG_LoadTexture_IO()関数も存在する. これはtypeにNULLを渡した場合のようにSDL_imageがファイル形式を読み込み時に自動的に判別すること以外はこの関数と同じである.
SDL_Surface(CPUメモリ内のピクセルバッファ)に読み込みたいならば, 代わりにIMG_Load_IO()を使用すること.
テクスチャを使用し終えたならば, アプリケーションはSDL_DestroyTexture()を呼んで破棄しなければならない.