Переход к RenderEngine

This commit is contained in:
2025-12-21 17:26:19 +03:00
parent 6f58967049
commit 3ac35a5046
11 changed files with 138 additions and 33 deletions

View File

@@ -1,19 +1,27 @@
const std = @import("std");
const dvui = @import("dvui");
const Canvas = @import("Canvas.zig");
const CpuRenderEngine = @import("render/CpuRenderEngine.zig");
const WindowContext = @This();
allocator: std.mem.Allocator,
canvas: Canvas,
cpu_render: *CpuRenderEngine,
pub fn init(allocator: std.mem.Allocator) WindowContext {
return .{
.allocator = allocator,
.canvas = Canvas.init(allocator),
};
pub fn init(allocator: std.mem.Allocator) !WindowContext {
var self: WindowContext = undefined;
self.allocator = allocator;
self.cpu_render = try allocator.create(CpuRenderEngine);
errdefer allocator.destroy(self.cpu_render);
self.cpu_render.* = CpuRenderEngine.init(allocator, .Gradient);
self.canvas = Canvas.init(allocator, self.cpu_render.renderEngine());
return self;
}
pub fn deinit(self: *WindowContext) void {
self.canvas.deinit();
self.allocator.destroy(self.cpu_render);
}