mirror of
https://github.com/redstrate/Physis.git
synced 2025-04-25 05:47:45 +00:00
Make the data offset calculations a little bit clearer
This commit is contained in:
parent
ebca076c2d
commit
d75296f4d2
1 changed files with 14 additions and 8 deletions
22
src/model.rs
22
src/model.rs
|
@ -376,6 +376,7 @@ pub struct SubMesh {
|
||||||
pub index_offset: u32
|
pub index_offset: u32
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Corresponds to a "Mesh" in an LOD
|
||||||
#[derive(Clone)]
|
#[derive(Clone)]
|
||||||
pub struct Part {
|
pub struct Part {
|
||||||
mesh_index: u16,
|
mesh_index: u16,
|
||||||
|
@ -695,21 +696,26 @@ impl MDL {
|
||||||
self.file_header.stack_size = self.file_header.calculate_stack_size();
|
self.file_header.stack_size = self.file_header.calculate_stack_size();
|
||||||
self.file_header.runtime_size = self.model_data.calculate_runtime_size();
|
self.file_header.runtime_size = self.model_data.calculate_runtime_size();
|
||||||
|
|
||||||
let mut vertex_offset = self.file_header.runtime_size
|
let data_offset = self.file_header.runtime_size
|
||||||
+ size_of::<ModelFileHeader>() as u32
|
+ size_of::<ModelFileHeader>() as u32
|
||||||
+ self.file_header.stack_size;
|
+ self.file_header.stack_size;
|
||||||
|
|
||||||
|
let mut overall_offset: u32 = 0;
|
||||||
|
|
||||||
for lod in &mut self.model_data.lods {
|
for lod in &mut self.model_data.lods {
|
||||||
lod.vertex_data_offset = vertex_offset;
|
// vertex
|
||||||
|
lod.vertex_data_offset = data_offset + overall_offset;
|
||||||
|
overall_offset += lod.vertex_buffer_size;
|
||||||
|
|
||||||
vertex_offset = lod.vertex_data_offset + lod.vertex_buffer_size;
|
// index
|
||||||
|
lod.index_data_offset = data_offset + overall_offset;
|
||||||
|
overall_offset += lod.index_buffer_size;
|
||||||
|
|
||||||
lod.index_data_offset = vertex_offset;
|
// edge, but unused?
|
||||||
|
//lod.edge_geometry_data_offset = data_offset + overall_offset;
|
||||||
|
//overall_offset += lod.edge_geometry_size;
|
||||||
|
|
||||||
// dummy
|
lod.edge_geometry_data_offset = lod.index_data_offset;
|
||||||
lod.edge_geometry_data_offset = vertex_offset;
|
|
||||||
|
|
||||||
vertex_offset = lod.index_data_offset + lod.index_buffer_size;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
for i in 0..self.lods.len() {
|
for i in 0..self.lods.len() {
|
||||||
|
|
Loading…
Add table
Reference in a new issue