src/2d.c

changeset 168
f70569c49c24
parent 167
8e6a661c87db
--- 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;
     }

mercurial