src/sprite.c

changeset 226
18327d2df79d
parent 223
4f32c7755138
--- a/src/sprite.c	Fri Jul 25 18:58:50 2025 +0200
+++ b/src/sprite.c	Fri Jul 25 19:19:54 2025 +0200
@@ -83,12 +83,14 @@
 void asc_sprite_draw(const AscCamera *camera, const AscSceneNode *node) {
     asc_cptr_cast(AscSprite, sprite, node);
 
+    const int flags = asc_texture_is_uv_normalized(sprite->texture) ? 0 : 1;
+
     // Activate shader
     // TODO: scene should know which shader we are going to activate s.t. it can pre-sort nodes
-    const AscShaderProgram *shader =
-        asc_texture_is_uv_normalized(sprite->texture)
-                ? asc_shader_lookup_or_create(ASC_SHADER_SPRITE_UV, asc_sprite_shader_create, 0)
-                : asc_shader_lookup_or_create(ASC_SHADER_SPRITE_RECT, asc_sprite_shader_create, 1);
+    const AscShaderProgram *shader = asc_shader_lookup_or_create(
+        ASC_SHADER_SPRITE(flags),
+        asc_sprite_shader_create, flags
+    );
     if (asc_shader_use(shader, camera)) return;
     asc_cptr_cast(AscSpriteShader, sprite_shader, shader);
 

mercurial