SDL_Surface(3)

NAME
SDL_Surface- Graphical Surface Structure

STRUCTURE DEFINITION

typedef struct SDL_Surface {
        Uint32 flags;                           /* Read-only */
        SDL_PixelFormat *format;                /* Read-only */
        int w, h;                               /* Read-only */
        Uint16 pitch;                           /* Read-only */
        void *pixels;                           /* Read-write */
        int offset;                             /* Private */
        /* Hardware-specific surface info */
        struct private_hwdata *hwdata;
        /* clipping information */
        SDL_Rect clip_rect;                     /* Read-only */
        Uint32 unused1;                         /* for binary compatibility */
        Uint32 unused2;                         /* for binary compatibility */
        /* info for fast blit mapping to other surfaces */
        struct SDL_BlitMap *map;                /* Private */
        /* format version, bumped at every change to invalidate blit maps */
        unsigned int format_version;            /* Private */
        /* Reference count -- used when freeing surface */
        int refcount;                           /* Read-mostly */
} SDL_Surface;

STRUCTURE DATA

flags
    Surface flags

format
    Pixel format

w, h
    Width and height of the surface

pitch
    Length of a surface scanline in bytes

pixels
    Pointer to the actual pixel data

clip_minx, clip_maxx
    X clip coords

clip_rect
    surface clip rectangle

DESCRIPTION

SDL_Surface's represent areas of "graphical" memory, memory that can be drawn to. The video framebuffer is returned as a SDL_Surface by SDL_SetVideoMode and SDL_GetVideoSurface. Most of the fields should be pretty obvious. w and h are the width and height of the surface in pixels. pixels is a pointer to the actual pixel data, the surface should be locked before accessing this field. The clip_rect field is the clipping rectangle as set by SDL_SetClipRect.

The following are supported in the flags field.

SDL_SWSURFACE
    Surface is stored in system memory

SDL_HWSURFACE
    Surface is stored in video memory

SDL_ASYNCBLIT
    Surface uses asynchronous blits if possible

SDL_ANYFORMAT
    Allows any pixel-format (Display surface)

SDL_HWPALETTE
    Surface has exclusive palette

SDL_DOUBLEBUF
    Surface is double buffered (Display surface)

SDL_FULLSCREEN
    Surface is full screen (Display Surface)

SDL_OPENGL
    Surface has an OpenGL context (Display Surface)

SDL_OPENGLBLIT
    Surface supports OpenGL blitting (Display Surface)

SDL_RESIZABLE
    Surface is resizable (Display Surface)

SDL_HWACCEL
    Surface blit uses hardware acceleration

SDL_SRCOLORKEY
    Surface use colorkey blitting

SDL_RLEACCEL
    Colorkey blitting is accelerated with RLE

SDL_SRCALPHA
    Surface blit uses alpha blending

SDL_PREALLOC
    Surface uses preallocated memory

SEE ALSO

SDL_PixelFormat