SDL_pixels_c.h File Reference
`#include "../SDL_internal.h"`
`#include "SDL_blit.h"`
Include dependency graph for SDL_pixels_c.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Functions

int | SDL_InitFormat (SDL_PixelFormat *format, Uint32 pixel_format)
SDL_BlitMap * | SDL_AllocBlitMap (void)
void | SDL_InvalidateMap (SDL_BlitMap *map)
int | SDL_MapSurface (SDL_Surface *src, SDL_Surface *dst)
void | SDL_FreeBlitMap (SDL_BlitMap *map)
int | SDL_CalculatePitch (SDL_Surface *surface)
void | SDL_DitherColors (SDL_Color *colors, int bpp)
Uint8 | SDL_FindColor (SDL_Palette *pal, Uint8 r, Uint8 g, Uint8 b, Uint8 a)

## Function Documentation

SDL_BlitMap* SDL_AllocBlitMap | ( | void |  | ) |

Definition at line 954 of file SDL_pixels.c.

References SDL_BlitInfo::a, SDL_BlitInfo::b, SDL_BlitInfo::g, SDL_BlitMap::info, map, NULL, SDL_BlitInfo::r, SDL_calloc(), and SDL_OutOfMemory.

Referenced by SDL_CreateRGBSurface().

{
SDL_BlitMap *map;
/* Allocate the empty map */
map = (SDL_BlitMap *) SDL_calloc(1, sizeof(*map));
if (map == NULL) {
SDL_OutOfMemory();
return (NULL);
}
map->info.r = 0xFF;
map->info.g = 0xFF;
map->info.b = 0xFF;
map->info.a = 0xFF;
/* It's ready to go */
return (map);
}
SDL_BlitInfo::r
Uint8 r
Definition: SDL_blit.h:70
SDL_BlitInfo::b
Uint8 b
Definition: SDL_blit.h:70
SDL_BlitInfo::g
Uint8 g
Definition: SDL_blit.h:70
SDL_calloc
void * SDL_calloc(size_t nmemb, size_t size)
NULL
#define NULL
Definition: begin_code.h:143
SDL_OutOfMemory
#define SDL_OutOfMemory()
Definition: SDL_error.h:52
SDL_BlitMap
Definition: SDL_blit.h:85
map
const GLubyte GLuint GLuint GLuint GLuint alpha GLboolean GLboolean GLboolean GLboolean alpha GLint GLint GLsizei GLsizei GLenum type GLenum GLint GLenum GLint GLint GLsizei GLsizei GLint border GLenum GLint GLint GLint GLint GLint GLsizei GLsizei height GLsizei GLsizei GLenum GLenum const GLvoid *pixels GLenum GLint GLint GLint GLint j2 GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble zFar GLenum GLenum GLint *params GLenum GLenum GLint *params GLenum GLenum GLint *params GLenum GLenum GLfloat *params GLenum GLint GLenum GLenum GLvoid *pixels GLenum GLint GLenum GLint *params GLenum GLenum GLint *params GLenum GLsizei const GLvoid *pointer GLenum GLenum const GLint *params GLenum GLfloat GLfloat GLint GLint const GLfloat *points GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat *points GLint GLfloat GLfloat GLint GLfloat GLfloat v2 GLenum GLenum const GLint *params GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble zFar GLenum map
Definition: SDL_glfuncs.h:289
SDL_BlitMap::info
SDL_BlitInfo info
Definition: SDL_blit.h:91
SDL_BlitInfo::a
Uint8 a
Definition: SDL_blit.h:70

int SDL_CalculatePitch | ( | SDL_Surface * | surface | ) |

Definition at line 748 of file SDL_pixels.c.

References SDL_PixelFormat::BitsPerPixel, SDL_PixelFormat::BytesPerPixel, SDL_Surface::format, and SDL_Surface::w.

Referenced by SDL_CreateRGBSurface().

{
int pitch;
/* Surface should be 4-byte aligned for speed */
pitch = surface->w * surface->format->BytesPerPixel;
switch (surface->format->BitsPerPixel) {
case 1:
pitch = (pitch + 7) / 8;
break;
case 4:
pitch = (pitch + 1) / 2;
break;
default:
break;
}
pitch = (pitch + 3) & ~3; /* 4-byte aligning */
return (pitch);
}
SDL_PixelFormat::BytesPerPixel
Uint8 BytesPerPixel
Definition: SDL_pixels.h:304
SDL_Surface::w
int w
Definition: SDL_surface.h:73
SDL_PixelFormat::BitsPerPixel
Uint8 BitsPerPixel
Definition: SDL_pixels.h:303
SDL_Surface::format
SDL_PixelFormat * format
Definition: SDL_surface.h:72

void SDL_DitherColors | ( | SDL_Color * | colors,
|  | int | bpp
| ) |  |

Definition at line 720 of file SDL_pixels.c.

References SDL_Color::a, SDL_Color::b, SDL_Color::g, i, SDL_Color::r, and SDL_ALPHA_OPAQUE.

Referenced by MapNto1().

{
int i;
if (bpp != 8)
return; /* only 8bpp supported right now */
for (i = 0; i < 256; i++) {
int r, g, b;
/* map each bit field to the full [0, 255] interval,
so 0 is mapped to (0, 0, 0) and 255 to (255, 255, 255) */
r = i & 0xe0;
r |= r >> 3 | r >> 6;
colors[i].r = r;
g = (i << 3) & 0xe0;
g |= g >> 3 | g >> 6;
colors[i].g = g;
b = i & 0x3;
b |= b << 2;
b |= b << 4;
colors[i].b = b;
colors[i].a = SDL_ALPHA_OPAQUE;
}
}
r
GLdouble GLdouble GLdouble r
Definition: SDL_opengl.h:2072
SDL_Color::g
Uint8 g
Definition: SDL_pixels.h:282
SDL_Color::b
Uint8 b
Definition: SDL_pixels.h:283
g
GLboolean GLboolean g
Definition: SDL_opengl_glext.h:1109
SDL_Color::r
Uint8 r
Definition: SDL_pixels.h:281
SDL_Color::a
Uint8 a
Definition: SDL_pixels.h:284
i
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:42
SDL_ALPHA_OPAQUE
#define SDL_ALPHA_OPAQUE
Definition: SDL_pixels.h:45
b
GLboolean GLboolean GLboolean b
Definition: SDL_opengl_glext.h:1109

Uint8 SDL_FindColor | ( | SDL_Palette * | pal,
|  | Uint8 | r,
|  | Uint8 | g,
|  | Uint8 | b,
|  | Uint8 | a
| ) |  |

Definition at line 772 of file SDL_pixels.c.

References SDL_Color::a, SDL_Color::b, SDL_Palette::colors, SDL_Color::g, i, SDL_Palette::ncolors, and SDL_Color::r.

Referenced by Map1to1(), SDL_MapRGB(), and SDL_MapRGBA().

{
/* Do colorspace distance matching */
unsigned int smallest;
unsigned int distance;
int rd, gd, bd, ad;
int i;
Uint8 pixel = 0;
smallest = ~0;
for (i = 0; i < pal->ncolors; ++i) {
rd = pal->colors[i].r - r;
gd = pal->colors[i].g - g;
bd = pal->colors[i].b - b;
ad = pal->colors[i].a - a;
distance = (rd * rd) + (gd * gd) + (bd * bd) + (ad * ad);
if (distance < smallest) {
pixel = i;
if (distance == 0) { /* Perfect match! */
break;
}
smallest = distance;
}
}
return (pixel);
}
r
GLdouble GLdouble GLdouble r
Definition: SDL_opengl.h:2072
SDL_Color::g
Uint8 g
Definition: SDL_pixels.h:282
SDL_Color::b
Uint8 b
Definition: SDL_pixels.h:283
distance
GLsizei GLsizei GLfloat distance
Definition: SDL_opengl_glext.h:9200
g
GLboolean GLboolean g
Definition: SDL_opengl_glext.h:1109
SDL_Color::r
Uint8 r
Definition: SDL_pixels.h:281
SDL_Color::a
Uint8 a
Definition: SDL_pixels.h:284
Uint8
uint8_t Uint8
An unsigned 8-bit integer type.
Definition: SDL_stdinc.h:139
SDL_Palette::ncolors
int ncolors
Definition: SDL_pixels.h:290
i
return Display return Display Bool Bool int int int return Display XEvent Bool(*) XPointer return Display return Display Drawable _Xconst char unsigned int unsigned int return Display Pixmap Pixmap XColor XColor unsigned int unsigned int return Display _Xconst char char int char return Display Visual unsigned int int int char unsigned int unsigned int in i)
Definition: SDL_x11sym.h:42
SDL_Palette::colors
SDL_Color * colors
Definition: SDL_pixels.h:291
a
GLboolean GLboolean GLboolean GLboolean a
Definition: SDL_opengl_glext.h:1109
b
GLboolean GLboolean GLboolean b
Definition: SDL_opengl_glext.h:1109

void SDL_FreeBlitMap | ( | SDL_BlitMap * | map | ) |

Definition at line 1079 of file SDL_pixels.c.

References SDL_free(), and SDL_InvalidateMap().

Referenced by SDL_FreeSurface().

{
if (map) {
SDL_InvalidateMap(map);
SDL_free(map);
}
}
SDL_InvalidateMap
void SDL_InvalidateMap(SDL_BlitMap *map)
Definition: SDL_pixels.c:974
SDL_free
void SDL_free(void *mem)

int SDL_InitFormat | ( | SDL_PixelFormat * | format,
|  | Uint32 | pixel_format
| ) |  |

Definition at line 521 of file SDL_pixels.c.

References SDL_PixelFormat::Aloss, SDL_PixelFormat::Amask, SDL_PixelFormat::Ashift, SDL_PixelFormat::BitsPerPixel, SDL_PixelFormat::Bloss, SDL_PixelFormat::Bmask, SDL_PixelFormat::Bshift, SDL_PixelFormat::BytesPerPixel, SDL_PixelFormat::format, SDL_PixelFormat::Gloss, SDL_PixelFormat::Gmask, SDL_PixelFormat::Gshift, SDL_PixelFormat::next, NULL, SDL_PixelFormat::palette, pixel_format, SDL_PixelFormat::refcount, SDL_PixelFormat::Rloss, SDL_PixelFormat::Rmask, SDL_PixelFormat::Rshift, SDL_PixelFormatEnumToMasks(), and SDL_zerop.

Referenced by SDL_AllocFormat(), SDL_CreateSurfaceOnStack(), and SDL_SaveBMP_RW().

{
int bpp;
Uint32 Rmask, Gmask, Bmask, Amask;
Uint32 mask;
if (!SDL_PixelFormatEnumToMasks(pixel_format, &bpp,
&Rmask, &Gmask, &Bmask, &Amask)) {
return -1;
}
/* Set up the format */
SDL_zerop(format);
format->format = pixel_format;
format->BitsPerPixel = bpp;
format->BytesPerPixel = (bpp + 7) / 8;
format->Rmask = Rmask;
format->Rshift = 0;
format->Rloss = 8;
if (Rmask) {
for (mask = Rmask; !(mask & 0x01); mask >>= 1)
++format->Rshift;
for (; (mask & 0x01); mask >>= 1)
--format->Rloss;
}
format->Gmask = Gmask;
format->Gshift = 0;
format->Gloss = 8;
if (Gmask) {
for (mask = Gmask; !(mask & 0x01); mask >>= 1)
++format->Gshift;
for (; (mask & 0x01); mask >>= 1)
--format->Gloss;
}
format->Bmask = Bmask;
format->Bshift = 0;
format->Bloss = 8;
if (Bmask) {
for (mask = Bmask; !(mask & 0x01); mask >>= 1)
++format->Bshift;
for (; (mask & 0x01); mask >>= 1)
--format->Bloss;
}
format->Amask = Amask;
format->Ashift = 0;
format->Aloss = 8;
if (Amask) {
for (mask = Amask; !(mask & 0x01); mask >>= 1)
++format->Ashift;
for (; (mask & 0x01); mask >>= 1)
--format->Aloss;
}
format->palette = NULL;
format->refcount = 1;
format->next = NULL;
return 0;
}
SDL_PixelFormat::Aloss
Uint8 Aloss
Definition: SDL_pixels.h:313
Uint32
uint32_t Uint32
An unsigned 32-bit integer type.
Definition: SDL_stdinc.h:155
SDL_PixelFormat::Gmask
Uint32 Gmask
Definition: SDL_pixels.h:307
SDL_PixelFormat::BytesPerPixel
Uint8 BytesPerPixel
Definition: SDL_pixels.h:304
SDL_PixelFormatEnumToMasks
SDL_bool SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 *Rmask, Uint32 *Gmask, Uint32 *Bmask, Uint32 *Amask)
Convert one of the enumerated pixel formats to a bpp and RGBA masks.
Definition: SDL_pixels.c:134
SDL_PixelFormat::Bmask
Uint32 Bmask
Definition: SDL_pixels.h:308
SDL_PixelFormat::Ashift
Uint8 Ashift
Definition: SDL_pixels.h:317
SDL_PixelFormat::Rloss
Uint8 Rloss
Definition: SDL_pixels.h:310
SDL_zerop
#define SDL_zerop(x)
Definition: SDL_stdinc.h:356
SDL_PixelFormat::refcount
int refcount
Definition: SDL_pixels.h:318
SDL_PixelFormat::Bshift
Uint8 Bshift
Definition: SDL_pixels.h:316
SDL_PixelFormat::Rshift
Uint8 Rshift
Definition: SDL_pixels.h:314
SDL_PixelFormat::BitsPerPixel
Uint8 BitsPerPixel
Definition: SDL_pixels.h:303
SDL_PixelFormat::Bloss
Uint8 Bloss
Definition: SDL_pixels.h:312
mask
GLenum GLint GLuint mask
Definition: SDL_opengl_glext.h:657
NULL
#define NULL
Definition: begin_code.h:143
SDL_PixelFormat::Gshift
Uint8 Gshift
Definition: SDL_pixels.h:315
SDL_PixelFormat::Rmask
Uint32 Rmask
Definition: SDL_pixels.h:306
SDL_PixelFormat::Gloss
Uint8 Gloss
Definition: SDL_pixels.h:311
pixel_format
Uint32 pixel_format
Definition: testoverlay2.c:152
SDL_PixelFormat::Amask
Uint32 Amask
Definition: SDL_pixels.h:309
SDL_PixelFormat::palette
SDL_Palette * palette
Definition: SDL_pixels.h:302
SDL_PixelFormat::format
Uint32 format
Definition: SDL_pixels.h:301
SDL_PixelFormat::next
struct SDL_PixelFormat * next
Definition: SDL_pixels.h:319

void SDL_InvalidateMap | ( | SDL_BlitMap * | map | ) |

Definition at line 974 of file SDL_pixels.c.

References SDL_BlitMap::dst, SDL_BlitMap::dst_palette_version, SDL_BlitMap::info, NULL, SDL_Surface::refcount, SDL_free(), SDL_FreeSurface, SDL_BlitMap::src_palette_version, and SDL_BlitInfo::table.

Referenced by SDL_CalculateBlit(), SDL_ConvertSurface(), SDL_FreeBlitMap(), SDL_LowerBlitScaled(), SDL_MapSurface(), SDL_SetColorKey(), SDL_SetSurfaceAlphaMod(), SDL_SetSurfaceBlendMode(), SDL_SetSurfaceColorMod(), SDL_SetSurfacePalette(), SDL_SetSurfaceRLE(), and SDL_UpperBlit().

{
if (!map) {
return;
}
if (map->dst) {
/* Release our reference to the surface - see the note below */
if (--map->dst->refcount <= 0) {
SDL_FreeSurface(map->dst);
}
}
map->dst = NULL;
map->src_palette_version = 0;
map->dst_palette_version = 0;
SDL_free(map->info.table);
map->info.table = NULL;
}
SDL_BlitInfo::table
Uint8 * table
Definition: SDL_blit.h:67
SDL_BlitMap::dst_palette_version
Uint32 dst_palette_version
Definition: SDL_blit.h:95
SDL_BlitMap::src_palette_version
Uint32 src_palette_version
Definition: SDL_blit.h:96
SDL_FreeSurface
#define SDL_FreeSurface
Definition: SDL_dynapi_overrides.h:450
SDL_free
void SDL_free(void *mem)
SDL_BlitMap::dst
SDL_Surface * dst
Definition: SDL_blit.h:87
NULL
#define NULL
Definition: begin_code.h:143
SDL_Surface::refcount
int refcount
Definition: SDL_surface.h:91
SDL_BlitMap::info
SDL_BlitInfo info
Definition: SDL_blit.h:91

int SDL_MapSurface | ( | SDL_Surface * | src,
|  | SDL_Surface * | dst
| ) |  |

Definition at line 993 of file SDL_pixels.c.

References SDL_BlitInfo::a, SDL_BlitInfo::b, SDL_PixelFormat::BitsPerPixel, SDL_BlitMap::dst, SDL_BlitMap::dst_palette_version, SDL_Surface::flags, SDL_Surface::format, SDL_PixelFormat::format, SDL_BlitInfo::g, SDL_BlitMap::identity, SDL_BlitMap::info, SDL_Surface::map, map, Map1to1(), Map1toN(), MapNto1(), NULL, SDL_PixelFormat::palette, SDL_BlitInfo::r, SDL_Surface::refcount, SDL_CalculateBlit(), SDL_InvalidateMap(), SDL_ISPIXELFORMAT_INDEXED, SDL_RLEACCEL, SDL_UnRLESurface(), SDL_BlitMap::src_palette_version, SDL_BlitInfo::table, and SDL_Palette::version.

Referenced by SDL_LowerBlit().

{
SDL_PixelFormat *srcfmt;
SDL_PixelFormat *dstfmt;
SDL_BlitMap *map;
/* Clear out any previous mapping */
map = src->map;
if ((src->flags & SDL_RLEACCEL) == SDL_RLEACCEL) {
SDL_UnRLESurface(src, 1);
}
SDL_InvalidateMap(map);
/* Figure out what kind of mapping we're doing */
map->identity = 0;
srcfmt = src->format;
dstfmt = dst->format;
if (SDL_ISPIXELFORMAT_INDEXED(srcfmt->format)) {
if (SDL_ISPIXELFORMAT_INDEXED(dstfmt->format)) {
/* Palette --> Palette */
map->info.table =
Map1to1(srcfmt->palette, dstfmt->palette, &map->identity);
if (!map->identity) {
if (map->info.table == NULL) {
return (-1);
}
}
if (srcfmt->BitsPerPixel != dstfmt->BitsPerPixel)
map->identity = 0;
} else {
/* Palette --> BitField */
map->info.table =
Map1toN(srcfmt, src->map->info.r, src->map->info.g,
src->map->info.b, src->map->info.a, dstfmt);
if (map->info.table == NULL) {
return (-1);
}
}
} else {
if (SDL_ISPIXELFORMAT_INDEXED(dstfmt->format)) {
/* BitField --> Palette */
map->info.table = MapNto1(srcfmt, dstfmt, &map->identity);
if (!map->identity) {
if (map->info.table == NULL) {
return (-1);
}
}
map->identity = 0; /* Don't optimize to copy */
} else {
/* BitField --> BitField */
if (srcfmt == dstfmt) {
map->identity = 1;
}
}
}
map->dst = dst;
if (map->dst) {
/* Keep a reference to this surface so it doesn't get deleted
while we're still pointing at it.
A better method would be for the destination surface to keep
track of surfaces that are mapped to it and automatically
invalidate them when it is freed, but this will do for now.
*/
++map->dst->refcount;
}
if (dstfmt->palette) {
map->dst_palette_version = dstfmt->palette->version;
} else {
map->dst_palette_version = 0;
}
if (srcfmt->palette) {
map->src_palette_version = srcfmt->palette->version;
} else {
map->src_palette_version = 0;
}
/* Choose your blitters wisely */
return (SDL_CalculateBlit(src));
}
SDL_BlitInfo::table
Uint8 * table
Definition: SDL_blit.h:67
dst
GLenum GLenum dst
Definition: SDL_opengl_glext.h:1737
SDL_BlitInfo::r
Uint8 r
Definition: SDL_blit.h:70
SDL_Palette::version
Uint32 version
Definition: SDL_pixels.h:292
SDL_BlitInfo::b
Uint8 b
Definition: SDL_blit.h:70
SDL_ISPIXELFORMAT_INDEXED
#define SDL_ISPIXELFORMAT_INDEXED(format)
Definition: SDL_pixels.h:133
SDL_BlitInfo::g
Uint8 g
Definition: SDL_blit.h:70
SDL_UnRLESurface
void SDL_UnRLESurface(SDL_Surface *surface, int recode)
Definition: SDL_RLEaccel.c:1540
SDL_BlitMap::dst_palette_version
Uint32 dst_palette_version
Definition: SDL_blit.h:95
SDL_Surface::flags
Uint32 flags
Definition: SDL_surface.h:71
SDL_BlitMap::src_palette_version
Uint32 src_palette_version
Definition: SDL_blit.h:96
SDL_InvalidateMap
void SDL_InvalidateMap(SDL_BlitMap *map)
Definition: SDL_pixels.c:974
SDL_Surface::map
struct SDL_BlitMap * map
Definition: SDL_surface.h:88
Map1to1
static Uint8 * Map1to1(SDL_Palette *src, SDL_Palette *dst, int *identical)
Definition: SDL_pixels.c:878
SDL_PixelFormat::BitsPerPixel
Uint8 BitsPerPixel
Definition: SDL_pixels.h:303
SDL_CalculateBlit
int SDL_CalculateBlit(SDL_Surface *surface)
Definition: SDL_blit.c:216
MapNto1
static Uint8 * MapNto1(SDL_PixelFormat *src, SDL_PixelFormat *dst, int *identical)
Definition: SDL_pixels.c:940
SDL_BlitMap::dst
SDL_Surface * dst
Definition: SDL_blit.h:87
NULL
#define NULL
Definition: begin_code.h:143
SDL_Surface::format
SDL_PixelFormat * format
Definition: SDL_surface.h:72
SDL_Surface::refcount
int refcount
Definition: SDL_surface.h:91
Map1toN
static Uint8 * Map1toN(SDL_PixelFormat *src, Uint8 Rmod, Uint8 Gmod, Uint8 Bmod, Uint8 Amod, SDL_PixelFormat *dst)
Definition: SDL_pixels.c:912
SDL_PixelFormat
Definition: SDL_pixels.h:299
SDL_PixelFormat::palette
SDL_Palette * palette
Definition: SDL_pixels.h:302
SDL_BlitMap
Definition: SDL_blit.h:85
SDL_PixelFormat::format
Uint32 format
Definition: SDL_pixels.h:301
map
const GLubyte GLuint GLuint GLuint GLuint alpha GLboolean GLboolean GLboolean GLboolean alpha GLint GLint GLsizei GLsizei GLenum type GLenum GLint GLenum GLint GLint GLsizei GLsizei GLint border GLenum GLint GLint GLint GLint GLint GLsizei GLsizei height GLsizei GLsizei GLenum GLenum const GLvoid *pixels GLenum GLint GLint GLint GLint j2 GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble zFar GLenum GLenum GLint *params GLenum GLenum GLint *params GLenum GLenum GLint *params GLenum GLenum GLfloat *params GLenum GLint GLenum GLenum GLvoid *pixels GLenum GLint GLenum GLint *params GLenum GLenum GLint *params GLenum GLsizei const GLvoid *pointer GLenum GLenum const GLint *params GLenum GLfloat GLfloat GLint GLint const GLfloat *points GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat *points GLint GLfloat GLfloat GLint GLfloat GLfloat v2 GLenum GLenum const GLint *params GLdouble GLdouble GLdouble GLdouble GLdouble GLdouble zFar GLenum map
Definition: SDL_glfuncs.h:289
SDL_BlitMap::identity
int identity
Definition: SDL_blit.h:88
SDL_BlitMap::info
SDL_BlitInfo info
Definition: SDL_blit.h:91
SDL_RLEACCEL
#define SDL_RLEACCEL
Definition: SDL_surface.h:54
SDL_BlitInfo::a
Uint8 a
Definition: SDL_blit.h:70