Hi all. I need to release loaded model and reload other model. I did as follow:
osgViewer::Viewer Viewer; osg::ref_ptr<osg::Group> root = new osg::Group; osg::ref_ptr<osg::Group> ModelRoot = new osg::Group; osg::ref_ptr<osg::Node> loadedModel; ... Viewer.setSceneData(root.get()); root->addChild(ModelRoot.get()); ... //in frame loop ..... switch(CMD) { case LOAD_SCENE: { loadedModel = osgDB::readNodeFile(CMD_SceneFileName); if (loadedModel.valid()) { ModelRoot->addChild(loadedModel.get()); } break; } case RELEASE_SCENE: { if(ModelRoot.valid()) { ModelRoot->removeChildren(0,ModelRoot->getNumChildren()); } loadedModel.release(); break; } } ... The loadedModel is added to ModelRoot and is not added to any other group. Models could be loaded and "released". But I found used memory was not reduced at all after "RELEASE_SCENE" was executed. After loading and releasing several times, used memory is more than 1GB and program is freezed. I want to know the reason and how to improve it. Much appreciation to any reply. Regards, Su Hu
_______________________________________________ osg-users mailing list osg-users@lists.openscenegraph.org http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org