save triangle buffer as a binary blob

- saves a lot of space by removing redundant data
This commit is contained in:
Dmitry Stepanov
2026-03-07 18:37:32 +03:00
parent 8cfcb097d2
commit 529ee71104
+13 -1
View File
@@ -35,6 +35,7 @@ use crate::{
use bytemuck::Pod;
use fxhash::FxHasher;
use fyrox_core::visitor::pod::PodVecView;
use fyrox_core::visitor::BinaryBlob;
use std::{
alloc::Layout,
fmt::{Display, Formatter},
@@ -1462,12 +1463,23 @@ impl VertexWriteTrait for VertexViewMut<'_> {
}
/// A buffer for data that defines connections between vertices.
#[derive(Reflect, Visit, Default, Clone, Debug)]
#[derive(Reflect, Default, Clone, Debug)]
pub struct TriangleBuffer {
triangles: Vec<TriangleDefinition>,
modifications_counter: u64,
}
impl Visit for TriangleBuffer {
fn visit(&mut self, name: &str, visitor: &mut Visitor) -> VisitResult {
let mut guard = visitor.enter_region(name)?;
BinaryBlob {
vec: &mut self.triangles,
}
.visit("Data", &mut guard)?;
Ok(())
}
}
fn calculate_triangle_buffer_hash(triangles: &[TriangleDefinition]) -> u64 {
let mut hasher = FxHasher::default();
triangles.hash(&mut hasher);