目次 - API(機能別) - サーフェイスの生成と単純な描画 - SDL_Surface

SDL_Surface

コピーで使われるピクセルの集まりの構造体

フィールド

Uint32flags(内部使用)
SDL_PixelFormat*formatサーフェイスに格納されたピクセル形式 詳細はSDL_PixelFormatを参照すること (読取専用)
intw幅のピクセル数 (読取専用)
inth高さのピクセル数 (読取専用)
intpitch幅のピクセルのbyte数 (読取専用)
void*pixels実際のピクセルデータへのポインタ 詳細を参照すること (読み書き可能)
void*userdata自由に利用できるポインタ (読み書き可能)
intlockedサーフェイスのロックを要求されたときに使う (内部使用)
void*lock_dataサーフェイスのロックを要求されたときに使う (内部で使用する)
SDL_Rectclip_rectサーフェイスへのコピー時のクリップで使われるSDL_Rect構造体 SDL_SetClipRect()で設定できる (読取専用)
SDL_BlitMapmap他のサーフェイスへの高速コピーマッピングの情報 (内部使用)
intrefcountアプリケーションから参照された回数

サンプルコード

/* この関数はCPUでサーフェイスのピクセルを編集する方法を示すためのものである.
   しかし, サーフェイスをクリアするときは通常はSDL_FillRect()を使うほうがよいだろう. */
void WipeSurface(SDL_Surface *surface)
{
    /* ロックの必要のないサーフェイスではこれが高速である. */
    /* 一度ロックすれば surface->pixels に安全にアクセスできるようになる. */
    SDL_LockSurface(surface);

    /* 0を黒色とみなしている. SDL_MapRGBA()を使うとより確実にサーフェイスと色をマッピングできる! */
    /* ピッチ×高さがサーフェイスのバッファ全体のサイズである. */
    SDL_memset(surface->pixels, 0, surface->h * surface->pitch);

    SDL_UnlockSurface(surface);
}

詳細

ほとんどのサーフェイスはpixelsに直接アクセスできる. SDL_SetSurfaceRLE()で最適化されたサーフェイスはpixelsにアクセスする前にSDL_LockSurface()でロックする必要がある. アクセスし終えたならばサーフェイスをコピーする前にSDL_UnlockSurface()を呼ぶ必要がある.

関連項目(関数)

SDL_BlitSurface
SDL_ConvertSurface
SDL_CreateRGBSurface
SDL_CreateRGBSurfaceFrom
SDL_FillRect
SDL_FillRects
SDL_FreeSurface
SDL_GetClipRect
SDL_GetColorKey
SDL_GetSurfaceAlphaMod
SDL_GetSurfaceBlendMode
SDL_GetSurfaceColorMod
SDL_LoadBMP_RW
SDL_LockSurface
SDL_LowerBlit
SDL_MUSTLOCK
SDL_SaveBMP_RW
SDL_SetClipRect
SDL_SetColorKey
SDL_SetSurfaceAlphaMod
SDL_SetSurfaceBlendMode
SDL_SetSurfaceColorMod
SDL_SetSurfacePalette
SDL_BlitScaled
SDL_UnlockSurface
SDL_BlitSurface

SDL Wikiへのリンク

SDL_Surface - SDL Wiki