]> git.mxchange.org Git - flightgear.git/commitdiff
Untangle subsystems by replacing direct TileCache call with callback.
authorThorstenB <brehmt@gmail.com>
Sun, 13 Nov 2011 14:47:52 +0000 (15:47 +0100)
committerThorstenB <brehmt@gmail.com>
Sun, 13 Nov 2011 14:47:52 +0000 (15:47 +0100)
src/Scenery/tilemgr.cxx
src/Scenery/tilemgr.hxx

index 0e1c550c87d3b4554aa055bd979d4478afe59748..bfd3c9de0a3d4da0fbb118a8626347d721de258b 100644 (file)
@@ -121,6 +121,10 @@ void FGTileMgr::init() {
     reinit();
 }
 
+void FGTileMgr::refresh_tile(void* tileMgr, long tileIndex)
+{
+    ((FGTileMgr*) tileMgr)->tile_cache.refresh_tile(tileIndex);
+}
 
 void FGTileMgr::reinit()
 {
@@ -143,7 +147,7 @@ void FGTileMgr::reinit()
 
     _terra_sync = (simgear::SGTerraSync*) globals->get_subsystem("terrasync");
     if (_terra_sync)
-        _terra_sync->setTileCache(&tile_cache);
+        _terra_sync->setTileRefreshCb(&refresh_tile, this);
 
     // force an update now
     update(0.0);
index 87d1f1347872401f042d1689184d54548c24a56f..25e965a522554f4de0466490354d38ef92af90ad 100644 (file)
@@ -85,7 +85,9 @@ private:
     // Update the various queues maintained by the tilemagr (private
     // internal function, do not call directly.)
     void update_queues();
-    
+
+    static void refresh_tile(void* tileMgr, long tileIndex);
+
     SGPropertyNode* _visibilityMeters;
     SGPropertyChangeListener* _propListener;
     SGPropertyNode_ptr _randomObjects;