摘要:
之前转过一篇关于OSG中ref_ptr管理内存的文章,现再自己补充一些。 1. 从只能指针中获取原始指针的方法有: osg::ref_ptrosg::Geode geodePtr = new osg::Geode(); osg::Geode* obj1 = *geodePtr; //获取Geode指针 osg::Geode* obj2 = geodePtr.get();//获取Geode指针2.下面代码存在性能问题 while(1) { osg::ref_ptrosg::Geode geodePtr = new osg::Geode ; } 智能指针只存在whil 阅读全文
摘要:
原文:http://www.lxzhu.com/blog/archives/251 在Osg中有一个类被使用的最多,那就是ref_ptr,OSG中提供了一种自动管理内存的机制,这种机制涉及到两个类:第一个就是ref_ptr,另外一个就是osg::Referenced. osg::Reference支持通过引用计数的方式来控制自己的生命周期,它期望,每次被一个新客户引用的时候,新客户能给他添加引用计数;而当客户不需要再使用它的时候,希望客户能够减少引用计数.如果引用计数达到0,那么osg::Reference就会析构自己,释放内存.但是这个过程对客户要求比较高,谁能记得住每次都添加引用和减少 阅读全文