tirbofish/dropbear · commit
6efc74a0ef0f7771540fb57d559d7573bbc4114c
fix: for some reason, the normals were all mixed up. fixed that up
fix: made mouse delta be clamped to the FPS
fix: got shaders back to working.
fix: proc objects use default textures instead of all white (incl emissive and diffuse).
jarvis, run github actions
Signature present but could not be verified.
Unverified
@@ -1,3 +1,6 @@ [target.x86_64-unknown-linux-gnu] linker = "clang" rustflags = ["-C", "link-arg=-fuse-ld=mold", "-C", "relocation-model=pic"] + +# note: if you get a compile error such as "Recompile with RPIC", just run `cargo build` +# instead of `cargo build -p eucalyptus-core -p eucalyptus-editor`. @@ -1,9 +1,17 @@ +use crate::buffer::{ResizableBuffer, UniformBuffer}; use crate::graphics::SharedGraphicsContext; use crate::model::{AnimationInterpolation, ChannelValues, Model, NodeTransform}; use glam::Mat4; use std::collections::HashMap; use std::sync::Arc; -use wgpu::util::DeviceExt; + +#[repr(C)] +#[derive(Copy, Clone, Default, Debug, bytemuck::Pod, bytemuck::Zeroable)] +pub struct MorphTargetInfo { + num_vertices: u32, + num_targets: u32, + _padding: [u32; 2], +} #[derive(Debug, Clone, serde::Serialize, serde::Deserialize)] pub struct AnimationComponent { @@ -27,7 +35,13 @@ pub struct AnimationComponent { pub skinning_matrices: Vec<Mat4>, #[serde(skip)] - pub bone_buffer: Option<wgpu::Buffer>, + pub skinning_buffer: Option<ResizableBuffer<Mat4>>, + #[serde(skip)] + pub morph_deltas_buffer: Option<ResizableBuffer<f32>>, + #[serde(skip)] + pub morph_weights_buffer: Option<ResizableBuffer<f32>>, + #[serde(skip)] + pub morph_info_buffer: Option<UniformBuffer<MorphTargetInfo>>, #[serde(skip)] pub available_animations: Vec<String>, @@ -37,9 +51,6 @@ pub struct AnimationComponent {
Large diffs are not rendered by default. Showing the first 50 of 1203 lines. Show full diff