summaryrefslogtreecommitdiff
path: root/client/src
diff options
context:
space:
mode:
authormetamuffin <metamuffin@disroot.org>2025-01-07 21:16:40 +0100
committermetamuffin <metamuffin@disroot.org>2025-01-07 21:16:40 +0100
commit3d156d75de3852dd36d0eeda33b17a2b6f10aa4a (patch)
tree4633e5934df9ff2519f422da96b64a045e5f7bb9 /client/src
parentd3e2f02f5f75afb6d6c62e77577452224e4a34a4 (diff)
downloadweareserver-3d156d75de3852dd36d0eeda33b17a2b6f10aa4a.tar
weareserver-3d156d75de3852dd36d0eeda33b17a2b6f10aa4a.tar.bz2
weareserver-3d156d75de3852dd36d0eeda33b17a2b6f10aa4a.tar.zst
new proto doc
Diffstat (limited to 'client/src')
-rw-r--r--client/src/scene_prepare.rs25
1 files changed, 13 insertions, 12 deletions
diff --git a/client/src/scene_prepare.rs b/client/src/scene_prepare.rs
index 6d50035..e58e77a 100644
--- a/client/src/scene_prepare.rs
+++ b/client/src/scene_prepare.rs
@@ -11,7 +11,7 @@ use std::{
use weareshared::{
Affine3A,
packets::{ReadWrite, Resource},
- resources::{Part, Prefab},
+ resources::{MeshPart, Prefab},
};
use wgpu::{
BindGroup, BindGroupDescriptor, BindGroupEntry, BindGroupLayout, BindingResource, Buffer,
@@ -55,12 +55,12 @@ pub struct ScenePreparer {
index_buffers: DemandMap<Resource, (Arc<Buffer>, u32)>,
vertex_buffers: DemandMap<Resource, (Arc<Buffer>, u32)>,
placeholder_vertex_buffers: DemandMap<(u32, bool), Arc<Buffer>>,
- parts: DemandMap<Resource, Arc<RPart>>,
+ mesh_parts: DemandMap<Resource, Arc<RMeshPart>>,
pub prefabs: DemandMap<Resource, Arc<RPrefab>>,
}
-pub struct RPrefab(pub Vec<(Affine3A, Arc<RPart>)>);
-pub struct RPart {
+pub struct RPrefab(pub Vec<(Affine3A, Arc<RMeshPart>)>);
+pub struct RMeshPart {
pub index_count: u32,
pub index: Arc<Buffer>,
pub position: [Arc<Buffer>; 3],
@@ -75,7 +75,7 @@ impl ScenePreparer {
texture_bgl,
index_buffers: DemandMap::new(),
vertex_buffers: DemandMap::new(),
- parts: DemandMap::new(),
+ mesh_parts: DemandMap::new(),
prefabs: DemandMap::new(),
textures: DemandMap::new(),
placeholder_vertex_buffers: DemandMap::new(),
@@ -89,12 +89,12 @@ impl ScenePreparer {
if let Some(buf) = dls.try_get(pres)? {
let prefab = Prefab::read(&mut buf.as_slice()).context("parsing prefab")?;
let mut rprefab = RPrefab(Vec::new());
- for (aff, partres) in &prefab.0 {
- if let Some(part) = self.parts.try_get(*partres) {
+ for (aff, partres) in &prefab.mesh {
+ if let Some(part) = self.mesh_parts.try_get(*partres) {
rprefab.0.push((*aff, part.clone()));
}
}
- if rprefab.0.len() == prefab.0.len() {
+ if rprefab.0.len() == prefab.mesh.len() {
self.prefabs.insert(pres, Arc::new(rprefab));
debug!("prefab created ({pres})");
}
@@ -169,9 +169,10 @@ impl ScenePreparer {
);
self.placeholder_textures.insert(pres, tex_bg);
}
- for pres in self.parts.needed.clone() {
+ for pres in self.mesh_parts.needed.clone() {
if let Some(buf) = dls.try_get(pres)? {
- let part = Part::read(&mut buf.as_slice()).context("parsing part")?;
+ let part = MeshPart::read(&mut buf.as_slice()).context("parsing part")?;
+
if let (Some(indexres), Some(positionres)) = (part.index, part.va_position) {
let Some((index, index_count)) = self.index_buffers.try_get(indexres) else {
self.index_buffers.needed.insert(indexres);
@@ -238,9 +239,9 @@ impl ScenePreparer {
&& texture.is_some()
{
debug!("part created ({pres})");
- self.parts.insert(
+ self.mesh_parts.insert(
pres,
- Arc::new(RPart {
+ Arc::new(RMeshPart {
index_count,
index,
texcoord: texcoord.try_into().unwrap(),