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

SDL_LockTextureToSurface

ピクセルの書込専用アクセスのためにテクスチャの一部をロックしてSDLサーフェイスとする

ヘッダ

SDL3/SDL_render.h

構文

bool SDL_LockTextureToSurface(SDL_Texture *texture, const SDL_Rect *rect, SDL_Surface **surface);

引数

SDL_Texture *textureアクセスのためにロックするテクスチャ. SDL_TEXTUREACCESS_STREAMINGで生成されている必要がある
const SDL_Rect *rectアクセスのためロックする領域のSDL_Rect. NULLのとき全体をロックする
SDL_Surface **surfacerectのサイズのSDLサーフェイスへのポインタ. 何らかのピクセルが書き込まれているとみなしてはならない

戻り値

(bool) 成功のとき真, 失敗のとき偽を戻す. SDL_GetError()を呼んで詳細を知ることができる.

詳細

この関数は, 生のピクセルデータの代わりにSDL_Surfaceが提供されること以外は, SDL_LockTextureと同様の処理を行う.

最適化のため, 編集用のピクセル領域には編集前のテクスチャデータが書き込まれているとは限らない. これは書き込み専用の操作であり, テクスチャデータのコピーを保持したいならば, アプリケーション側が行う必要がある.

SDL_UnlockTexture()でピクセル領域をロック解除して変更を適用する必要がある.

SDL_UnlockTexture()またはSDL_DestroyTexture()を呼ぶと, 戻されたsurfaceは内部で解放される. 呼び出し側は解放してはならない.

スレッドセーフ

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

関連項目

バージョン

SDL 3.2.0以降

SDL Wikiへのリンク

SDL_LockTextureToSurface - SDL Wiki