]> git.mxchange.org Git - flightgear.git/commitdiff
Respect tile expiry time when cache is disabled.
authorJames Turner <zakalawe@mac.com>
Sat, 24 May 2014 13:23:59 +0000 (14:23 +0100)
committerJames Turner <zakalawe@mac.com>
Sat, 24 May 2014 13:23:59 +0000 (14:23 +0100)
Tiles added via the visible mechanism always have an
expiry time of 0.0, so this only affects tiles added by elevation queries, from the AI or FDM.

src/Scenery/tilecache.cxx
src/Scenery/tilecache.hxx
src/Scenery/tilemgr.cxx

index 701d1aba43bbe1511e6d1e15cad05c7b5e3c9c44..6ff8dd8319c3d0d2f200a5c10867001a3152d614 100644 (file)
@@ -127,14 +127,14 @@ long TileCache::get_drop_tile() {
     return min_index;
 }
 
-long TileCache::get_first_invisible_tile() const
+long TileCache::get_first_expired_tile() const
 {
   const_tile_map_iterator current = tile_cache.begin();
   const_tile_map_iterator end = tile_cache.end();
   
   for ( ; current != end; ++current ) {
     TileEntry *e = current->second;
-    if (!e->is_current_view())
+    if (!e->is_current_view() && e->is_expired(current_time))
     {
       return current->first;
     }
index 124e074c6151c6e483faab20bb0e654407a101e9..79fec4170866aaeb209f70814015161de5e21869 100644 (file)
@@ -74,7 +74,7 @@ public:
     // nothing available to be removed.
     long get_drop_tile();
   
-    long get_first_invisible_tile() const;
+    long get_first_expired_tile() const;
   
     // Clear all flags indicating tiles belonging to the current view
     void clear_current_view();
index daa664d8dedd6ad27c92a9d389a6ebed66d7a222..4ffd5d6f34372c4e255d256a376a7888c589f6c5 100644 (file)
@@ -370,7 +370,7 @@ void FGTileMgr::update_queues(bool& isDownloadingScenery)
     if (dropTiles)
     {
         long drop_index = _enableCache ? tile_cache.get_drop_tile() :
-                                         tile_cache.get_first_invisible_tile();
+                                         tile_cache.get_first_expired_tile();
         while ( drop_index > -1 )
         {
             // schedule tile for deletion with osg pager
@@ -387,7 +387,7 @@ void FGTileMgr::update_queues(bool& isDownloadingScenery)
             _pager->queueDeleteRequest(subgraph);
           
             if (!_enableCache)
-                drop_index = tile_cache.get_first_invisible_tile();
+                drop_index = tile_cache.get_first_expired_tile();
             // limit tiles dropped to drop_count
             else if (--drop_count > 0)
                 drop_index = tile_cache.get_drop_tile();