Skip to content

Commit e47b970

Browse files
committed
etc.
1 parent fe26d75 commit e47b970

File tree

4 files changed

+36
-24
lines changed

4 files changed

+36
-24
lines changed

.vscode/settings.json

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,6 @@
11
{
2-
// "rust-analyzer.cargo.target": "wasm32-unknown-unknown",
3-
// "rust-analyzer.cargo.features": [
4-
// "sync"
5-
// ],
6-
// "rust-analyzer.check.features": [
7-
// "sync"
8-
// ],
9-
"rust-analyzer.cargo.features": [],
10-
"rust-analyzer.check.features": [],
2+
"rust-analyzer.cargo.target": "wasm32-unknown-unknown",
3+
"rust-analyzer.check.targets": [
4+
"wasm32-unknown-unknown"
5+
],
116
}

index.html

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,6 @@
1616

1717
document.getElementById("help").style.display = "none";
1818

19-
20-
// the canvas will be created by wasm.
21-
// when it is created, add a listener
22-
setTimeout(() => {
23-
document.getElementById("onboard-help").style.display = "block";
24-
document.querySelectorAll("canvas")[0].addEventListener("click", (e) => {
25-
document.getElementById("onboard-help").style.display = "none";
26-
document.querySelector("canvas").style.width = "100vw";
27-
document.querySelector("canvas").style.height = "100vh";
28-
});
29-
}, 250);
30-
3119
init()
3220
.then(() => {
3321
console.log("loaded!");

src/renderer/mod.rs

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ use winit::{
1414
event::WindowEvent,
1515
event_loop::ActiveEventLoop,
1616
keyboard::KeyCode,
17-
window::{Fullscreen, Window, WindowId},
17+
window::{Window, WindowId},
1818
};
1919

2020
mod egui;
@@ -113,13 +113,41 @@ impl WgpuState {
113113

114114
#[cfg(target_arch = "wasm32")]
115115
{
116+
use wasm_bindgen::prelude::Closure;
117+
use wasm_bindgen::JsCast;
118+
use web_sys::Event;
116119
use winit::platform::web::WindowExtWebSys;
120+
117121
web_sys::window()
118122
.and_then(|win| win.document())
119123
.and_then(|doc| {
120124
let dest = doc.get_element_by_id("fluidsim")?;
121125
let canvas = web_sys::Element::from(window.canvas()?);
122126
dest.append_child(&canvas).ok()?;
127+
Some(doc)
128+
})
129+
.and_then(|doc| {
130+
let canvas = doc.query_selector("canvas").ok()??;
131+
132+
canvas
133+
.add_event_listener_with_callback(
134+
"click",
135+
Closure::wrap(Box::new(|_| {
136+
// set w and h of canvas to 100vw and 100vh, after click
137+
138+
let window = web_sys::window().unwrap();
139+
let document = window.document().unwrap();
140+
let canvas = document.query_selector("canvas").unwrap().unwrap();
141+
142+
canvas
143+
.set_attribute("style", "width: 100vw; height: 100vh;")
144+
.unwrap();
145+
}) as Box<dyn FnMut(Event)>)
146+
.as_ref()
147+
.unchecked_ref(),
148+
)
149+
.ok()?;
150+
123151
Some(())
124152
})
125153
.unwrap();
@@ -197,7 +225,7 @@ impl SimRenderer {
197225
#[cfg(not(target_arch = "wasm32"))]
198226
self.wgpu
199227
.window
200-
.set_fullscreen(Some(Fullscreen::Borderless(None)));
228+
.set_fullscreen(Some(winit::window::Fullscreen::Borderless(None)));
201229

202230
#[cfg(target_arch = "wasm32")]
203231
self.wgpu.window.set_min_inner_size(Some(WASM_WINDOW));

src/renderer/state.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,9 @@ impl Game {
5454
let el = self.time.last_instant.elapsed().as_secs_f32();
5555
let speed = self.physics.settings.speed;
5656
let sspf = self.physics.settings.steps_per_frame;
57+
let maxed = (el * speed / sspf as f32).min(1. / 90.);
5758

58-
self.physics.settings.dtime = el * speed / sspf as f32;
59+
self.physics.settings.dtime = maxed;
5960
}
6061

6162
self.time.last_instant = Instant::now();

0 commit comments

Comments
 (0)