notes about structure

This commit is contained in:
2024-07-09 22:30:55 -04:00
parent 2bb3b71b2b
commit 4e2cf3eb3b
2 changed files with 8 additions and 1 deletions

View File

@@ -17,12 +17,14 @@ pub fn main() !void {
const alloc = gpa.allocator(); const alloc = gpa.allocator();
// todo declare or infer module dependencies, topological sort for init order // todo declare or infer module dependencies, topological sort for init order
// problem: how to specify runtime options, like Window title?
// problem: where should gpa go? probably some "Engine" structure in nu.zig // problem: where should gpa go? probably some "Engine" structure in nu.zig
// don't necessarily need to declare topological sort - depth-first traversal // don't necessarily need to declare topological sort - depth-first traversal
// of each module's dependencies without repeats would do. // of each module's dependencies without repeats would do.
// idea - use a structure like std.Build.Step where the polymorphic part is a
// component of the larger structure.
try nu.Window.init(alloc); try nu.Window.init(alloc);
defer nu.Window.deinit(); defer nu.Window.deinit();

View File

@@ -92,6 +92,11 @@ pub fn frame() !void {
for (present_callbacks.items) |cb| { for (present_callbacks.items) |cb| {
cb(cmd); cb(cmd);
} }
// todo really don't like this.
// there should be some comptime means for a module to invoke hooks on other modules. eg there should be some
// "record" hook that for each module that gets called here; but if the render module is never added then that
// hook never gets called
target.end_rendering(cmd); target.end_rendering(cmd);
try cmd.endCommandBuffer(); try cmd.endCommandBuffer();