--- 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);