Skip to content

Commit 5b37b3d

Browse files
committedMar 3, 2025·
Support custom shaders for terrain layers
1 parent b475fdd commit 5b37b3d

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed
 

‎src/dagon/render/deferred/passes/terrain.d

+14-4
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ import dlib.image.color;
3535

3636
import dagon.core.bindings;
3737
import dagon.graphics.entity;
38+
import dagon.graphics.shader;
3839
import dagon.graphics.terrain;
3940
import dagon.graphics.screensurface;
4041
import dagon.render.pipeline;
@@ -162,20 +163,29 @@ class PassTerrain: RenderPass
162163
glBlendFuncSeparatei(3, GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA, GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
163164

164165
glDisable(GL_DEPTH_TEST);
165-
terrainTextureLayerShader.bind();
166166

167167
if (terrainMaterial)
168168
{
169169
foreach(layer; terrainMaterial.layers)
170170
{
171171
state.material = layer;
172-
terrainTextureLayerShader.bindParameters(&state);
172+
173+
Shader shader;
174+
if (state.material.shader)
175+
shader = state.material.shader;
176+
else
177+
shader = terrainTextureLayerShader;
178+
179+
shader.bind();
180+
shader.bindParameters(&state);
181+
173182
screenSurface.render(&state);
174-
terrainTextureLayerShader.unbindParameters(&state);
183+
184+
shader.unbindParameters(&state);
185+
shader.unbind();
175186
}
176187
}
177188

178-
terrainTextureLayerShader.unbind();
179189
glEnable(GL_DEPTH_TEST);
180190

181191
glDisablei(GL_BLEND, 0);

0 commit comments

Comments
 (0)
Please sign in to comment.