--- a/src/2d.c Tue Jun 24 20:21:38 2025 +0200 +++ b/src/2d.c Wed Jun 25 21:58:44 2025 +0200 @@ -32,17 +32,15 @@ #include "ascension/error.h" #include "ascension/shader.h" -// TODO: implement abstraction in shader.h to remove glew.h include here -#include <GL/glew.h> #include <assert.h> typedef struct asc_rectangle_shader_s { AscShaderProgram program; - GLint color; - GLint border_color; - GLint size; - GLint thickness; - GLint radius; + asc_uniform_loc color; + asc_uniform_loc border_color; + asc_uniform_loc size; + asc_uniform_loc thickness; + asc_uniform_loc radius; } AscRectangleShader; #define ASC_RECTANGLE_SHADER_FLAG_FILL 1 @@ -71,21 +69,21 @@ asc_shader_free_codes(codes); return (AscShaderProgram*) shader; } - shader->size = glGetUniformLocation(shader->program.gl_id, "size"); + shader->size = asc_shader_get_uniform_loc(&shader->program, "size"); if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_FILL)) { - shader->color = glGetUniformLocation(shader->program.gl_id, "color"); + shader->color = asc_shader_get_uniform_loc(&shader->program, "color"); } else { shader->color = -1; } if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_BORDER)) { - shader->thickness = glGetUniformLocation(shader->program.gl_id, "thickness"); - shader->border_color = glGetUniformLocation(shader->program.gl_id, "border_color"); + shader->thickness = asc_shader_get_uniform_loc(&shader->program, "thickness"); + shader->border_color = asc_shader_get_uniform_loc(&shader->program, "border_color"); } else { shader->thickness = -1; shader->border_color = -1; } if (asc_test_flag(flags, ASC_RECTANGLE_SHADER_FLAG_ROUND)) { - shader->radius = glGetUniformLocation(shader->program.gl_id, "radius"); + shader->radius = asc_shader_get_uniform_loc(&shader->program, "radius"); } else { shader->radius = -1; }