aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorkdx <kikoodx@paranoici.org>2022-09-08 03:19:40 +0200
committerkdx <kikoodx@paranoici.org>2022-09-08 03:19:40 +0200
commit4ec501274d38259075ca68a3dd0e50f7f1634bc8 (patch)
tree2646fc47a289dc042c0ca5f4bcc7dd9559ad5e55
parent9d007dc6a46994f7095f396ff216b520d589c8a7 (diff)
downloadlzr-4ec501274d38259075ca68a3dd0e50f7f1634bc8.tar.gz
draw polygon
-rw-r--r--lzr.c17
-rw-r--r--lzr.h1
2 files changed, 18 insertions, 0 deletions
diff --git a/lzr.c b/lzr.c
index f4434de..4e0ec7b 100644
--- a/lzr.c
+++ b/lzr.c
@@ -326,6 +326,23 @@ int LZR_DrawCircle(bool fill, int x, int y, int radius)
return 0;
}
+int LZR_DrawPolygon(bool fill, int *vx, int *vy, int n)
+{
+ if (n > 32) {
+ dx_log_error("%d > 32", n);
+ return -1;
+ }
+ Sint16 x[32], y[32];
+ for (int i = 0; i < n; i++)
+ x[i] = vx[i], y[i] = vy[i];
+ if ((fill ? filledPolygonRGBA : polygonRGBA)(renderer, x, y, n,
+ UNPACKED_COLOR, 255) < 0) {
+ dx_log_error("%s", SDL_GetError());
+ return -1;
+ }
+ return 0;
+}
+
int LZR_DrawImage(int id, int x, int y)
{
if (id < 0) {
diff --git a/lzr.h b/lzr.h
index bb9f74b..451848d 100644
--- a/lzr.h
+++ b/lzr.h
@@ -54,6 +54,7 @@ int LZR_DrawPoint(int x, int y);
int LZR_DrawLine(int x0, int y0, int x1, int y1);
int LZR_DrawRect(bool fill, int x, int y, int w, int h);
int LZR_DrawCircle(bool fill, int x, int y, int radius);
+int LZR_DrawPolygon(bool fill, int *vx, int *vy, int n);
int LZR_DrawImage(int id, int x, int y);
int LZR_DrawImageEx(int id, int x, int y, LZR_ImageDrawSettings stg);
int LZR_DrawTile(int id, int tile, int x, int y);