Files
armorpaint/base/sources/ts/slot_brush.ts
T
luboslenco 9bb68734e9 Cleanup
2025-03-10 20:38:53 +01:00

43 lines
1021 B
TypeScript

type slot_brush_t = {
nodes?: ui_nodes_t;
canvas?: ui_node_canvas_t;
image?: iron_gpu_texture_t; // 200px
image_icon?: iron_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;
}