Graphite/frontend/wasm
0HyperCube 6f6fb3bcd4
Upgrade several Rust dependencies (#1613)
`specta` from Hypercube's fork commit to latest upstream commit
`wasm-bindgen` 0.2.87 -> 0.2.91
`spirv-std` from 0.9 to not-yet-merged commit in https://github.com/EmbarkStudios/rust-gpu/pull/1115
`wgpu` 0.17 -> 0.19
`winit` 0.28.6 -> 0.29
`vello` and `vello_svg` from latest upstream commit to not-yet-merged commit in https://github.com/linebender/vello/pull/427
`resvg` 0.36.0 -> 0.39
`glam` 0.24 -> 0.25
`rustybuzz` 0.8.0 -> 0.10.0
`js-sys` and `web-sys` 0.3.55 -> 0.3.67
`usvg` 0.36.0 -> 0.39
`spirv` 0.2.0 -> 0.3

* Update a couple of dependencies

* More test fixing…

* Use upstream Specta instead of fork

* Update comments in Cargo.toml

---------

Co-authored-by: Keavon Chambers <keavon@keavon.com>
2024-02-17 15:02:41 -08:00
..
.cargo Add blit caching and blend modes to Brush tool (#1268) 2023-06-07 12:24:21 +02:00
src Split widget callbacks into update and commit so only the latter adds a history state (#1584) 2024-02-05 01:32:15 -08:00
tests Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00
Cargo.toml Upgrade several Rust dependencies (#1613) 2024-02-17 15:02:41 -08:00
README.md Add frontend file structure docs and some related cleanup 2022-05-23 19:13:51 -07:00

Overview of /frontend/wasm/

WASM wrapper API: src/editor_api.rs

Provides bindings for JS to call functions defined in this file, and for FrontendMessages to be sent from Rust back to JS in the form of a callback to the subscription router. This WASM wrapper crate, since it's written in Rust, is able to call into the Editor crate's codebase and send FrontendMessages back to JS.

WASM wrapper helper code: src/helpers.rs

Assorted function and struct definitions used in the WASM wrapper.

WASM wrapper initialization: src/lib.rs

Entry point for the Rust entire codebase in the WASM environment. Initializes the WASM module and persistent storage for editor and WASM wrapper instances.

WASM wrapper tests: tests/

We currently have no WASM wrapper tests, but this is where they would go.