TSDL_Surface -- Graphical Surface Structure

Structure Definition

  TSDL_Surface = record
flags: uint32; // Read-only
format: PSDL_PixelFormat; // Read-only
w, h: Integer; // Read-only
pitch: Uint16; // Read-only
pixels: Pointer; // Read-write
offset: Integer; // Private
hwdata: Pointer; //TPrivate_hwdata; Hardware-specific surface info

// clipping information:
clip_rect: TSDL_Rect; // Read-only
unused1: Uint32; // for binary compatibility
// Allow recursive locks
locked: Uint32; // Private
// info for fast blit mapping to other surfaces
Blitmap: Pointer; // PSDL_BlitMap; // Private
// format version, bumped at every change to invalidate blit maps
format_version: Cardinal; // Private
refcount: Integer;

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


TSDL_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