bool SDL_BlitSurface(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, const SDL_Rect *dstrect);
| SDL_Surface * | src | コピー元のSDL_Surface |
| const SDL_Rect * | srcrect | コピー元の領域のSDL_Rect. NULLのときサーフェイス全体 |
| SDL_Surface * | dst | コピー先のSDL_Surface |
| const SDL_Rect * | dstrect | コピー先のx, y座標のSDL_Rect. NULLのとき(0, 0). この幅と高さは無視され, srcrectの幅と高さでコピーされる. 幅と高さを指定したい場合はSDL_BlitSurfaceScaled()を使用すること |
srcrectまたはdstrectのどちらかがNULLの場合, サーフェイス全体(srcまたはdst)がdst->clip_rectでクリッピングされてコピーされる.
この関数はロックしたサーフェイスに対して呼んではならない.
ブレンドやカラーキーの定義の有無によりコピーは以下のようになる.
| 形式 | コピー元サーフェイスのブレンドモード | コピー | ||
|---|---|---|---|---|
| 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がコピーされる | |||
srcとdstのスレッドを同時に使用するのは1つのスレッドである必要がある
SDL_Surface *surface;
SDL_Rect source_rect;
SDL_Surface *temp_surface;
SDL_BlitSurface(surface, &source_rect, temp_surface, NULL);