feat(wasm): single-window web entry + trunk harness (issue #45)
The binary now compiles for wasm32 as a runnable web target: - Split the main-window render into `view_main`, bypassing the multi-window id dispatch the browser cannot use. - Add `run_web` / `boot_web`: a single-window `iced::application` entry for wasm (the browser canvas is the only window). Native keeps the multi-window `iced::daemon` via cfg-split in `main`. - Add a `console_error_panic_hook` (wasm-only) for readable panics. - Add `index.html` + `Trunk.toml` so `trunk serve` builds the wasm bundle (no-default-features → no solid3d) with COOP/COEP headers. Native build and all 75 tests unchanged. Browser runtime (rayon threads, canvas attach, real file I/O) is the next iteration. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
parent
b2e20c95fe
commit
157d54a4d4
7 changed files with 93 additions and 1 deletions
|
|
@ -511,6 +511,13 @@ impl OpenCADStudio {
|
|||
);
|
||||
}
|
||||
|
||||
self.view_main()
|
||||
}
|
||||
|
||||
/// The primary window: viewport, ribbon, tab bar, status bar. Split out of
|
||||
/// `view` so the single-window web build can render it directly, bypassing
|
||||
/// the multi-window id dispatch above (the web build has no extra windows).
|
||||
pub fn view_main(&self) -> Element<'_, Message> {
|
||||
let i = self.active_tab;
|
||||
let tab = &self.tabs[i];
|
||||
let is_paper = tab.scene.current_layout != "Model";
|
||||
|
|
|
|||
Loading…
Reference in a new issue