summaryrefslogtreecommitdiff
path: root/src/resources
diff options
context:
space:
mode:
author0scar <qgt268@alumni.ku.dk>2024-02-22 16:40:05 +0000
committer0scar <qgt268@alumni.ku.dk>2024-02-23 10:27:36 +0000
commit2262a2d28fb4930ac21e1b40bfa51de090db6d90 (patch)
tree17e95b70126c9da0147fe091fe56a7cb8ee33501 /src/resources
parentcd53b13d206085842a9d01432e797166c8142c5b (diff)
Fix ability to use different shaders
Diffstat (limited to 'src/resources')
-rw-r--r--src/resources/src/resources.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/resources/src/resources.c b/src/resources/src/resources.c
index 355fa70..89769c8 100644
--- a/src/resources/src/resources.c
+++ b/src/resources/src/resources.c
@@ -17,8 +17,8 @@ void* get_asset(Resources* r, u32 idx) {
break;
case Asset_shaderprog:
- LOG("Idx: r->get[idx] = %d", r->get[idx]);
- LOG("Ptr: &r->shader[r->get[idx]] = %z", &r->shader[r->get[idx]]);
+ LOG("Idx: r->get[%d] = %d", idx, r->get[idx]);
+ //LOG("Ptr: &r->shader[r->get[idx]] = %z", &r->shader[r->get[idx]]);
return &r->shader[r->get[idx]];
case Asset_texture:
@@ -96,16 +96,21 @@ i32 resources_load(Resources *resources) {
guess_shadertype_from_filename(resources->assets[i].shader.path);
const Shader s = compile_shader(resources->assets[i].shader.path, t);
LOG("Compiled %s! (%s)", resources->assets[i].shader.path, ShaderType_str[t]);
- imm_shader[shader_len++] = s;
+
+ imm_shader[shader_len] = s;
+ shader_len++;
} break;
case Asset_shaderprog: {
const isize sz = resources->assets[i].shaderprog.shader_len;
+ const u32* shader_ids = resources->assets[i].shaderprog.shader;
Shader* shaders = calloc(sz, sizeof(Shader));
for (int j = 0; j < sz; j++) {
//DEBUG("shader[%d] = %d\n", j, imm_shader[resources->assets[i].shaderprog.shader[j]].program);
//shaders[j] = imm_shader[resources->assets[i].shaderprog.shader[j]];
- shaders[j] = imm_shader[j];
+ u32 shader_idx = shader_ids[j];
+ //DEBUG("Idx: get[%d] = %d\n", shader_idx, imm_shader[resources->get[shader_idx]].program);
+ shaders[j] = imm_shader[resources->get[shader_idx]];
}
const Shader s = compose_shader(shaders, sz);
@@ -129,7 +134,17 @@ i32 resources_load(Resources *resources) {
//resources->get[i] = idx;
}
+ LOG("Total assets: %lu", resources->assets_len);
+ LOG(" Shaders: %lu", resources->shader_len);
+ LOG(" Textures: %lu", resources->texture_len);
+
+ // Delete the immediate shaders
+ for (int i = 0; i < shader_len; i++) {
+ // glDeleteShader()
+ }
+
free(imm_shader);
+ shaders_delete(imm_shader, shader_len);
return 0;
}