aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authornathan <nathansmith@disroot.org>2025-08-10 13:17:41 +0000
committernathan <nathansmith@disroot.org>2025-08-10 13:17:41 +0000
commit30f930498048466965066dfec330f5f7500bb3a0 (patch)
tree5a9226ac74c9fe22f265d1b590252d5bd31642a3 /src
parent2a62d42bd169f97feec737261cdcc68b7d5c3733 (diff)
downloadFindThings-30f930498048466965066dfec330f5f7500bb3a0.tar.gz
FindThings-30f930498048466965066dfec330f5f7500bb3a0.tar.bz2
FindThings-30f930498048466965066dfec330f5f7500bb3a0.zip
Cleaner shader config thingy
Diffstat (limited to 'src')
-rw-r--r--src/assets.c14
-rw-r--r--src/game.c6
-rw-r--r--src/world.c8
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;