SDL_Surface* SDL_CreateRGBSurfaceFrom(void* pixels, int width, int height, int depth, int pitch, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
pixels | 既存のピクセルデータへのポインタ |
width | サーフェイスの幅 |
height | サーフェイスの高さ |
depth | サーフェイスのビット深度 (詳細を参照すること) |
pitch | 水平方向のバイト数 |
Rmask | ピクセルの赤マスク |
Gmask | ピクセルの緑マスク |
Bmask | ピクセルの青マスク |
Amask | ピクセルのαマスク |
depthが4または8のとき, 空のパレットが生成される. depthが8を超えるとき, 引数の[RGBA]maskを使ったピクセル形式が設定される.
[RGBA]maskはピクセルの色を指定するためのビットマスクとして使われる.
例えば, RmaskがFF0000ならば, 赤のデータは最上位バイトに格納される.
[RGB]maskを0にすると, ビット深度に基づいたデフォルトの値になる.
(例: SDL_CreateRGBSurface(0,w,h,32,0,0,0,0);
)
しかし, Amaskを0にすると, αマスクは0になる.
αマスク付きサーフェイスのブレンドモードの初期値は SDL_SetSurfaceBlendMode(surface, SDL_BLENDMODE_BLEND)
である.
SDL_SetSurfaceBlendMode()で別のブレンドモードに変えることができる.
ピクセルデータは新たに生成されない. ピクセルデータは管理外である. つまり, サーフェイスを解放した後はピクセルデータも解放する必要がある.