SDL_Surface(3)

Graphical Surface Structure

Section 3 libsdl1.2-dev bookworm source

Description

SDL_Surface

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 */

/* clipping information */
SDL_Rect clip_rect; /* Read-only */

/* Reference count -- used when freeing surface */
int refcount; /* Read-mostly */

/* This structure also contains private fields not shown here */

} 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_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_SRCCOLORKEY

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