diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-06 20:04:29 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-06 20:04:29 +0100 |
commit | 44ef37bca0aa633f8c59d849946faf2319c5446b (patch) | |
tree | dbfcb7104dc6621cb766148ab2289d32d5f261e0 /client/src/state.rs | |
parent | 6af8b165fe8cbab35721a8797ca85cda454a5ff4 (diff) | |
download | weareserver-44ef37bca0aa633f8c59d849946faf2319c5446b.tar weareserver-44ef37bca0aa633f8c59d849946faf2319c5446b.tar.bz2 weareserver-44ef37bca0aa633f8c59d849946faf2319c5446b.tar.zst |
a
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(()) } |