My Project
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
SDL_surface.h
Go to the documentation of this file.
1 /*
2  Simple DirectMedia Layer
3  Copyright (C) 1997-2014 Sam Lantinga <slouken@libsdl.org>
4 
5  This software is provided 'as-is', without any express or implied
6  warranty. In no event will the authors be held liable for any damages
7  arising from the use of this software.
8 
9  Permission is granted to anyone to use this software for any purpose,
10  including commercial applications, and to alter it and redistribute it
11  freely, subject to the following restrictions:
12 
13  1. The origin of this software must not be misrepresented; you must not
14  claim that you wrote the original software. If you use this software
15  in a product, an acknowledgment in the product documentation would be
16  appreciated but is not required.
17  2. Altered source versions must be plainly marked as such, and must not be
18  misrepresented as being the original software.
19  3. This notice may not be removed or altered from any source distribution.
20 */
21 
28 #ifndef _SDL_surface_h
29 #define _SDL_surface_h
30 
31 #include "SDL_stdinc.h"
32 #include "SDL_pixels.h"
33 #include "SDL_rect.h"
34 #include "SDL_blendmode.h"
35 #include "SDL_rwops.h"
36 
37 #include "begin_code.h"
38 /* Set up for C function definitions, even when using C++ */
39 #ifdef __cplusplus
40 extern "C" {
41 #endif
42 
51 /* @{ */
52 #define SDL_SWSURFACE 0
53 #define SDL_PREALLOC 0x00000001
54 #define SDL_RLEACCEL 0x00000002
55 #define SDL_DONTFREE 0x00000004
56 /* @} *//* Surface flags */
57 
61 #define SDL_MUSTLOCK(S) (((S)->flags & SDL_RLEACCEL) != 0)
62 
69 typedef struct SDL_Surface
70 {
73  int w, h;
74  int pitch;
75  void *pixels;
78  void *userdata;
81  int locked;
82  void *lock_data;
88  struct SDL_BlitMap *map;
91  int refcount;
92 } SDL_Surface;
93 
97 typedef int (*SDL_blit) (struct SDL_Surface * src, SDL_Rect * srcrect,
98  struct SDL_Surface * dst, SDL_Rect * dstrect);
99 
118 extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface
119  (Uint32 flags, int width, int height, int depth,
120  Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask);
121 extern DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurfaceFrom(void *pixels,
122  int width,
123  int height,
124  int depth,
125  int pitch,
126  Uint32 Rmask,
127  Uint32 Gmask,
128  Uint32 Bmask,
129  Uint32 Amask);
130 extern DECLSPEC void SDLCALL SDL_FreeSurface(SDL_Surface * surface);
131 
139 extern DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface * surface,
140  SDL_Palette * palette);
141 
161 extern DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface * surface);
163 extern DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface * surface);
164 
174 extern DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops * src,
175  int freesrc);
176 
182 #define SDL_LoadBMP(file) SDL_LoadBMP_RW(SDL_RWFromFile(file, "rb"), 1)
183 
191 extern DECLSPEC int SDLCALL SDL_SaveBMP_RW
192  (SDL_Surface * surface, SDL_RWops * dst, int freedst);
193 
199 #define SDL_SaveBMP(surface, file) \
200  SDL_SaveBMP_RW(surface, SDL_RWFromFile(file, "wb"), 1)
201 
210 extern DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface * surface,
211  int flag);
212 
224 extern DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface * surface,
225  int flag, Uint32 key);
226 
237 extern DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface * surface,
238  Uint32 * key);
239 
252 extern DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface * surface,
253  Uint8 r, Uint8 g, Uint8 b);
254 
255 
268 extern DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface * surface,
269  Uint8 * r, Uint8 * g,
270  Uint8 * b);
271 
282 extern DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface * surface,
283  Uint8 alpha);
284 
295 extern DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface * surface,
296  Uint8 * alpha);
297 
308 extern DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface * surface,
309  SDL_BlendMode blendMode);
310 
321 extern DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface * surface,
322  SDL_BlendMode *blendMode);
323 
337 extern DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface * surface,
338  const SDL_Rect * rect);
339 
346 extern DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface * surface,
347  SDL_Rect * rect);
348 
359 extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface
360  (SDL_Surface * src, const SDL_PixelFormat * fmt, Uint32 flags);
361 extern DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurfaceFormat
362  (SDL_Surface * src, Uint32 pixel_format, Uint32 flags);
363 
369 extern DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height,
370  Uint32 src_format,
371  const void * src, int src_pitch,
372  Uint32 dst_format,
373  void * dst, int dst_pitch);
374 
385 extern DECLSPEC int SDLCALL SDL_FillRect
386  (SDL_Surface * dst, const SDL_Rect * rect, Uint32 color);
387 extern DECLSPEC int SDLCALL SDL_FillRects
388  (SDL_Surface * dst, const SDL_Rect * rects, int count, Uint32 color);
389 
447 #define SDL_BlitSurface SDL_UpperBlit
448 
453 extern DECLSPEC int SDLCALL SDL_UpperBlit
454  (SDL_Surface * src, const SDL_Rect * srcrect,
455  SDL_Surface * dst, SDL_Rect * dstrect);
456 
461 extern DECLSPEC int SDLCALL SDL_LowerBlit
462  (SDL_Surface * src, SDL_Rect * srcrect,
463  SDL_Surface * dst, SDL_Rect * dstrect);
464 
471 extern DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface * src,
472  const SDL_Rect * srcrect,
473  SDL_Surface * dst,
474  const SDL_Rect * dstrect);
475 
476 #define SDL_BlitScaled SDL_UpperBlitScaled
477 
482 extern DECLSPEC int SDLCALL SDL_UpperBlitScaled
483  (SDL_Surface * src, const SDL_Rect * srcrect,
484  SDL_Surface * dst, SDL_Rect * dstrect);
485 
490 extern DECLSPEC int SDLCALL SDL_LowerBlitScaled
491  (SDL_Surface * src, SDL_Rect * srcrect,
492  SDL_Surface * dst, SDL_Rect * dstrect);
493 
494 
495 /* Ends C function definitions when using C++ */
496 #ifdef __cplusplus
497 }
498 #endif
499 #include "close_code.h"
500 
501 #endif /* _SDL_surface_h */
502 
503 /* vi: set ts=4 sw=4 expandtab: */
typedef int(SDLCALL *SDL_EventFilter)(void *userdata
uint8_t Uint8
An unsigned 8-bit integer type.
Definition: SDL_stdinc.h:139
DECLSPEC SDL_Surface *SDLCALL SDL_LoadBMP_RW(SDL_RWops *src, int freesrc)
int pitch
Definition: SDL_surface.h:74
void * lock_data
Definition: SDL_surface.h:82
DECLSPEC SDL_Surface *SDLCALL SDL_ConvertSurface(SDL_Surface *src, const SDL_PixelFormat *fmt, Uint32 flags)
DECLSPEC int SDLCALL SDL_GetSurfaceBlendMode(SDL_Surface *surface, SDL_BlendMode *blendMode)
Get the blend mode used for blit operations.
DECLSPEC int SDLCALL SDL_FillRect(SDL_Surface *dst, const SDL_Rect *rect, Uint32 color)
int(* SDL_blit)(struct SDL_Surface *src, SDL_Rect *srcrect, struct SDL_Surface *dst, SDL_Rect *dstrect)
The type of function used for surface blitting functions.
Definition: SDL_surface.h:97
uint32_t Uint32
An unsigned 32-bit integer type.
Definition: SDL_stdinc.h:155
DECLSPEC int SDLCALL SDL_ConvertPixels(int width, int height, Uint32 src_format, const void *src, int src_pitch, Uint32 dst_format, void *dst, int dst_pitch)
Copy a block of pixels of one format to another format.
DECLSPEC int SDLCALL SDL_SetSurfacePalette(SDL_Surface *surface, SDL_Palette *palette)
Set the palette used by a surface.
DECLSPEC int SDLCALL SDL_GetSurfaceColorMod(SDL_Surface *surface, Uint8 *r, Uint8 *g, Uint8 *b)
Get the additional color value used in blit operations.
DECLSPEC int SDLCALL SDL_LowerBlitScaled(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect)
int refcount
Definition: SDL_surface.h:91
int locked
Definition: SDL_surface.h:81
Definition: SDL_pixels.h:263
A rectangle, with the origin at the upper left.
Definition: SDL_rect.h:63
Uint32 flags
Definition: SDL_surface.h:71
DECLSPEC int SDLCALL SDL_SoftStretch(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, const SDL_Rect *dstrect)
Perform a fast, low quality, stretch blit between two surfaces of the same pixel format.
DECLSPEC void SDLCALL SDL_UnlockSurface(SDL_Surface *surface)
A collection of pixels used in software blitting.
Definition: SDL_surface.h:69
void * userdata
Definition: SDL_surface.h:78
DECLSPEC int SDLCALL SDL_LowerBlit(SDL_Surface *src, SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect)
DECLSPEC SDL_bool SDLCALL SDL_SetClipRect(SDL_Surface *surface, const SDL_Rect *rect)
void * pixels
Definition: SDL_surface.h:75
int h
Definition: SDL_surface.h:73
DECLSPEC int SDLCALL SDL_SetSurfaceBlendMode(SDL_Surface *surface, SDL_BlendMode blendMode)
Set the blend mode used for blit operations.
SDL_PixelFormat * format
Definition: SDL_surface.h:72
DECLSPEC int SDLCALL SDL_UpperBlit(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect)
DECLSPEC int SDLCALL SDL_GetSurfaceAlphaMod(SDL_Surface *surface, Uint8 *alpha)
Get the additional alpha value used in blit operations.
DECLSPEC int SDLCALL SDL_UpperBlitScaled(SDL_Surface *src, const SDL_Rect *srcrect, SDL_Surface *dst, SDL_Rect *dstrect)
SDL_Rect clip_rect
Definition: SDL_surface.h:85
DECLSPEC int SDLCALL SDL_LockSurface(SDL_Surface *surface)
Sets up a surface for directly accessing the pixels.
SDL_BlendMode
The blend mode used in SDL_RenderCopy() and drawing operations.
Definition: SDL_blendmode.h:40
struct SDL_Surface SDL_Surface
A collection of pixels used in software blitting.
DECLSPEC int SDLCALL SDL_SaveBMP_RW(SDL_Surface *surface, SDL_RWops *dst, int freedst)
DECLSPEC int SDLCALL SDL_GetColorKey(SDL_Surface *surface, Uint32 *key)
Gets the color key (transparent pixel) in a blittable surface.
DECLSPEC int SDLCALL SDL_SetSurfaceRLE(SDL_Surface *surface, int flag)
Sets the RLE acceleration hint for a surface.
DECLSPEC SDL_Surface *SDLCALL SDL_CreateRGBSurface(Uint32 flags, int width, int height, int depth, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
struct SDL_BlitMap * map
Definition: SDL_surface.h:88
DECLSPEC void SDLCALL SDL_GetClipRect(SDL_Surface *surface, SDL_Rect *rect)
Definition: SDL_pixels.h:274
Definition: SDL_rwops.h:52
DECLSPEC int SDLCALL SDL_SetSurfaceAlphaMod(SDL_Surface *surface, Uint8 alpha)
Set an additional alpha value used in blit operations.
DECLSPEC int SDLCALL SDL_SetColorKey(SDL_Surface *surface, int flag, Uint32 key)
Sets the color key (transparent pixel) in a blittable surface.
DECLSPEC int SDLCALL SDL_SetSurfaceColorMod(SDL_Surface *surface, Uint8 r, Uint8 g, Uint8 b)
Set an additional color value used in blit operations.