From ffedc85a880bd02d4f2a569e9a64669c40ba0c9c Mon Sep 17 00:00:00 2001 From: Zakarum Date: Thu, 19 Dec 2024 11:38:13 +0100 Subject: [PATCH] Migrate web demo to provide canvas directly to eframe::WebRunner --- examples/demo.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/examples/demo.rs b/examples/demo.rs index 389a880..026fab0 100644 --- a/examples/demo.rs +++ b/examples/demo.rs @@ -1116,15 +1116,24 @@ fn main() -> eframe::Result<()> { ) } +#[cfg(target_arch = "wasm32")] +fn get_canvas_element() -> Option { + let document = web_sys::window()?.document()?; + let canvas = document.get_element_by_id("egui_snarl_demo")?; + canvas.dyn_into::().ok() +} + // When compiling to web using trunk: #[cfg(target_arch = "wasm32")] fn main() { + let canvas = get_canvas_element().expect("Failed to find canvas with id 'egui_snarl_demo'"); + let web_options = eframe::WebOptions::default(); wasm_bindgen_futures::spawn_local(async { eframe::WebRunner::new() .start( - "egui_snarl_demo", + canvas, web_options, Box::new(|cx| Ok(Box::new(DemoApp::new(cx)))), )