Skip to content

Commit 35811ee

Browse files
committed
Merge remote-tracking branch 'origin/main'
2 parents ff33c32 + dbf05ef commit 35811ee

File tree

8 files changed

+1308
-1307
lines changed

8 files changed

+1308
-1307
lines changed

Diff for: Cargo.lock

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Diff for: Cargo.toml

+2-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,8 @@ resolver = "2"
1616
assert_approx_eq = "1.1.0"
1717
async-channel = "1.8"
1818
bytemuck = { version = "1.13.0", features = ["derive"] }
19-
crabslab = { version = "0.4.5", default-features = false }
19+
crabslab = { version = "0.4.6", default-features = false }
20+
dagga = "0.2.1"
2021
env_logger = "0.10.0"
2122
futures-lite = "1.13"
2223
gltf = { git = 'https://github.com/gltf-rs/gltf.git', features = ["KHR_lights_punctual", "KHR_materials_unlit", "KHR_materials_emissive_strength", "extras"] }

Diff for: crates/loading-bytes/src/lib.rs

+1
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ pub async fn load(path: &str) -> Result<Vec<u8>, LoadingBytesError> {
6060
array.copy_to(&mut bytes);
6161
Ok(bytes)
6262
}
63+
6364
#[cfg(not(target_arch = "wasm32"))]
6465
pub async fn load(path: &str) -> Result<Vec<u8>, LoadingBytesError> {
6566
let bytes: Vec<u8> = async_fs::read(path).await.with_context(|_| FsSnafu {

Diff for: crates/renderling/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ glam = { version = "0.24.2", default-features = false, features = ["libm"] }
8989
async-channel = {workspace = true}
9090
bytemuck = {workspace = true}
9191
crabslab = { workspace = true, features = ["default"] }
92+
dagga = {workspace=true}
9293
crunch = "0.5"
9394
futures-lite = {workspace=true}
9495
glam = { workspace = true, features = ["std"] }

Diff for: crates/renderling/src/lib.rs

+32-14
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@ pub mod convolution;
2323
pub mod cubemap;
2424
#[cfg(not(target_arch = "spirv"))]
2525
pub mod frame;
26-
#[cfg(feature = "gltf")]
27-
pub mod gltf;
26+
// #[cfg(feature = "gltf")]
27+
// pub mod gltf;
2828
#[cfg(not(target_arch = "spirv"))]
2929
mod hdr;
3030
#[cfg(not(target_arch = "spirv"))]
@@ -919,39 +919,57 @@ mod test {
919919
Vertex::default().with_position([size, size, 0.0]),
920920
Vertex::default().with_position([size, 0.0, 0.0]),
921921
]);
922-
let root_mat4 = Mat4::from(Transform {
922+
923+
let mut root_node = stage.new_nested_transform();
924+
root_node.set_local_transform(Transform {
923925
scale: Vec3::new(25.0, 25.0, 1.0),
924926
..Default::default()
925927
});
926-
let offset_mat4 = Mat4::from(Transform {
928+
println!("root_node: {:#?}", root_node.get_global_transform());
929+
930+
let offset = Transform {
927931
translation: Vec3::new(1.0, 1.0, 0.0),
928932
..Default::default()
929-
});
930-
let cyan_mat4 = root_mat4 * offset_mat4;
931-
let cyan_transform = stage.append(&cyan_mat4.into());
932-
let yellow_mat4 = cyan_mat4 * offset_mat4;
933-
let yellow_transform = stage.append(&yellow_mat4.into());
934-
let red_mat4 = yellow_mat4 * offset_mat4;
935-
let red_transform = stage.append(&red_mat4.into());
933+
};
934+
935+
let mut cyan_node = NestedTransform::new(&mut stage);
936+
cyan_node.set_local_transform(offset);
937+
println!("cyan_node: {:#?}", cyan_node.get_global_transform());
938+
939+
let mut yellow_node = NestedTransform::new(&mut stage);
940+
yellow_node.set_local_transform(offset);
941+
println!("yellow_node: {:#?}", yellow_node.get_global_transform());
942+
943+
let mut red_node = NestedTransform::new(&mut stage);
944+
red_node.set_local_transform(offset);
945+
println!("red_node: {:#?}", red_node.get_global_transform());
946+
947+
root_node.add_child(&cyan_node);
948+
println!("cyan_node: {:#?}", cyan_node.get_global_transform());
949+
cyan_node.add_child(&yellow_node);
950+
println!("yellow_node: {:#?}", yellow_node.get_global_transform());
951+
yellow_node.add_child(&red_node);
952+
println!("red_node: {:#?}", red_node.get_global_transform());
953+
936954
let _cyan_primitive = stage.draw(&Renderlet {
937955
vertices: geometry,
938956
camera,
939957
material: cyan_material,
940-
transform: cyan_transform,
958+
transform: cyan_node.global_transform_id(),
941959
..Default::default()
942960
});
943961
let _yellow_primitive = stage.draw(&Renderlet {
944962
vertices: geometry,
945963
camera,
946964
material: yellow_material,
947-
transform: yellow_transform,
965+
transform: yellow_node.global_transform_id(),
948966
..Default::default()
949967
});
950968
let _red_primitive = stage.draw(&Renderlet {
951969
vertices: geometry,
952970
camera,
953971
material: red_material,
954-
transform: red_transform,
972+
transform: red_node.global_transform_id(),
955973
..Default::default()
956974
});
957975

Diff for: crates/renderling/src/stage.rs

+5-5
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,10 @@ mod cpu;
2323
#[cfg(not(target_arch = "spirv"))]
2424
pub use cpu::*;
2525

26-
// #[cfg(all(feature = "gltf", not(target_arch = "spirv")))]
27-
// mod gltf_support;
28-
// #[cfg(all(feature = "gltf", not(target_arch = "spirv")))]
29-
// pub use gltf_support::*;
26+
#[cfg(all(feature = "gltf", not(target_arch = "spirv")))]
27+
mod gltf_support;
28+
#[cfg(all(feature = "gltf", not(target_arch = "spirv")))]
29+
pub use gltf_support::*;
3030

3131
/// A vertex in a mesh.
3232
#[cfg_attr(not(target_arch = "spirv"), derive(Debug))]
@@ -175,7 +175,7 @@ impl Vertex {
175175
/// `Id::new(0)`. This corresponds to the `PbrConfig` that is maintained by
176176
/// the [`Stage`].
177177
#[cfg_attr(not(target_arch = "spirv"), derive(Debug))]
178-
#[derive(Clone, Copy, SlabItem)]
178+
#[derive(Clone, Copy, PartialEq, SlabItem)]
179179
pub struct Renderlet {
180180
pub visible: bool,
181181
pub vertices: Array<Vertex>,

0 commit comments

Comments
 (0)