diff options
| author | 0scar <qgt268@alumni.ku.dk> | 2024-02-22 16:40:05 +0000 |
|---|---|---|
| committer | 0scar <qgt268@alumni.ku.dk> | 2024-02-23 10:27:36 +0000 |
| commit | 2262a2d28fb4930ac21e1b40bfa51de090db6d90 (patch) | |
| tree | 17e95b70126c9da0147fe091fe56a7cb8ee33501 /src/resources | |
| parent | cd53b13d206085842a9d01432e797166c8142c5b (diff) | |
Fix ability to use different shaders
Diffstat (limited to 'src/resources')
| -rw-r--r-- | src/resources/src/resources.c | 23 |
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; } |
