--- a/src/shader.c Tue Jun 17 19:00:20 2025 +0200 +++ b/src/shader.c Tue Jun 17 20:11:53 2025 +0200 @@ -207,7 +207,7 @@ cxFreeDefault(codes.frag); } -const void *asc_shader_register(unsigned int id, asc_shader_create_func create_func) { +const void *asc_shader_register(unsigned int id, asc_shader_create_func create_func, int create_flags) { AscGLContext *glctx = asc_active_glctx; #ifndef NDEBUG { @@ -219,7 +219,7 @@ } } #endif - AscShaderProgram *prog = create_func(); + AscShaderProgram *prog = create_func(create_flags); prog->id = id; cxListAdd(glctx->shaders, prog); return prog; @@ -233,10 +233,10 @@ return NULL; } -const void *asc_shader_lookup_or_create(unsigned int id, asc_shader_create_func create_func) { +const void *asc_shader_lookup_or_create(unsigned int id, asc_shader_create_func create_func, int create_flags) { const AscShaderProgram *prog = asc_shader_lookup(id); if (prog == NULL) { - return asc_shader_register(id, create_func); + return asc_shader_register(id, create_func, create_flags); } return prog; }