Add get_tile_cache

This commit is contained in:
Maximilian Ammann 2022-03-31 19:10:36 +02:00
parent 77a7639ef1
commit 4849718ca8
3 changed files with 6 additions and 12 deletions

View File

@ -1,9 +1,7 @@
use std::collections::{HashMap, HashSet};
use geozero::mvt::Tile;
use geozero::{GeozeroDatasource};
use geozero::GeozeroDatasource;
use log::{error, info};
use std::sync::mpsc::{channel, Receiver, SendError, Sender};
use std::sync::{Arc, Mutex};
@ -237,7 +235,7 @@ pub struct IOScheduler {
index_channel: (Sender<TileIndexResult>, Receiver<TileIndexResult>),
tessellate_channel: (Sender<TileTessellateResult>, Receiver<TileTessellateResult>),
tile_request_state: Arc<Mutex<TileRequestState>>,
pub tile_cache: TileCache,
tile_cache: TileCache,
schedule_method: ScheduleMethod,
}
@ -313,13 +311,8 @@ impl IOScheduler {
Ok(())
}
pub fn iter_tessellated_layers_at<'b: 'a, 'a>(
&'b self,
coords: &WorldTileCoords,
skip_layers: &'a HashSet<&str>,
) -> Option<impl Iterator<Item = &LayerTessellateResult> + 'a> {
self.tile_cache
.iter_tessellated_layers_at(coords, skip_layers)
pub fn get_tile_cache(&self) -> &TileCache {
&self.tile_cache
}
}

View File

@ -97,7 +97,7 @@ pub async fn run(
scheduler.try_populate_cache();
input.update_state(state, &scheduler.tile_cache, dt);
input.update_state(state, scheduler.get_tile_cache(), dt);
state.upload_tile_geometry(&mut scheduler);
match state.render() {
Ok(_) => {}

View File

@ -414,6 +414,7 @@ impl RenderState {
let loaded_layers = self.buffer_pool.get_loaded_layers_at(&world_coords);
if let Some(available_layers) = scheduler
.get_tile_cache()
.iter_tessellated_layers_at(&world_coords, &loaded_layers)
.map(|layers| layers.collect::<Vec<_>>())
{