Node preview fixes

This commit is contained in:
luboslenco
2025-09-27 14:01:12 +02:00
parent bc6d05279e
commit 3daff6f5ef
3 changed files with 16 additions and 12 deletions
+2 -1
View File
@@ -746,7 +746,8 @@ void ui_node_draw(ui_node_t *node, ui_node_canvas_t *canvas) {
gpu_texture_t *image = ui_nodes_preview_image(node);
if (image != NULL) {
draw_set_color(0xffffffff);
draw_scaled_image(image, nx, ny - w, w, w);
float ph = w * (image->height / (float)image->width);
draw_scaled_image(image, nx, ny - ph, w, ph);
}
}
+7 -10
View File
@@ -53,7 +53,7 @@ let _ui_nodes_node_search_first: bool;
let _ui_nodes_node_search_done: ()=>void;
function ui_viewnodes_init() {
ui_nodes_preview_image = uiviewnodes_preview_image;
ui_nodes_preview_image = ui_nodes_get_node_preview_image;
ui_nodes_on_link_drag = ui_viewnodes_on_link_drag;
ui_nodes_on_socket_released = ui_viewnodes_on_socket_released;
ui_nodes_on_canvas_released = ui_viewnodes_on_canvas_released;
@@ -62,10 +62,6 @@ function ui_viewnodes_init() {
nodes_material_init();
}
function uiviewnodes_preview_image(n: ui_node_t): gpu_texture_t {
return ui_nodes_get_node_preview_image(n);
}
function ui_viewnodes_on_link_drag(link_drag_id: i32, is_new_link: bool) {
if (!is_new_link) {
return;
@@ -975,13 +971,14 @@ function ui_nodes_render() {
// Node previews
if (context_raw.selected_node_preview && nodes.nodes_selected_id.length > 0) {
let sel: ui_node_t = ui_get_node(c.nodes, nodes.nodes_selected_id[0]);
let tw: f32 = 128 * UI_SCALE();
let tx: f32 = ui_nodes_ww - tw - 8 * UI_SCALE();
let ty: f32 = ui_nodes_wh - tw - 8 * UI_SCALE();
let img: gpu_texture_t = ui_nodes_get_node_preview_image(sel);
if (img != null && !(sel.flags & _ui_node_flag_t.PREVIEW)) {
let tw: f32 = 128 * UI_SCALE();
let th: f32 = tw * (img.height / img.width);
let tx: f32 = ui_nodes_ww - tw - 8 * UI_SCALE();
let ty: f32 = ui_nodes_wh - th - 8 * UI_SCALE();
if (img == context_raw.node_preview) {
ui_draw_shadow(tx, ty, tw, tw);
ui_draw_shadow(tx, ty, tw, th);
}
let single_channel: bool = sel.type == "LAYER_MASK";
if (single_channel) {
@@ -989,7 +986,7 @@ function ui_nodes_render() {
gpu_set_int(ui_view2d_channel_loc, 1);
}
draw_set_color(0xffffffff);
draw_scaled_image(img, tx, ty, tw, tw);
draw_scaled_image(img, tx, ty, tw, th);
if (single_channel) {
draw_set_pipeline(null);
}
+7 -1
View File
@@ -135,7 +135,13 @@ function ui_view2d_render() {
tex = project_get_image(context_raw.texture);
}
else if (ui_view2d_type == view_2d_type_t.NODE) {
tex = context_raw.node_preview;
let nodes: ui_nodes_t = ui_nodes_get_nodes();
let c: ui_node_canvas_t = ui_nodes_get_canvas(true);
let sel: ui_node_t = ui_get_node(c.nodes, nodes.nodes_selected_id[0]);
let img: gpu_texture_t = ui_nodes_get_node_preview_image(sel);
if (img != null) {
tex = ui_nodes_get_node_preview_image(sel);
}
}
else if (ui_view2d_type == view_2d_type_t.LAYER) {
let layer: slot_layer_t = l;