NYXEngine/src/plugins/renderer/system/lifetime.zig

36 lines
1.2 KiB
Zig
Raw Normal View History

2026-07-28 23:30:07 +01:00
//! ----------------------------------------------------
//! ----------------------------------------------------
const App = @import("app");
const Zla = @import("zla");
2026-07-28 23:30:07 +01:00
const Renderer = @import("../resource/renderer.zig");
/// ----------------------------------------------------
/// ----------------------------------------------------
pub fn init(app: *App) !void {
// --- # ---
const zla = app.resources.getPtr(Zla) orelse return error.ZlaNotSet;
// --- # ---
const renderer = try app.resources.getOrSet(Renderer.init(
2026-07-28 23:30:07 +01:00
app.alloc,
));
// --- REGISTER ---
zla.registerMethods(Renderer, &.{
.{ .name = "beginPass", .func = Renderer.beginPass },
.{ .name = "endPass", .func = Renderer.endPass },
.{ .name = "drawTriangle", .func = Renderer.drawTriangle },
.{ .name = "drawSquare", .func = Renderer.drawSquare },
});
zla.pushUserdata(renderer);
zla.setGlobal("ren");
2026-07-28 23:30:07 +01:00
}
/// ----------------------------------------------------
/// ----------------------------------------------------
pub fn deinit(app: *App) !void {
const renderer = app.resources.getPtr(Renderer) orelse return error.RendererNotSet;
renderer.deinit();
}