From f2190fb7814971f6f66bd292b7c13c2a7ac38ddf Mon Sep 17 00:00:00 2001 From: sirlilpanda Date: Mon, 19 Jan 2026 22:02:41 +1300 Subject: [PATCH] fixed texture rendering --- src/root.zig | 66 +++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 50 insertions(+), 16 deletions(-) diff --git a/src/root.zig b/src/root.zig index ad1c663..d3c3717 100644 --- a/src/root.zig +++ b/src/root.zig @@ -176,6 +176,16 @@ pub const Colour = struct { a: u8 = 255, }; +const Dir = enum { + x, + y, +}; + +pub const Scrollable = struct { + offset: *Real, + dir: Dir, +}; + pub const MouseState = struct { pos: Pos, left: bool, @@ -229,6 +239,11 @@ pub fn Shoots( try printWithLevel(writer, level + 1, "on_click : {?},\n", .{node.element.on_click}); try printWithLevel(writer, level + 1, "rect : {any},\n", .{node.element.rect}); try printWithLevel(writer, level + 1, "style : .{{\n", .{}); + try printWithLevel(writer, level + 1, "on_click : {any},\n", .{node.element.on_click}); + try printWithLevel(writer, level + 1, "allow_on_click_when_occluded : {any},\n", .{node.element.allow_on_click_when_occluded}); + try printWithLevel(writer, level + 1, "on_hover : {any},\n", .{node.element.on_hover}); + try printWithLevel(writer, level + 1, "allow_on_hover_when_occluded : {any},\n", .{node.element.allow_on_hover_when_occluded}); + try printWithLevel(writer, level + 1, "scrollable : {?},\n", .{node.element.scrollable}); try node.element.style.printStyle(writer, level + 1); try printWithLevel(writer, level + 1, "children : {{\n", .{}); for (node.element.children, 0..) |_, i| { @@ -272,6 +287,8 @@ pub fn Shoots( // the on hover call back will be ran allow_on_hover_when_occluded: bool = true, allow_on_click_when_occluded: bool = false, + + scrollable: ?Scrollable = null, }; pub const Interact = struct { @@ -284,6 +301,8 @@ pub fn Shoots( rect, text, texture, + // clip_start, + // clip_end, }; pub const RenderCommand = union(RenderCommandType) { @@ -301,20 +320,18 @@ pub fn Shoots( }, texture: struct { texture: Texture, - pos: Pos, z_index: usize = 0, + pos: Pos, }, + // clip_start: struct { + // pos: Pos, + // z_index: usize = 0, + // rect: Rect, + // rounding: ?Real, + // }, + // clip_end: struct {}, }; - // focused: *Node, - - // /// highly suggested that you use an area for the alloc - // pub fn init() Self { - // return Self{ - // .alloc = alloc, - // }; - // } - pub inline fn ElementWborder( boarder_width: Padding, boarder_colour: Colour, @@ -358,6 +375,16 @@ pub fn Shoots( ); } + pub inline fn Image(texture: Texture) Node { + return Element( + .{ + .children = &[_]Node{.{ + .texture = texture, + }}, + }, + ); + } + pub fn closeElement(node: *Node, parent: *Node) void { switch (node.*) { .element => { @@ -392,7 +419,12 @@ pub fn Shoots( parent.element.rect.w += node.text.getTextWidth(); // std.debug.print("parent.element.rect.w : {}\n", .{parent.element.rect.w}); }, - .texture => return, + .texture => { + std.debug.print("before {any}\n", .{parent.element.rect}); + parent.element.rect.h += node.texture.rect.h; + parent.element.rect.w += node.texture.rect.w; + std.debug.print("after {any}\n", .{parent.element.rect}); + }, } } @@ -459,11 +491,13 @@ pub fn Shoots( .text = text, .z_index = node.element.z_index, } }), - .texture => |texture| try command_list.append(alloc, .{ .texture = .{ - .pos = node.element.pos, - .texture = texture, - .z_index = node.element.z_index, - } }), + .texture => |texture| try command_list.append(alloc, .{ + .texture = .{ + .pos = node.element.pos, + .texture = texture, + .z_index = node.element.z_index, + }, + }), } } },