Files
basis_universal/webgl/transcoder
Ben Polinsky 25e094e81d Fix missing cPackUASTC* constants in the WebGL encoder
The cPackUASTC* values are members of an anonymous enum. embind's
constant() registers a constant against the type of its value, and no
binding exists for an anonymous enum type. embind therefore waits for
that type forever, and the constants never appear on the module.
Module.cPackUASTCLevelDefault and the others are undefined in the
shipped basis_encoder.js.

Cast the values to uint32_t so that they bind as plain numbers.
EMBIND_AOT=1 makes this a link error ("Missing binding for type"), so
this change is also necessary to build the encoder with that flag.
2026-10-19 09:51:05 -04:00
..
2026-07-18 18:11:39 -04:00
2020-04-06 14:55:45 -07:00
2026-02-19 18:14:24 -05:00

basisu_wrappers.cpp contains our JavaScript API (implemented via emscripten bindings), which is a thin layer above our encoder and transcoder's C++ API's. As of Basis Universal v2.0 it supports optional WASM multithreading and WASM64.

Prebuilt versions of basis_transcoder.js and basis_transcoder.wasm are included in the build/ folder, and are sufficient for local demos. To build the transcoder yourself, first install emscripten (tutorial) and cmake (download). Then run:

cd webgl/transcoder/build/
emcmake cmake ../
make