src/shader.c

changeset 158
f650994ec543
parent 153
4116e2bd501b
--- 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;
 }

mercurial