From 40c0659cc9bdc26b67641408ff9a473210f21ca4 Mon Sep 17 00:00:00 2001 From: iddev5 Date: Wed, 8 Jun 2022 12:44:27 +0530 Subject: [PATCH] mach: App.update will now return !void instead of !bool In order to close the application, there is already Engine.setShouldClose() which would roughly do the same thing. --- src/platform/common.zig | 2 +- src/platform/native.zig | 4 +--- src/platform/wasm.zig | 4 ++-- www/template.html | 5 ++--- 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/src/platform/common.zig b/src/platform/common.zig index ba4f27ac..059b9744 100644 --- a/src/platform/common.zig +++ b/src/platform/common.zig @@ -2,5 +2,5 @@ pub fn checkApplication(comptime App: type) void { // TODO: check signature if (!@hasDecl(App, "init")) @compileError("App must export 'pub fn init(app: *App, engine: *mach.Engine) !void'"); if (!@hasDecl(App, "deinit")) @compileError("App must export 'pub fn deinit(app: *App, engine: *mach.Engine) void'"); - if (!@hasDecl(App, "update")) @compileError("App must export 'pub fn update(app: *App, engine: *mach.Engine) !bool'"); + if (!@hasDecl(App, "update")) @compileError("App must export 'pub fn update(app: *App, engine: *mach.Engine) !void'"); } diff --git a/src/platform/native.zig b/src/platform/native.zig index 334f8d29..a64dbdbf 100644 --- a/src/platform/native.zig +++ b/src/platform/native.zig @@ -511,8 +511,6 @@ pub fn main() !void { engine.current_desc = engine.target_desc; } - const success = try app.update(&engine); - if (!success) - break; + try app.update(&engine); } } diff --git a/src/platform/wasm.zig b/src/platform/wasm.zig index b52f928f..35bae28a 100644 --- a/src/platform/wasm.zig +++ b/src/platform/wasm.zig @@ -196,14 +196,14 @@ export fn wasmInit() void { app.init(&engine) catch {}; } -export fn wasmUpdate() bool { +export fn wasmUpdate() void { // Poll internal events, like resize engine.internal.pollChanges(); engine.delta_time_ns = engine.timer.lapPrecise(); engine.delta_time = @intToFloat(f32, engine.delta_time_ns) / @intToFloat(f32, std.time.ns_per_s); - return app.update(&engine) catch false; + app.update(&engine) catch engine.setShouldClose(true); } export fn wasmDeinit() void { diff --git a/www/template.html b/www/template.html index edc9588d..55792135 100644 --- a/www/template.html +++ b/www/template.html @@ -25,9 +25,8 @@ instance.exports.wasmInit(); let update = function() {{ - const r = instance.exports.wasmUpdate(); - if (r) requestAnimationFrame(update) - else instance.exports.wasmDeinit(); + instance.exports.wasmUpdate(); + requestAnimationFrame(update); }}; requestAnimationFrame(update);