Node preview progress

This commit is contained in:
luboslenco
2025-09-28 17:50:13 +02:00
parent 1ed8f14c04
commit 3b65a7a6a3
5 changed files with 16 additions and 5 deletions
+1 -5
View File
@@ -19,8 +19,6 @@ static bool ui_box_select = false;
static int ui_box_select_x = 0;
static int ui_box_select_y = 0;
static const int ui_max_buttons = 9;
static void (*ui_on_header_released)(ui_node_t *) = NULL;
static void (*ui_nodes_on_node_remove)(ui_node_t *) = NULL;
static int ui_node_id = -1;
static ui_node_t *node_resize = NULL;
@@ -34,6 +32,7 @@ ui_canvas_control_t *(*ui_nodes_on_canvas_control)(void) = NULL;
void (*ui_nodes_on_canvas_released)(void) = NULL;
void (*ui_nodes_on_socket_released)(int) = NULL;
void (*ui_nodes_on_link_drag)(int, bool) = NULL;
void (*ui_nodes_on_node_remove)(ui_node_t *) = NULL;
bool ui_nodes_grid_snap = true;
int ui_nodes_grid_snap_w = 40;
@@ -1011,9 +1010,6 @@ void ui_node_canvas(ui_nodes_t *nodes, ui_node_canvas_t *canvas) {
// No drag performed, select single node
current_nodes->nodes_selected_id->length = 0;
i32_array_push(current_nodes->nodes_selected_id, node->id);
if (ui_on_header_released != NULL) {
ui_on_header_released(node);
}
}
}
+1
View File
@@ -137,6 +137,7 @@ extern ui_canvas_control_t *(*ui_nodes_on_canvas_control)(void);
extern void (*ui_nodes_on_canvas_released)(void);
extern void (*ui_nodes_on_socket_released)(int);
extern void (*ui_nodes_on_link_drag)(int, bool);
extern void (*ui_nodes_on_node_remove)(ui_node_t *);
extern bool ui_nodes_grid_snap;
void ui_node_canvas_encode(ui_node_canvas_t *canvas);
+1
View File
@@ -687,6 +687,7 @@ declare let ui_touch_tooltip: bool;
declare let ui_on_border_hover: any;
declare let ui_on_tab_drop: any;
declare let ui_nodes_on_link_drag: any;
declare let ui_nodes_on_node_remove: any;
declare let ui_nodes_on_socket_released: any;
declare let ui_nodes_on_canvas_released: any;
declare let ui_nodes_on_canvas_control: any;
+4
View File
@@ -369,4 +369,8 @@ function tab_materials_delete_material(m: slot_material_t) {
let m: slot_material_t = project_materials[i];
tab_materials_update_material_pointers(m.canvas.nodes, i);
}
for (let i: i32 = 0; i < m.canvas.nodes.length; ++i) {
let n: ui_node_t = m.canvas.nodes[i];
ui_viewnodes_on_node_remove(n);
}
}
+9
View File
@@ -55,6 +55,7 @@ let _ui_nodes_node_search_done: ()=>void;
function ui_viewnodes_init() {
ui_nodes_preview_image = ui_nodes_get_node_preview_image;
ui_nodes_on_link_drag = ui_viewnodes_on_link_drag;
ui_nodes_on_node_remove = ui_viewnodes_on_node_remove;
ui_nodes_on_socket_released = ui_viewnodes_on_socket_released;
ui_nodes_on_canvas_released = ui_viewnodes_on_canvas_released;
ui_nodes_on_canvas_control = ui_viewnodes_on_canvas_control;
@@ -62,6 +63,14 @@ function ui_viewnodes_init() {
nodes_material_init();
}
function ui_viewnodes_on_node_remove(n: ui_node_t) {
let img: gpu_texture_t = map_get(context_raw.node_preview_map, n);
if (img != null) {
iron_delete_texture(img);
map_delete(context_raw.node_preview_map, n);
}
}
function ui_viewnodes_on_link_drag(link_drag_id: i32, is_new_link: bool) {
if (!is_new_link) {
return;