aboutsummaryrefslogtreecommitdiff
path: root/src/client/shadows/dynamicshadowsrender.cpp
diff options
context:
space:
mode:
authorx2048 <codeforsmile@gmail.com>2022-10-26 22:26:09 +0200
committerGitHub <noreply@github.com>2022-10-26 22:26:09 +0200
commit88820cd31c2fe21c8c16ee547a3335131e8ba009 (patch)
treedcd2894e11f9365dfe2238194c0e16d0ccd59afa /src/client/shadows/dynamicshadowsrender.cpp
parent16266397ed3db6503487574a4c1f7fa0e5a7c4ce (diff)
downloadminetest-88820cd31c2fe21c8c16ee547a3335131e8ba009.tar.xz
Shadow list improvements (#12898)
* Remove redundant checks when attaching SM texture to entities. Some of the checks were broken, leading to crashes when shadow intensity is set to 0 * Avoid memory leak in shadow casters list when wield mesh changes item stacks
Diffstat (limited to 'src/client/shadows/dynamicshadowsrender.cpp')
-rw-r--r--src/client/shadows/dynamicshadowsrender.cpp9
1 files changed, 3 insertions, 6 deletions
diff --git a/src/client/shadows/dynamicshadowsrender.cpp b/src/client/shadows/dynamicshadowsrender.cpp
index fd3841d2d..e9b2053e3 100644
--- a/src/client/shadows/dynamicshadowsrender.cpp
+++ b/src/client/shadows/dynamicshadowsrender.cpp
@@ -107,8 +107,7 @@ void ShadowRenderer::disable()
}
for (auto node : m_shadow_node_array)
- if (node.shadowMode & E_SHADOW_MODE::ESM_RECEIVE)
- node.node->setMaterialTexture(TEXTURE_LAYER_SHADOW, nullptr);
+ node.node->setMaterialTexture(TEXTURE_LAYER_SHADOW, nullptr);
}
void ShadowRenderer::initialize()
@@ -180,8 +179,7 @@ void ShadowRenderer::addNodeToShadowList(
if (!node)
return;
m_shadow_node_array.emplace_back(node, shadowMode);
- if (shadowMode == ESM_RECEIVE || shadowMode == ESM_BOTH)
- node->setMaterialTexture(TEXTURE_LAYER_SHADOW, shadowMapTextureFinal);
+ node->setMaterialTexture(TEXTURE_LAYER_SHADOW, shadowMapTextureFinal);
}
void ShadowRenderer::removeNodeFromShadowList(scene::ISceneNode *node)
@@ -258,8 +256,7 @@ void ShadowRenderer::updateSMTextures()
assert(shadowMapTextureFinal != nullptr);
for (auto &node : m_shadow_node_array)
- if (node.shadowMode == ESM_RECEIVE || node.shadowMode == ESM_BOTH)
- node.node->setMaterialTexture(TEXTURE_LAYER_SHADOW, shadowMapTextureFinal);
+ node.node->setMaterialTexture(TEXTURE_LAYER_SHADOW, shadowMapTextureFinal);
}
if (!m_shadow_node_array.empty() && !m_light_list.empty()) {