[osg-users] how to release loaded model
su hu
tttsuhu at gmail.com
Thu Jul 24 03:24:13 PDT 2008
Hi Robert,
I set ref_ptr<> to null. It works well. Thanks a lot.
Best Regards,
Su Hu
2008/7/24 Robert Osfield <robert.osfield at gmail.com>:
> Hi Su,
>
> You shouldn't be called ref_ptr.release() in this context, you should
> be just setting the ref_ptr<> to null.
>
> ref_ptr::release() is a specialist helper method with does an
> unref_noDelete on the referenced object - it deliberately doesn't
> delete the object that it's unrefecing. This functionality is
> required for functions that use ref_ptr<> locally but then have to
> pass a C* point of the object.
>
> Robert.
>
> On Thu, Jul 24, 2008 at 10:45 AM, su hu <tttsuhu at gmail.com> wrote:
> > 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 at lists.openscenegraph.org
> >
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
> >
> >
> _______________________________________________
> osg-users mailing list
> osg-users at lists.openscenegraph.org
> http://lists.openscenegraph.org/listinfo.cgi/osg-users-openscenegraph.org
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openscenegraph.org/pipermail/osg-users-openscenegraph.org/attachments/20080724/09d3dc66/attachment-0003.htm>
More information about the osg-users
mailing list