From 730f206e5e2915c6fb15a2773859baa54839bf0f Mon Sep 17 00:00:00 2001 From: Alexander Bock Date: Tue, 28 Oct 2025 14:20:06 +0100 Subject: [PATCH] Safety-safe --- modules/base/rendering/renderablemodel.cpp | 27 +++++++++++----------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/base/rendering/renderablemodel.cpp b/modules/base/rendering/renderablemodel.cpp index b2d78cd63a..30f91aeed9 100644 --- a/modules/base/rendering/renderablemodel.cpp +++ b/modules/base/rendering/renderablemodel.cpp @@ -1003,22 +1003,21 @@ void RenderableModel::render(const RenderData& data, RendererTasks&) { // does only really need to be set when _castShadow changes _program->setUniform("has_shadow_depth_map", _castShadow); - if (_castShadow) { - if (!_lightSource.empty()) { - const SceneGraphNode* ls = global::renderEngine->scene()->sceneGraphNode(_lightSource); - auto [depthMap, vp] = global::renderEngine->shadowInformation(ls, _shadowGroup); + ghoul::opengl::TextureUnit shadowUnit; + if (_castShadow && !_lightSource.empty()) { + const SceneGraphNode* ls = global::renderEngine->scene()->sceneGraphNode(_lightSource); + auto [depthMap, vp] = global::renderEngine->shadowInformation(ls, _shadowGroup); - _program->setUniform("model", modelTransform); - _program->setUniform("light_vp", vp); - _program->setUniform("inv_vp", glm::inverse(data.camera.combinedViewMatrix())); + _program->setUniform("model", modelTransform); + _program->setUniform("light_vp", vp); + _program->setUniform("inv_vp", glm::inverse(data.camera.combinedViewMatrix())); - _program->setUniform("shadow_depth_map", 13); - glActiveTexture(GL_TEXTURE13); - glBindTexture( - GL_TEXTURE_2D, - depthMap - ); - } + shadowUnit.activate(); + glBindTexture( + GL_TEXTURE_2D, + depthMap + ); + _program->setUniform("shadow_depth_map", shadowUnit); } _program->setUniform("has_override_color", _useOverrideColor);