forked from StrafesNET/strafe-project
graphics: move get_instances_buffer_data away from the cool render code
This commit is contained in:
parent
0fb0230cb1
commit
8fb0d30e1d
@ -103,6 +103,26 @@ impl std::default::Default for GraphicsCamera{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const MODEL_BUFFER_SIZE:usize=4*4 + 12 + 4;//let size=std::mem::size_of::<ModelInstance>();
|
||||||
|
const MODEL_BUFFER_SIZE_BYTES:usize=MODEL_BUFFER_SIZE*4;
|
||||||
|
fn get_instances_buffer_data(instances:&[GraphicsModelOwned])->Vec<f32>{
|
||||||
|
let mut raw=Vec::with_capacity(MODEL_BUFFER_SIZE*instances.len());
|
||||||
|
for mi in instances{
|
||||||
|
//model transform
|
||||||
|
raw.extend_from_slice(&AsRef::<[f32; 4*4]>::as_ref(&mi.transform)[..]);
|
||||||
|
//normal transform
|
||||||
|
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.x_axis));
|
||||||
|
raw.extend_from_slice(&[0.0]);
|
||||||
|
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.y_axis));
|
||||||
|
raw.extend_from_slice(&[0.0]);
|
||||||
|
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.z_axis));
|
||||||
|
raw.extend_from_slice(&[0.0]);
|
||||||
|
//color
|
||||||
|
raw.extend_from_slice(AsRef::<[f32; 4]>::as_ref(&mi.color.get()));
|
||||||
|
}
|
||||||
|
raw
|
||||||
|
}
|
||||||
|
|
||||||
pub struct GraphicsState{
|
pub struct GraphicsState{
|
||||||
pipelines:GraphicsPipelines,
|
pipelines:GraphicsPipelines,
|
||||||
bind_groups:GraphicsBindGroups,
|
bind_groups:GraphicsBindGroups,
|
||||||
@ -967,22 +987,3 @@ impl GraphicsState{
|
|||||||
self.staging_belt.recall();
|
self.staging_belt.recall();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
const MODEL_BUFFER_SIZE:usize=4*4 + 12 + 4;//let size=std::mem::size_of::<ModelInstance>();
|
|
||||||
const MODEL_BUFFER_SIZE_BYTES:usize=MODEL_BUFFER_SIZE*4;
|
|
||||||
fn get_instances_buffer_data(instances:&[GraphicsModelOwned])->Vec<f32>{
|
|
||||||
let mut raw=Vec::with_capacity(MODEL_BUFFER_SIZE*instances.len());
|
|
||||||
for mi in instances{
|
|
||||||
//model transform
|
|
||||||
raw.extend_from_slice(&AsRef::<[f32; 4*4]>::as_ref(&mi.transform)[..]);
|
|
||||||
//normal transform
|
|
||||||
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.x_axis));
|
|
||||||
raw.extend_from_slice(&[0.0]);
|
|
||||||
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.y_axis));
|
|
||||||
raw.extend_from_slice(&[0.0]);
|
|
||||||
raw.extend_from_slice(AsRef::<[f32; 3]>::as_ref(&mi.normal_transform.z_axis));
|
|
||||||
raw.extend_from_slice(&[0.0]);
|
|
||||||
//color
|
|
||||||
raw.extend_from_slice(AsRef::<[f32; 4]>::as_ref(&mi.color.get()));
|
|
||||||
}
|
|
||||||
raw
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user