fixed texture rendering

This commit is contained in:
2026-01-19 22:02:41 +13:00
parent f5236a9148
commit f2190fb781

View File

@@ -176,6 +176,16 @@ pub const Colour = struct {
a: u8 = 255, a: u8 = 255,
}; };
const Dir = enum {
x,
y,
};
pub const Scrollable = struct {
offset: *Real,
dir: Dir,
};
pub const MouseState = struct { pub const MouseState = struct {
pos: Pos, pos: Pos,
left: bool, 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, "on_click : {?},\n", .{node.element.on_click});
try printWithLevel(writer, level + 1, "rect : {any},\n", .{node.element.rect}); try printWithLevel(writer, level + 1, "rect : {any},\n", .{node.element.rect});
try printWithLevel(writer, level + 1, "style : .{{\n", .{}); 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 node.element.style.printStyle(writer, level + 1);
try printWithLevel(writer, level + 1, "children : {{\n", .{}); try printWithLevel(writer, level + 1, "children : {{\n", .{});
for (node.element.children, 0..) |_, i| { for (node.element.children, 0..) |_, i| {
@@ -272,6 +287,8 @@ pub fn Shoots(
// the on hover call back will be ran // the on hover call back will be ran
allow_on_hover_when_occluded: bool = true, allow_on_hover_when_occluded: bool = true,
allow_on_click_when_occluded: bool = false, allow_on_click_when_occluded: bool = false,
scrollable: ?Scrollable = null,
}; };
pub const Interact = struct { pub const Interact = struct {
@@ -284,6 +301,8 @@ pub fn Shoots(
rect, rect,
text, text,
texture, texture,
// clip_start,
// clip_end,
}; };
pub const RenderCommand = union(RenderCommandType) { pub const RenderCommand = union(RenderCommandType) {
@@ -301,20 +320,18 @@ pub fn Shoots(
}, },
texture: struct { texture: struct {
texture: Texture, texture: Texture,
pos: Pos,
z_index: usize = 0, 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( pub inline fn ElementWborder(
boarder_width: Padding, boarder_width: Padding,
boarder_colour: Colour, 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 { pub fn closeElement(node: *Node, parent: *Node) void {
switch (node.*) { switch (node.*) {
.element => { .element => {
@@ -392,7 +419,12 @@ pub fn Shoots(
parent.element.rect.w += node.text.getTextWidth(); parent.element.rect.w += node.text.getTextWidth();
// std.debug.print("parent.element.rect.w : {}\n", .{parent.element.rect.w}); // 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, .text = text,
.z_index = node.element.z_index, .z_index = node.element.z_index,
} }), } }),
.texture => |texture| try command_list.append(alloc, .{ .texture = .{ .texture => |texture| try command_list.append(alloc, .{
.texture = .{
.pos = node.element.pos, .pos = node.element.pos,
.texture = texture, .texture = texture,
.z_index = node.element.z_index, .z_index = node.element.z_index,
} }), },
}),
} }
} }
}, },