src/2d.c

changeset 160
80700db530ff
parent 159
da7ebfcdd159
--- a/src/2d.c	Wed Jun 18 23:55:08 2025 +0200
+++ b/src/2d.c	Thu Jun 19 19:22:07 2025 +0200
@@ -33,6 +33,7 @@
 #include "ascension/shader.h"
 
 #include <GL/glew.h>
+#include <assert.h>
 
 typedef struct asc_rectangle_shader_s {
     AscShaderProgram program;
@@ -51,19 +52,15 @@
     AscShaderCodes codes;
     // TODO: create a utility that rolls out those defines
     const char * const defines[] = {
-        NULL,
-        "#define FILL",
-        "#define BORDER\n#define ROUNDED_CORNERS",
-        "#define FILL\n#define ROUNDED_CORNERS",
-        "#define BORDER",
-        "#define BORDER\n#define FILL",
-        "#define BORDER\n#define ROUNDED_CORNERS",
-        "#define BORDER\n#define FILL\n#define ROUNDED_CORNERS",
+        "#define FILL\n",
+        "#define ROUNDED_CORNERS\n",
+        "#define BORDER\n"
     };
     if (asc_shader_load_code_files((AscShaderCodeInfo){
         .files.vtx = "sprite_vtx.glsl",
         .files.frag = "rectangle_frag.glsl",
-        .defines.frag = defines[flags],
+        .defines.frag_list = defines,
+        .defines.frag_list_select = flags
     }, &codes)) {
         asc_error("Loading sprite shader failed.");
         return NULL;
@@ -71,6 +68,7 @@
     AscRectangleShader *shader = asc_shader_create(codes, sizeof(*shader));
     if (asc_has_error()) {
         asc_shader_free_codes(codes);
+        // TODO: must not return NULL or must add error handling on caller site
         return NULL;
     }
     shader->size = glGetUniformLocation(shader->program.gl_id, "size");

mercurial