Skip to content

Commit 6be521f

Browse files
Fix #5054 (#5055)
1 parent a6cecd2 commit 6be521f

File tree

2 files changed

+6
-20
lines changed

2 files changed

+6
-20
lines changed

src/graphics/draw_calls.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ void DrawCalls::parseSceneManager(core::array<scene::ISceneNode*> &List,
151151
if (List[i]->getType() == ESNT_LOD_NODE)
152152
{
153153
LODNode *node = static_cast<LODNode *>(List[i]);
154+
node->updateVisibility();
154155

155156
core::array<scene::ISceneNode*> child;
156157
if (node->getLevel() >= 0)

src/graphics/lod_node.cpp

+5-20
Original file line numberDiff line numberDiff line change
@@ -110,32 +110,15 @@ void LODNode::forceLevelOfDetail(int n)
110110
// ----------------------------------------------------------------------------
111111
void LODNode::OnAnimate(u32 timeMs)
112112
{
113-
updateVisibility();
114-
115113
if (isVisible() && m_nodes.size() > 0)
116114
{
117115
// update absolute position
118116
updateAbsolutePosition();
119117

120-
#ifndef SERVER_ONLY
121-
if (CVS->isGLSL())
122-
{
123-
for (size_t i = 0; i < m_nodes.size(); i++)
124-
{
125-
m_nodes[i]->setVisible(true);
126-
m_nodes[i]->OnAnimate(timeMs);
127-
}
128-
}
129-
else
130-
#endif
118+
for (size_t i = 0; i < m_nodes.size(); i++)
131119
{
132-
int level = getLevel();
133-
// Assume all the scene node have the same bouding box
134-
if(level >= 0)
135-
{
136-
m_nodes[level]->setVisible(true);
137-
m_nodes[level]->OnAnimate(timeMs);
138-
}
120+
m_nodes[i]->setVisible(true);
121+
m_nodes[i]->OnAnimate(timeMs);
139122
}
140123

141124
if (m_update_box_every_frame)
@@ -173,6 +156,8 @@ void LODNode::updateVisibility()
173156

174157
void LODNode::OnRegisterSceneNode()
175158
{
159+
updateVisibility();
160+
176161
#ifndef SERVER_ONLY
177162
if (CVS->isGLSL())
178163
{

0 commit comments

Comments
 (0)