fixed texture rendering
This commit is contained in:
60
src/root.zig
60
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 = .{
|
||||
.texture => |texture| try command_list.append(alloc, .{
|
||||
.texture = .{
|
||||
.pos = node.element.pos,
|
||||
.texture = texture,
|
||||
.z_index = node.element.z_index,
|
||||
} }),
|
||||
},
|
||||
}),
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user