summaryrefslogtreecommitdiff
path: root/client/src/scene_prepare.rs
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-06 14:28:02 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-06 14:28:02 +0100
commit814cc1cb01692aa934a40636c9226ff7bb911266 (patch)
tree47a50a5dc1861ace4bc1854a9156618b70df3847 /client/src/scene_prepare.rs
parentc2ee65a83838a0ce13402e2c4634bae409d55071 (diff)
downloadweareserver-814cc1cb01692aa934a40636c9226ff7bb911266.tar
weareserver-814cc1cb01692aa934a40636c9226ff7bb911266.tar.bz2
weareserver-814cc1cb01692aa934a40636c9226ff7bb911266.tar.zst
new proto
Diffstat (limited to 'client/src/scene_prepare.rs')
-rw-r--r--client/src/scene_prepare.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/client/src/scene_prepare.rs b/client/src/scene_prepare.rs
new file mode 100644
index 0000000..8d52f49
--- /dev/null
+++ b/client/src/scene_prepare.rs
@@ -0,0 +1,30 @@
+use anyhow::Result;
+use std::{
+ collections::{HashMap, HashSet},
+ sync::Arc,
+};
+use weareshared::{packets::Resource, resources::Part, tree::SceneTree};
+use wgpu::Buffer;
+
+pub struct ScenePreparer {
+ index_buffers: HashMap<Resource, Buffer>,
+ vertex_buffers_x3: HashMap<[Resource; 1], Arc<Buffer>>,
+ vertex_buffers_x2: HashMap<[Resource; 2], Arc<Buffer>>,
+ vertex_buffers_x1: HashMap<[Resource; 3], Arc<Buffer>>,
+ parts: HashMap<Resource, Part>,
+}
+
+impl ScenePreparer {
+ pub fn new() -> Self {
+ Self {
+ index_buffers: HashMap::new(),
+ vertex_buffers_x3: HashMap::new(),
+ vertex_buffers_x2: HashMap::new(),
+ vertex_buffers_x1: HashMap::new(),
+ parts: HashMap::new(),
+ }
+ }
+ fn update(&mut self, tree: &SceneTree) -> Result<()> {
+ let x = tree.objects.values().map(|o| o.res).collect::<HashSet<_>>();
+ }
+}