Skip to content

Commit 87f9ac4

Browse files
authored
Repository Updates (#583)
1 parent 331e1e4 commit 87f9ac4

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

87 files changed

+647
-2206
lines changed

.rustfmt.toml

+1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
max_width = 120
2+
use_small_heuristics = "Max"
23
use_field_init_shorthand = true
34
use_try_shorthand = true
45
edition = "2021"

build.bash

+3-3
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ case $1 in
1212
else
1313
WASM_BUILD_DIR=debug
1414
fi
15-
cargo build --target wasm32-unknown-unknown $BUILD_FLAGS --bin $@
15+
cargo build --target wasm32-unknown-unknown $BUILD_FLAGS --bin rend3-examples
1616
mkdir -p target/generated/
1717
rm -rf target/generated/*
18-
cp -r examples/$1/resources target/generated/ || true
18+
cp -r examples/src/$1/resources target/generated/ || true
1919
sed "s/{{example}}/$1/g" > target/generated/index.html < examples/resources/index.html
20-
wasm-bindgen --out-dir target/generated --target web target/wasm32-unknown-unknown/$WASM_BUILD_DIR/$1.wasm
20+
wasm-bindgen --out-dir target/generated --target web target/wasm32-unknown-unknown/$WASM_BUILD_DIR/rend3-examples.wasm
2121
;;
2222
serve)
2323
shift

deny.toml

+3-2
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,13 @@ wildcards = "allow"
1515
skip = [
1616
# gltf / reqwest
1717
{ name = "base64", version = "0.13.1" },
18+
# ndk_glue
19+
{ name = "env_logger", version = "0.10.2" },
1820
]
1921
skip-tree = [
2022
# winit brings in lots of duplicate deps that we can't fix
2123
{ name = "winit", version = "0.29.4" },
22-
# loom is depended on by tracy-client but under a custom cfg that is never on.
23-
{ name = "loom", version = "0.5" },
24+
2425
]
2526

2627
[advisories]

examples/Cargo.toml

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,9 @@ egui = "0.26"
2424
# Winit integration with egui (turn off the clipboard feature)
2525
egui-winit = { version = "0.26", default-features = false, features = ["links", "wayland"] }
2626
# logging
27-
env_logger = { version = "0.10", default-features = false, features = ["auto-color", "humantime"] }
27+
env_logger = { version = "0.11", default-features = false, features = ["auto-color", "humantime"] }
2828
# Linear algebra library
29-
glam = "0.24"
29+
glam = "0.25"
3030
# gltf model loading
3131
gltf = "1.4"
3232
# Channel

examples/resources/index.html

+3-2
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,9 @@
1313

1414
<body style="margin: 0px">
1515
<script type="module">
16-
import init from "./{{example}}.js";
17-
init();
16+
import init, {main_with_name} from "./rend3-examples.js";
17+
await init();
18+
main_with_name("{{example}}");
1819
</script>
1920
</body>
2021

examples/src/animation/mod.rs

+3-11
Original file line numberDiff line numberDiff line change
@@ -53,10 +53,7 @@ impl rend3_framework::App for AnimationExample {
5353

5454
// Load a gltf model with animation data
5555
// Needs to be stored somewhere, otherwise all the data gets freed.
56-
let path = Path::new(concat!(
57-
env!("CARGO_MANIFEST_DIR"),
58-
"/src/animation/resources/scene.gltf"
59-
));
56+
let path = Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/src/animation/resources/scene.gltf"));
6057
let gltf_data = std::fs::read(path).unwrap();
6158
let parent_directory = path.parent().unwrap();
6259
let (loaded_scene, loaded_instance) = pollster::block_on(rend3_gltf::load_gltf(
@@ -88,10 +85,7 @@ impl rend3_framework::App for AnimationExample {
8885
animation_time: 0.0,
8986
};
9087

91-
let path = Path::new(concat!(
92-
env!("CARGO_MANIFEST_DIR"),
93-
"/src/animation/resources/cube_3.gltf"
94-
));
88+
let path = Path::new(concat!(env!("CARGO_MANIFEST_DIR"), "/src/animation/resources/cube_3.gltf"));
9589
let gltf_data = std::fs::read(path).unwrap();
9690
let parent_directory = path.parent().unwrap();
9791
let (loaded_scene, loaded_instance) = pollster::block_on(rend3_gltf::load_gltf(
@@ -167,9 +161,7 @@ pub fn main() {
167161
let app = AnimationExample::default();
168162
rend3_framework::start(
169163
app,
170-
winit::window::WindowBuilder::new()
171-
.with_title("animation-example")
172-
.with_maximized(true),
164+
winit::window::WindowBuilder::new().with_title("animation-example").with_maximized(true),
173165
);
174166
}
175167

examples/src/cube/mod.rs

+7-13
Original file line numberDiff line numberDiff line change
@@ -125,13 +125,12 @@ impl rend3_framework::App for CubeExample {
125125
];
126126

127127
for (position, color) in lights {
128-
self.point_lights
129-
.push(context.renderer.add_point_light(rend3::types::PointLight {
130-
position,
131-
color,
132-
radius: 2.0,
133-
intensity: 4.0,
134-
}));
128+
self.point_lights.push(context.renderer.add_point_light(rend3::types::PointLight {
129+
position,
130+
color,
131+
radius: 2.0,
132+
intensity: 4.0,
133+
}));
135134
}
136135
}
137136

@@ -184,12 +183,7 @@ impl rend3_framework::App for CubeExample {
184183

185184
pub fn main() {
186185
let app = CubeExample::default();
187-
rend3_framework::start(
188-
app,
189-
winit::window::WindowBuilder::new()
190-
.with_title("cube-example")
191-
.with_maximized(true),
192-
);
186+
rend3_framework::start(app, winit::window::WindowBuilder::new().with_title("cube-example").with_maximized(true));
193187
}
194188

195189
#[cfg(test)]

examples/src/cube_no_framework/Cargo.toml

-36
This file was deleted.

examples/src/cube_no_framework/mod.rs

+2-8
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,7 @@ pub fn main() {
179179
event_loop
180180
.run(move |event, _event_loop_window_target| match event {
181181
// Window was resized, need to resize renderer.
182-
winit::event::Event::WindowEvent {
183-
event: winit::event::WindowEvent::Resized(physical_size),
184-
..
185-
} => {
182+
winit::event::Event::WindowEvent { event: winit::event::WindowEvent::Resized(physical_size), .. } => {
186183
resolution = glam::UVec2::new(physical_size.width, physical_size.height);
187184
// Reconfigure the surface for the new size.
188185
rend3::configure_surface(
@@ -196,10 +193,7 @@ pub fn main() {
196193
renderer.set_aspect_ratio(resolution.x as f32 / resolution.y as f32);
197194
}
198195
// Render!
199-
winit::event::Event::WindowEvent {
200-
event: winit::event::WindowEvent::RedrawRequested,
201-
..
202-
} => {
196+
winit::event::Event::WindowEvent { event: winit::event::WindowEvent::RedrawRequested, .. } => {
203197
// Get a frame
204198
let frame = surface.get_current_texture().unwrap();
205199

examples/src/egui/mod.rs

+5-23
Original file line numberDiff line numberDiff line change
@@ -155,8 +155,7 @@ impl rend3_framework::App for EguiExample {
155155
#[allow(clippy::single_match)]
156156
match event {
157157
winit::event::WindowEvent::Resized(size) => {
158-
data.egui_routine
159-
.resize(size.width, size.height, window.scale_factor() as f32);
158+
data.egui_routine.resize(size.width, size.height, window.scale_factor() as f32);
160159
}
161160
_ => {}
162161
}
@@ -192,13 +191,7 @@ impl rend3_framework::App for EguiExample {
192191
);
193192
}
194193
ui.label("Want to get rusty?");
195-
if ui
196-
.add(egui::widgets::ImageButton::new((
197-
self.rust_logo,
198-
egui::Vec2::splat(64.0),
199-
)))
200-
.clicked()
201-
{
194+
if ui.add(egui::widgets::ImageButton::new((self.rust_logo, egui::Vec2::splat(64.0)))).clicked() {
202195
webbrowser::open("https://www.rust-lang.org").expect("failed to open URL");
203196
}
204197
});
@@ -207,16 +200,10 @@ impl rend3_framework::App for EguiExample {
207200

208201
// End the UI frame. Now let's draw the UI with our Backend, we could also
209202
// handle the output here
210-
let egui::FullOutput {
211-
shapes, textures_delta, ..
212-
} = data.context.end_frame();
203+
let egui::FullOutput { shapes, textures_delta, .. } = data.context.end_frame();
213204
let paint_jobs = data.context.tessellate(shapes, scale_factor);
214205

215-
let input = rend3_egui::Input {
216-
clipped_meshes: &paint_jobs,
217-
textures_delta,
218-
context: data.context.clone(),
219-
};
206+
let input = rend3_egui::Input { clipped_meshes: &paint_jobs, textures_delta, context: data.context.clone() };
220207

221208
// Swap the instruction buffers so that our frame's changes can be processed.
222209
context.renderer.swap_instruction_buffers();
@@ -269,12 +256,7 @@ impl rend3_framework::App for EguiExample {
269256

270257
pub fn main() {
271258
let app = EguiExample::default();
272-
rend3_framework::start(
273-
app,
274-
winit::window::WindowBuilder::new()
275-
.with_title("egui")
276-
.with_maximized(true),
277-
)
259+
rend3_framework::start(app, winit::window::WindowBuilder::new().with_title("egui").with_maximized(true))
278260
}
279261

280262
fn vertex(pos: [f32; 3]) -> glam::Vec3 {

examples/src/lib.rs

+26-39
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
#![allow(clippy::arc_with_non_send_sync)]
2+
3+
#[cfg(target_arch = "wasm32")]
4+
use wasm_bindgen::prelude::*;
5+
16
mod animation;
27
mod cube;
38
mod cube_no_framework;
@@ -7,6 +12,9 @@ mod skinning;
712
mod static_gltf;
813
mod textured_quad;
914

15+
#[cfg(target_arch = "wasm32")]
16+
use log::info as println;
17+
1018
#[cfg(test)]
1119
mod tests;
1220

@@ -16,62 +24,41 @@ struct ExampleDesc {
1624
}
1725

1826
const EXAMPLES: &[ExampleDesc] = &[
19-
ExampleDesc {
20-
name: "animation",
21-
run: animation::main,
22-
},
23-
ExampleDesc {
24-
name: "cube",
25-
run: cube::main,
26-
},
27-
ExampleDesc {
28-
name: "cube-no-framework",
29-
run: cube_no_framework::main,
30-
},
31-
ExampleDesc {
32-
name: "egui",
33-
run: egui::main,
34-
},
35-
ExampleDesc {
36-
name: "scene-viewer",
37-
run: scene_viewer::main,
38-
},
39-
ExampleDesc {
40-
name: "skinning",
41-
run: skinning::main,
42-
},
43-
ExampleDesc {
44-
name: "static-gltf",
45-
run: static_gltf::main,
46-
},
47-
ExampleDesc {
48-
name: "textured-quad",
49-
run: textured_quad::main,
50-
},
27+
ExampleDesc { name: "animation", run: animation::main },
28+
ExampleDesc { name: "cube", run: cube::main },
29+
ExampleDesc { name: "cube-no-framework", run: cube_no_framework::main },
30+
ExampleDesc { name: "egui", run: egui::main },
31+
ExampleDesc { name: "scene_viewer", run: scene_viewer::main },
32+
ExampleDesc { name: "skinning", run: skinning::main },
33+
ExampleDesc { name: "static_gltf", run: static_gltf::main },
34+
ExampleDesc { name: "textured_quad", run: textured_quad::main },
5135
];
5236

5337
fn print_examples() {
54-
println!("Usage: cargo run <example_name>");
55-
println!();
38+
println!("Usage: cargo run <example_name>\n");
5639
println!("Available examples:");
5740
for example in EXAMPLES {
5841
println!(" {}", example.name);
5942
}
6043
}
6144

62-
#[cfg_attr(target_os = "android", ndk_glue::main(backtrace = "on", logger(level = "debug")))]
63-
pub fn main() {
64-
let Some(example_name) = std::env::args().nth(1) else {
45+
#[cfg_attr(target_arch = "wasm32", wasm_bindgen)]
46+
pub fn main_with_name(example_name: Option<String>) {
47+
let Some(example_name) = example_name else {
6548
print_examples();
6649
return;
6750
};
6851

6952
let Some(example) = EXAMPLES.iter().find(|example| example.name == example_name) else {
70-
println!("Unknown example: {}", example_name);
71-
println!();
53+
println!("Unknown example: {}\n", example_name);
7254
print_examples();
7355
return;
7456
};
7557

7658
(example.run)();
7759
}
60+
61+
#[cfg_attr(target_os = "android", ndk_glue::main(backtrace = "on", logger(level = "debug")))]
62+
pub fn main() {
63+
main_with_name(std::env::args().nth(1))
64+
}

0 commit comments

Comments
 (0)