changed from ints to floats for internal math

This commit is contained in:
sirlilpanda
2026-01-15 17:40:46 +13:00
parent f4a0d14b63
commit 6249f6784f

View File

@@ -8,7 +8,7 @@ const std = @import("std");
// sissor // sissor
pub const VERSON = "0.0.1"; pub const VERSON = "0.0.1";
pub const Real = i32; pub const Real = f32;
const Spaceing = 4; const Spaceing = 4;
pub fn TextType( pub fn TextType(
@@ -207,6 +207,21 @@ pub fn Bamboo(
// }; // };
// } // }
pub inline fn ElementWborder(boarder_width: Padding, boarder_colour: Colour, ele: Ele) Node {
return Node{
.element = .{
.name = ele.name ++ "_boarder",
.style = .{
.padding = boarder_width,
.background_colour = boarder_colour,
},
.children = &[_]Node{
Element(ele),
},
},
};
}
pub inline fn Element(ele: Ele) Node { pub inline fn Element(ele: Ele) Node {
return Node{ return Node{
.element = ele, .element = ele,
@@ -431,8 +446,8 @@ pub fn Bamboo(
std.debug.print("remaining_width : {d}\n", .{remaining_width}); std.debug.print("remaining_width : {d}\n", .{remaining_width});
std.debug.print("remaining_hieght : {d}\n", .{remaining_height}); std.debug.print("remaining_hieght : {d}\n", .{remaining_height});
remaining_width -|= node.element.style.padding.left + node.element.style.padding.right; remaining_width -= node.element.style.padding.left + node.element.style.padding.right;
remaining_height -|= node.element.style.padding.top + node.element.style.padding.bottom; remaining_height -= node.element.style.padding.top + node.element.style.padding.bottom;
if (node.element.children.len == 0) return .{ if (node.element.children.len == 0) return .{
0, 0,
@@ -455,11 +470,11 @@ pub fn Bamboo(
.texture => { .texture => {
switch (node.element.style.layout) { switch (node.element.style.layout) {
.top_to_bottom => { .top_to_bottom => {
remaining_height -|= child.texture.rect.h; remaining_height -= child.texture.rect.h;
remaining_width = @max(remaining_width, child.texture.rect.w); remaining_width = @max(remaining_width, child.texture.rect.w);
}, },
.right_to_left => { .right_to_left => {
remaining_width -|= child.texture.rect.w; remaining_width -= child.texture.rect.w;
remaining_height = @max(remaining_height, child.texture.rect.h); remaining_height = @max(remaining_height, child.texture.rect.h);
}, },
} }
@@ -469,8 +484,8 @@ pub fn Bamboo(
} }
std.debug.print("remaining_width : {d}\n", .{remaining_width}); std.debug.print("remaining_width : {d}\n", .{remaining_width});
std.debug.print("remaining_hieght : {d}\n", .{remaining_height}); std.debug.print("remaining_hieght : {d}\n", .{remaining_height});
remaining_width -|= (@as(Real, @intCast(node.element.children.len -| 1)) * node.element.style.child_gap); remaining_width -= (@as(Real, @floatFromInt(node.element.children.len -| 1)) * node.element.style.child_gap);
remaining_height -|= (@as(Real, @intCast(node.element.children.len -| 1)) * node.element.style.child_gap); remaining_height -= (@as(Real, @floatFromInt(node.element.children.len -| 1)) * node.element.style.child_gap);
std.debug.print("remaining_width : {d}\n", .{remaining_width}); std.debug.print("remaining_width : {d}\n", .{remaining_width});
std.debug.print("remaining_hieght : {d}\n", .{remaining_height}); std.debug.print("remaining_hieght : {d}\n", .{remaining_height});
@@ -540,8 +555,8 @@ pub fn Bamboo(
var find_next_smallest_index: usize = 0; var find_next_smallest_index: usize = 0;
var smallest = filterGrowableChildren(&find_next_smallest_index, node) orelse return; var smallest = filterGrowableChildren(&find_next_smallest_index, node) orelse return;
var second_smallest = &Ele{ .rect = .{ var second_smallest = &Ele{ .rect = .{
.h = std.math.maxInt(Real), .h = std.math.floatMax(Real),
.w = std.math.maxInt(Real), .w = std.math.floatMax(Real),
} }; } };
var width_to_add = remaining; var width_to_add = remaining;
var next_smallest_index: usize = 0; var next_smallest_index: usize = 0;
@@ -556,7 +571,7 @@ pub fn Bamboo(
width_to_add = getAxis(second_smallest) - getAxis(smallest); width_to_add = getAxis(second_smallest) - getAxis(smallest);
} }
} }
width_to_add = @min(width_to_add, @divTrunc(remaining, @as(Real, @intCast(total_growable)))); width_to_add = @min(width_to_add, remaining / @as(Real, @floatFromInt(total_growable)));
if (width_to_add == 0) return; if (width_to_add == 0) return;
var grow_em: usize = 0; var grow_em: usize = 0;
std.debug.print("smallest ; {}\n", .{smallest.rect}); std.debug.print("smallest ; {}\n", .{smallest.rect});
@@ -566,7 +581,7 @@ pub fn Bamboo(
if (getSizing(growable) == .grow) if (getSizing(growable) == .grow)
addToAxis(growable, width_to_add); addToAxis(growable, width_to_add);
std.debug.print("after growable : {}\n", .{growable.rect}); std.debug.print("after growable : {}\n", .{growable.rect});
remaining -|= width_to_add; remaining -= width_to_add;
} }
} }
} }