diff --git a/src/platform/android/mod.rs b/src/platform/android/mod.rs index 75879825..12bab222 100644 --- a/src/platform/android/mod.rs +++ b/src/platform/android/mod.rs @@ -1,3 +1,4 @@ +use crate::io::cache::Cache; pub use std::time::Instant; pub const COLOR_TEXTURE_FORMAT: wgpu::TextureFormat = wgpu::TextureFormat::Rgba8Unorm; @@ -15,5 +16,16 @@ pub fn main() { .build(&event_loop) .unwrap(); - pollster::block_on(crate::main_loop::setup(window, event_loop)); + let mut cache_io = Cache::new(); + let cache_main = cache_io.clone(); + + std::thread::spawn(move || { + cache_io.run_loop(); + }); + + pollster::block_on(crate::main_loop::setup( + window, + event_loop, + Box::new(cache_main), + )); } diff --git a/src/platform/apple/mod.rs b/src/platform/apple/mod.rs index dea438f7..c314514c 100644 --- a/src/platform/apple/mod.rs +++ b/src/platform/apple/mod.rs @@ -1,6 +1,7 @@ use winit::event_loop::EventLoop; use winit::window::WindowBuilder; +use crate::io::cache::Cache; pub use std::time::Instant; // macOS and iOS (Metal) @@ -16,5 +17,16 @@ pub fn mapr_apple_main() { .build(&event_loop) .unwrap(); - pollster::block_on(crate::main_loop::setup(window, event_loop)); + let mut cache_io = Cache::new(); + let cache_main = cache_io.clone(); + + std::thread::spawn(move || { + cache_io.run_loop(); + }); + + pollster::block_on(crate::main_loop::setup( + window, + event_loop, + Box::new(cache_main), + )); }