[osg-users] how to release loaded model
su hu
tttsuhu at gmail.com
Thu Jul 24 02:45:25 PDT 2008
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080724/61f4d0bf/attachment-0002.htm>
More information about the osg-users
mailing list