Add capture node preview button

This commit is contained in:
luboslenco
2025-10-17 18:18:33 +02:00
parent 44bc9eca9f
commit b92ba86560
+36
View File
@@ -343,6 +343,12 @@ function ui_viewnodes_on_canvas_released() {
}
}
if (ui_menu_button(tr("Capture Preview"))) {
sys_notify_on_next_frame(function() {
ui_nodes_capture_preview();
});
}
if (ui_nodes_canvas_type == canvas_type_t.MATERIAL) {
ui_menu_separator();
if (ui_menu_button(tr("2D View"))) {
@@ -1535,3 +1541,33 @@ function ui_nodes_get_group(canvases: ui_node_canvas_t[], name: string): ui_node
}
return null;
}
function ui_nodes_capture_preview() {
let ui_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, ui_nodes.nodes_selected_id[0]);
let img: gpu_texture_t = ui_nodes_get_node_preview_image(sel);
if (img == null) {
return;
}
if (project_raw.packed_assets == null) {
project_raw.packed_assets = [];
}
let num: i32 = 0;
let abs: string = "/packed/node_preview0.png";
for (let i: i32 = 0; i < project_raw.packed_assets.length; ++i) {
let pa: packed_asset_t = project_raw.packed_assets[i];
if (pa.name == abs) {
i = 0;
num++;
abs = "/packed/node_preview" + num + ".png";
}
}
let pa: packed_asset_t = {name : abs, bytes : gpu_get_texture_pixels(img)};
array_push(project_raw.packed_assets, pa);
map_set(data_cached_images, abs, img);
import_texture_run(abs);
}