mirror of
https://github.com/minetest/irrlicht.git
synced 2025-06-28 14:26:06 +02:00
Fix problems in rendering nodes outside SceneManager caused by new render-per-buffer code
Did no longer render nodes which were rendered in SceneManager + outside SceneManager if they didn't have the per-buffer-rendering enabled. git-svn-id: svn://svn.code.sf.net/p/irrlicht/code/trunk@6491 dfc29bdd-3216-0410-991c-e03cc46cb475
This commit is contained in:
@ -76,6 +76,11 @@ public:
|
||||
driver->setMaterial(material);
|
||||
driver->drawMeshBuffer(mb);
|
||||
}
|
||||
|
||||
// Resetting after each rendering so direct calls to render() for parent node continue to work
|
||||
// Assuming each pass only runs once
|
||||
RenderPass = ESNRP_NONE;
|
||||
ParentDoesRender = true;
|
||||
}
|
||||
|
||||
//! Renders the node.
|
||||
@ -84,10 +89,6 @@ public:
|
||||
video::IVideoDriver* driver = SceneManager->getVideoDriver();
|
||||
driver->setTransform(video::ETS_WORLD, MeshNodeParent.getAbsoluteTransformation());
|
||||
renderBuffer(driver);
|
||||
|
||||
// resetting each time so direct calls to render() for parent node continue to work
|
||||
RenderPass = ESNRP_NONE;
|
||||
ParentDoesRender = true;
|
||||
}
|
||||
|
||||
virtual const core::aabbox3d<f32>& getBoundingBox() const IRR_OVERRIDE
|
||||
|
@ -219,7 +219,7 @@ void CMeshSceneNode::render()
|
||||
}
|
||||
}
|
||||
|
||||
if ( bufRenderNode->getRenderPass() == renderPass )
|
||||
if ( bufRenderNode->getRenderPass() == renderPass || renderPass == ESNRP_NONE)
|
||||
bufRenderNode->renderBuffer(driver);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user