Brush node fixes
This commit is contained in:
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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];
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user