目次 - SDL 3.0 API(機能別) - 2Dレンダリング - SDL_CreateTextureFromSurface

SDL_CreateTextureFromSurface

サーフェイスからテクスチャを生成する

ヘッダ

SDL3/SDL_render.h

構文

SDL_Texture * SDL_CreateTextureFromSurface(SDL_Renderer *renderer, SDL_Surface *surface);

引数

SDL_Renderer *rendererレンダリングコンテキスト
SDL_Surfacesurfaceテクスチャで使うピクセルデータを持つサーフェイス

戻り値

(SDL_Texture *) 成功のとき生成されたテクスチャ, 失敗のときNULLを戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

この関数はサーフェイスの変更も解放もしない.

このテクスチャのSDL_TextureAccessヒントはSDL_TEXTUREACCESS_STATICである.

生成されるテクスチャのピクセル形式はサーフェイスのピクセル形式とは異なる場合がある. テクスチャのピクセル形式はSDL_PROP_TEXTURE_FORMAT_NUMBERプロパティで得ることができる.

スレッドセーフ

この関数を呼べるのはメインスレッドのみである.

バージョン

SDL 3.2.0以降

サンプルコード

SDL_Renderer *renderer;

SDL_Surface *surface = SDL_CreateSurface(640, 480, SDL_PIXELFORMAT_RGBA8888);

if (surface == NULL) {
    SDL_Log("SDL_CreateSurface失敗: %s", SDL_GetError());
    exit(1);
}

SDL_Texture *texture = SDL_CreateTextureFromSurface(renderer, surface);

if (texture == NULL) {
    SDL_Log("SDL_CreateTextureFromSurface失敗: %s", SDL_GetError());
    exit(1);
}

SDL_DestroySurface(surface);
surface = NULL;

// ここでテクスチャを使用する. 使用を終えたら廃棄する

SDL_DestroyTexture(texture);

関連項目

SDL Wikiへのリンク

SDL_CreateTextureFromSurface - SDL Wiki