Fixed leak of reflected objects

This commit is contained in:
2025-11-11 23:45:03 -08:00
parent 51b8bcbc78
commit 614ce0a151
2 changed files with 8 additions and 7 deletions

View File

@@ -254,14 +254,15 @@ void KRModel::loadModel()
void KRModel::render(KRNode::RenderInfo& ri) void KRModel::render(KRNode::RenderInfo& ri)
{ {
ri.reflectedObjects.push_back(this); if (ri.renderPass->getType() == RenderPassType::RENDER_PASS_PRESTREAM) {
if (m_lod_visible >= LOD_VISIBILITY_PRESTREAM) {
if (m_lod_visible >= LOD_VISIBILITY_PRESTREAM && ri.renderPass->getType() == RenderPassType::RENDER_PASS_PRESTREAM) {
preStream(*ri.viewport); preStream(*ri.viewport);
} }
}
if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return; if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return;
ri.reflectedObjects.push_back(this);
KRNode::render(ri); KRNode::render(ri);
// Don't render meshes on second pass of the deferred lighting renderer, as only lights will be applied // Don't render meshes on second pass of the deferred lighting renderer, as only lights will be applied

View File

@@ -114,8 +114,6 @@ AABB KRSprite::getBounds()
void KRSprite::render(RenderInfo& ri) void KRSprite::render(RenderInfo& ri)
{ {
ri.reflectedObjects.push_back(this);
if (m_lod_visible >= LOD_VISIBILITY_PRESTREAM && ri.renderPass->getType() == RenderPassType::RENDER_PASS_PRESTREAM) { if (m_lod_visible >= LOD_VISIBILITY_PRESTREAM && ri.renderPass->getType() == RenderPassType::RENDER_PASS_PRESTREAM) {
// Pre-stream sprites, even if the alpha is zero // Pre-stream sprites, even if the alpha is zero
m_spriteTexture.load(&getContext()); m_spriteTexture.load(&getContext());
@@ -127,6 +125,8 @@ void KRSprite::render(RenderInfo& ri)
if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return; if (m_lod_visible <= LOD_VISIBILITY_PRESTREAM) return;
ri.reflectedObjects.push_back(this);
KRNode::render(ri); KRNode::render(ri);