mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-27 04:04:48 +01:00
rem arr push rend
This commit is contained in:
parent
c791220419
commit
41aa0fb7e9
6 changed files with 45 additions and 68 deletions
Binary file not shown.
|
@ -1283,7 +1283,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
}
|
||||
|
||||
__nextNodesToLoop = noone;
|
||||
for(var i = 0; i < array_length(outputs); i++) {
|
||||
for( var i = 0, n = array_length(outputs); i < n; i++ ) {
|
||||
var _ot = outputs[i];
|
||||
if(!_ot.forward) continue;
|
||||
|
||||
|
@ -1300,30 +1300,36 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
if(__nextNodes != noone) return __nextNodes;
|
||||
var nodes = [];
|
||||
|
||||
for(var i = 0; i < array_length(outputs); i++) {
|
||||
for( var i = 0, n = array_length(outputs); i < n; i++ ) {
|
||||
var _ot = outputs[i];
|
||||
if(!_ot.forward) continue;
|
||||
|
||||
var arr = _ot.getJunctionTo();
|
||||
array_map_ext(arr, function(t) /*=>*/ {return t.node});
|
||||
nodes = array_concat(nodes, arr);
|
||||
for( var j = 0, m = array_length(_ot.value_to); j < m; j++ ) {
|
||||
var _jto = _ot.value_to[j];
|
||||
if(_jto.value_from != _jto || !_jto.node.active) continue;
|
||||
array_push(nodes, _jto.node);
|
||||
}
|
||||
}
|
||||
|
||||
for(var i = 0; i < array_length(junc_meta); i++) {
|
||||
for( var i = 0, n = array_length(junc_meta); i < n; i++ ) {
|
||||
var _ot = junc_meta[i];
|
||||
|
||||
var arr = _ot.getJunctionTo();
|
||||
array_map_ext(arr, function(t) /*=>*/ {return t.node});
|
||||
nodes = array_concat(nodes, arr);
|
||||
for( var j = 0, m = array_length(_ot.value_to); j < m; j++ ) {
|
||||
var _jto = _ot.value_to[j];
|
||||
if(_jto.value_from != _jto || !_jto.node.active) continue;
|
||||
array_push(nodes, _jto.node);
|
||||
}
|
||||
}
|
||||
|
||||
for(var i = 0; i < array_length(inputs); i++) {
|
||||
for( var i = 0, n = array_length(inputs); i < n; i++ ) {
|
||||
var _in = inputs[i];
|
||||
if(_in.bypass_junc == noone) continue;
|
||||
|
||||
var arr = _in.bypass_junc.getJunctionTo();
|
||||
array_map_ext(arr, function(t) /*=>*/ {return t.node});
|
||||
nodes = array_concat(nodes, arr);
|
||||
for( var j = 0, m = array_length(_in.value_to); j < m; j++ ) {
|
||||
var _jto = _in.value_to[j];
|
||||
if(_jto.value_from != _jto || !_jto.node.active) continue;
|
||||
array_push(nodes, _jto.node);
|
||||
}
|
||||
}
|
||||
|
||||
array_unique_ext(nodes);
|
||||
|
@ -1405,8 +1411,6 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor {
|
|||
}
|
||||
|
||||
static refreshNodeDisplay = function() {
|
||||
// print("refreshNodeDisplay"); printCallStack();
|
||||
// if(IS_PLAYING) return;
|
||||
updateIO();
|
||||
setHeight();
|
||||
getJunctionList();
|
||||
|
|
|
@ -1,12 +1,6 @@
|
|||
function Node_Pixel_Sort(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
|
||||
name = "Pixel Sort";
|
||||
|
||||
shader = sh_pixel_sort;
|
||||
uniform_dim = shader_get_uniform(shader, "dimension");
|
||||
uniform_itr = shader_get_uniform(shader, "iteration");
|
||||
uniform_tre = shader_get_uniform(shader, "threshold");
|
||||
uniform_dir = shader_get_uniform(shader, "direction");
|
||||
|
||||
newInput(0, nodeValue_Surface("Surface in", self));
|
||||
|
||||
newInput(1, nodeValue_Int("Iteration", self, 2));
|
||||
|
@ -38,12 +32,14 @@ function Node_Pixel_Sort(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
|
|||
|
||||
attribute_surface_depth();
|
||||
|
||||
static step = function() { #region
|
||||
__step_mask_modifier();
|
||||
} #endregion
|
||||
temp_surface = [ 0, 0 ];
|
||||
|
||||
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
|
||||
var _in = _data[0];
|
||||
static step = function() {
|
||||
__step_mask_modifier();
|
||||
}
|
||||
|
||||
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||
var _surf = _data[0];
|
||||
|
||||
var _it = _data[1];
|
||||
var _tr = _data[2];
|
||||
|
@ -52,40 +48,42 @@ function Node_Pixel_Sort(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
|
|||
if(_it <= 0) {
|
||||
surface_set_target(_outSurf);
|
||||
BLEND_OVERRIDE
|
||||
draw_surface_safe(_in);
|
||||
draw_surface_safe(_surf);
|
||||
BLEND_NORMAL
|
||||
surface_reset_target();
|
||||
|
||||
return _outSurf;
|
||||
}
|
||||
|
||||
var sw = surface_get_width_safe(_outSurf);
|
||||
var sh = surface_get_height_safe(_outSurf);
|
||||
var sw = surface_get_width_safe(_surf);
|
||||
var sh = surface_get_height_safe(_surf);
|
||||
|
||||
temp_surface[0] = surface_verify(temp_surface[0], sw, sh);
|
||||
temp_surface[1] = surface_verify(temp_surface[1], sw, sh);
|
||||
|
||||
var pp = [ surface_create_valid(sw, sh), surface_create_valid(sw, sh) ];
|
||||
var sBase, sDraw;
|
||||
|
||||
surface_set_target(pp[1]);
|
||||
surface_set_target(temp_surface[1]);
|
||||
DRAW_CLEAR
|
||||
BLEND_OVERRIDE
|
||||
draw_surface_safe(_in);
|
||||
draw_surface_safe(_surf);
|
||||
BLEND_NORMAL
|
||||
surface_reset_target();
|
||||
|
||||
shader_set(shader);
|
||||
shader_set_uniform_f(uniform_dim, surface_get_width_safe(_in), surface_get_height_safe(_in));
|
||||
shader_set_uniform_f(uniform_tre, _tr);
|
||||
shader_set_uniform_i(uniform_dir, _dr);
|
||||
shader_set(sh_pixel_sort);
|
||||
shader_set_2("dimension", [sw, sh]);
|
||||
shader_set_f("threshold", _tr);
|
||||
shader_set_i("direction", _dr);
|
||||
|
||||
for( var i = 0; i < _it; i++ ) {
|
||||
var it = i % 2;
|
||||
sBase = pp[it];
|
||||
sDraw = pp[!it];
|
||||
sBase = temp_surface[it];
|
||||
sDraw = temp_surface[!it];
|
||||
|
||||
surface_set_target(sBase);
|
||||
DRAW_CLEAR
|
||||
BLEND_OVERRIDE
|
||||
shader_set_uniform_f(uniform_itr, i);
|
||||
shader_set_f("iteration", i);
|
||||
draw_surface_safe(sDraw);
|
||||
BLEND_NORMAL
|
||||
surface_reset_target();
|
||||
|
@ -99,13 +97,10 @@ function Node_Pixel_Sort(_x, _y, _group = noone) : Node_Processor(_x, _y, _group
|
|||
BLEND_NORMAL
|
||||
surface_reset_target();
|
||||
|
||||
surface_free(pp[0]);
|
||||
surface_free(pp[1]);
|
||||
|
||||
__process_mask_modifier(_data);
|
||||
_outSurf = mask_apply(_data[0], _outSurf, _data[4], _data[5]);
|
||||
_outSurf = channel_apply(_data[0], _outSurf, _data[7]);
|
||||
|
||||
return _outSurf;
|
||||
} #endregion
|
||||
}
|
||||
}
|
|
@ -526,6 +526,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
|
|||
|
||||
static setVisible = function(inspector) {
|
||||
var v = visible;
|
||||
var _ref = false;
|
||||
|
||||
if(connect_type == CONNECT_TYPE.input) {
|
||||
show_in_inspector = inspector;
|
||||
|
@ -534,7 +535,8 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
|
|||
} else
|
||||
visible = inspector;
|
||||
|
||||
if(NOT_LOAD) node.toRefreshNodeDisplay = true;
|
||||
if(v != visible && NOT_LOAD)
|
||||
node.toRefreshNodeDisplay = true;
|
||||
|
||||
return self;
|
||||
}
|
||||
|
|
|
@ -29,9 +29,6 @@ function Project() constructor {
|
|||
nodeMap = ds_map_create();
|
||||
nodeNameMap = ds_map_create();
|
||||
|
||||
useRenderList = false;
|
||||
renderList = [];
|
||||
|
||||
pathInputs = [];
|
||||
|
||||
composer = noone;
|
||||
|
|
|
@ -41,8 +41,6 @@ function NodeTopoSort() {
|
|||
array_foreach(PROJECT.allNodes, function(n) /*=>*/ { if(is(n, Node_Collection)) n.refreshNodes(); });
|
||||
|
||||
PROJECT.nodeTopo = [];
|
||||
PROJECT.renderList = [];
|
||||
PROJECT.useRenderList = true;
|
||||
__topoSort(PROJECT.nodeTopo, PROJECT.nodes);
|
||||
|
||||
// print(PROJECT.nodeTopo);
|
||||
|
@ -171,22 +169,6 @@ function Render(partial = false, runAction = false) {
|
|||
LOG_BLOCK_START();
|
||||
LOG_IF(global.FLAG.render, $"============================== RENDER START [{partial? "PARTIAL" : "FULL"}] [frame {CURRENT_FRAME}] ==============================");
|
||||
|
||||
// global.getvalue_hit = 0;
|
||||
|
||||
// if(PROJECT.useRenderList && !array_empty(PROJECT.renderList)) {
|
||||
// for( var i = 0, n = array_length(PROJECT.renderList); i < n; i++ ) {
|
||||
|
||||
// var render_pt = get_timer();
|
||||
// var rendering = PROJECT.renderList[i];
|
||||
|
||||
// rendering.doUpdate();
|
||||
// rendering.getNextNodes(true);
|
||||
|
||||
// if(PROFILER_STAT) rendering.summarizeReport(render_pt);
|
||||
// }
|
||||
// return;
|
||||
// }
|
||||
|
||||
try {
|
||||
var t = get_timer();
|
||||
var t1 = get_timer();
|
||||
|
@ -237,14 +219,11 @@ function Render(partial = false, runAction = false) {
|
|||
rendering = RENDER_QUEUE.dequeue();
|
||||
renderable = rendering.isRenderable();
|
||||
|
||||
if(is(rendering, Node_Iterate_Sort_Inline))
|
||||
PROJECT.useRenderList = false;
|
||||
// LOG_IF(global.FLAG.render == 1, $"Rendering {rendering.internalName} ({rendering.display_name}) : {renderable? "Update" : "Pass"} ({rendering.rendered})");
|
||||
|
||||
if(renderable) {
|
||||
var render_pt = get_timer();
|
||||
rendering.doUpdate();
|
||||
array_push(PROJECT.renderList, rendering);
|
||||
_render_time += get_timer() - render_pt;
|
||||
|
||||
var nextNodes = rendering.getNextNodes();
|
||||
|
|
Loading…
Add table
Reference in a new issue