mirror of
https://github.com/odin-lang/Odin.git
synced 2026-01-03 19:52:30 +00:00
fix _end being called before the actual end when using the step function
This commit is contained in:
14
vendor/wasm/js/runtime.js
vendored
14
vendor/wasm/js/runtime.js
vendored
@@ -1676,6 +1676,9 @@ async function runWasm(wasmPath, consoleElement, extraForeignImports) {
|
||||
|
||||
exports._start();
|
||||
|
||||
// Define a `@export step :: proc(dt: f32) -> (continue: bool) {`
|
||||
// in your app and it will get called every frame.
|
||||
// return `false` to stop the execution of the module.
|
||||
if (exports.step) {
|
||||
const odin_ctx = exports.default_context_ptr();
|
||||
|
||||
@@ -1687,15 +1690,20 @@ async function runWasm(wasmPath, consoleElement, extraForeignImports) {
|
||||
|
||||
const dt = (currTimeStamp - prevTimeStamp)*0.001;
|
||||
prevTimeStamp = currTimeStamp;
|
||||
exports.step(dt, odin_ctx);
|
||||
|
||||
if (!exports.step(dt, odin_ctx)) {
|
||||
exports._end();
|
||||
return;
|
||||
}
|
||||
|
||||
window.requestAnimationFrame(step);
|
||||
};
|
||||
|
||||
window.requestAnimationFrame(step);
|
||||
} else {
|
||||
exports._end();
|
||||
}
|
||||
|
||||
exports._end();
|
||||
|
||||
return;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user