diff options
author | kdx <kikoodx@paranoici.org> | 2022-09-08 03:19:40 +0200 |
---|---|---|
committer | kdx <kikoodx@paranoici.org> | 2022-09-08 03:19:40 +0200 |
commit | 4ec501274d38259075ca68a3dd0e50f7f1634bc8 (patch) | |
tree | 2646fc47a289dc042c0ca5f4bcc7dd9559ad5e55 | |
parent | 9d007dc6a46994f7095f396ff216b520d589c8a7 (diff) | |
download | lzr-4ec501274d38259075ca68a3dd0e50f7f1634bc8.tar.gz |
draw polygon
-rw-r--r-- | lzr.c | 17 | ||||
-rw-r--r-- | lzr.h | 1 |
2 files changed, 18 insertions, 0 deletions
@@ -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) { @@ -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); |