SDL_gfxPrimitives.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
#include "SDL_gfxPrimitives.h"
#include "SDL_rotozoom.h"
#include "SDL_gfxPrimitives_font.h"

Go to the source code of this file.

Data Structures

struct  SDL_gfxBresenhamIterator
 The structure passed to the internal Bresenham iterator. More...
struct  SDL_gfxMurphyIterator
 The structure passed to the internal Murphy iterator. More...

Defines

#define DEFAULT_ALPHA_PIXEL_ROUTINE
#define clip_xmin(surface)   surface->clip_rect.x
#define clip_xmax(surface)   surface->clip_rect.x+surface->clip_rect.w-1
#define clip_ymin(surface)   surface->clip_rect.y
#define clip_ymax(surface)   surface->clip_rect.y+surface->clip_rect.h-1
#define CLIP_LEFT_EDGE   0x1
#define CLIP_RIGHT_EDGE   0x2
#define CLIP_BOTTOM_EDGE   0x4
#define CLIP_TOP_EDGE   0x8
#define CLIP_INSIDE(a)   (!a)
#define CLIP_REJECT(a, b)   (a&b)
#define CLIP_ACCEPT(a, b)   (!(a|b))
#define ABS(a)   (((a)<0) ? -(a) : (a))
#define AAlevels   256
#define AAbits   8
#define HYPOT(x, y)   sqrt((double)(x)*(double)(x)+(double)(y)*(double)(y))

Functions

int fastPixelColorNolock (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color)
 Internal pixel drawing - fast, no blending, no locking, clipping.
int fastPixelColorNolockNoclip (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color)
 Internal pixel drawing - fast, no blending, no locking, no clipping.
int fastPixelColor (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color)
 Internal pixel drawing - fast, no blending, locking, clipping.
int fastPixelRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Internal pixel drawing - fast, no blending, locking, RGB input.
int fastPixelRGBANolock (SDL_Surface *dst, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Internal pixel drawing - fast, no blending, no locking RGB input.
int _putPixelAlpha (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color, Uint8 alpha)
 Internal pixel drawing function with alpha blending where input color in in destination format.
int pixelColor (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color)
 Pixel draw with blending enabled if a<255.
int pixelColorNolock (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color)
 Pixel draw with blending enabled if a<255 - no surface locking.
int _filledRectAlpha (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color, Uint8 alpha)
 Internal function to draw filled rectangle with alpha blending.
int filledRectAlpha (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
 Draw filled rectangle of RGBA color with alpha blending.
int _HLineAlpha (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color)
 Internal function to draw horizontal line of RGBA color with alpha blending.
int _VLineAlpha (SDL_Surface *dst, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color)
 Internal function to draw vertical line of RGBA color with alpha blending.
int pixelColorWeight (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color, Uint32 weight)
 Pixel draw with blending enabled and using alpha weight on color.
int pixelColorWeightNolock (SDL_Surface *dst, Sint16 x, Sint16 y, Uint32 color, Uint32 weight)
 Pixel draw with blending enabled and using alpha weight on color - no locking.
int pixelRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Pixel draw with blending enabled if a<255.
int hlineColorStore (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color)
 Draw horizontal line without blending;.
int hlineRGBAStore (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw horizontal line without blending.
int hlineColor (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color)
 Draw horizontal line with blending.
int hlineRGBA (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw horizontal line with blending.
int vlineColor (SDL_Surface *dst, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color)
 Draw vertical line with blending.
int vlineRGBA (SDL_Surface *dst, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw vertical line with blending.
int rectangleColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
 Draw rectangle with blending.
int rectangleRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw rectangle with blending.
int roundedRectangleColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)
 Draw rounded-corner rectangle with blending.
int roundedRectangleRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw rounded-corner rectangle with blending.
int roundedBoxColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)
 Draw rounded-corner box (filled rectangle) with blending.
int roundedBoxRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw rounded-corner box (filled rectangle) with blending.
int boxColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
 Draw box (filled rectangle) with blending.
int boxRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw box (filled rectangle) with blending.
int lineColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
 Draw line with alpha blending.
int lineRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw line with alpha blending.
int _aalineColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color, int draw_endpoint)
 Internal function to draw anti-aliased line with alpha blending and endpoint control.
int aalineColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
 Ddraw anti-aliased line with alpha blending.
int aalineRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw anti-aliased line with alpha blending.
int circleColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
 Draw circle with blending.
int circleRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw circle with blending.
int arcColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
 Arc with blending.
int arcRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Arc with blending.
int aacircleColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
 Draw anti-aliased circle with blending.
int aacircleRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw anti-aliased circle with blending.
int filledCircleColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
 Draw filled circle with blending.
int filledCircleRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw filled circle with blending.
int ellipseColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
 Draw ellipse with blending.
int ellipseRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw ellipse with blending.
int aaellipseColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
 Draw anti-aliased ellipse with blending.
int aaellipseRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw anti-aliased ellipse with blending.
int filledEllipseColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
 Draw filled ellipse with blending.
int filledEllipseRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw filled ellipse with blending.
int _pieColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color, Uint8 filled)
 Internal float (low-speed) pie-calc implementation by drawing polygons.
int pieColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
 Draw pie (outline) with alpha blending.
int pieRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw pie (outline) with alpha blending.
int filledPieColor (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
 Draw filled pie with alpha blending.
int filledPieRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw filled pie with alpha blending.
int trigonColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
 Draw trigon (triangle outline) with alpha blending.
int trigonRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw trigon (triangle outline) with alpha blending.
int aatrigonColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
 Draw anti-aliased trigon (triangle outline) with alpha blending.
int aatrigonRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw anti-aliased trigon (triangle outline) with alpha blending.
int filledTrigonColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
 Draw filled trigon (triangle) with alpha blending.
int filledTrigonRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw filled trigon (triangle) with alpha blending.
int polygonColor (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint32 color)
 Draw polygon with alpha blending.
int polygonRGBA (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw polygon with alpha blending.
int aapolygonColor (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint32 color)
 Draw anti-aliased polygon with alpha blending.
int aapolygonRGBA (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw anti-aliased polygon with alpha blending.
int _gfxPrimitivesCompareInt (const void *a, const void *b)
 Internal helper qsort callback functions used in filled polygon drawing.
int filledPolygonColorMT (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint32 color, int **polyInts, int *polyAllocated)
 Draw filled polygon with alpha blending (multi-threaded capable).
int filledPolygonRGBAMT (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int **polyInts, int *polyAllocated)
 Draw filled polygon with alpha blending (multi-threaded capable).
int filledPolygonColor (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint32 color)
 Draw filled polygon with alpha blending.
int filledPolygonRGBA (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw filled polygon with alpha blending.
int _HLineTextured (SDL_Surface *dst, Sint16 x1, Sint16 x2, Sint16 y, SDL_Surface *texture, int texture_dx, int texture_dy)
 Internal function to draw a textured horizontal line.
int texturedPolygonMT (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, SDL_Surface *texture, int texture_dx, int texture_dy, int **polyInts, int *polyAllocated)
 Draws a polygon filled with the given texture (Multi-Threading Capable).
int texturedPolygon (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, SDL_Surface *texture, int texture_dx, int texture_dy)
 Draws a polygon filled with the given texture.
void gfxPrimitivesSetFont (const void *fontdata, Uint32 cw, Uint32 ch)
 Sets or resets the current global font data.
void gfxPrimitivesSetFontRotation (Uint32 rotation)
 Sets current global font character rotation steps.
int characterColor (SDL_Surface *dst, Sint16 x, Sint16 y, char c, Uint32 color)
 Draw a character of the currently set font.
int characterRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw a character of the currently set font.
int stringColor (SDL_Surface *dst, Sint16 x, Sint16 y, const char *s, Uint32 color)
 Draw a string in the currently set font.
int stringRGBA (SDL_Surface *dst, Sint16 x, Sint16 y, const char *s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw a string in the currently set font.
double _evaluateBezier (double *data, int ndata, double t)
 Internal function to calculate bezier interpolator of data array with ndata values at position 't'.
int bezierColor (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, int s, Uint32 color)
 Draw a bezier curve with alpha blending.
int bezierRGBA (SDL_Surface *dst, const Sint16 *vx, const Sint16 *vy, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw a bezier curve with alpha blending.
int _bresenhamInitialize (SDL_gfxBresenhamIterator *b, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2)
 Internal function to initialize the Bresenham line iterator.
int _bresenhamIterate (SDL_gfxBresenhamIterator *b)
 Internal function to move Bresenham line iterator to the next position.
void _murphyParaline (SDL_gfxMurphyIterator *m, Sint16 x, Sint16 y, int d1)
 Internal function to to draw parallel lines with Murphy algorithm.
void _murphyIteration (SDL_gfxMurphyIterator *m, Uint8 miter, Uint16 ml1bx, Uint16 ml1by, Uint16 ml2bx, Uint16 ml2by, Uint16 ml1x, Uint16 ml1y, Uint16 ml2x, Uint16 ml2y)
 Internal function to to draw one iteration of the Murphy algorithm.
void _murphyWideline (SDL_gfxMurphyIterator *m, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint8 miter)
 Internal function to to draw wide lines with Murphy algorithm.
int thickLineColor (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint32 color)
 Draw a thick line with alpha blending.
int thickLineRGBA (SDL_Surface *dst, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
 Draw a thick line with alpha blending.

Define Documentation

#define AAbits   8

Definition at line 2499 of file SDL_gfxPrimitives.c.

#define AAlevels   256

Definition at line 2498 of file SDL_gfxPrimitives.c.

#define ABS (  )     (((a)<0) ? -(a) : (a))

Definition at line 2265 of file SDL_gfxPrimitives.c.

#define CLIP_ACCEPT ( a,
 )     (!(a|b))

Definition at line 1923 of file SDL_gfxPrimitives.c.

#define CLIP_BOTTOM_EDGE   0x4

Definition at line 1919 of file SDL_gfxPrimitives.c.

#define CLIP_INSIDE (  )     (!a)

Definition at line 1921 of file SDL_gfxPrimitives.c.

#define CLIP_LEFT_EDGE   0x1

Definition at line 1917 of file SDL_gfxPrimitives.c.

#define CLIP_REJECT ( a,
 )     (a&b)

Definition at line 1922 of file SDL_gfxPrimitives.c.

#define CLIP_RIGHT_EDGE   0x2

Definition at line 1918 of file SDL_gfxPrimitives.c.

#define CLIP_TOP_EDGE   0x8

Definition at line 1920 of file SDL_gfxPrimitives.c.

#define clip_xmax ( surface   )     surface->clip_rect.x+surface->clip_rect.w-1

Definition at line 50 of file SDL_gfxPrimitives.c.

#define clip_xmin ( surface   )     surface->clip_rect.x

Definition at line 49 of file SDL_gfxPrimitives.c.

#define clip_ymax ( surface   )     surface->clip_rect.y+surface->clip_rect.h-1

Definition at line 52 of file SDL_gfxPrimitives.c.

#define clip_ymin ( surface   )     surface->clip_rect.y

Definition at line 51 of file SDL_gfxPrimitives.c.

#define DEFAULT_ALPHA_PIXEL_ROUTINE

Definition at line 20 of file SDL_gfxPrimitives.c.

#define HYPOT ( x,
 )     sqrt((double)(x)*(double)(x)+(double)(y)*(double)(y))

Definition at line 6516 of file SDL_gfxPrimitives.c.


Function Documentation

int _aalineColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color,
int  draw_endpoint 
)

Internal function to draw anti-aliased line with alpha blending and endpoint control.

This implementation of the Wu antialiasing code is based on Mike Abrash's DDJ article which was reprinted as Chapter 42 of his Graphics Programming Black Book, but has been optimized to work with SDL and utilizes 32-bit fixed-point arithmetic by A. Schiffler. The endpoint control allows the supression to draw the last pixel useful for rendering continous aa-lines with alpha<255.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the aa-line.
y1 Y coordinate of the first point of the aa-line.
x2 X coordinate of the second point of the aa-line.
y2 Y coordinate of the second point of the aa-line.
color The color value of the aa-line to draw (0xRRGGBBAA).
draw_endpoint Flag indicating if the endpoint should be drawn; draw if non-zero.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2521 of file SDL_gfxPrimitives.c.

int _bresenhamInitialize ( SDL_gfxBresenhamIterator b,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2 
)

Internal function to initialize the Bresenham line iterator.

Example of use: SDL_gfxBresenhamIterator b; _bresenhamInitialize (&b, x1, y1, x2, y2); do { plot(b.x, b.y); } while (_bresenhamIterate(&b)==0);

Parameters:
b Pointer to struct for bresenham line drawing state.
x1 X coordinate of the first point of the line.
y1 Y coordinate of the first point of the line.
x2 X coordinate of the second point of the line.
y2 Y coordinate of the second point of the line.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6233 of file SDL_gfxPrimitives.c.

int _bresenhamIterate ( SDL_gfxBresenhamIterator b  ) 

Internal function to move Bresenham line iterator to the next position.

Maybe updates the x and y coordinates of the iterator struct.

Parameters:
b Pointer to struct for bresenham line drawing state.
Returns:
Returns 0 on success, 1 if last point was reached, 2 if moving past end-of-line, -1 on failure.

Definition at line 6295 of file SDL_gfxPrimitives.c.

double _evaluateBezier ( double *  data,
int  ndata,
double  t 
)

Internal function to calculate bezier interpolator of data array with ndata values at position 't'.

Parameters:
data Array of values.
ndata Size of array.
t Position for which to calculate interpolated value. t should be between [0, ndata].
Returns:
Interpolated value at position t, value[0] when t<0, value[n-1] when t>n.

Definition at line 6072 of file SDL_gfxPrimitives.c.

int _filledRectAlpha ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color,
Uint8  alpha 
)

Internal function to draw filled rectangle with alpha blending.

Assumes color is in destination format.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first corner (upper left) of the rectangle.
y1 Y coordinate of the first corner (upper left) of the rectangle.
x2 X coordinate of the second corner (lower right) of the rectangle.
y2 Y coordinate of the second corner (lower right) of the rectangle.
color The color value of the rectangle to draw (0xRRGGBBAA).
alpha Alpha blending amount for pixels.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 559 of file SDL_gfxPrimitives.c.

int _gfxPrimitivesCompareInt ( const void *  a,
const void *  b 
)

Internal helper qsort callback functions used in filled polygon drawing.

Parameters:
a The surface to draw on.
b Vertex array containing X coordinates of the points of the polygon.
Returns:
Returns 0 if a==b, a negative number if a<b or a positive number if a>b.

Definition at line 5083 of file SDL_gfxPrimitives.c.

int _HLineAlpha ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
Uint32  color 
)

Internal function to draw horizontal line of RGBA color with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 837 of file SDL_gfxPrimitives.c.

int _HLineTextured ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
SDL_Surface *  texture,
int  texture_dx,
int  texture_dy 
)

Internal function to draw a textured horizontal line.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
texture The texture surface to retrieve color information from.
texture_dx The X offset for the texture lookup.
texture_dy The Y offset for the textured lookup.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5347 of file SDL_gfxPrimitives.c.

void _murphyIteration ( SDL_gfxMurphyIterator m,
Uint8  miter,
Uint16  ml1bx,
Uint16  ml1by,
Uint16  ml2bx,
Uint16  ml2by,
Uint16  ml1x,
Uint16  ml1y,
Uint16  ml2x,
Uint16  ml2y 
)

Internal function to to draw one iteration of the Murphy algorithm.

Parameters:
m Pointer to struct for murphy iterator.
miter Iteration count.
ml1bx X coordinate of a point.
ml1by Y coordinate of a point.
ml2bx X coordinate of a point.
ml2by Y coordinate of a point.
ml1x X coordinate of a point.
ml1y Y coordinate of a point.
ml2x X coordinate of a point.
ml2y Y coordinate of a point.

Definition at line 6400 of file SDL_gfxPrimitives.c.

void _murphyParaline ( SDL_gfxMurphyIterator m,
Sint16  x,
Sint16  y,
int  d1 
)

Internal function to to draw parallel lines with Murphy algorithm.

Parameters:
m Pointer to struct for murphy iterator.
x X coordinate of point.
y Y coordinate of point.
d1 Direction square/diagonal.

Definition at line 6338 of file SDL_gfxPrimitives.c.

void _murphyWideline ( SDL_gfxMurphyIterator m,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  width,
Uint8  miter 
)

Internal function to to draw wide lines with Murphy algorithm.

Draws lines parallel to ideal line.

Parameters:
m Pointer to struct for murphy iterator.
x1 X coordinate of first point.
y1 Y coordinate of first point.
x2 X coordinate of second point.
y2 Y coordinate of second point.
width Width of line.
miter Iteration count.

Definition at line 6532 of file SDL_gfxPrimitives.c.

int _pieColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint32  color,
Uint8  filled 
)

Internal float (low-speed) pie-calc implementation by drawing polygons.

Note: Determines vertex array and uses polygon or filledPolygon drawing routines to render.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the pie.
y Y coordinate of the center of the pie.
rad Radius in pixels of the pie.
start Starting radius in degrees of the pie.
end Ending radius in degrees of the pie.
color The color value of the pie to draw (0xRRGGBBAA).
filled Flag indicating if the pie should be filled (=1) or not (=0).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4473 of file SDL_gfxPrimitives.c.

int _putPixelAlpha ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color,
Uint8  alpha 
)

Internal pixel drawing function with alpha blending where input color in in destination format.

Contains two alternative 32 bit alpha blending routines which can be enabled at the source level with the defines DEFAULT_ALPHA_PIXEL_ROUTINE or EXPERIMENTAL_ALPHA_PIXEL_ROUTINE. Only the bits up to the surface depth are significant in the color value.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw.
alpha The blend factor to apply while drawing.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 263 of file SDL_gfxPrimitives.c.

int _VLineAlpha ( SDL_Surface *  dst,
Sint16  x,
Sint16  y1,
Sint16  y2,
Uint32  color 
)

Internal function to draw vertical line of RGBA color with alpha blending.

Parameters:
dst The surface to draw on.
x X coordinate of the points of the line.
y1 Y coordinate of the first point (top) of the line.
y2 Y coordinate of the second point (bottom) of the line.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 853 of file SDL_gfxPrimitives.c.

int aacircleColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint32  color 
)

Draw anti-aliased circle with blending.

Note: The AA-circle routine is based on AA-ellipse with identical radii.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the aa-circle.
y Y coordinate of the center of the aa-circle.
rad Radius in pixels of the aa-circle.
color The color value of the aa-circle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3446 of file SDL_gfxPrimitives.c.

int aacircleRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw anti-aliased circle with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the aa-circle.
y Y coordinate of the center of the aa-circle.
rad Radius in pixels of the aa-circle.
r The red value of the aa-circle to draw.
g The green value of the aa-circle to draw.
b The blue value of the aa-circle to draw.
a The alpha value of the aa-circle to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3465 of file SDL_gfxPrimitives.c.

int aaellipseColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint32  color 
)

Draw anti-aliased ellipse with blending.

Note: Based on code from Anders Lindstroem, which is based on code from sge library, which is based on code from TwinLib.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the aa-ellipse.
y Y coordinate of the center of the aa-ellipse.
rx Horizontal radius in pixels of the aa-ellipse.
ry Vertical radius in pixels of the aa-ellipse.
color The color value of the aa-ellipse to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4008 of file SDL_gfxPrimitives.c.

int aaellipseRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw anti-aliased ellipse with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the aa-ellipse.
y Y coordinate of the center of the aa-ellipse.
rx Horizontal radius in pixels of the aa-ellipse.
ry Vertical radius in pixels of the aa-ellipse.
r The red value of the aa-ellipse to draw.
g The green value of the aa-ellipse to draw.
b The blue value of the aa-ellipse to draw.
a The alpha value of the aa-ellipse to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4248 of file SDL_gfxPrimitives.c.

int aalineColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color 
)

Ddraw anti-aliased line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the aa-line.
y1 Y coordinate of the first point of the aa-line.
x2 X coordinate of the second point of the aa-line.
y2 Y coordinate of the second point of the aa-line.
color The color value of the aa-line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2760 of file SDL_gfxPrimitives.c.

int aalineRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw anti-aliased line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the aa-line.
y1 Y coordinate of the first point of the aa-line.
x2 X coordinate of the second point of the aa-line.
y2 Y coordinate of the second point of the aa-line.
r The red value of the aa-line to draw.
g The green value of the aa-line to draw.
b The blue value of the aa-line to draw.
a The alpha value of the aa-line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2780 of file SDL_gfxPrimitives.c.

int aapolygonColor ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint32  color 
)

Draw anti-aliased polygon with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the aa-polygon.
vy Vertex array containing Y coordinates of the points of the aa-polygon.
n Number of points in the vertex array. Minimum number is 3.
color The color value of the aa-polygon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4997 of file SDL_gfxPrimitives.c.

int aapolygonRGBA ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw anti-aliased polygon with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the aa-polygon.
vy Vertex array containing Y coordinates of the points of the aa-polygon.
n Number of points in the vertex array. Minimum number is 3.
r The red value of the aa-polygon to draw.
g The green value of the aa-polygon to draw.
b The blue value of the aa-polygon to draw.
a The alpha value of the aa-polygon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5065 of file SDL_gfxPrimitives.c.

int aatrigonColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint32  color 
)

Draw anti-aliased trigon (triangle outline) with alpha blending.

Note: Creates vertex array and uses aapolygon routine to render.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the aa-trigon.
y1 Y coordinate of the first point of the aa-trigon.
x2 X coordinate of the second point of the aa-trigon.
y2 Y coordinate of the second point of the aa-trigon.
x3 X coordinate of the third point of the aa-trigon.
y3 Y coordinate of the third point of the aa-trigon.
color The color value of the aa-trigon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4779 of file SDL_gfxPrimitives.c.

int aatrigonRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw anti-aliased trigon (triangle outline) with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the aa-trigon.
y1 Y coordinate of the first point of the aa-trigon.
x2 X coordinate of the second point of the aa-trigon.
y2 Y coordinate of the second point of the aa-trigon.
x3 X coordinate of the third point of the aa-trigon.
y3 Y coordinate of the third point of the aa-trigon.
r The red value of the aa-trigon to draw.
g The green value of the aa-trigon to draw.
b The blue value of the aa-trigon to draw.
a The alpha value of the aa-trigon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4811 of file SDL_gfxPrimitives.c.

int arcColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint32  color 
)

Arc with blending.

Note Arc drawing is based on circle algorithm by A. Schiffler and written by D. Raber. Calculates which octants arc goes through and renders pixels accordingly.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the arc.
y Y coordinate of the center of the arc.
rad Radius in pixels of the arc.
start Starting radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
end Ending radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
color The color value of the arc to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3051 of file SDL_gfxPrimitives.c.

int arcRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Arc with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the arc.
y Y coordinate of the center of the arc.
rad Radius in pixels of the arc.
start Starting radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
end Ending radius in degrees of the arc. 0 degrees is down, increasing counterclockwise.
r The red value of the arc to draw.
g The green value of the arc to draw.
b The blue value of the arc to draw.
a The alpha value of the arc to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3422 of file SDL_gfxPrimitives.c.

int bezierColor ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
int  s,
Uint32  color 
)

Draw a bezier curve with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the bezier curve.
vy Vertex array containing Y coordinates of the points of the bezier curve.
n Number of points in the vertex array. Minimum number is 3.
s Number of steps for the interpolation. Minimum number is 2.
color The color value of the bezier curve to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6131 of file SDL_gfxPrimitives.c.

int bezierRGBA ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
int  s,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw a bezier curve with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the bezier curve.
vy Vertex array containing Y coordinates of the points of the bezier curve.
n Number of points in the vertex array. Minimum number is 3.
s Number of steps for the interpolation. Minimum number is 2.
r The red value of the bezier curve to draw.
g The green value of the bezier curve to draw.
b The blue value of the bezier curve to draw.
a The alpha value of the bezier curve to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6206 of file SDL_gfxPrimitives.c.

int boxColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color 
)

Draw box (filled rectangle) with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the box.
y1 Y coordinate of the first point (i.e. top right) of the box.
x2 X coordinate of the second point (i.e. bottom left) of the box.
y2 Y coordinate of the second point (i.e. bottom left) of the box.
color The color value of the box to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2039 of file SDL_gfxPrimitives.c.

int boxRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw box (filled rectangle) with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the box.
y1 Y coordinate of the first point (i.e. top right) of the box.
x2 X coordinate of the second point (i.e. bottom left) of the box.
y2 Y coordinate of the second point (i.e. bottom left) of the box.
r The red value of the box to draw.
g The green value of the box to draw.
b The blue value of the box to draw.
a The alpha value of the box to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2251 of file SDL_gfxPrimitives.c.

int characterColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
char  c,
Uint32  color 
)

Draw a character of the currently set font.

On first call for a particular character and color combination, the function needs to generate the character surface (slower. Subsequent calls blit a cached surface (fast). Uses alpha blending if A<255 in color.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the upper left corner of the character.
y Y (vertical) coordinate of the upper left corner of the character.
c The character to draw.
color The color value of the character to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5818 of file SDL_gfxPrimitives.c.

int characterRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
char  c,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw a character of the currently set font.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the upper left corner of the character.
y Y (vertical) coordinate of the upper left corner of the character.
c The character to draw.
r The red value of the character to draw.
g The green value of the character to draw.
b The blue value of the character to draw.
a The alpha value of the character to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5987 of file SDL_gfxPrimitives.c.

int circleColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint32  color 
)

Draw circle with blending.

Note: Circle drawing routine is based on an algorithms from the sge library, but modified by A. Schiffler for multiple pixel-draw removal and other minor speedup changes.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the circle.
y Y coordinate of the center of the circle.
rad Radius in pixels of the circle.
color The color value of the circle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2804 of file SDL_gfxPrimitives.c.

int circleRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw circle with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the circle.
y Y coordinate of the center of the circle.
rad Radius in pixels of the circle.
r The red value of the circle to draw.
g The green value of the circle to draw.
b The blue value of the circle to draw.
a The alpha value of the circle to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3024 of file SDL_gfxPrimitives.c.

int ellipseColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint32  color 
)

Draw ellipse with blending.

Note: Based on algorithms from sge library with modifications by A. Schiffler for multiple-pixel draw removal and other minor speedup changes.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the ellipse.
y Y coordinate of the center of the ellipse.
rx Horizontal radius in pixels of the ellipse.
ry Vertical radius in pixels of the ellipse.
color The color value of the ellipse to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3643 of file SDL_gfxPrimitives.c.

int ellipseRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw ellipse with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the ellipse.
y Y coordinate of the center of the ellipse.
rx Horizontal radius in pixels of the ellipse.
ry Vertical radius in pixels of the ellipse.
r The red value of the ellipse to draw.
g The green value of the ellipse to draw.
b The blue value of the ellipse to draw.
a The alpha value of the ellipse to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3957 of file SDL_gfxPrimitives.c.

int fastPixelColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color 
)

Internal pixel drawing - fast, no blending, locking, clipping.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 167 of file SDL_gfxPrimitives.c.

int fastPixelColorNolock ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color 
)

Internal pixel drawing - fast, no blending, no locking, clipping.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 64 of file SDL_gfxPrimitives.c.

int fastPixelColorNolockNoclip ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color 
)

Internal pixel drawing - fast, no blending, no locking, no clipping.

Function is faster but dangerous since no clipping check is done. Code needs to make sure we stay in surface bounds before calling.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 121 of file SDL_gfxPrimitives.c.

int fastPixelRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Internal pixel drawing - fast, no blending, locking, RGB input.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
r The red value of the pixel to draw.
g The green value of the pixel to draw.
b The blue value of the pixel to draw.
a The alpha value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 205 of file SDL_gfxPrimitives.c.

int fastPixelRGBANolock ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Internal pixel drawing - fast, no blending, no locking RGB input.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
r The red value of the pixel to draw.
g The green value of the pixel to draw.
b The blue value of the pixel to draw.
a The alpha value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 233 of file SDL_gfxPrimitives.c.

int filledCircleColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint32  color 
)

Draw filled circle with blending.

Note: Based on algorithms from sge library with modifications by A. Schiffler for multiple-hline draw removal and other minor speedup changes.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled circle.
y Y coordinate of the center of the filled circle.
rad Radius in pixels of the filled circle.
color The color value of the filled circle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3490 of file SDL_gfxPrimitives.c.

int filledCircleRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw filled circle with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled circle.
y Y coordinate of the center of the filled circle.
rad Radius in pixels of the filled circle.
r The red value of the filled circle to draw.
g The green value of the filled circle to draw.
b The blue value of the filled circle to draw.
a The alpha value of the filled circle to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 3617 of file SDL_gfxPrimitives.c.

int filledEllipseColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint32  color 
)

Draw filled ellipse with blending.

Note: Based on algorithm from sge library with multiple-hline draw removal and other speedup changes.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled ellipse.
y Y coordinate of the center of the filled ellipse.
rx Horizontal radius in pixels of the filled ellipse.
ry Vertical radius in pixels of the filled ellipse.
color The color value of the filled ellipse to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4278 of file SDL_gfxPrimitives.c.

int filledEllipseRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rx,
Sint16  ry,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw filled ellipse with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled ellipse.
y Y coordinate of the center of the filled ellipse.
rx Horizontal radius in pixels of the filled ellipse.
ry Vertical radius in pixels of the filled ellipse.
r The red value of the filled ellipse to draw.
g The green value of the filled ellipse to draw.
b The blue value of the filled ellipse to draw.
a The alpha value of the filled ellipse to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4446 of file SDL_gfxPrimitives.c.

int filledPieColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint32  color 
)

Draw filled pie with alpha blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled pie.
y Y coordinate of the center of the filled pie.
rad Radius in pixels of the filled pie.
start Starting radius in degrees of the filled pie.
end Ending radius in degrees of the filled pie.
color The color value of the filled pie to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4667 of file SDL_gfxPrimitives.c.

int filledPieRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw filled pie with alpha blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the filled pie.
y Y coordinate of the center of the filled pie.
rad Radius in pixels of the filled pie.
start Starting radius in degrees of the filled pie.
end Ending radius in degrees of the filled pie.
r The red value of the filled pie to draw.
g The green value of the filled pie to draw.
b The blue value of the filled pie to draw.
a The alpha value of the filled pie to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4688 of file SDL_gfxPrimitives.c.

int filledPolygonColor ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint32  color 
)

Draw filled polygon with alpha blending.

Note: Standard filledPolygon function is calling multithreaded version with NULL parameters to use the global vertex cache.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the filled polygon.
vy Vertex array containing Y coordinates of the points of the filled polygon.
n Number of points in the vertex array. Minimum number is 3.
color The color value of the filled polygon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5304 of file SDL_gfxPrimitives.c.

int filledPolygonColorMT ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint32  color,
int **  polyInts,
int *  polyAllocated 
)

Draw filled polygon with alpha blending (multi-threaded capable).

Note: The last two parameters are optional; but are required for multithreaded operation.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the filled polygon.
vy Vertex array containing Y coordinates of the points of the filled polygon.
n Number of points in the vertex array. Minimum number is 3.
color The color value of the filled polygon to draw (0xRRGGBBAA).
polyInts Preallocated, temporary vertex array used for sorting vertices. Required for multithreaded operation; set to NULL otherwise.
polyAllocated Flag indicating if temporary vertex array was allocated. Required for multithreaded operation; set to NULL otherwise.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5117 of file SDL_gfxPrimitives.c.

int filledPolygonRGBA ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw filled polygon with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the filled polygon.
vy Vertex array containing Y coordinates of the points of the filled polygon.
n Number of points in the vertex array. Minimum number is 3.
r The red value of the filled polygon to draw.
g The green value of the filled polygon to draw.
b The blue value of the filed polygon to draw.
a The alpha value of the filled polygon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5326 of file SDL_gfxPrimitives.c.

int filledPolygonRGBAMT ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a,
int **  polyInts,
int *  polyAllocated 
)

Draw filled polygon with alpha blending (multi-threaded capable).

Note: The last two parameters are optional; but are required for multithreaded operation.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the filled polygon.
vy Vertex array containing Y coordinates of the points of the filled polygon.
n Number of points in the vertex array. Minimum number is 3.
r The red value of the filled polygon to draw.
g The green value of the filled polygon to draw.
b The blue value of the filed polygon to draw.
a The alpha value of the filled polygon to draw.
polyInts Preallocated, temporary vertex array used for sorting vertices. Required for multithreaded operation; set to NULL otherwise.
polyAllocated Flag indicating if temporary vertex array was allocated. Required for multithreaded operation; set to NULL otherwise.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5282 of file SDL_gfxPrimitives.c.

int filledRectAlpha ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color 
)

Draw filled rectangle of RGBA color with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first corner (upper left) of the rectangle.
y1 Y coordinate of the first corner (upper left) of the rectangle.
x2 X coordinate of the second corner (lower right) of the rectangle.
y2 Y coordinate of the second corner (lower right) of the rectangle.
color The color value of the rectangle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 788 of file SDL_gfxPrimitives.c.

int filledTrigonColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint32  color 
)

Draw filled trigon (triangle) with alpha blending.

Note: Creates vertex array and uses aapolygon routine to render.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the filled trigon.
y1 Y coordinate of the first point of the filled trigon.
x2 X coordinate of the second point of the filled trigon.
y2 Y coordinate of the second point of the filled trigon.
x3 X coordinate of the third point of the filled trigon.
y3 Y coordinate of the third point of the filled trigon.
color The color value of the filled trigon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4845 of file SDL_gfxPrimitives.c.

int filledTrigonRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw filled trigon (triangle) with alpha blending.

Note: Creates vertex array and uses aapolygon routine to render.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the filled trigon.
y1 Y coordinate of the first point of the filled trigon.
x2 X coordinate of the second point of the filled trigon.
y2 Y coordinate of the second point of the filled trigon.
x3 X coordinate of the third point of the filled trigon.
y3 Y coordinate of the third point of the filled trigon.
r The red value of the filled trigon to draw.
g The green value of the filled trigon to draw.
b The blue value of the filled trigon to draw.
a The alpha value of the filled trigon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4879 of file SDL_gfxPrimitives.c.

void gfxPrimitivesSetFont ( const void *  fontdata,
Uint32  cw,
Uint32  ch 
)

Sets or resets the current global font data.

The font data array is organized in follows: [fontdata] = [character 0][character 1]...[character 255] where [character n] = [byte 1 row 1][byte 2 row 1]...[byte {pitch} row 1][byte 1 row 2] ...[byte {pitch} row height] where [byte n] = [bit 0]...[bit 7] where [bit n] = [0 for transparent pixel|1 for colored pixel]

Parameters:
fontdata Pointer to array of font data. Set to NULL, to reset global font to the default 8x8 font.
cw Width of character in bytes. Ignored if fontdata==NULL.
ch Height of character in bytes. Ignored if fontdata==NULL.

Definition at line 5725 of file SDL_gfxPrimitives.c.

void gfxPrimitivesSetFontRotation ( Uint32  rotation  ) 

Sets current global font character rotation steps.

Default is 0 (no rotation). 1 = 90deg clockwise. 2 = 180deg clockwise. 3 = 270deg clockwise. Changing the rotation, will reset the character cache.

Parameters:
rotation Number of 90deg clockwise steps to rotate

Definition at line 5771 of file SDL_gfxPrimitives.c.

int hlineColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
Uint32  color 
)

Draw horizontal line with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1136 of file SDL_gfxPrimitives.c.

int hlineColorStore ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
Uint32  color 
)

Draw horizontal line without blending;.

Just stores the color value (including the alpha component) without blending. Only the same number of bits of the destination surface are transfered from the input color value.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
color The color value of the line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 973 of file SDL_gfxPrimitives.c.

int hlineRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw horizontal line with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
r The red value of the line to draw.
g The green value of the line to draw.
b The blue value of the line to draw.
a The alpha value of the line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1305 of file SDL_gfxPrimitives.c.

int hlineRGBAStore ( SDL_Surface *  dst,
Sint16  x1,
Sint16  x2,
Sint16  y,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw horizontal line without blending.

Just stores the color value (including the alpha component) without blending. Function should only be used for 32 bit target surfaces.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. left) of the line.
x2 X coordinate of the second point (i.e. right) of the line.
y Y coordinate of the points of the line.
r The red value of the line to draw.
g The green value of the line to draw.
b The blue value of the line to draw.
a The alpha value of the line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1117 of file SDL_gfxPrimitives.c.

int lineColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color 
)

Draw line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the line.
y1 Y coordinate of the first point of the line.
x2 X coordinate of the second point of the line.
y2 Y coordinate of the second point of the line.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2279 of file SDL_gfxPrimitives.c.

int lineRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the line.
y1 Y coordinate of the first point of the line.
x2 X coordinate of the second point of the line.
y2 Y coordinate of the second point of the line.
r The red value of the line to draw.
g The green value of the line to draw.
b The blue value of the line to draw.
a The alpha value of the line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 2488 of file SDL_gfxPrimitives.c.

int pieColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint32  color 
)

Draw pie (outline) with alpha blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the pie.
y Y coordinate of the center of the pie.
rad Radius in pixels of the pie.
start Starting radius in degrees of the pie.
end Ending radius in degrees of the pie.
color The color value of the pie to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4623 of file SDL_gfxPrimitives.c.

int pieRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Sint16  rad,
Sint16  start,
Sint16  end,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw pie (outline) with alpha blending.

Parameters:
dst The surface to draw on.
x X coordinate of the center of the pie.
y Y coordinate of the center of the pie.
rad Radius in pixels of the pie.
start Starting radius in degrees of the pie.
end Ending radius in degrees of the pie.
r The red value of the pie to draw.
g The green value of the pie to draw.
b The blue value of the pie to draw.
a The alpha value of the pie to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4646 of file SDL_gfxPrimitives.c.

int pixelColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color 
)

Pixel draw with blending enabled if a<255.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the pixel.
y Y (vertical) coordinate of the pixel.
color The color value of the pixel to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 473 of file SDL_gfxPrimitives.c.

int pixelColorNolock ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color 
)

Pixel draw with blending enabled if a<255 - no surface locking.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the pixel.
y Y (vertical) coordinate of the pixel.
color The color value of the pixel to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 521 of file SDL_gfxPrimitives.c.

int pixelColorWeight ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color,
Uint32  weight 
)

Pixel draw with blending enabled and using alpha weight on color.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw (0xRRGGBBAA).
weight The weight multiplied into the alpha value of the pixel.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 869 of file SDL_gfxPrimitives.c.

int pixelColorWeightNolock ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint32  color,
Uint32  weight 
)

Pixel draw with blending enabled and using alpha weight on color - no locking.

Parameters:
dst The surface to draw on.
x The horizontal coordinate of the pixel.
y The vertical position of the pixel.
color The color value of the pixel to draw (0xRRGGBBAA).
weight The weight multiplied into the alpha value of the pixel.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 897 of file SDL_gfxPrimitives.c.

int pixelRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Pixel draw with blending enabled if a<255.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the pixel.
y Y (vertical) coordinate of the pixel.
r The red color value of the pixel to draw.
g The green color value of the pixel to draw.
b The blue color value of the pixel to draw.
a The alpha value of the pixel to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 927 of file SDL_gfxPrimitives.c.

int polygonColor ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint32  color 
)

Draw polygon with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the polygon.
vy Vertex array containing Y coordinates of the points of the polygon.
n Number of points in the vertex array. Minimum number is 3.
color The color value of the polygon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4908 of file SDL_gfxPrimitives.c.

int polygonRGBA ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw polygon with alpha blending.

Parameters:
dst The surface to draw on.
vx Vertex array containing X coordinates of the points of the polygon.
vy Vertex array containing Y coordinates of the points of the polygon.
n Number of points in the vertex array. Minimum number is 3.
r The red value of the polygon to draw.
g The green value of the polygon to draw.
b The blue value of the polygon to draw.
a The alpha value of the polygon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4976 of file SDL_gfxPrimitives.c.

int rectangleColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint32  color 
)

Draw rectangle with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the rectangle.
y1 Y coordinate of the first point (i.e. top right) of the rectangle.
x2 X coordinate of the second point (i.e. bottom left) of the rectangle.
y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.
color The color value of the rectangle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1512 of file SDL_gfxPrimitives.c.

int rectangleRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw rectangle with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the rectangle.
y1 Y coordinate of the first point (i.e. top right) of the rectangle.
x2 X coordinate of the second point (i.e. bottom left) of the rectangle.
y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.
r The red value of the rectangle to draw.
g The green value of the rectangle to draw.
b The blue value of the rectangle to draw.
a The alpha value of the rectangle to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1595 of file SDL_gfxPrimitives.c.

int roundedBoxColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  rad,
Uint32  color 
)

Draw rounded-corner box (filled rectangle) with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the box.
y1 Y coordinate of the first point (i.e. top right) of the box.
x2 X coordinate of the second point (i.e. bottom left) of the box.
y2 Y coordinate of the second point (i.e. bottom left) of the box.
rad The radius of the corner arcs of the box.
color The color value of the box to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1769 of file SDL_gfxPrimitives.c.

int roundedBoxRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  rad,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw rounded-corner box (filled rectangle) with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the box.
y1 Y coordinate of the first point (i.e. top right) of the box.
x2 X coordinate of the second point (i.e. bottom left) of the box.
y2 Y coordinate of the second point (i.e. bottom left) of the box.
rad The radius of the corner arcs of the box.
r The red value of the box to draw.
g The green value of the box to draw.
b The blue value of the box to draw.
a The alpha value of the box to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1902 of file SDL_gfxPrimitives.c.

int roundedRectangleColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  rad,
Uint32  color 
)

Draw rounded-corner rectangle with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the rectangle.
y1 Y coordinate of the first point (i.e. top right) of the rectangle.
x2 X coordinate of the second point (i.e. bottom left) of the rectangle.
y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.
rad The radius of the corner arc.
color The color value of the rectangle to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1617 of file SDL_gfxPrimitives.c.

int roundedRectangleRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  rad,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw rounded-corner rectangle with blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point (i.e. top right) of the rectangle.
y1 Y coordinate of the first point (i.e. top right) of the rectangle.
x2 X coordinate of the second point (i.e. bottom left) of the rectangle.
y2 Y coordinate of the second point (i.e. bottom left) of the rectangle.
rad The radius of the corner arc.
r The red value of the rectangle to draw.
g The green value of the rectangle to draw.
b The blue value of the rectangle to draw.
a The alpha value of the rectangle to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1747 of file SDL_gfxPrimitives.c.

int stringColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
const char *  s,
Uint32  color 
)

Draw a string in the currently set font.

The spacing between consequtive characters in the string is the fixed number of pixels of the character width of the current global font.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the upper left corner of the string.
y Y (vertical) coordinate of the upper left corner of the string.
s The string to draw.
color The color value of the string to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6009 of file SDL_gfxPrimitives.c.

int stringRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y,
const char *  s,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw a string in the currently set font.

Parameters:
dst The surface to draw on.
x X (horizontal) coordinate of the upper left corner of the string.
y Y (vertical) coordinate of the upper left corner of the string.
s The string to draw.
r The red value of the string to draw.
g The green value of the string to draw.
b The blue value of the string to draw.
a The alpha value of the string to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6053 of file SDL_gfxPrimitives.c.

int texturedPolygon ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
SDL_Surface *  texture,
int  texture_dx,
int  texture_dy 
)

Draws a polygon filled with the given texture.

This standard version is calling multithreaded versions with NULL cache parameters.

Parameters:
dst the destination surface,
vx array of x vector components
vy array of x vector components
n the amount of vectors in the vx and vy array
texture the sdl surface to use to fill the polygon
texture_dx the offset of the texture relative to the screeen. if you move the polygon 10 pixels to the left and want the texture to apear the same you need to increase the texture_dx value
texture_dy see texture_dx
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5651 of file SDL_gfxPrimitives.c.

int texturedPolygonMT ( SDL_Surface *  dst,
const Sint16 *  vx,
const Sint16 *  vy,
int  n,
SDL_Surface *  texture,
int  texture_dx,
int  texture_dy,
int **  polyInts,
int *  polyAllocated 
)

Draws a polygon filled with the given texture (Multi-Threading Capable).

This operation use internally SDL_BlitSurface for lines of the source texture. It supports alpha drawing.

To get the best performance of this operation you need to make sure the texture and the dst surface have the same format (see http://docs.mandragor.org/files/Common_libs_documentation/SDL/SDL_Documentation_project_en/sdlblitsurface.html). The last two parameters are optional, but required for multithreaded operation. When set to NULL, uses global static temp array.

Parameters:
dst the destination surface,
vx array of x vector components
vy array of x vector components
n the amount of vectors in the vx and vy array
texture the sdl surface to use to fill the polygon
texture_dx the offset of the texture relative to the screeen. if you move the polygon 10 pixels to the left and want the texture to apear the same you need to increase the texture_dx value
texture_dy see texture_dx
polyInts preallocated temp array storage for vertex sorting (used for multi-threaded operation)
polyAllocated flag indicating oif the temp array was allocated (used for multi-threaded operation)
Returns:
Returns 0 on success, -1 on failure.

Definition at line 5484 of file SDL_gfxPrimitives.c.

int thickLineColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  width,
Uint32  color 
)

Draw a thick line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the line.
y1 Y coordinate of the first point of the line.
x2 X coordinate of the second point of the line.
y2 Y coordinate of the second point of the line.
width Width of the line in pixels. Must be >0.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6718 of file SDL_gfxPrimitives.c.

int thickLineRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Uint8  width,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw a thick line with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the line.
y1 Y coordinate of the first point of the line.
x2 X coordinate of the second point of the line.
y2 Y coordinate of the second point of the line.
width Width of the line in pixels. Must be >0.
r The red value of the character to draw.
g The green value of the character to draw.
b The blue value of the character to draw.
a The alpha value of the character to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 6750 of file SDL_gfxPrimitives.c.

int trigonColor ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint32  color 
)

Draw trigon (triangle outline) with alpha blending.

Note: Creates vertex array and uses polygon routine to render.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the trigon.
y1 Y coordinate of the first point of the trigon.
x2 X coordinate of the second point of the trigon.
y2 Y coordinate of the second point of the trigon.
x3 X coordinate of the third point of the trigon.
y3 Y coordinate of the third point of the trigon.
color The color value of the trigon to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4713 of file SDL_gfxPrimitives.c.

int trigonRGBA ( SDL_Surface *  dst,
Sint16  x1,
Sint16  y1,
Sint16  x2,
Sint16  y2,
Sint16  x3,
Sint16  y3,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw trigon (triangle outline) with alpha blending.

Parameters:
dst The surface to draw on.
x1 X coordinate of the first point of the trigon.
y1 Y coordinate of the first point of the trigon.
x2 X coordinate of the second point of the trigon.
y2 Y coordinate of the second point of the trigon.
x3 X coordinate of the third point of the trigon.
y3 Y coordinate of the third point of the trigon.
r The red value of the trigon to draw.
g The green value of the trigon to draw.
b The blue value of the trigon to draw.
a The alpha value of the trigon to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 4745 of file SDL_gfxPrimitives.c.

int vlineColor ( SDL_Surface *  dst,
Sint16  x,
Sint16  y1,
Sint16  y2,
Uint32  color 
)

Draw vertical line with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the points of the line.
y1 Y coordinate of the first point (i.e. top) of the line.
y2 Y coordinate of the second point (i.e. bottom) of the line.
color The color value of the line to draw (0xRRGGBBAA).
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1324 of file SDL_gfxPrimitives.c.

int vlineRGBA ( SDL_Surface *  dst,
Sint16  x,
Sint16  y1,
Sint16  y2,
Uint8  r,
Uint8  g,
Uint8  b,
Uint8  a 
)

Draw vertical line with blending.

Parameters:
dst The surface to draw on.
x X coordinate of the points of the line.
y1 Y coordinate of the first point (i.e. top) of the line.
y2 Y coordinate of the second point (i.e. bottom) of the line.
r The red value of the line to draw.
g The green value of the line to draw.
b The blue value of the line to draw.
a The alpha value of the line to draw.
Returns:
Returns 0 on success, -1 on failure.

Definition at line 1492 of file SDL_gfxPrimitives.c.


Generated by  doxygen 1.6.2