--- a/src/scene.c Sun Jun 08 14:57:54 2025 +0200 +++ b/src/scene.c Sun Jun 08 14:58:19 2025 +0200 @@ -96,16 +96,16 @@ // TODO: implement interleaving by depth if (cxIteratorValid(iter_opaque_rect)) { glDisable(GL_BLEND); - AscShaderSprite *shader = ASC_SHADER_SPRITE_RECT; - asc_shader_program_use(&shader->program, &scene->camera); + const AscShaderProgram *shader = asc_sprite_shader_rect(); + asc_shader_use(shader, &scene->camera); cx_foreach(const AscSprite*, node, iter_opaque_rect) { asc_sprite_draw(shader, node); } } if (cxIteratorValid(iter_opaque_uv)) { glDisable(GL_BLEND); - AscShaderSprite *shader = ASC_SHADER_SPRITE_UV; - asc_shader_program_use(&shader->program, &scene->camera); + const AscShaderProgram *shader = asc_sprite_shader_uv(); + asc_shader_use(shader, &scene->camera); cx_foreach(const AscSprite*, node, iter_opaque_uv) { asc_sprite_draw(shader, node); } @@ -113,8 +113,8 @@ if (cxIteratorValid(iter_blend_rect)) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - AscShaderSprite *shader = ASC_SHADER_SPRITE_RECT; - asc_shader_program_use(&shader->program, &scene->camera); + const AscShaderProgram *shader = asc_sprite_shader_rect(); + asc_shader_use(shader, &scene->camera); cx_foreach(const AscSprite*, node, iter_blend_rect) { asc_sprite_draw(shader, node); } @@ -122,8 +122,8 @@ if (cxIteratorValid(iter_blend_uv)) { glEnable(GL_BLEND); glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA); - AscShaderSprite *shader = ASC_SHADER_SPRITE_UV; - asc_shader_program_use(&shader->program, &scene->camera); + const AscShaderProgram *shader = asc_sprite_shader_uv(); + asc_shader_use(shader, &scene->camera); cx_foreach(const AscSprite*, node, iter_blend_uv) { asc_sprite_draw(shader, node); }