diff options
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<_>>(); + } +} |