diff options
author | nathan <nathansmith@disroot.org> | 2025-08-10 13:17:41 +0000 |
---|---|---|
committer | nathan <nathansmith@disroot.org> | 2025-08-10 13:17:41 +0000 |
commit | 30f930498048466965066dfec330f5f7500bb3a0 (patch) | |
tree | 5a9226ac74c9fe22f265d1b590252d5bd31642a3 | |
parent | 2a62d42bd169f97feec737261cdcc68b7d5c3733 (diff) | |
download | FindThings-30f930498048466965066dfec330f5f7500bb3a0.tar.gz FindThings-30f930498048466965066dfec330f5f7500bb3a0.tar.bz2 FindThings-30f930498048466965066dfec330f5f7500bb3a0.zip |
Cleaner shader config thingy
-rw-r--r-- | src/assets.c | 14 | ||||
-rw-r--r-- | src/game.c | 6 | ||||
-rw-r--r-- | 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) { @@ -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; |