diff options
Diffstat (limited to 'client/src/state.rs')
-rw-r--r-- | client/src/state.rs | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/client/src/state.rs b/client/src/state.rs index ef68b85..e8188d8 100644 --- a/client/src/state.rs +++ b/client/src/state.rs @@ -1,6 +1,6 @@ use crate::{download::Downloader, network::Network, renderer::Renderer}; -use anyhow::Result; -use log::info; +use anyhow::{Context, Result}; +use log::{info, warn}; use std::net::TcpStream; use weareshared::{store::ResourceStore, tree::SceneTree}; use winit::window::Window; @@ -21,12 +21,23 @@ impl<'a> State<'a> { downloader: Downloader::new(ResourceStore::new_memory()), }) } - + pub fn draw(&mut self) { + if let Err(e) = self.renderer.draw(&self.tree) { + warn!("draw failed: {e:?}"); + } + } pub fn update(&mut self) -> Result<()> { for p in self.network.packet_recv.try_iter() { self.downloader.packet(&p)?; + self.tree.packet(&p); } - self.downloader.update(&mut self.network); + self.downloader + .update(&mut self.network) + .context("downloader state")?; + self.renderer + .scene_prepare + .update(&mut self.downloader) + .context("scene preparation")?; Ok(()) } |