]> git.mxchange.org Git - flightgear.git/commitdiff
Clear OSG object cache on scenery reload
authorThorstenB <brehmt@gmail.com>
Fri, 15 Apr 2011 19:34:44 +0000 (21:34 +0200)
committerThorstenB <brehmt@gmail.com>
Fri, 15 Apr 2011 19:34:44 +0000 (21:34 +0200)
Scenery reload (menu: Debug-> Reload Scenery) also needs to clear the OSG
object cache, otherwise scenery isn't really reloaded from disk.

src/Scenery/tilemgr.cxx

index 6c19ec5c0e25a94dd6d03ccfc53d963f61027791..7b59d60b0e5008c44a7807395c35b37a72f67f2d 100644 (file)
@@ -88,6 +88,8 @@ FGTileMgr::~FGTileMgr() {
     group->removeChildren(0, group->getNumChildren());
     delete _propListener;
     _propListener = NULL;
+    // clear OSG cache
+    osgDB::Registry::instance()->clearObjectCache();
 }
 
 
@@ -122,6 +124,12 @@ void FGTileMgr::reinit()
     group->removeChildren(0, group->getNumChildren());
     tile_cache.init();
     
+    // clear OSG cache, except on initial start-up
+    if (state != Start)
+    {
+        osgDB::Registry::instance()->clearObjectCache();
+    }
+    
     state = Inited;
     
     previous_bucket.make_bad();