OSG 的内存管理理论进行了介绍,代码中大量使用了前面介绍过的ref_ptr模板类。清单代码中所 有分配的内存均使用了引用计数的管理方法。用于创建场景图形的 createSceneGraph()函数的返回值也是一个ref_ptr。严格说来,这些代码完全可 以使用标准C++指针来改写,因为函数最后的返回地址将会保存在ref_ptr中。 但是,在你的程序中坚持使用ref_ptr是一个很好的习惯,因为它可以在异常事 件产生或者中断函数并返回时自动释放内存
2021-10-14 16:05:04 47.78MB osg内存管理 osg智能指针 OpenSceneGraph
1
osg内存管理,使用智能指针,当使用标准C++指针指向Referenced 对象时要特别注意,为了保证OSG 的 内存管理系统正常工作,Referenced 对象的地址必须赋予一个ref_ptr变量。上 述的代码中,这一赋值过程在osg::Group::addChild()方法中实现。如果Referenced 对象从未分配给一个ref_ptr变量,那么这将会引发内存泄露:
2021-10-13 22:02:41 54.8MB osg内存管理 OpenSceneGraph-3 osg智能指针
1