From 1730f1e2980bfa2819c541d9b8a3bc0301b8334e Mon Sep 17 00:00:00 2001 From: Lorenzo Torres Date: Thu, 27 Mar 2025 21:42:46 +0100 Subject: Made Renderer a separate module --- src/main.zig | 84 +++++++++++++++++++++++++++--------------------------------- 1 file changed, 38 insertions(+), 46 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index aaeaf38..4bbe084 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1,13 +1,10 @@ const std = @import("std"); -const c = @import("c.zig"); -const window = @import("rendering/window.zig"); const config = @import("config"); -const Renderer = @import("rendering/renderer_vulkan.zig"); -const math = @import("math.zig"); +const math = @import("sideros").math; const mods = @import("mods"); -const ecs = @import("ecs"); -const gltf = @import("rendering/gltf.zig"); +const ecs = @import("ecs/ecs.zig"); +pub const Renderer = @import("renderer"); fn testSystem2(pool: *ecs.Pool) void { for (pool.getQuery(ecs.components.Position), 0..) |position, i| { @@ -23,52 +20,47 @@ pub fn main() !void { const allocator = gpa.allocator(); defer if (gpa.deinit() != .ok) @panic("Leaked memory"); - var global_runtime = mods.GlobalRuntime.init(allocator); - defer global_runtime.deinit(); - try global_runtime.addFunction("debug", mods.Wasm.debug); + //var global_runtime = mods.GlobalRuntime.init(allocator); + //defer global_runtime.deinit(); + //try global_runtime.addFunction("debug", mods.Wasm.debug); - const file = try std.fs.cwd().openFile("assets/core.wasm", .{}); - const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB - var parser = mods.Parser{ - .bytes = all, - .byte_idx = 0, - .allocator = allocator, - }; - const module = parser.parseModule() catch |err| { - std.debug.print("[ERROR]: error at byte {x}(0x{x})\n", .{ parser.byte_idx, parser.bytes[parser.byte_idx] }); - return err; - }; - var runtime = try mods.Runtime.init(allocator, module, &global_runtime); - defer runtime.deinit(allocator); + //const file = try std.fs.cwd().openFile("assets/core.wasm", .{}); + //const all = try file.readToEndAlloc(allocator, 1_000_000); // 1 MB + //var parser = mods.Parser{ + // .bytes = all, + // .byte_idx = 0, + // .allocator = allocator, + //}; + //const module = parser.parseModule() catch |err| { + // std.debug.print("[ERROR]: error at byte {x}(0x{x})\n", .{ parser.byte_idx, parser.bytes[parser.byte_idx] }); + // return err; + //}; + //var runtime = try mods.Runtime.init(allocator, module, &global_runtime); + //defer runtime.deinit(allocator); - var parameters = [_]usize{}; - try runtime.callExternal(allocator, "preinit", ¶meters); - const w = try window.Window.create(800, 600, "sideros"); + //var parameters = [_]usize{}; + //try runtime.callExternal(allocator, "preinit", ¶meters); + const w = try Renderer.Window.create(800, 600, "sideros"); defer w.destroy(); - // var pool = try ecs.Pool.init(allocator); - // defer pool.deinit(allocator); + // TODO(luccie-cmd): Renderer.create shouldn't return an error + var r = try Renderer.create(allocator, w); + defer r.destroy(); - //try pool.addSystemGroup(&[_]entities.System{ - // testSystem, - //}); - // try pool.addSystemGroup(&[_]ecs.System{ - // testSystem2, - // }); + const resources = ecs.Resources{ + .window = w, + .renderer = r, + }; - // for (0..1000) |_| { - // const entity = try pool.createEntity(); - // try pool.addComponent(entity, ecs.components.Position{ .x = 1.0, .y = 0.5, .z = 3.0 }); - // try pool.addComponent(entity, ecs.components.Speed{ .speed = 5.0 }); - // } + var pool = try ecs.Pool.init(allocator, resources); + defer pool.deinit(allocator); - // TODO(luccie-cmd): Renderer.create shouldn't return an error - // var r = try Renderer.create(allocator, w); - // defer r.destroy(); + try pool.addSystemGroup(&[_]ecs.System{ + testSystem2, + }); - // while (!w.shouldClose()) { - // c.glfwPollEvents(); - // try r.tick(); - // pool.tick(); - // } + while (!w.shouldClose()) { + try r.tick(); + pool.tick(); + } } -- cgit v1.2.3