Files
armorpaint/paint/sources/slot_brush.ts
T
luboslenco 5405d47fcf Format
2025-10-15 18:39:55 +02:00

43 lines
1.0 KiB
TypeScript

type slot_brush_t = {
nodes?: ui_nodes_t;
canvas?: ui_node_canvas_t;
image?: gpu_texture_t; // 200px
image_icon?: gpu_texture_t; // 50px
preview_ready?: bool;
id?: i32;
};
let slot_brush_default_canvas: buffer_t = null;
function slot_brush_create(c: ui_node_canvas_t = null): slot_brush_t {
let raw: slot_brush_t = {};
raw.nodes = ui_nodes_create();
raw.preview_ready = false;
raw.id = 0;
for (let i: i32 = 0; i < project_brushes.length; ++i) {
let brush: slot_brush_t = project_brushes[i];
if (brush.id >= raw.id) {
raw.id = brush.id + 1;
}
}
if (c == null) {
if (slot_brush_default_canvas == null) { // Synchronous
let b: buffer_t = data_get_blob("default_brush.arm");
slot_brush_default_canvas = b;
}
raw.canvas = armpack_decode(slot_brush_default_canvas);
raw.canvas = util_clone_canvas(raw.canvas); // Clone to create GC references
let id: i32 = (raw.id + 1);
raw.canvas.name = "Brush " + id;
}
else {
raw.canvas = util_clone_canvas(c);
}
return raw;
}