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

35 lines
1.2 KiB
Zig

//! ----------------------------------------------------
//! ----------------------------------------------------
const App = @import("app");
const Zla = @import("zla");
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(
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");
}
/// ----------------------------------------------------
/// ----------------------------------------------------
pub fn deinit(app: *App) !void {
const renderer = app.resources.getPtr(Renderer) orelse return error.RendererNotSet;
renderer.deinit();
}