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;
}
// 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();
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
_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();