Update ImageDraw*() functions to match arguments of Draw*()
Updated draw functions: ImageDrawPixel() ImageDrawPixelV() ImageDrawCircle() ImageDrawCircleV() ImageDrawLine() ImageDrawLineV() ImageDrawRectangle() ImageDrawRectangleV() ImageDrawRectangleRec()
This commit is contained in:
parent
3c3dfde3f9
commit
af071500b2
13
src/raylib.h
13
src/raylib.h
|
|
@ -1141,12 +1141,17 @@ RLAPI Color *ImageExtractPalette(Image image, int maxPaletteSize, int *extractCo
|
||||||
RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font)
|
RLAPI Image ImageText(const char *text, int fontSize, Color color); // Create an image from text (default font)
|
||||||
RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font)
|
RLAPI Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Color tint); // Create an image from text (custom sprite font)
|
||||||
RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source)
|
RLAPI void ImageDraw(Image *dst, Image src, Rectangle srcRec, Rectangle dstRec, Color tint); // Draw a source image within a destination image (tint applied to source)
|
||||||
RLAPI void ImageDrawRectangle(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image
|
RLAPI void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color); // Draw rectangle within an image
|
||||||
|
RLAPI void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color); // Draw rectangle within an image (Vector version)
|
||||||
|
RLAPI void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color); // Draw rectangle within an image
|
||||||
RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image
|
RLAPI void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color); // Draw rectangle lines within an image
|
||||||
RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color
|
RLAPI void ImageClearBackground(Image *dst, Color color); // Clear image background with given color
|
||||||
RLAPI void ImageDrawPixel(Image *dst, Vector2 position, Color color); // Draw pixel within an image
|
RLAPI void ImageDrawPixel(Image *dst, int posX, int posY, Color color); // Draw pixel within an image
|
||||||
RLAPI void ImageDrawCircle(Image *dst, Vector2 center, int radius, Color color); // Draw circle within an image
|
RLAPI void ImageDrawPixelV(Image *dst, Vector2 position, Color color); // Draw pixel within an image (Vector version)
|
||||||
RLAPI void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image
|
RLAPI void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color); // Draw circle within an image
|
||||||
|
RLAPI void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color); // Draw circle within an image (Vector version)
|
||||||
|
RLAPI void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color); // Draw line within an image
|
||||||
|
RLAPI void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color); // Draw line within an image (Vector version)
|
||||||
RLAPI void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color); // Draw text (default font) within an image (destination)
|
RLAPI void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color); // Draw text (default font) within an image (destination)
|
||||||
RLAPI void ImageDrawTextEx(Image *dst, Vector2 position, Font font, const char *text, float fontSize, float spacing, Color color); // Draw text (custom sprite font) within an image (destination)
|
RLAPI void ImageDrawTextEx(Image *dst, Vector2 position, Font font, const char *text, float fontSize, float spacing, Color color); // Draw text (custom sprite font) within an image (destination)
|
||||||
RLAPI void ImageFlipVertical(Image *image); // Flip image vertically
|
RLAPI void ImageFlipVertical(Image *image); // Flip image vertically
|
||||||
|
|
|
||||||
|
|
@ -1987,7 +1987,19 @@ Image ImageTextEx(Font font, const char *text, float fontSize, float spacing, Co
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw rectangle within an image
|
// Draw rectangle within an image
|
||||||
void ImageDrawRectangle(Image *dst, Rectangle rec, Color color)
|
void ImageDrawRectangle(Image *dst, int posX, int posY, int width, int height, Color color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleRec(dst, (Rectangle){ posX, posY, width, height }, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw rectangle within an image (Vector version)
|
||||||
|
void ImageDrawRectangleV(Image *dst, Vector2 position, Vector2 size, Color color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleRec(dst, (Rectangle){ position.x, position.y, size.x, size.y }, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw rectangle within an image
|
||||||
|
void ImageDrawRectangleRec(Image *dst, Rectangle rec, Color color)
|
||||||
{
|
{
|
||||||
// Security check to avoid program crash
|
// Security check to avoid program crash
|
||||||
if ((dst->data == NULL) || (dst->width == 0) || (dst->height == 0)) return;
|
if ((dst->data == NULL) || (dst->width == 0) || (dst->height == 0)) return;
|
||||||
|
|
@ -2000,40 +2012,46 @@ void ImageDrawRectangle(Image *dst, Rectangle rec, Color color)
|
||||||
// Draw rectangle lines within an image
|
// Draw rectangle lines within an image
|
||||||
void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color)
|
void ImageDrawRectangleLines(Image *dst, Rectangle rec, int thick, Color color)
|
||||||
{
|
{
|
||||||
ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y, rec.width, thick }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ rec.x, rec.y, rec.width, thick }, color);
|
||||||
ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + thick, thick, rec.height - thick*2 }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ rec.x, rec.y + thick, thick, rec.height - thick*2 }, color);
|
||||||
ImageDrawRectangle(dst, (Rectangle){ rec.x + rec.width - thick, rec.y + thick, thick, rec.height - thick*2 }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ rec.x + rec.width - thick, rec.y + thick, thick, rec.height - thick*2 }, color);
|
||||||
ImageDrawRectangle(dst, (Rectangle){ rec.x, rec.y + rec.height - thick, rec.width, thick }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ rec.x, rec.y + rec.height - thick, rec.width, thick }, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear image background with given color
|
// Clear image background with given color
|
||||||
void ImageClearBackground(Image *dst, Color color)
|
void ImageClearBackground(Image *dst, Color color)
|
||||||
{
|
{
|
||||||
ImageDrawRectangle(dst, (Rectangle){ 0.0f, 0.0f, dst->width, dst->height }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ 0.0f, 0.0f, dst->width, dst->height }, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw pixel within an image
|
// Draw pixel within an image
|
||||||
void ImageDrawPixel(Image *dst, Vector2 position, Color color)
|
void ImageDrawPixel(Image *dst, int x, int y, Color color)
|
||||||
{
|
{
|
||||||
ImageDrawRectangle(dst, (Rectangle){ position.x, position.y, 1.0f, 1.0f }, color);
|
ImageDrawRectangleRec(dst, (Rectangle){ x, y, 1.0f, 1.0f }, color);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Draw pixel within an image (Vector version)
|
||||||
|
void ImageDrawPixelV(Image *dst, Vector2 position, Color color)
|
||||||
|
{
|
||||||
|
ImageDrawRectangleRec(dst, (Rectangle){ position.x, position.y, 1.0f, 1.0f }, color);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw circle within an image
|
// Draw circle within an image
|
||||||
void ImageDrawCircle(Image *dst, Vector2 center, int radius, Color color)
|
void ImageDrawCircle(Image *dst, int centerX, int centerY, int radius, Color color)
|
||||||
{
|
{
|
||||||
int x = 0, y = radius, xc = (int)center.x, yc = (int)center.y;
|
int x = 0, y = radius;
|
||||||
int decesionParameter = 3 - 2*radius;
|
int decesionParameter = 3 - 2*radius;
|
||||||
|
|
||||||
while (y >= x)
|
while (y >= x)
|
||||||
{
|
{
|
||||||
ImageDrawPixel(dst, (Vector2){ xc + x, yc + y }, color);
|
ImageDrawPixel(dst, centerX + x, centerY + y, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc - x, yc + y }, color);
|
ImageDrawPixel(dst, centerX - x, centerY + y, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc + x, yc - y }, color);
|
ImageDrawPixel(dst, centerX + x, centerY - y, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc - x, yc - y }, color);
|
ImageDrawPixel(dst, centerX - x, centerY - y, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc + y, yc + x }, color);
|
ImageDrawPixel(dst, centerX + y, centerY + x, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc - y, yc + x }, color);
|
ImageDrawPixel(dst, centerX - y, centerY + x, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc + y, yc - x }, color);
|
ImageDrawPixel(dst, centerX + y, centerY - x, color);
|
||||||
ImageDrawPixel(dst, (Vector2){ xc - y, yc - x }, color);
|
ImageDrawPixel(dst, centerX - y, centerY - x, color);
|
||||||
x++;
|
x++;
|
||||||
|
|
||||||
if (decesionParameter > 0)
|
if (decesionParameter > 0)
|
||||||
|
|
@ -2045,26 +2063,37 @@ void ImageDrawCircle(Image *dst, Vector2 center, int radius, Color color)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Draw line within an image
|
// Draw circle within an image (Vector version)
|
||||||
void ImageDrawLineEx(Image *dst, Vector2 start, Vector2 end, Color color)
|
void ImageDrawCircleV(Image *dst, Vector2 center, int radius, Color color)
|
||||||
{
|
{
|
||||||
int x1 = (int)start.x, y1 = (int)start.y, x2 = (int)end.x, y2 = (int)end.y;
|
ImageDrawCircle(dst, (int)center.x, (int)center.y, radius, color);
|
||||||
int m = 2*(y2 - y1);
|
}
|
||||||
int slopeError = m - (x2 - x1);
|
|
||||||
|
|
||||||
for (int x = x1, y = y1; x <= x2; x++)
|
// Draw line within an image
|
||||||
|
void ImageDrawLine(Image *dst, int startPosX, int startPosY, int endPosX, int endPosY, Color color)
|
||||||
{
|
{
|
||||||
ImageDrawPixel(dst, (Vector2){ x, y }, color);
|
int m = 2*(endPosY - startPosY);
|
||||||
|
int slopeError = m - (startPosY - startPosX);
|
||||||
|
|
||||||
|
for (int x = startPosX, y = startPosY; x <= startPosY; x++)
|
||||||
|
{
|
||||||
|
ImageDrawPixel(dst, x, y, color);
|
||||||
slopeError += m;
|
slopeError += m;
|
||||||
|
|
||||||
if (slopeError >= 0)
|
if (slopeError >= 0)
|
||||||
{
|
{
|
||||||
y++;
|
y++;
|
||||||
slopeError -= 2*(x2 - x1);
|
slopeError -= 2*(startPosY - startPosX);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Draw line within an image (Vector version)
|
||||||
|
void ImageDrawLineV(Image *dst, Vector2 start, Vector2 end, Color color)
|
||||||
|
{
|
||||||
|
ImageDrawLine(dst, (int)start.x, (int)start.y, (int)end.x, (int)end.y, color);
|
||||||
|
}
|
||||||
|
|
||||||
// Draw text (default font) within an image (destination)
|
// Draw text (default font) within an image (destination)
|
||||||
void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color)
|
void ImageDrawText(Image *dst, Vector2 position, const char *text, int fontSize, Color color)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user