diff -r da7ebfcdd159 -r 80700db530ff src/2d.c --- 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 +#include 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");