summaryrefslogtreecommitdiff
path: root/client/src/state.rs
diff options
context:
space:
mode:
Diffstat (limited to 'client/src/state.rs')
-rw-r--r--client/src/state.rs19
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(())
}