fix(render): share repeated block meshes

Keep placement transforms and bounds separate from immutable mesh data to prevent large drawings from exhausting memory or stalling selection.
This commit is contained in:
Hakan Seven committed 2026-08-12 11:01:53 +03:00
1 parent 5e773fbcce
commit 7b4af0aa75
6 files changed
+408 -399

No files matched your search

+7 -3
View File
@@ -221,8 +221,12 @@ impl MeshMaterial {
}
pub fn apply_to(&self, set: &mut super::mesh_model::MeshLodSet) {
for lod in &mut set.lods {
lod.color = self.diffuse;
if set.instance_source.is_some() {
set.instance_color = Some(self.diffuse);
} else {
for lod in &mut set.lods {
lod.color = self.diffuse;
}
}
set.material = Some(self.clone());
}
@@ -236,7 +240,7 @@ impl MeshMaterial {
self.apply_to(set);
set.face_materials.clear();
let handles: rustc_hash::FxHashSet<Handle> = set
.lods
.geometry_lods()
.iter()
.flat_map(|lod| lod.triangle_material_handles.iter().flatten().copied())
.collect();