separate out renderer crate (#13)

* add keyboard handler

* some cleanup

* add l key binding

* Fix WASM shared memory generation for Rust nightly 2025-10-20+

Add explicit linker flags for shared memory generation after Rust PR #147225
removed automatic flags with +atomics. This fixes DataCloneError when sharing
memory with workers.

Changes:
- Add --shared-memory, --max-memory, --import-memory flags
- Export TLS symbols: __wasm_init_tls, __tls_size, __tls_align, __tls_base
- Update both Cargo.toml and package.json build scripts

Amp-Thread-ID: https://ampcode.com/threads/T-41d99b69-5754-4fdf-b06e-a46343fa7485
Co-authored-by: Amp <amp@ampcode.com>

* add a level-editor crate

* remove redundant worker setup

* simplify app setup

* add SceneBuilder

* separate out default scene implementation in a crate

* define default method for MeshBuilder

---------

Co-authored-by: Amp <amp@ampcode.com>
This commit is contained in:
Akash Shakdwipeea
2025-10-22 18:08:02 +05:30
committed by GitHub
co-authored by Amp
parent cb65a52e95
commit b295c0bf0b
33 changed files with 5516 additions and 995 deletions
+18 -33
View File
@@ -1,22 +1,8 @@
[package]
name = "base"
description = "wgpu + webpack base"
version = "0.1.0"
edition = "2021"
[workspace]
members = ["renderer", "level-editor"]
resolver = "2"
[lib]
crate-type = ["cdylib"]
[features]
default = []
atomics = []
bulk-memory = []
[profile.release]
opt-level = "z"
lto = true
[dependencies]
[workspace.dependencies]
wasm-bindgen = { version = "0.2.100", features = ["enable-interning"] }
wasm-bindgen-futures = "0.4.50"
console_error_panic_hook = "0.1.7"
@@ -28,8 +14,13 @@ web-sys = { version = "0.3.77", features = [
"Document",
"Element",
"HtmlCanvasElement",
"HtmlInputElement",
"File",
"FileList",
"OffscreenCanvas",
"MouseEvent",
"WheelEvent",
"KeyboardEvent",
"Worker",
"DedicatedWorkerGlobalScope",
"Event",
@@ -37,26 +28,20 @@ web-sys = { version = "0.3.77", features = [
"Blob",
"BlobPropertyBag",
"Url",
"Request",
"RequestInit",
"RequestMode",
"Response",
"Headers"
"Request",
"RequestInit",
"RequestMode",
"Response",
"Headers",
"AddEventListenerOptions"
]}
js-sys = "0.3.77"
bytemuck = { version = "1.23.1", features = [
"derive"
]}
bytemuck = { version = "1.23.1", features = ["derive"] }
cgmath = "0.18"
raw-window-handle = "0.6.2"
wgpu = "26.0.1"
reqwest = { version = "0.12.23", features = ["json"] }
thiserror = "2.0.15"
ultraviolet = "0.10.0"
[dependencies.gltf]
version = "1.4"
features = ["extras", "names"]
[package.metadata.wasm-pack.profile.release]
wasm-opt = false
futures = "0.3"
gltf = { version = "1.4", features = ["extras", "names", "KHR_lights_punctual"] }