From 507d58d48f3e99f5fd45171cdbadd9c690f47fe1 Mon Sep 17 00:00:00 2001 From: axtloss Date: Sun, 25 Feb 2024 02:20:07 +0100 Subject: Unhardcode color for rectangle --- fbwarn/src/parseBVG.c | 13 +++++++++---- fbwarn/src/warn.c | 42 ++++++++++++++++++++++++++++++------------ 2 files changed, 39 insertions(+), 16 deletions(-) diff --git a/fbwarn/src/parseBVG.c b/fbwarn/src/parseBVG.c index 235253b..ff8b248 100644 --- a/fbwarn/src/parseBVG.c +++ b/fbwarn/src/parseBVG.c @@ -32,16 +32,21 @@ void BVGRectangle(char *argv[5]) { printf("Drawing rectangle\n"); argv[4][strlen(argv[4])-2] = '\0'; printf("%s, %s\n %s, %s,\n %s\n", argv[0], argv[1], argv[2], argv[3], argv[4]); - int x, y, width, height, color; + int x, y, width, height, r, g, b; sscanf(argv[0]+strlen("x="), "%d", &x); sscanf(argv[1]+strlen("y="), "%d", &y); sscanf(argv[2]+strlen("width="), "%d", &width); sscanf(argv[3]+strlen("height="), "%d", &height); - color = (int)strtol(argv[4]+strlen("color='#"), NULL, 16); + sscanf(argv[4]+strlen("color='#"), "%02x%02x%02x", &r, &g, &b); printf("X: %d, Y: %d\n", x, y); printf("Width: %d, Height: %d\n", width, height); - printf("Color: %d\n", color); - DrawRectangle(x, y, width, height, PINK); + printf("Color: %d, %d, %d\n", r, g, b); + Color *clr = malloc(sizeof(Color)); + clr->r=r; + clr->g=g; + clr->b=b; + clr->a=255; + DrawRectangle(x, y, width, height, *clr); return; } diff --git a/fbwarn/src/warn.c b/fbwarn/src/warn.c index 65995d2..1f946cc 100644 --- a/fbwarn/src/warn.c +++ b/fbwarn/src/warn.c @@ -2,25 +2,43 @@ #include "parseBVG.h" #include #include +#include int main(void) { - char *str, *single, *toFree; - toFree = str = strdup("rectangle (x=20,y=30,\nwidth=200,\nheight=300,\ncolor='#F5A9B8')\n"); - if (str == NULL) + char *rectA, *rectB, *rectC, *rectAFree, *rectBFree, *rectCFree, *singleA, *singleB, *singleC; + rectAFree = rectA = strdup("rectangle (x=0,y=0,\nwidth=100,\nheight=100,\ncolor='#5BCEFA')\n"); + if (rectA == NULL) return 1; - printf("Multi:\n %s", str); - single = multiToSingle(str); - printf("Single:\n %s\n", single); - free(toFree); - - InitWindow (800, 450, "raylib"); + singleA = multiToSingle(rectA); + free(rectAFree); + + rectBFree = rectB = strdup("rectangle (x=0,y=20,\nwidth=100,\nheight=60,\ncolor='#F5A9B8')\n"); + if (rectB == NULL) + return 1; + singleB = multiToSingle(rectB); + free(rectBFree); + + rectCFree = rectC = strdup("rectangle (x=0,y=40,\nwidth=100,\nheight=20,\ncolor='#FFFFFF')\n"); + if (rectC == NULL) + return 1; + singleC = multiToSingle(rectC); + free(rectCFree); + + InitWindow (100, 100, ":3"); while (!WindowShouldClose ()) { BeginDrawing (); ClearBackground (RAYWHITE); - DrawText ("TEXT", 190, 200, 20, LIGHTGRAY); - char *parse = strdup(single); - matchFunctionCall(parse); + + char *parseA = strdup(singleA); + matchFunctionCall(parseA); + + char *parseB = strdup(singleB); + matchFunctionCall(parseB); + + char *parseC = strdup(singleC); + matchFunctionCall(parseC); + DrawText ("tranmsgenmer", 15, 50, 10, MAROON); EndDrawing (); } -- cgit v1.2.3