src/sprite.c

changeset 163
3628cc3c0483
parent 162
d3598c834f9b
--- a/src/sprite.c	Sun Jun 22 11:15:53 2025 +0200
+++ b/src/sprite.c	Sun Jun 22 11:36:37 2025 +0200
@@ -52,10 +52,11 @@
         asc_error("Loading sprite shader failed.");
         return NULL;
     }
+    // TODO: find better way to deal with inheritance (&shader->program just looks bad)
     AscSpriteShader *shader = asc_shader_create(codes, sizeof(*shader));
-    if (shader == NULL) {
+    if (asc_shader_invalid(&shader->program)) {
         asc_shader_free_codes(codes);
-        return NULL;
+        return (AscShaderProgram*) shader;
     }
     shader->tex = glGetUniformLocation(shader->program.gl_id, "tex");
     asc_shader_free_codes(codes);
@@ -99,7 +100,8 @@
             sprite->texture->target == GL_TEXTURE_RECTANGLE
                 ? asc_shader_lookup_or_create(ASC_SHADER_SPRITE_RECT, asc_sprite_shader_create, 1)
                 : asc_shader_lookup_or_create(ASC_SHADER_SPRITE_UV, asc_sprite_shader_create, 0);
-    if (shader == NULL) return;
+    // TODO: how to remove the following cast?
+    if (asc_shader_invalid((AscShaderProgram*)shader)) return;
     asc_shader_use(&shader->program, camera);
 
     // Upload model matrix

mercurial