Uint32 | flags | (内部使用) |
SDL_PixelFormat* | format | サーフェイスに格納されたピクセルのフォーマット 詳細はSDL_PixelFormatを参照すること (読取専用) |
int | w | 幅のピクセル数 (読取専用) |
int | h | 高さのピクセル数 (読取専用) |
int | pitch | 幅のピクセルのbyte数 (読取専用) |
void* | pixels | 実際のピクセルデータへのポインタ 詳細を参照すること (読取専用) |
void* | userdata | 自由に利用できるポインタ (読み書き可能) |
int | locked | サーフェイスのロックを要求されたときに使う (内部使用) |
void* | lock_data | サーフェイスのロックを要求されたときに使う (内部で使用する) |
SDL_Rect | clip_rect | サーフェイスへのビットマップ転送のクリッピングで使われるSDL_Rect構造体 SDL_SetClipRect()で設定できる (読取専用) |
SDL_BlitMap | map | 他のサーフェイスへの高速転送マッピングの情報 (内部使用) |
int | refcount | アプリケーションから参照された回数 |
int SDL_BlitScaled(SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect)
src | コピー元のSDL_Surface構造体 |
srcrect | コピー元の領域を表すSDL_Rect構造体. NULLのときサーフェイス全体 |
dst | コピー先のSDL_Surface構造体 |
dstrect | コピー先の領域を表すSDL_Rect構造体. NULLのときサーフェイス全体 |
int SDL_BlitSurface(SDL_Surface* src, const SDL_Rect* srcrect, SDL_Surface* dst, SDL_Rect* dstrect)
src | コピー元のSDL_Surface構造体 |
srcrect | コピー元の領域を表すSDL_Rect構造体. NULLのときサーフェイス全体 |
dst | コピー先のSDL_Surface構造体 |
dstrect | コピー先の領域を表すSDL_Rect構造体. NULLのときサーフェイス全体 |
SDLのビットマップ転送が内部でどのように行われるかを正確に理解していないならば, そしてどのように他のビットマップ転送関数を使うのか分からないならばSDL_BlitSurface()を使うべきである.
これは高レベルのビットマップ転送関数で, SDL_LowerBlit()を呼ぶ前に領域の検証とクリッピングが行われる.
このビットマップ転送関数はロックしたサーフェイスに対して呼んではならない.
コピーされる領域のサイズはsrcrectの幅と高さで決まる. dstrectは位置のみで, 幅と高さは無視される. dstrectの座標が負の場合でも正しくクリッピングされる.
srcrectがNULLのときサーフェイスの全体がコピーされる. destrectがNULLのときコピー先は(0,0) (左上)となる.
全てのクリッピングが行われた後, 最後に転送された領域はdstrectに保存される. (srcrectは変化しない.)
ブレンディングやカラーキーの定義の有無により転送は以下のようになる.
フォーマット | コピー元サーフェイスのブレンドモード | 転送 | ||
---|---|---|---|---|
RGBA→RGB | SDL_BLENDMODE_BLEND | アルファブレンド(コピー元のアルファチャネルとパー・サーフェイス・アルファが使われる). SDL_SRCCOLORKEYは無視される. | ||
SDL_BLENDMODE_NONE | RGBがコピーされる. SDL_SRCCOLORKEYが設定されていれば, コピー元のカラーキーのRGB値と一致するピクセルのみコピーされる. | |||
RGB→RGBA | SDL_BLENDMODE_BLEND | アルファブレンド(コピー元のパー・サーフェイス・アルファが使われる). | SDL_SRCCOLORKEYが設定されていれば, コピー元のカラーキーのRGB値と一致するピクセルのみコピーされる. | |
SDL_BLENDMODE_NONE | RGBがコピーされる. コピー先のアルファにはコピー元のパー・サーフェイス・アルファが設定される. | |||
RGBA→RGBA | SDL_BLENDMODE_BLEND | アルファブレンド(コピー元のアルファチャネルとパー・サーフェイス・アルファが使われる). SDL_SRCCOLORKEYは無視される. | ||
BLENDMODE_NONE | RGBA全てがコピーされる. SDL_SRCCOLORKEYが設定されていれば, コピー元のカラーキーのRGB値と一致するピクセルのみコピーされる. このときアルファは無視される. | |||
RGB→RGB | SDL_BLENDMODE_BLEND | アルファブレンド(コピー元のパー・サーフェイス・アルファが使われる). | SDL_SRCCOLORKEYが設定されていれば, コピー元のカラーキーのRGB値と一致するピクセルのみコピーされる. | |
SDL_BLENDMODE_NONE | RGBがコピーされる |
int SDL_ConvertPixels(int width, int height, Uint32 src_format, const void* src, int src_pitch, Uint32 dst_format, void* dst, int dst_pitch)
width | 幅のピクセル数 |
height | 高さのピクセル数 |
src_format | コピー元のピクセルのフォーマット (詳細を参照すること) |
src | コピー元のピクセル |
src_pitch | コピー元の幅のbyte数 |
dst_format | コピー先のピクセルのフォーマット (詳細を参照すること) |
dst | 新しいピクセルを書き込むポインタ |
dst_pitch | コピー先の幅のbyte数 |