From 3d4fe3447fe464214f74cceb569798dc8a100b05 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Fri, 28 Jun 2024 14:48:48 +0700 Subject: [PATCH] - Array processor are now use batched output by default (doesn't mean anything functionally). --- datafiles/data/Theme.zip | Bin 6396812 -> 6396781 bytes .../__node_3d_displace/__node_3d_displace.gml | 4 +- scripts/node_average/node_average.gml | 54 ++++++------------ scripts/node_bloom/node_bloom.gml | 27 +++++---- scripts/node_color_data/node_color_data.gml | 17 +++--- scripts/node_line/node_line.gml | 1 - scripts/node_processor/node_processor.gml | 51 +++++++++++------ scripts/node_raymarching/node_raymarching.gml | 1 - scripts/node_transform/node_transform.gml | 1 - 9 files changed, 76 insertions(+), 80 deletions(-) diff --git a/datafiles/data/Theme.zip b/datafiles/data/Theme.zip index 59a8b0691ba8b47579486fa6e36a7c43a3d72212..f0c9cbf454aadd39f3c0d923ad2978e274062090 100644 GIT binary patch delta 14915 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 delta 15042 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 Cg807x diff --git a/scripts/__node_3d_displace/__node_3d_displace.gml b/scripts/__node_3d_displace/__node_3d_displace.gml index 5a3d564da..0cdada3da 100644 --- a/scripts/__node_3d_displace/__node_3d_displace.gml +++ b/scripts/__node_3d_displace/__node_3d_displace.gml @@ -74,9 +74,7 @@ function __Node_3D_Displace(_x, _y, _group = noone) : Node_Processor(_x, _y, _gr attributes.auto_update = true; array_push(attributeEditors, ["Auto Update", function() { return attributes.auto_update; }, - new checkBox(function() { - attribute[? "auto_update"] = !attribute[? "auto_update"]; - }, false)]); + new checkBox(function() { attribute[? "auto_update"] = !attribute[? "auto_update"]; }, false)]); vertexObjects = []; _3d_node_init(1, /*Transform*/ 4, 5, 1, 2, 3); diff --git a/scripts/node_average/node_average.gml b/scripts/node_average/node_average.gml index 754ee25c1..010142b12 100644 --- a/scripts/node_average/node_average.gml +++ b/scripts/node_average/node_average.gml @@ -1,9 +1,5 @@ function Node_Average(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Average"; - batch_output = false; - - shader = sh_average; - uniform_dim = shader_get_uniform(shader, "dimension"); inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone); @@ -29,49 +25,38 @@ function Node_Average(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c outputs[| 1] = nodeValue("Color", self, JUNCTION_CONNECT.output, VALUE_TYPE.color, c_black); attribute_surface_depth(); - - colors = []; - static step = function() { #region + static step = function() { __step_mask_modifier(); - } #endregion + } - static processData = function(_outSurf, _data, _output_index, _array_index) { #region - var inSurf = _data[0]; - if(!is_surface(inSurf)) return _outSurf; + static processData = function(_outData, _data, _output_index, _array_index) { + var inSurf = _data[0]; + var _outSurf = _outData[0]; - if(_output_index == 1) - return array_safe_get_fast(colors, _array_index); - - var side = max(surface_get_width_safe(inSurf), surface_get_height_safe(inSurf)); - var lop = ceil(log2(side)); + if(!is_surface(inSurf)) return [ _outSurf, c_black ]; + + var lop = ceil(log2(max(surface_get_width_safe(inSurf), surface_get_height_safe(inSurf)))); + var side = power(2, lop); var cc; - side = power(2, lop); if(side / 2 >= 1) { var _Surf = [ surface_create_valid(side, side), surface_create_valid(side, side) ]; var _ind = 1; - surface_set_target(_Surf[0]); - DRAW_CLEAR - BLEND_OVERRIDE; - draw_surface_stretched_safe(inSurf, 0, 0, side, side); - BLEND_NORMAL; - surface_reset_target(); + surface_set_shader(_Surf[0], noone); + draw_surface_stretched_safe(inSurf, 0, 0, side, side); + surface_reset_shader(); - shader_set(sh_average); for( var i = 0; i <= lop; i++ ) { - shader_set_uniform_f(uniform_dim, side); - - surface_set_target(_Surf[_ind]); - DRAW_CLEAR - draw_surface_safe(_Surf[!_ind], 0, 0); - surface_reset_target(); + surface_set_shader(_Surf[_ind], sh_average); + shader_set_f("dimension", side); + draw_surface_safe(_Surf[!_ind], 0, 0); + surface_reset_shader(); _ind = !_ind; side /= 2; } - shader_reset(); cc = surface_get_pixel(_Surf[!_ind], 0, 0); @@ -81,14 +66,13 @@ function Node_Average(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) c cc = surface_get_pixel(inSurf, 0, 0); surface_set_target(_outSurf); - draw_clear(cc); + draw_clear(cc); surface_reset_target(); __process_mask_modifier(_data); _outSurf = mask_apply(_data[0], _outSurf, _data[1], _data[2]); _outSurf = channel_apply(_data[0], _outSurf, _data[4]); - colors[_array_index] = cc; - return _outSurf; - } #endregion + return [ _outSurf, cc ]; + } } \ No newline at end of file diff --git a/scripts/node_bloom/node_bloom.gml b/scripts/node_bloom/node_bloom.gml index e99bb5173..52c22e987 100644 --- a/scripts/node_bloom/node_bloom.gml +++ b/scripts/node_bloom/node_bloom.gml @@ -47,8 +47,9 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con outputs[| 0] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone); - attribute_surface_depth(); + temp_surface = [ 0 ]; + attribute_surface_depth(); surface_blur_init(); static drawOverlay = function(hover, active, _x, _y, _s, _mx, _my, _snx, _sny) { #region @@ -68,6 +69,7 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con } #endregion static processData = function(_outSurf, _data, _output_index, _array_index) { + var _surf = _data[0]; var _size = _data[1]; var _tole = _data[2]; var _stre = _data[3]; @@ -78,36 +80,37 @@ function Node_Bloom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) con var _angle = _data[12]; var _zoom = _data[14]; - var pass1 = surface_create_valid(surface_get_width_safe(_outSurf), surface_get_height_safe(_outSurf), attrDepth()); + var _sw = surface_get_width_safe(_surf); + var _sh = surface_get_height_safe(_surf); - surface_set_shader(pass1, sh_bloom_pass); + temp_surface[0] = surface_verify(temp_surface[0], _sw, _sh); + + surface_set_shader(temp_surface[0], sh_bloom_pass); draw_clear_alpha(c_black, 1); shader_set_f("size", _size); shader_set_f("tolerance", _tole); - shader_set_i("useMask", is_surface(_mask)); + shader_set_i("useMask", is_surface(_mask)); shader_set_surface("mask", _mask); - draw_surface_safe(_data[0]); + draw_surface_safe(_surf); surface_reset_shader(); var pass1blur; - if(_type == 0) pass1blur = surface_apply_gaussian( pass1, _size, true, c_black, 1, noone, false, _ratio, _angle); - else if(_type == 1) pass1blur = surface_apply_blur_zoom(pass1, _size, _zoom[0], _zoom[1], 2, 1); - - surface_free(pass1); + if(_type == 0) pass1blur = surface_apply_gaussian( temp_surface[0], _size, true, c_black, 1, noone, false, _ratio, _angle); + else if(_type == 1) pass1blur = surface_apply_blur_zoom(temp_surface[0], _size, _zoom[0], _zoom[1], 2, 1); surface_set_shader(_outSurf, sh_blend_add_alpha_adj); shader_set_surface("fore", pass1blur); shader_set_f("opacity", _stre); - draw_surface_safe(_data[0]); + draw_surface_safe(_surf); surface_reset_shader(); __process_mask_modifier(_data); - _outSurf = mask_apply(_data[0], _outSurf, _data[5], _data[6]); - _outSurf = channel_apply(_data[0], _outSurf, _data[8]); + _outSurf = mask_apply(_surf, _outSurf, _data[5], _data[6]); + _outSurf = channel_apply(_surf, _outSurf, _data[8]); return _outSurf; } diff --git a/scripts/node_color_data/node_color_data.gml b/scripts/node_color_data/node_color_data.gml index 2c7402588..78ce959bf 100644 --- a/scripts/node_color_data/node_color_data.gml +++ b/scripts/node_color_data/node_color_data.gml @@ -8,17 +8,16 @@ function Node_Color_Data(_x, _y, _group = noone) : Node_Processor(_x, _y, _group inputs[| 1] = nodeValue("Normalize", self, JUNCTION_CONNECT.input, VALUE_TYPE.boolean, true); - outputs[| 0] = nodeValue("Red", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); - outputs[| 1] = nodeValue("Green", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); - outputs[| 2] = nodeValue("Blue", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); + outputs[| 0] = nodeValue("Red", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); + outputs[| 1] = nodeValue("Green", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); + outputs[| 2] = nodeValue("Blue", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0); - outputs[| 3] = nodeValue("Hue", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); - outputs[| 4] = nodeValue("Saturation", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); - outputs[| 5] = nodeValue("Value", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); + outputs[| 3] = nodeValue("Hue", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); + outputs[| 4] = nodeValue("Saturation", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); + outputs[| 5] = nodeValue("Value", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); - outputs[| 6] = nodeValue("Brightness", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); - - outputs[| 7] = nodeValue("Alpha", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); + outputs[| 6] = nodeValue("Brightness", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); + outputs[| 7] = nodeValue("Alpha", self, JUNCTION_CONNECT.output, VALUE_TYPE.float, 0).setVisible(false); static processData = function(_output, _data, _output_index, _array_index = 0) { var _c = _data[0]; diff --git a/scripts/node_line/node_line.gml b/scripts/node_line/node_line.gml index 758bf7bdd..813d3709b 100644 --- a/scripts/node_line/node_line.gml +++ b/scripts/node_line/node_line.gml @@ -1,6 +1,5 @@ function Node_Line(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Draw Line"; - batch_output = true; inputs[| 0] = nodeValue("Dimension", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, DEF_SURF ) .setDisplay(VALUE_DISPLAY.vector); diff --git a/scripts/node_processor/node_processor.gml b/scripts/node_processor/node_processor.gml index 2499caccf..e70e21e07 100644 --- a/scripts/node_processor/node_processor.gml +++ b/scripts/node_processor/node_processor.gml @@ -217,26 +217,31 @@ function Node_Processor(_x, _y, _group = noone) : Node(_x, _y, _group) construct } #endregion static processBatchOutput = function() { #region - var _is = ds_list_size(inputs); - var _os = ds_list_size(outputs); + var _is = ds_list_size(inputs); + var _os = ds_list_size(outputs); + var _dep = attrDepth(); - var _outVal = array_create(_os); - for(var i = 0; i < _os; i++) - _outVal[i] = outputs[| i].getValue(); + var data; + var _out = array_create(_os); + for(var i = 0; i < _os; i++) _out[i] = outputs[| i].getValue(); if(process_amount == 1) { current_data = inputs_data; - var data = processData(_outVal, inputs_data, 0, 0); + + var _dim = getDimension(); + + for(var i = 0; i < _os; i++) { + if(outputs[| i].type == VALUE_TYPE.surface) + _out[i] = surface_verify(_out[i], _dim[0], _dim[1], _dep); + } if(_os == 1) { + data = processData(_out[0], inputs_data, 0, 0); outputs[| 0].setValue(data); } else { - for(var i = 0; i < _os; i++) { - var _outp = array_safe_get_fast(data, i, undefined); - if(_outp == undefined) continue; - outputs[| i].setValue(_outp); - } + data = processData(_out, inputs_data, 0, 0); + for(var i = 0; i < _os; i++) outputs[| i].setValue(data[i]); } return; @@ -247,16 +252,26 @@ function Node_Processor(_x, _y, _group = noone) : Node(_x, _y, _group) construct for( var l = 0; l < process_amount; l++ ) { - for(var i = 0; i < _is; i++) - _inputs[i] = all_inputs[i][l]; + for(var i = 0; i < _is; i++) _inputs[i] = all_inputs[i][l]; + if(l == 0 || l == preview_index) current_data = _inputs; - if(l == 0 || l == preview_index) - current_data = _inputs; + var _dim = getDimension(l); + var _outa = array_create(_os); - var data = processData(_outVal, _inputs, 0, l); + for(var i = 0; i < _os; i++) { + _outa[i] = array_safe_get(_out[i], l); + if(outputs[| i].type == VALUE_TYPE.surface) + _outa[i] = surface_verify(_outa[i], _dim[0], _dim[1], _dep); + } - if(_os == 1) _outputs[0][l] = data; - else for(var i = 0; i < _os; i++) _outputs[i][l] = data[i]; + if(_os == 1) { + data = processData(_outa[0], _inputs, 0, l); + _outputs[0][l] = data; + + } else { + data = processData(_outa, _inputs, 0, l); + for(var i = 0; i < _os; i++) _outputs[i][l] = data[i]; + } } for( var i = 0, n = _os; i < n; i++ ) diff --git a/scripts/node_raymarching/node_raymarching.gml b/scripts/node_raymarching/node_raymarching.gml index 52adcb540..3ba31b52f 100644 --- a/scripts/node_raymarching/node_raymarching.gml +++ b/scripts/node_raymarching/node_raymarching.gml @@ -1,6 +1,5 @@ function Node_RM(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "RM"; is_3D = NODE_3D.sdf; - batch_output = true; } \ No newline at end of file diff --git a/scripts/node_transform/node_transform.gml b/scripts/node_transform/node_transform.gml index fc3932fa7..1bfd39576 100644 --- a/scripts/node_transform/node_transform.gml +++ b/scripts/node_transform/node_transform.gml @@ -7,7 +7,6 @@ enum OUTPUT_SCALING { function Node_Transform(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { name = "Transform"; - batch_output = true; inputs[| 0] = nodeValue("Surface in", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);