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

SDL_LockTexture

ピクセルを書き込み専用にするためにテクスチャの一部をロックする

構文

int SDL_LockTexture(SDL_Texture* texture, const SDL_Rect* rect, void** pixels, int* pitch)

引数

textureアクセスのためにロックするテクスチャ. SDL_TEXTUREACCESS_STREAMINGで生成されている必要がある
rectアクセスのためロックする領域のSDL_Rect. NULLのとき全体をロックする
pixels ポインタ変数のアドレス. ロックされた領域で正確に合されたここにテスクチャのメモリの先頭アドレスが代入される
pitch ロックされたピクセルの幅が代入される. 幅は1行のバイト数である

戻り値

成功のとき0を戻す. テクスチャが使えない, またはSDL_TEXTUREACCESS_STREAMINGで生成されていないとき負の数のエラーコードを戻す. SDL_GetError()で詳細を知ることができる.

詳細

最適化のため, テクスチャのロックで使用するメモリ領域には, 前回アンロックしたテクスチャの領域のデータは書き込まれていない. pixelsパラメータに渡したポインタが示すアドレスのメモリには, まだデータが残っているかもしれないが, それは単なる偶然でしかない.

pixelsパラメータに渡されたポインタが示すメモリをVRAMに転送してテクスチャのアンロックするにはSDL_UnlockTexture()を使用すること.

**注意** アンロックする前に, ロックしたテクスチャ領域の全てのバイトに書き込むこと. そうしなければテクスチャにはランダムな内容が含まれてしまう.

pitchは通常は [ピクセルのバイト数] * [テクスチャを生成したウィンドウの幅] であるが, パッディングでこれよりも大きい場合もある. パッディングのバイトの内容はこれ以降の関数では無視される. ロックされたテクスチャのx, yのピクセルの先頭からに書き込むには, y * pitch + x * [ピクセルのバイト数] を使用すること.

バージョン

SDL 2.0.0以降

関連項目(関数)

SDL_UnlockTexture

SDL Wikiへのリンク

SDL_LockTexture - SDL Wiki