GNU/Linux | 
					CentOS 5.3 | 
					|
![]()  | 
					SDL_Surface(3) | 
					![]()  | 
				
SDL_Surface− Graphical Surface Structure
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;
| 
 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  | 
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  | 
SDL_PixelFormat
![]()  | 
				SDL_Surface(3) | ![]()  |