Use owning refs in some places
Avoid explicit deletes of ref-counted SGMaterialCache
This commit is contained in:
parent
fb436be8f1
commit
d01e9ca2e6
@ -355,9 +355,8 @@ ref_ptr<Node> instantiateMaterialEffects(osg::Node* modelGroup,
|
||||
|
||||
if (options->getMaterialLib()) {
|
||||
const SGGeod loc = SGGeod(options->getLocation());
|
||||
SGMaterialCache* matcache = options->getMaterialLib()->generateMatCache(loc, options);
|
||||
osg::ref_ptr<SGMaterialCache> matcache = options->getMaterialLib()->generateMatCache(loc, options);
|
||||
SGMaterial* mat = matcache->find(options->getMaterialName());
|
||||
delete matcache;
|
||||
|
||||
if (mat) {
|
||||
effect = new SGPropertyNode();
|
||||
|
@ -280,9 +280,8 @@ osg::Node* SGOceanTile(const SGBucket& b, SGMaterialLib *matlib, int latPoints,
|
||||
double tex_width = 1000.0;
|
||||
|
||||
// find Ocean material in the properties list
|
||||
SGMaterialCache* matcache = matlib->generateMatCache(b.get_center(), 0);
|
||||
osg::ref_ptr<SGMaterialCache> matcache = matlib->generateMatCache(b.get_center(), 0);
|
||||
SGMaterial* mat = matcache->find( "Ocean" );
|
||||
delete matcache;
|
||||
|
||||
if ( mat != NULL ) {
|
||||
// set the texture width and height values for this
|
||||
|
@ -274,13 +274,13 @@ public:
|
||||
return true;
|
||||
}
|
||||
|
||||
osg::Node* getSurfaceGeometry(SGMaterialCache* matcache, bool useVBOs) const
|
||||
osg::ref_ptr<osg::Node> getSurfaceGeometry(SGMaterialCache* matcache, bool useVBOs) const
|
||||
{
|
||||
if (materialTriangleMap.empty())
|
||||
return 0;
|
||||
|
||||
EffectGeode* eg = NULL;
|
||||
osg::Group* group = (materialTriangleMap.size() > 1 ? new osg::Group : NULL);
|
||||
osg::ref_ptr<EffectGeode> eg = NULL;
|
||||
osg::ref_ptr<osg::Group> group = (materialTriangleMap.size() > 1 ? new osg::Group : NULL);
|
||||
if (group) {
|
||||
group->setName("surfaceGeometryGroup");
|
||||
}
|
||||
|
@ -120,7 +120,7 @@ SGLoadBTG(const std::string& path, const simgear::SGReaderWriterOptions* options
|
||||
if (!tileGeometryBin->insertSurfaceGeometry(tile, matcache))
|
||||
return NULL;
|
||||
|
||||
osg::Node* node = tileGeometryBin->getSurfaceGeometry(matcache, useVBOs);
|
||||
osg::ref_ptr<osg::Node> node = tileGeometryBin->getSurfaceGeometry(matcache, useVBOs);
|
||||
|
||||
if (node) {
|
||||
// Get base node stateset
|
||||
|
Loading…
Reference in New Issue
Block a user