typedef struct SDL_Surface {
Uint32 flags; /* 読込専用 */
SDL_PixelFormat *format; /* 読込専用 */
int w, h; /* 読込専用 */
Uint16 pitch; /* 読込専用 */
void *pixels; /* 読み書き */
/* clipping information */
SDL_Rect clip_rect; /* 読込専用 */
/* Reference count -- used when freeing surface */
int refcount; /* ほとんど読込 */
/* This structure also contains private fields not shown here */
} SDL_Surface;SDL_Surface は 描画される「絵」のメモリを表現する領域です。 ビデオフレームバッファは SDL_SetVideoMode と SDL_GetVideoSurface から SDL_Surface として返されます。 ほとんどのフィールドはとても明確です。 w と h は サーフェスの幅と高さのピクセル数です。 pixels は実際のピクセル領域へのポインタであり、 このフィールドにアクセスする前にサーフェスは ロックされるべきです。 clip_rect フィールドは SDL_SetClipRect によってセットされるクリッピング矩形領域です。
flags フィールドでは以下がサポートされています。
| SDL_SWSURFACE | サーフェスがシステムメモリに格納されます。 |
| SDL_HWSURFACE | サーフェスがビデオメモリに格納されます。 |
| SDL_ASYNCBLIT | 可能であればサーフェスは非同期 blit 転送を使用します。 |
| SDL_ANYFORMAT | 任意のピクセルフォーマットを許可します。(表示サーフェス) |
| SDL_HWPALETTE | サーフェスには排他的なパレットがあります。 |
| SDL_DOUBLEBUF | サーフェスはダブルバッファです。(表示サーフェス) |
| SDL_FULLSCREEN | サーフェスはフルスクリーンです。(表示サーフェス) |
| SDL_OPENGL | サーフェスには OpenGL コンテキストがあります。(表示サーフェス) |
| SDL_OPENGLBLIT | サーフェスは OpenGL への blit 転送をサポートします。(表示サーフェス) |
| SDL_RESIZABLE | サーフェスはサイズ変更が可能です。(表示サーフェス) |
| SDL_HWACCEL | サーフェスの blit 転送にはハードウェアアクセラレーションを使います。 |
| SDL_SRCCOLORKEY | サーフェスはカラーキー付き blit 転送を使います。 |
| SDL_RLEACCEL | カラーキー付き blit 転送は RLE (ランレングス圧縮)による アクセラレーションが利きます。 |
| SDL_SRCALPHA | サーフェスの blit 転送はαブレンディングを使います。 |
| SDL_PREALLOC | サーフェスは前もって確保されたメモリを使います。 |