From 30f930498048466965066dfec330f5f7500bb3a0 Mon Sep 17 00:00:00 2001 From: nathan Date: Sun, 10 Aug 2025 07:17:41 -0600 Subject: Cleaner shader config thingy --- src/assets.c | 14 ++++++++++++++ src/game.c | 6 ------ src/world.c | 8 +++----- 3 files changed, 17 insertions(+), 11 deletions(-) diff --git a/src/assets.c b/src/assets.c index 1da7197..4072988 100644 --- a/src/assets.c +++ b/src/assets.c @@ -21,6 +21,18 @@ const char modelAssetPaths[MODEL_ASSET_COUNT][FT_NAMEMAX] = { "UtilityPole.obj" }; +void initShaderAssets(Shader shaders[SHADER_ASSET_COUNT]) +{ + // Skybox. + Shader shader = shaders[SKYBOX_SHADER]; + SetShaderValue(shader, GetShaderLocation(shader, "environmentMap"), + (int[1]){ MATERIAL_MAP_CUBEMAP }, SHADER_UNIFORM_INT); + + // Instancing. + shader = shaders[INSTANCING_SHADER]; + shader.locs[SHADER_LOC_MATRIX_MVP] = GetShaderLocation(shader, "mvp"); +} + void initAssets(Assets* assets) { // Textures. @@ -47,6 +59,8 @@ void initAssets(Assets* assets) shaderAssetNames[index])); } + initShaderAssets(assets->shaders); + // Models. for (int index = 0; index < MODEL_ASSET_COUNT; ++index) { diff --git a/src/game.c b/src/game.c index 0d1fa79..c4563c9 100644 --- a/src/game.c +++ b/src/game.c @@ -19,12 +19,6 @@ void initGame(Game* game) // Skybox. game->skybox = LoadModelFromMesh(GenMeshCube(1.0, 1.0, 1.0)); game->skybox.materials[0].shader = game->assets.shaders[SKYBOX_SHADER]; - - SetShaderValue( - game->skybox.materials[0].shader, - GetShaderLocation(game->skybox.materials[0].shader, "environmentMap"), - (int[1]){ MATERIAL_MAP_CUBEMAP }, SHADER_UNIFORM_INT); - game->skybox.materials[0].maps[MATERIAL_MAP_CUBEMAP].texture = LoadTextureCubemap(game->assets.images[SKYBOX_IMAGE], CUBEMAP_LAYOUT_AUTO_DETECT); diff --git a/src/world.c b/src/world.c index bbaf225..658fb49 100644 --- a/src/world.c +++ b/src/world.c @@ -484,11 +484,9 @@ Seed generateWorldUtilityPoles(World* world, const Assets* assets, Seed seed, ALLOCATION_ERROR; return seed; } - - // Instancing shader. - Shader shader = assets->shaders[INSTANCING_SHADER]; - shader.locs[SHADER_LOC_MATRIX_MVP] = GetShaderLocation(shader, "mvp"); - assets->models[UTILITY_POLE_MODEL].materials[0].shader = shader; + + assets->models[UTILITY_POLE_MODEL].materials[0].shader = + assets->shaders[INSTANCING_SHADER]; assets->models[UTILITY_POLE_MODEL].materials[0] .maps[MATERIAL_MAP_DIFFUSE].color = BLUE; -- cgit v1.2.3