Brush node fixes

This commit is contained in:
luboslenco
2024-09-24 16:50:54 +02:00
parent 20ac542deb
commit c790f88e3a
18 changed files with 43 additions and 54 deletions
+1 -6
View File
@@ -494,12 +494,7 @@ function base_resize() {
base_appy = 0;
}
if (ui_nodes_grid != null) {
app_notify_on_next_frame(function (grid: image_t) {
image_unload(grid);
}, ui_nodes_grid);
ui_nodes_grid = null;
}
ui_nodes_grid_redraw = true;
base_redraw_ui();
}
+2 -2
View File
@@ -4,12 +4,12 @@ type boolean_node_t = {
value?: bool;
};
function boolean_node_create(args: f32_array_t): boolean_node_t {
function boolean_node_create(raw: ui_node_t, args: f32_array_t): boolean_node_t {
let n: boolean_node_t = {};
n.base = logic_node_create();
n.base.get = boolean_node_get;
n.base.set = boolean_node_set;
n.value = args[0] > 0.0;
n.value = args == null ? false : args[0] > 0.0;
return n;
}
+1 -1
View File
@@ -5,7 +5,7 @@ type color_node_t = {
image?: image_t;
};
function color_node_create(args: f32_array_t): color_node_t {
function color_node_create(raw: ui_node_t, args: f32_array_t): color_node_t {
let r: f32 = args == null ? 0.8 : args[0];
let g: f32 = args == null ? 0.8 : args[1];
let b: f32 = args == null ? 0.8 : args[2];
+2 -2
View File
@@ -5,13 +5,13 @@ type float_node_t = {
image?: image_t;
};
function float_node_create(args: f32_array_t): float_node_t {
function float_node_create(raw: ui_node_t, args: f32_array_t): float_node_t {
let n: float_node_t = {};
n.base = logic_node_create();
n.base.get = float_node_get;
n.base.get_as_image = float_node_get_as_image;
n.base.set = float_node_set;
n.value = args[0];
n.value = args == null ? 0.5 : args[0];
return n;
}
+2 -2
View File
@@ -4,12 +4,12 @@ type integer_node_t = {
value?: i32;
};
function integer_node_create(args: f32_array_t): integer_node_t {
function integer_node_create(raw: ui_node_t, args: f32_array_t): integer_node_t {
let n: float_node_t = {};
n.base = logic_node_create();
n.base.get = integer_node_get;
n.base.set = integer_node_set;
n.value = args[0];
n.value = args == null ? 0 : args[0];
return n;
}
+1 -1
View File
@@ -5,7 +5,7 @@ type math_node_t = {
use_clamp?: bool;
};
function math_node_create(args: f32_array_t): math_node_t {
function math_node_create(raw: ui_node_t, args: f32_array_t): math_node_t {
let n: math_node_t = {};
n.base = logic_node_create();
n.base.get = math_node_get;
+1 -1
View File
@@ -3,7 +3,7 @@ type null_node_t = {
base?: logic_node_t;
};
function null_node_create(args: f32_array_t): null_node_t {
function null_node_create(raw: ui_node_t, args: f32_array_t): null_node_t {
let n: null_node_t = {};
n.base = logic_node_create();
n.base.get = float_node_get;
+1 -1
View File
@@ -8,7 +8,7 @@ let random_node_b: i32;
let random_node_c: i32;
let random_node_d: i32 = -1;
function random_node_create(args: f32_array_t): random_node_t {
function random_node_create(raw: ui_node_t, args: f32_array_t): random_node_t {
let n: random_node_t = {};
n.base = logic_node_create();
n.base.get = random_node_get;
+1 -1
View File
@@ -3,7 +3,7 @@ type separate_vector_node_t = {
base?: logic_node_t;
};
function separate_vector_node_create(args: f32_array_t): separate_vector_node_t {
function separate_vector_node_create(raw: ui_node_t, args: f32_array_t): separate_vector_node_t {
let n: separate_vector_node_t = {};
n.base = logic_node_create();
n.base.get = separate_vector_node_get;
+2 -2
View File
@@ -4,12 +4,12 @@ type string_node_t = {
value?: string;
};
function string_node_create(arg: string): string_node_t {
function string_node_create(raw: ui_node_t, args: f32_array_t): string_node_t {
let n: string_node_t = {};
n.base = logic_node_create();
n.base.get = string_node_get;
n.base.set = string_node_set;
n.value = arg;
n.value = args == null ? "" : sys_buffer_to_string(args.buffer);
return n;
}
+1 -1
View File
@@ -3,7 +3,7 @@ type time_node_t = {
base?: logic_node_t;
};
function time_node_create(args: f32_array_t): time_node_t {
function time_node_create(raw: ui_node_t, args: f32_array_t): time_node_t {
let n: time_node_t = {};
n.base = logic_node_create();
n.base.get = time_node_get;
+1 -1
View File
@@ -5,7 +5,7 @@ type vector_math_node_t = {
v?: vec4_t;
};
function vector_math_node_create(args: f32_array_t): vector_math_node_t {
function vector_math_node_create(raw: ui_node_t, args: f32_array_t): vector_math_node_t {
let n: vector_math_node_t = {};
n.base = logic_node_create();
n.base.get = vector_math_node_get;
+4 -4
View File
@@ -5,7 +5,7 @@ type vector_node_t = {
image?: image_t;
};
function vector_node_create(args: f32_array_t): vector_node_t {
function vector_node_create(raw: ui_node_t, args: f32_array_t): vector_node_t {
let n: vector_node_t = {};
n.base = logic_node_create();
n.base.get = vector_node_get;
@@ -14,9 +14,9 @@ function vector_node_create(args: f32_array_t): vector_node_t {
n.value = vec4_create();
if (args != null) {
logic_node_add_input(n.base, float_node_create(f32_array_create_x(args[0])), 0);
logic_node_add_input(n.base, float_node_create(f32_array_create_x(args[1])), 0);
logic_node_add_input(n.base, float_node_create(f32_array_create_x(args[2])), 0);
logic_node_add_input(n.base, float_node_create(null, f32_array_create_x(args[0])), 0);
logic_node_add_input(n.base, float_node_create(null, f32_array_create_x(args[1])), 0);
logic_node_add_input(n.base, float_node_create(null, f32_array_create_x(args[2])), 0);
}
return n;
+12 -21
View File
@@ -4,18 +4,12 @@ let parser_logic_nodes: ui_node_t[];
let parser_logic_links: ui_node_link_t[];
let parser_logic_parsed_nodes: string[] = null;
let parser_logic_parsed_labels: map_t<string, string> = null;
let parser_logic_node_map: map_t<string, logic_node_ext_t>;
let parser_logic_raw_map: map_t<logic_node_ext_t, ui_node_t>;
function parser_logic_get_logic_node(node: ui_node_t): logic_node_ext_t {
return map_get(parser_logic_node_map, parser_logic_node_name(node));
}
function parser_logic_get_raw_node(node: logic_node_ext_t): ui_node_t {
return map_get(parser_logic_raw_map, node);
}
function parser_logic_get_node(id: i32): ui_node_t {
for (let i: i32 = 0; i < parser_logic_nodes.length; ++i) {
let n: ui_node_t = parser_logic_nodes[i];
@@ -85,9 +79,7 @@ function parser_logic_parse(canvas: ui_node_canvas_t) {
parser_logic_links = canvas.links;
parser_logic_parsed_nodes = [];
parser_logic_parsed_labels = map_create();
parser_logic_node_map = map_create();
parser_logic_raw_map = map_create();
let root_nodes: ui_node_t[] = parser_logic_get_root_nodes(canvas);
for (let i: i32 = 0; i < root_nodes.length; ++i) {
@@ -108,9 +100,8 @@ function parser_logic_build_node(node: ui_node_t): string {
array_push(parser_logic_parsed_nodes, name);
// Create node
let v: logic_node_ext_t = parser_logic_create_node_instance(node.type, null);
let v: logic_node_ext_t = parser_logic_create_node_instance(node.type, node, null);
map_set(parser_logic_node_map, name, v);
map_set(parser_logic_raw_map, v, node);
// Create inputs
let inp_node: logic_node_ext_t = null;
@@ -185,39 +176,39 @@ function parser_logic_build_default_node(inp: ui_node_socket_t): logic_node_ext_
if (inp.default_value == null) {
inp.default_value = f32_array_create_xyz(0, 0, 0);
}
v = parser_logic_create_node_instance("vector_node", inp.default_value);
v = parser_logic_create_node_instance("vector_node", null, inp.default_value);
}
else if (inp.type == "RGBA") {
if (inp.default_value == null) {
inp.default_value = f32_array_create_xyzw(0, 0, 0, 0);
}
v = parser_logic_create_node_instance("color_node", inp.default_value);
v = parser_logic_create_node_instance("color_node", null, inp.default_value);
}
else if (inp.type == "RGB") {
if (inp.default_value == null) {
inp.default_value = f32_array_create_xyzw(0, 0, 0, 0);
}
v = parser_logic_create_node_instance("color_node", inp.default_value);
v = parser_logic_create_node_instance("color_node", null, inp.default_value);
}
else if (inp.type == "VALUE") {
v = parser_logic_create_node_instance("float_node", inp.default_value);
v = parser_logic_create_node_instance("float_node", null, inp.default_value);
}
else if (inp.type == "INT") {
v = parser_logic_create_node_instance("integer_node", inp.default_value);
v = parser_logic_create_node_instance("integer_node", null, inp.default_value);
}
else if (inp.type == "BOOLEAN") {
v = parser_logic_create_node_instance("boolean_node", inp.default_value);
v = parser_logic_create_node_instance("boolean_node", null, inp.default_value);
}
else if (inp.type == "STRING") {
v = parser_logic_create_node_instance("string_node", inp.default_value);
v = parser_logic_create_node_instance("string_node", null, inp.default_value);
}
else {
v = parser_logic_create_node_instance("null_node", null);
v = parser_logic_create_node_instance("null_node", null, null);
}
return v;
}
function parser_logic_create_node_instance(node_type: string, args: f32_array_t): logic_node_ext_t {
function parser_logic_create_node_instance(node_type: string, raw: ui_node_t, args: f32_array_t): logic_node_ext_t {
if (map_get(parser_logic_custom_nodes, node_type) != null) {
let node: logic_node_t = logic_node_create();
node.get = map_get(parser_logic_custom_nodes, node_type);
@@ -231,6 +222,6 @@ function parser_logic_create_node_instance(node_type: string, args: f32_array_t)
nodes_brush_init();
}
let create: (args: f32_array_t)=>logic_node_ext_t = map_get(nodes_brush_creates, node_type);
return create(args);
let create: (raw: ui_node_t, args: f32_array_t)=>logic_node_ext_t = map_get(nodes_brush_creates, node_type);
return create(raw, args);
}
+1
View File
@@ -836,6 +836,7 @@ function ui_nodes_render() {
image_unload(ui_nodes_grid);
}
ui_nodes_draw_grid();
ui_nodes_grid_redraw = false;
}
///if (is_paint || is_sculpt)