points теперь слайс

This commit is contained in:
2026-03-03 20:38:57 +03:00
parent 9a795c22f1
commit 446cd80616
10 changed files with 86 additions and 67 deletions

View File

@@ -6,6 +6,7 @@ const Document = @import("../models/Document.zig");
const Property = @import("../models/Property.zig").Property;
const PropertyData = @import("../models/Property.zig").Data;
const Rect_i = @import("../models/basic_models.zig").Rect_i;
const Point2_f = @import("../models/basic_models.zig").Point2_f;
const Tool = @import("../toolbar/Tool.zig");
const RenderStats = @import("../render/RenderStats.zig");
const icons = @import("../icons.zig");
@@ -564,10 +565,12 @@ fn drawPropertyEditor(canvas: *Canvas, obj: *Document.Object, prop: *const Prope
}
},
.points => |points| {
var list = points.clone(canvas.allocator) catch {
dvui.label(@src(), "Points: {d}", .{points.items.len}, .{});
var list = std.ArrayList(Point2_f).empty;
list.appendSlice(canvas.allocator, points) catch {
dvui.label(@src(), "Points: {d}", .{points.len}, .{});
return;
};
defer list.deinit(canvas.allocator);
dvui.label(@src(), "Points: {d}", .{list.items.len}, .{});
var changed = false;
@@ -677,13 +680,13 @@ fn drawPropertyEditor(canvas: *Canvas, obj: *Document.Object, prop: *const Prope
}
if (changed) {
obj.setProperty(canvas.allocator, .{ .data = .{ .points = list } }) catch {
list.deinit(canvas.allocator);
const slice = canvas.allocator.alloc(Point2_f, list.items.len) catch return;
@memcpy(slice, list.items);
obj.setProperty(canvas.allocator, .{ .data = .{ .points = slice } }) catch {
canvas.allocator.free(slice);
return;
};
canvas.requestRedraw();
} else {
list.deinit(canvas.allocator);
}
},
.fill_rgba => |rgba| {