mod(renderer): initial version of double buffer intermediate renderer

This branch will implement the necessary changes for the widgets and
their implementations to use the new renderer correctly.
This commit is contained in:
2025-01-30 20:53:01 +01:00
parent c83ceff925
commit 3decc541a9
9 changed files with 184 additions and 225 deletions

View File

@@ -3,7 +3,7 @@ const zterm = @import("zterm");
const App = zterm.App(
union(enum) {},
zterm.Renderer.Direct,
zterm.Renderer.Buffered,
true,
);
const Key = zterm.Key;
@@ -26,7 +26,8 @@ pub fn main() !void {
const allocator = gpa.allocator();
var app: App = .{};
var renderer: App.Renderer = .{};
var renderer = App.Renderer.init(allocator);
defer renderer.deinit();
// TODO: when not running fullscreen, the application needs to screen down accordingly to display the contents
// -> size hint how much should it use?
@@ -75,17 +76,19 @@ pub fn main() !void {
},
.{
.layout = Layout.createFrom(Layout.VStack.init(allocator, .{
Widget.createFrom(blk: {
const file = try std.fs.cwd().openFile("./examples/stack.zig", .{});
defer file.close();
break :blk Widget.RawText.init(allocator, file);
}),
// Widget.createFrom(blk: {
// const file = try std.fs.cwd().openFile("./examples/stack.zig", .{});
// defer file.close();
// break :blk Widget.RawText.init(allocator, file);
// }),
Widget.createFrom(Widget.Spacer.init(allocator)),
Widget.createFrom(blk: {
const file = try std.fs.cwd().openFile("./examples/stack.zig", .{});
defer file.close();
break :blk Widget.RawText.init(allocator, file);
}),
Widget.createFrom(Widget.Spacer.init(allocator)),
Widget.createFrom(Widget.Spacer.init(allocator)),
// Widget.createFrom(blk: {
// const file = try std.fs.cwd().openFile("./examples/stack.zig", .{});
// defer file.close();
// break :blk Widget.RawText.init(allocator, file);
// }),
})),
},
),