-
Notifications
You must be signed in to change notification settings - Fork 2
Closed as not planned
Description
Do you have any interest in supporting FMOD's HTML5 platform in this crate?
Doing so is tricky due to the ABI incompatibility between Emscripten and the wasm32-unknown-unknown target that much of the Rust community is targeting, but it's possible to make it work by proxying through JS: basically each fmod-oxide function would use wasm-bindgen to define some extern JS functions, which in turn call into a separate FMOD's WASM instance. The error handling is a pain but it does work (demo at bottom here).
So, theoretically:
- I think it would be possible to provide approximately the same API this crate does today, and just "magically" have it work on the web.
- The big exception is the initial initialization: it requires loading the FMOD JS script and calling
window.FMODModule(myEmptyFmodObject)
, which then gives you a callback to "mount" files for loading banks and a second callback when FMOD is done loading - and only then can you create systems.- There are some other much smaller API differences too (for example you can't set a custom logging callback) but those could be handled via cfg attrs as needed.
Obviously it would be a significant amount of work to mirror all the APIs too.
Metadata
Metadata
Assignees
Labels
No labels