engine: minor App event sending cleanup

Signed-off-by: Stephen Gutekanst <stephen@hexops.com>
This commit is contained in:
Stephen Gutekanst 2024-04-05 20:05:19 -07:00 committed by Stephen Gutekanst
parent 56c16798cd
commit 5737c62171

View file

@ -114,14 +114,14 @@ pub const App = struct {
pub fn init(app: *@This()) !void { pub fn init(app: *@This()) !void {
app.* = .{ .modules = undefined }; app.* = .{ .modules = undefined };
try app.modules.init(allocator); try app.modules.init(allocator);
app.modules.send(.engine, .init, .{}); app.modules.mod.engine.send(.init, .{});
try app.modules.dispatch(); try app.modules.dispatch();
} }
pub fn deinit(app: *@This()) void { pub fn deinit(app: *@This()) !void {
app.modules.send(.engine, .deinit, .{}); app.modules.mod.engine.send(.deinit, .{});
// TODO: improve error handling // TODO: dispatch until no remaining events
app.modules.dispatch() catch |err| @panic(@errorName(err)); // dispatch .deinit try app.modules.dispatch(); // dispatch .deinit
app.modules.deinit(gpa.allocator()); app.modules.deinit(gpa.allocator());
_ = gpa.deinit(); _ = gpa.deinit();
} }
@ -131,6 +131,7 @@ pub const App = struct {
app.modules.mod.engine.sendGlobal(.tick, .{}); app.modules.mod.engine.sendGlobal(.tick, .{});
try app.modules.dispatch(); // dispatch .tick try app.modules.dispatch(); // dispatch .tick
try app.modules.dispatch(); // dispatch any events produced by .tick try app.modules.dispatch(); // dispatch any events produced by .tick
return app.modules.mod.engine.state().should_exit; return app.modules.mod.engine.state().should_exit;
} }
}; };