From fd248e9391f53b662c51dec153f0dcfb70225cf1 Mon Sep 17 00:00:00 2001 From: James Turner Date: Sat, 24 May 2014 14:23:59 +0100 Subject: [PATCH] Respect tile expiry time when cache is disabled. 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 | 4 ++-- src/Scenery/tilecache.hxx | 2 +- src/Scenery/tilemgr.cxx | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Scenery/tilecache.cxx b/src/Scenery/tilecache.cxx index 701d1aba4..6ff8dd831 100644 --- a/src/Scenery/tilecache.cxx +++ b/src/Scenery/tilecache.cxx @@ -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; } diff --git a/src/Scenery/tilecache.hxx b/src/Scenery/tilecache.hxx index 124e074c6..79fec4170 100644 --- a/src/Scenery/tilecache.hxx +++ b/src/Scenery/tilecache.hxx @@ -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(); diff --git a/src/Scenery/tilemgr.cxx b/src/Scenery/tilemgr.cxx index daa664d8d..4ffd5d6f3 100644 --- a/src/Scenery/tilemgr.cxx +++ b/src/Scenery/tilemgr.cxx @@ -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(); -- 2.39.5