diff options
author | metamuffin <metamuffin@disroot.org> | 2025-01-06 14:28:02 +0100 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2025-01-06 14:28:02 +0100 |
commit | 814cc1cb01692aa934a40636c9226ff7bb911266 (patch) | |
tree | 47a50a5dc1861ace4bc1854a9156618b70df3847 /client/src/scene_prepare.rs | |
parent | c2ee65a83838a0ce13402e2c4634bae409d55071 (diff) | |
download | weareserver-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.rs | 30 |
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<_>>(); + } +} |