diff -r 80700db530ff -r 4c8b9c6d241f src/2d.c --- a/src/2d.c Thu Jun 19 19:22:07 2025 +0200 +++ b/src/2d.c Sat Jun 21 22:10:54 2025 +0200 @@ -50,7 +50,6 @@ static AscShaderProgram *asc_rectangle_shader_create(int flags) { AscShaderCodes codes; - // TODO: create a utility that rolls out those defines const char * const defines[] = { "#define FILL\n", "#define ROUNDED_CORNERS\n", @@ -62,7 +61,7 @@ .defines.frag_list = defines, .defines.frag_list_select = flags }, &codes)) { - asc_error("Loading sprite shader failed."); + asc_error("Loading rectangle shader failed."); return NULL; } AscRectangleShader *shader = asc_shader_create(codes, sizeof(*shader)); @@ -119,7 +118,7 @@ if (border) shader_flags |= ASC_RECTANGLE_SHADER_FLAG_BORDER; if (round) shader_flags |= ASC_RECTANGLE_SHADER_FLAG_ROUND; - // Compute shader ID + // Lookup table for the shader ID const int shader_ids[] = { -1, // unused ASC_SHADER_RECTANGLE_FILL, @@ -134,6 +133,7 @@ // Look up and activate shader const AscRectangleShader *shader = asc_shader_lookup_or_create( shader_ids[shader_flags], asc_rectangle_shader_create, shader_flags); + if (shader == NULL) return; asc_shader_use(&shader->program, camera); // Upload uniforms