SDL2_gfxPrimitives.cpp file
Classes
- struct SDL2_gfxBresenhamIterator
- The structure passed to the internal Bresenham iterator.
- struct SDL2_gfxMurphyIterator
- The structure passed to the internal Murphy iterator.
Functions
- auto pixel(SDL_Renderer* renderer, Sint16 x, Sint16 y) -> int
- Draw pixel in currently set color.
- auto pixelColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint32 color) -> int
- Draw pixel with blending enabled if a<255.
- auto pixelRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw pixel with blending enabled if a<255.
- auto pixelRGBAWeight(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint32 weight) -> int
- Draw pixel with blending enabled and using alpha weight on color.
- auto hline(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y) -> int
- Draw horizontal line in currently set color.
- auto hlineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color) -> int
- Draw horizontal line with blending.
- auto hlineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw horizontal line with blending.
- auto vline(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2) -> int
- Draw vertical line in currently set color.
- auto vlineColor(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color) -> int
- Draw vertical line with blending.
- auto vlineRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw vertical line with blending.
- auto rectangleColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color) -> int
- Draw rectangle with blending.
- auto rectangleRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw rectangle with blending.
- auto roundedRectangleColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color) -> int
- Draw rounded-corner rectangle with blending.
- auto roundedRectangleRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw rounded-corner rectangle with blending.
- auto roundedBoxColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color) -> int
- Draw rounded-corner box (filled rectangle) with blending.
- auto roundedBoxRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw rounded-corner box (filled rectangle) with blending.
- auto boxColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color) -> int
- Draw box (filled rectangle) with blending.
- auto boxRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw box (filled rectangle) with blending.
- auto line(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2) -> int
- Draw line with alpha blending using the currently set color.
- auto lineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color) -> int
- Draw line with alpha blending.
- auto lineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw line with alpha blending.
- auto _aalineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int draw_endpoint) -> int
- Internal function to draw anti-aliased line with alpha blending and endpoint control.
- auto aalineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color) -> int
- Draw anti-aliased line with alpha blending.
- auto aalineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw anti-aliased line with alpha blending.
- auto circleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color) -> int
- Draw circle with blending.
- auto circleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw circle with blending.
- auto arcColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color) -> int
- Arc with blending.
- auto arcRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Arc with blending.
- auto aacircleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color) -> int
- Draw anti-aliased circle with blending.
- auto aacircleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw anti-aliased circle with blending.
- auto _drawQuadrants(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 dx, Sint16 dy, Sint32 f) -> int
- Internal function to draw pixels or lines in 4 quadrants.
- auto _ellipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Sint32 f) -> int
- auto ellipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color) -> int
- Draw ellipse with blending.
- auto ellipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw ellipse with blending.
- auto filledCircleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color) -> int
- Draw filled circle with blending.
- auto filledCircleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw filled circle with blending.
- auto aaellipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color) -> int
- Draw anti-aliased ellipse with blending.
- auto aaellipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw anti-aliased ellipse with blending.
- auto filledEllipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color) -> int
- Draw filled ellipse with blending.
- auto filledEllipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw filled ellipse with blending.
- auto _pieRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 filled) -> int
- Internal float (low-speed) pie-calc implementation by drawing polygons.
- auto pieColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color) -> int
- Draw pie (outline) with alpha blending.
- auto pieRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw pie (outline) with alpha blending.
- auto filledPieColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color) -> int
- Draw filled pie with alpha blending.
- auto filledPieRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw filled pie with alpha blending.
- auto trigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color) -> int
- Draw trigon (triangle outline) with alpha blending.
- auto trigonRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw trigon (triangle outline) with alpha blending.
- auto aatrigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color) -> int
- Draw anti-aliased trigon (triangle outline) with alpha blending.
- auto aatrigonRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw anti-aliased trigon (triangle outline) with alpha blending.
- auto filledTrigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color) -> int
- Draw filled trigon (triangle) with alpha blending.
- auto filledTrigonRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw filled trigon (triangle) with alpha blending.
- auto polygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color) -> int
- Draw polygon with alpha blending.
- auto polygon(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n) -> int
- Draw polygon with the currently set color and blend mode.
- auto polygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw polygon with alpha blending.
- auto aapolygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color) -> int
- Draw anti-aliased polygon with alpha blending.
- auto aapolygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw anti-aliased polygon with alpha blending.
- auto _gfxPrimitivesCompareInt(const void* a, const void* b) -> int
- Internal helper qsort callback functions used in filled polygon drawing.
- auto filledPolygonRGBAMT(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int** polyInts, int* polyAllocated) -> int
- Draw filled polygon with alpha blending (multi-threaded capable).
- auto filledPolygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color) -> int
- Draw filled polygon with alpha blending.
- auto filledPolygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw filled polygon with alpha blending.
- auto _HLineTextured(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, SDL_Texture* texture, int texture_w, int texture_h, int texture_dx, int texture_dy) -> int
- Internal function to draw a textured horizontal line.
- auto texturedPolygonMT(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, SDL_Surface* texture, int texture_dx, int texture_dy, int** polyInts, int* polyAllocated) -> int
- Draws a polygon filled with the given texture (Multi-Threading Capable).
- auto texturedPolygon(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, SDL_Surface* texture, int texture_dx, int texture_dy) -> int
- 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.
- auto characterRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw a character of the currently set font.
- auto characterColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, char c, Uint32 color) -> int
- Draw a character of the currently set font.
- auto stringColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, const char* s, Uint32 color) -> int
- Draw a string in the currently set font.
- auto stringRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, const char* s, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw a string in the currently set font.
- auto _evaluateBezier(double* data, int ndata, double t) -> double
- Internal function to calculate bezier interpolator of data array with ndata values at position 't'.
- auto bezierColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, int s, Uint32 color) -> int
- Draw a bezier curve with alpha blending.
- auto bezierRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, int s, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw a bezier curve with alpha blending.
- auto thickLineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint32 color) -> int
- Draw a thick line with alpha blending.
- auto thickLineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint8 r, Uint8 g, Uint8 b, Uint8 a) -> int
- Draw a thick line with alpha blending.
Variables
- static int* gfxPrimitivesPolyIntsGlobal
- Global vertex array to use if optional parameters are not given in filledPolygonMT calls.
- static int gfxPrimitivesPolyAllocatedGlobal
- Flag indicating if global vertex array was already allocated.
- static SDL_Texture* gfxPrimitivesFont
- Global cache for NxM pixel font textures created at runtime.
- static const unsigned char* currentFontdata
- Pointer to the current font data. Default is a 8x8 pixel internal font.
- static Uint32 charWidth
- Width of the current font. Default is 8.
- static Uint32 charHeight
- Height of the current font. Default is 8.
- static Uint32 charWidthLocal
- Width for rendering. Autocalculated.
- static Uint32 charHeightLocal
- Height for rendering. Autocalculated.
- static Uint32 charPitch
- Pitch of the current font in bytes. Default is 1.
- static Uint32 charRotation
- Characters 90deg clockwise rotations. Default is 0. Max is 3.
- static Uint32 charSize
- Character data size in bytes of the current font. Default is 8.
Defines
- #define AAlevels
- #define AAbits
- #define DEFAULT_ELLIPSE_OVERSCAN
- Internal function to draw ellipse or filled ellipse with blending.
Function documentation
int pixel(SDL_Renderer* renderer, Sint16 x, Sint16 y)
Draw pixel in currently set color.
Parameters | |
---|---|
renderer | The renderer to draw on. |
x | X (horizontal) coordinate of the pixel. |
y | Y (vertical) coordinate of the pixel. |
Returns | Returns 0 on success, -1 on failure. |
int pixelColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint32 color)
Draw pixel with blending enabled if a<255.
Parameters | |
---|---|
renderer | The renderer 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. |
int pixelRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw pixel with blending enabled if a<255.
Parameters | |
---|---|
renderer | The renderer 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. |
int pixelRGBAWeight(SDL_Renderer* renderer, Sint16 x, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint32 weight)
Draw pixel with blending enabled and using alpha weight on color.
Parameters | |
---|---|
renderer | The renderer to draw on. |
x | The horizontal coordinate of the pixel. |
y | The vertical position 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. |
weight | The weight multiplied into the alpha value of the pixel. |
Returns | Returns 0 on success, -1 on failure. |
int hline(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y)
Draw horizontal line in currently set color.
Parameters | |
---|---|
renderer | The renderer 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. |
Returns | Returns 0 on success, -1 on failure. |
int hlineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint32 color)
Draw horizontal line with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int hlineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw horizontal line with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int vline(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2)
Draw vertical line in currently set color.
Parameters | |
---|---|
renderer | The renderer to draw on. |
x | X coordinate of 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. |
Returns | Returns 0 on success, -1 on failure. |
int vlineColor(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint32 color)
Draw vertical line with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int vlineRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y1, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw vertical line with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int rectangleColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
Draw rectangle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int rectangleRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw rectangle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int roundedRectangleColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)
Draw rounded-corner rectangle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int roundedRectangleRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int roundedBoxColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 rad, Uint32 color)
Draw rounded-corner box (filled rectangle) with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int roundedBoxRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int boxColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
Draw box (filled rectangle) with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int boxRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw box (filled rectangle) with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int line(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2)
Draw line with alpha blending using the currently set color.
Parameters | |
---|---|
renderer | The renderer 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. |
Returns | Returns 0 on success, -1 on failure. |
int lineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
Draw line with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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 seond point of the line. |
color | The color value of the line to draw (0xRRGGBBAA). |
Returns | Returns 0 on success, -1 on failure. |
int lineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw line with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int _aalineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a, int draw_endpoint)
Internal function to draw anti-aliased line with alpha blending and endpoint control.
Parameters | |
---|---|
renderer | The renderer 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. |
draw_endpoint | Flag indicating if the endpoint should be drawn; draw if non-zero. |
Returns | Returns 0 on success, -1 on failure. |
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.
int aalineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint32 color)
Draw anti-aliased line with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aalineRGBA(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw anti-aliased line with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int circleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
Draw circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int circleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int arcColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
Arc with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int arcRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Arc with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aacircleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
Draw anti-aliased circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aacircleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw anti-aliased circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int _drawQuadrants(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 dx, Sint16 dy, Sint32 f)
Internal function to draw pixels or lines in 4 quadrants.
Parameters | |
---|---|
renderer | The renderer to draw on. |
x | X coordinate of the center of the quadrant. |
y | Y coordinate of the center of the quadrant. |
dx | X offset in pixels of the corners of the quadrant. |
dy | Y offset in pixels of the corners of the quadrant. |
f | Flag indicating if the quadrant should be filled (1) or not (0). |
Returns | Returns 0 on success, -1 on failure. |
int ellipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
Draw ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int ellipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledCircleColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint32 color)
Draw filled circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledCircleRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw filled circle with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aaellipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
Draw anti-aliased ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aaellipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw anti-aliased ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledEllipseColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint32 color)
Draw filled ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledEllipseRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rx, Sint16 ry, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw filled ellipse with blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int _pieRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint8 r, Uint8 g, Uint8 b, Uint8 a, Uint8 filled)
Internal float (low-speed) pie-calc implementation by drawing polygons.
Parameters | |
---|---|
renderer | The renderer 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. |
filled | Flag indicating if the pie should be filled (=1) or not (=0). |
Returns | Returns 0 on success, -1 on failure. |
Note: Determines vertex array and uses polygon or filledPolygon drawing routines to render.
int pieColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
Draw pie (outline) with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int pieRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int filledPieColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, Sint16 rad, Sint16 start, Sint16 end, Uint32 color)
Draw filled pie with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledPieRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int trigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
Draw trigon (triangle outline) with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
Note: Creates vertex array and uses polygon routine to render.
int trigonRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int aatrigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
Draw anti-aliased trigon (triangle outline) with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
Note: Creates vertex array and uses aapolygon routine to render.
int aatrigonRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int filledTrigonColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Sint16 x3, Sint16 y3, Uint32 color)
Draw filled trigon (triangle) with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
Note: Creates vertex array and uses aapolygon routine to render.
int filledTrigonRGBA(SDL_Renderer* renderer, 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.
Parameters | |
---|---|
renderer | The renderer 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. |
Note: Creates vertex array and uses aapolygon routine to render.
int polygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color)
Draw polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int polygon(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n)
Draw polygon with the currently set color and blend mode.
Parameters | |
---|---|
renderer | The renderer 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. |
Returns | Returns 0 on success, -1 on failure. |
int polygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aapolygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color)
Draw anti-aliased polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int aapolygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw anti-aliased polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
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. |
int filledPolygonRGBAMT(SDL_Renderer* renderer, 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).
Parameters | |
---|---|
renderer | The renderer 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 filled 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. |
Note: The last two parameters are optional; but are required for multithreaded operation.
int filledPolygonColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint32 color)
Draw filled polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int filledPolygonRGBA(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw filled polygon with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int _HLineTextured(SDL_Renderer* renderer, Sint16 x1, Sint16 x2, Sint16 y, SDL_Texture* texture, int texture_w, int texture_h, int texture_dx, int texture_dy)
Internal function to draw a textured horizontal line.
Parameters | |
---|---|
renderer | The renderer 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 to retrieve color information from. |
texture_w | The width of the texture. |
texture_h | The height of the texture. |
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. |
int texturedPolygonMT(SDL_Renderer* renderer, 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).
Parameters | |
---|---|
renderer | The renderer to draw on. |
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. |
int texturedPolygon(SDL_Renderer* renderer, 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.
Parameters | |
---|---|
renderer | The renderer to draw on. |
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. |
This standard version is calling multithreaded versions with NULL cache parameters.
void gfxPrimitivesSetFont(const void* fontdata, Uint32 cw, Uint32 ch)
Sets or resets the current global font data.
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. |
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]
void gfxPrimitivesSetFontRotation(Uint32 rotation)
Sets current global font character rotation steps.
Parameters | |
---|---|
rotation | Number of 90deg clockwise steps to rotate |
Default is 0 (no rotation). 1 = 90deg clockwise. 2 = 180deg clockwise. 3 = 270deg clockwise. Changing the rotation, will reset the character cache.
int characterRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, char c, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw a character of the currently set font.
Parameters | |
---|---|
renderer | The Renderer 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. |
int characterColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, char c, Uint32 color)
Draw a character of the currently set font.
Parameters | |
---|---|
renderer | The renderer 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. |
int stringColor(SDL_Renderer* renderer, Sint16 x, Sint16 y, const char* s, Uint32 color)
Draw a string in the currently set font.
Parameters | |
---|---|
renderer | The renderer 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. |
The spacing between consequtive characters in the string is the fixed number of pixels of the character width of the current global font.
int stringRGBA(SDL_Renderer* renderer, Sint16 x, Sint16 y, const char* s, Uint8 r, Uint8 g, Uint8 b, Uint8 a)
Draw a string in the currently set font.
Parameters | |
---|---|
renderer | The renderer 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. |
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. |
int bezierColor(SDL_Renderer* renderer, const Sint16* vx, const Sint16* vy, int n, int s, Uint32 color)
Draw a bezier curve with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int bezierRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
int thickLineColor(SDL_Renderer* renderer, Sint16 x1, Sint16 y1, Sint16 x2, Sint16 y2, Uint8 width, Uint32 color)
Draw a thick line with alpha blending.
Parameters | |
---|---|
renderer | The renderer 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. |
int thickLineRGBA(SDL_Renderer* renderer, 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 | |
---|---|
renderer | The renderer 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. |
Variable documentation
static int* gfxPrimitivesPolyIntsGlobal
Global vertex array to use if optional parameters are not given in filledPolygonMT calls.
Note: Used for non-multithreaded (default) operation of filledPolygonMT.
static int gfxPrimitivesPolyAllocatedGlobal
Flag indicating if global vertex array was already allocated.
Note: Used for non-multithreaded (default) operation of filledPolygonMT.
Define documentation
#define DEFAULT_ELLIPSE_OVERSCAN
Internal function to draw ellipse or filled ellipse with blending.
Returns | Returns 0 on success, -1 on failure. |
---|