mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2024-11-10 12:34:06 +01:00
1.16rc6
This commit is contained in:
parent
7fb8cacd22
commit
cf48f9ab9d
@ -17,6 +17,8 @@ event_inherited();
|
||||
show_autosaves = false;
|
||||
|
||||
recent_width = PREFERENCES.splash_expand_recent? ui(576) : ui(288);
|
||||
|
||||
clip_surf = surface_create(1, 1);
|
||||
#endregion
|
||||
|
||||
#region content
|
||||
@ -121,27 +123,32 @@ event_inherited();
|
||||
}
|
||||
|
||||
var hh = 0;
|
||||
var grid_heigh = ui(96);
|
||||
var grid_width = ui(128);
|
||||
var grid_heigh = txt == "Workshop"? ui(128) : ui(96);
|
||||
var grid_space = ui(20);
|
||||
var grid_line = ui(4);
|
||||
|
||||
var node_count = ds_list_size(list);
|
||||
var col = floor(sp_sample.surface_w / (grid_width + grid_space));
|
||||
var row = ceil(node_count / col);
|
||||
var hh = grid_space;
|
||||
var yy = _y + grid_space;
|
||||
var hh = ui(20);
|
||||
var yy = _y + ui(20);
|
||||
var name_height = 0;
|
||||
|
||||
for(var i = 0; i < row; i++) {
|
||||
name_height = 0;
|
||||
|
||||
for(var j = 0; j < col; j++) {
|
||||
var index = i * col + j;
|
||||
if(index < node_count) {
|
||||
var _project = list[| index];
|
||||
var _nx = grid_space + (grid_width + grid_space) * j;
|
||||
var _boxx = _nx;
|
||||
|
||||
if(index >= node_count) break;
|
||||
|
||||
var _project = list[| index];
|
||||
var _nx = grid_space + (grid_width + grid_space) * j;
|
||||
var _boxx = _nx;
|
||||
|
||||
if(yy > -grid_heigh && yy < sp_sample.surface_h) {
|
||||
draw_sprite_stretched(THEME.node_bg, 0, _boxx, yy, grid_width, grid_heigh);
|
||||
if(sHOVER && sp_sample.hover && point_in_rectangle(_m[0], _m[1], _nx, yy, _nx + grid_width, yy + grid_heigh)) {
|
||||
if(sHOVER && sp_sample.hover && point_in_rectangle(_m[0], _m[1], _nx, yy, _nx + grid_width, yy + grid_heigh)) { #region
|
||||
var _meta = _project.getMetadata();
|
||||
if(txt == "Workshop")
|
||||
TOOLTIP = _meta;
|
||||
@ -157,17 +164,17 @@ event_inherited();
|
||||
}
|
||||
instance_destroy();
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
var spr = _project.getSpr();
|
||||
if(spr) {
|
||||
if(spr) { #region
|
||||
var gw = grid_width - ui(8);
|
||||
var gh = grid_heigh - ui(8);
|
||||
|
||||
var sw = sprite_get_width(spr);
|
||||
var sh = sprite_get_height(spr);
|
||||
|
||||
var s = min(1, gw / sw, gh / sh);
|
||||
var s = max(gw / sw, gh / sh);
|
||||
|
||||
var ox = (sprite_get_xoffset(spr) - sw / 2) * s;
|
||||
var oy = (sprite_get_yoffset(spr) - sh / 2) * s;
|
||||
@ -175,35 +182,57 @@ event_inherited();
|
||||
var _sx = _boxx + grid_width / 2 + ox;
|
||||
var _sy = yy + grid_heigh / 2 + ox;
|
||||
|
||||
draw_sprite_ui_uniform(spr, 0, _sx, _sy, s);
|
||||
}
|
||||
|
||||
var tx = _boxx + grid_width / 2;
|
||||
var ty = yy + grid_heigh + ui(4);
|
||||
draw_set_text(f_p2, fa_center, fa_top);
|
||||
if(txt == "Sample projects") {
|
||||
var _tw = string_width(_project.tag);
|
||||
var _th = string_height(_project.tag);
|
||||
|
||||
draw_set_color(COLORS.dialog_splash_badge);
|
||||
draw_roundrect_ext(tx - _tw / 2 - ui(6), ty - ui(2), tx + _tw / 2 + ui(6), ty + _th, THEME_VALUE.selection_corner_radius, THEME_VALUE.selection_corner_radius, 0);
|
||||
draw_set_color(_project.tag == "Getting started"? COLORS._main_text_accent : COLORS._main_text_sub);
|
||||
draw_text(tx, ty - ui(2), _project.tag);
|
||||
var _spw = sw * s;
|
||||
var _sph = sh * s;
|
||||
|
||||
ty += line_get_height(, ui(4));
|
||||
}
|
||||
|
||||
draw_set_text(f_p1, fa_center, fa_top, COLORS._main_text);
|
||||
name_height = max(name_height, string_height_ext(_project.name, -1, grid_width) + ui(8));
|
||||
draw_text_ext_add(tx, ty - ui(2), _project.name, -1, grid_width);
|
||||
if(txt == "Workshop") {
|
||||
clip_surf = surface_verify(clip_surf, _spw, _sph);
|
||||
|
||||
surface_set_target(clip_surf);
|
||||
DRAW_CLEAR
|
||||
|
||||
draw_sprite_ui_uniform(spr, 0, 0, 0, s);
|
||||
gpu_set_blendmode_ext(bm_dest_colour, bm_zero);
|
||||
draw_sprite_stretched(THEME.ui_panel_bg, 4, 0, 0, _spw, _sph);
|
||||
BLEND_NORMAL
|
||||
surface_reset_target();
|
||||
|
||||
draw_surface(clip_surf, _sx, _sy);
|
||||
} else
|
||||
draw_sprite_ui_uniform(spr, 0, _sx, _sy, s);
|
||||
} #endregion
|
||||
}
|
||||
|
||||
var tx = _boxx + grid_width / 2;
|
||||
var ty = yy + grid_heigh + ui(4);
|
||||
draw_set_text(f_p2, fa_center, fa_top);
|
||||
|
||||
if(txt == "Sample projects") { #region
|
||||
var _tw = string_width(_project.tag);
|
||||
var _th = string_height(_project.tag);
|
||||
|
||||
draw_set_color(COLORS.dialog_splash_badge);
|
||||
var _rr = THEME_VALUE.selection_corner_radius;
|
||||
draw_roundrect_ext(tx - _tw / 2 - ui(6), ty - ui(2), tx + _tw / 2 + ui(6), ty + _th, _rr, _rr, 0);
|
||||
draw_set_color(_project.tag == "Getting started"? COLORS._main_text_accent : COLORS._main_text_sub);
|
||||
draw_text(tx, ty - ui(2), _project.tag);
|
||||
|
||||
ty += line_get_height(, ui(4));
|
||||
} #endregion
|
||||
|
||||
draw_set_text(f_p1, fa_center, fa_top, COLORS._main_text);
|
||||
name_height = max(name_height, string_height_ext(_project.name, -1, grid_width) + ui(8));
|
||||
draw_text_ext_add(tx, ty - ui(2), _project.name, -1, grid_width);
|
||||
}
|
||||
var hght = grid_heigh + grid_space + name_height + ui(20);
|
||||
|
||||
var hght = grid_heigh + name_height + grid_line;
|
||||
if(txt == "Sample projects") hght += line_get_height(f_p2, ui(4));
|
||||
|
||||
hh += hght;
|
||||
yy += hght;
|
||||
}
|
||||
|
||||
return hh;
|
||||
return hh + ui(20);
|
||||
}); #endregion
|
||||
#endregion
|
||||
|
||||
|
@ -3,4 +3,6 @@ event_inherited();
|
||||
|
||||
ds_map_destroy(discord_map);
|
||||
ds_map_destroy(nicknames);
|
||||
ds_map_destroy(attachment);
|
||||
ds_map_destroy(attachment);
|
||||
|
||||
surface_free(clip_surf);
|
@ -89,7 +89,7 @@ _HOVERING_ELEMENT = noone;
|
||||
if(CURRENT_FRAME == 0)
|
||||
ResetAllNodesRender();
|
||||
Render(true);
|
||||
|
||||
|
||||
__addon_postAnim();
|
||||
}
|
||||
PROJECT.animator.frame_progress = false;
|
||||
|
@ -146,6 +146,13 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
inputs_data = [];
|
||||
input_hash = "";
|
||||
input_hash_raw = "";
|
||||
|
||||
inputs_amount = 0;
|
||||
in_cache_len = 0;
|
||||
inputs_index = [];
|
||||
outputs_amount = 0;
|
||||
outputs_index = [];
|
||||
out_cache_len = 0;
|
||||
#endregion
|
||||
|
||||
#region --- attributes ----
|
||||
@ -294,6 +301,23 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
return output_display_list[index];
|
||||
} #endregion
|
||||
|
||||
static updateIO = function() { #region
|
||||
inputs_amount = (input_display_list == -1 || !use_display_list)? ds_list_size(inputs) : array_length(input_display_list);
|
||||
inputs_index = array_create(inputs_amount);
|
||||
var _i = 0;
|
||||
for( var i = 0; i < inputs_amount; i++ ) {
|
||||
var _input = getInputJunctionIndex(i);
|
||||
if(_input == noone) continue;
|
||||
|
||||
inputs_index[_i++] = _input;
|
||||
}
|
||||
inputs_amount = _i;
|
||||
array_resize(inputs_index, inputs_amount);
|
||||
|
||||
outputs_amount = output_display_list == -1? ds_list_size(outputs) : array_length(output_display_list);
|
||||
outputs_index = array_create_ext(outputs_amount, function(index) { return getOutputJunctionIndex(index); });
|
||||
} #endregion
|
||||
|
||||
static setHeight = function() { #region
|
||||
if(!auto_height) return;
|
||||
|
||||
@ -796,26 +820,28 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
updatedOutTrigger.x = xx + w * _s;
|
||||
updatedOutTrigger.y = yy + 10;
|
||||
|
||||
var inamo = (input_display_list == -1 || !use_display_list)? ds_list_size(inputs) : array_length(input_display_list);
|
||||
if(in_cache_len != ds_list_size(inputs) || out_cache_len != ds_list_size(outputs)) {
|
||||
updateIO();
|
||||
|
||||
in_cache_len = ds_list_size(inputs);
|
||||
out_cache_len = ds_list_size(outputs);
|
||||
}
|
||||
|
||||
var _iny = yy + ui(junction_draw_pad_y) * _s;
|
||||
|
||||
for(var i = 0; i < inamo; i++) {
|
||||
var idx = getInputJunctionIndex(i);
|
||||
if(idx == noone) continue;
|
||||
for(var i = 0; i < inputs_amount; i++) {
|
||||
var idx = inputs_index[i];
|
||||
jun = inputs[| idx];
|
||||
|
||||
jun = ds_list_get(inputs, idx, noone);
|
||||
if(jun == noone || is_undefined(jun)) continue;
|
||||
jun.x = xx;
|
||||
jun.y = _iny;
|
||||
_iny += 24 * _s * jun.isVisible();
|
||||
}
|
||||
|
||||
var outamo = output_display_list == -1? ds_list_size(outputs) : array_length(output_display_list);
|
||||
|
||||
xx = xx + w * _s;
|
||||
xx = xx + w * _s;
|
||||
var _outy = yy + ui(junction_draw_pad_y) * _s;
|
||||
for(var i = 0; i < outamo; i++) {
|
||||
var idx = getOutputJunctionIndex(i);
|
||||
for(var i = 0; i < outputs_amount; i++) {
|
||||
var idx = outputs_index[i];
|
||||
jun = outputs[| idx];
|
||||
|
||||
jun.x = xx;
|
||||
@ -1014,7 +1040,7 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
|
||||
var high = struct_try_get(params, "highlight", 0);
|
||||
var bg = struct_try_get(params, "bg", c_black);
|
||||
|
||||
|
||||
for(var i = 0; i < ds_list_size(outputs); i++) {
|
||||
var jun = outputs[| i];
|
||||
var connected = false;
|
||||
@ -1040,7 +1066,9 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
if(hasInspector1Update()) st = -1;
|
||||
if(hasInspector2Update()) st = -2;
|
||||
|
||||
var _inputs = [];
|
||||
var _inputs = array_create(ds_list_size(inputs));
|
||||
var _len = 0;
|
||||
|
||||
var drawLineIndex = 1;
|
||||
for(var i = st; i < ds_list_size(inputs); i++) {
|
||||
var jun;
|
||||
@ -1062,17 +1090,13 @@ function Node(_x, _y, _group = PANEL_GRAPH.getCurrentContext()) : __Node_Base(_x
|
||||
if(!jun.value_from.node.active) continue;
|
||||
if(!jun.isVisible()) continue;
|
||||
|
||||
if(i >= 0) array_push(_inputs, jun);
|
||||
if(i >= 0) _inputs[_len++] = jun;
|
||||
}
|
||||
|
||||
var len = array_length(_inputs);
|
||||
|
||||
for( var i = 0; i < len; i++ )
|
||||
_inputs[i].drawLineIndex = 1 + (i > len / 2? (len - 1 - i) : i) * 0.5;
|
||||
|
||||
for( var i = 0, n = array_length(_inputs); i < n; i++ ) {
|
||||
for( var i = 0; i < _len; i++ ) {
|
||||
var jun = _inputs[i];
|
||||
|
||||
jun.drawLineIndex = 1 + (i > _len / 2? (_len - 1 - i) : i) * 0.5;
|
||||
var hov = jun.drawConnections(params);
|
||||
if(hov) hovering = hov;
|
||||
}
|
||||
|
@ -96,16 +96,17 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
insp1UpdateTooltip = "Generate";
|
||||
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
|
||||
|
||||
static onInspector1Update = function() {
|
||||
static onInspector1Update = function() { #region
|
||||
setTriangle();
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static onValueFromUpdate = function(index) {
|
||||
static onValueFromUpdate = function(index) { #region
|
||||
if(LOADING || APPENDING) return;
|
||||
if(index == 0 && array_empty(data.tris))
|
||||
setTriangle();
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) {
|
||||
static drawOverlay = function(active, _x, _y, _s, _mx, _my, _snx, _sny) { #region
|
||||
var mx = (_mx - _x) / _s;
|
||||
var my = (_my - _y) / _s;
|
||||
|
||||
@ -257,9 +258,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
function _Point(node, index, _x, _y) constructor {
|
||||
function _Point(node, index, _x, _y) constructor { #region
|
||||
self.index = index;
|
||||
self.node = node;
|
||||
x = _x;
|
||||
@ -334,9 +335,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
static equal = function(point) {
|
||||
return x == point.x && y == point.y;
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
function link(_p0, _p1) constructor {
|
||||
function link(_p0, _p1) constructor { #region
|
||||
p0 = _p0;
|
||||
p1 = _p1;
|
||||
k = 1;
|
||||
@ -360,9 +361,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
draw_set_color(c_red);
|
||||
draw_line(_x + p0.x * _s, _y + p0.y * _s, _x + p1.x * _s, _y + p1.y * _s);
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
function _Triangle(_p0, _p1, _p2) constructor {
|
||||
function _Triangle(_p0, _p1, _p2) constructor { #region
|
||||
p0 = _p0;
|
||||
p1 = _p1;
|
||||
p2 = _p2;
|
||||
@ -402,9 +403,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
static contain = function(p) {
|
||||
return p == p0 || p == p1 || p == p2;
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static regularTri = function(surf) {
|
||||
static regularTri = function(surf) { #region
|
||||
var sample = getInputData(1);
|
||||
var spring = getInputData(2);
|
||||
var diagon = getInputData(4);
|
||||
@ -504,9 +505,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
}
|
||||
|
||||
if(is_surface(cont)) surface_free(cont);
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static triangulate = function(surf) {
|
||||
static triangulate = function(surf) { #region
|
||||
var sample = getInputData(1);
|
||||
var seed = getInputData(9);
|
||||
|
||||
@ -577,14 +578,14 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
array_push(data.links, new link(t[1], t[2]));
|
||||
array_push(data.links, new link(t[2], t[0]));
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static reset = function() {
|
||||
static reset = function() { #region
|
||||
for(var i = 0; i < array_length(data.tris); i++)
|
||||
data.tris[i].reset();
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static setTriangle = function() {
|
||||
static setTriangle = function() { #region
|
||||
var _inSurf = getInputData(0);
|
||||
var _type = getInputData(8);
|
||||
|
||||
@ -595,9 +596,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
|
||||
for(var i = 0; i < array_length(data.tris); i++)
|
||||
data.tris[i].initSurface(is_array(_inSurf)? _inSurf[0] : _inSurf);
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static affectPoint = function(c, p) {
|
||||
static affectPoint = function(c, p) { #region
|
||||
var mode = c[PUPPET_CONTROL.mode];
|
||||
var cx = c[PUPPET_CONTROL.cx];
|
||||
var cy = c[PUPPET_CONTROL.cy];
|
||||
@ -627,9 +628,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
p.planMove(lengthdir_x(fx * inf, fy), lengthdir_y(fx * inf, fy));
|
||||
break;
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static control = function() {
|
||||
static control = function() { #region
|
||||
var lStr = getInputData(6);
|
||||
|
||||
for(var i = control_index; i < ds_list_size(inputs); i++) {
|
||||
@ -661,9 +662,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
if(data.points[j] == 0) continue;
|
||||
data.points[j].clearMove();
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static step = function() {
|
||||
static step = function() { #region
|
||||
var _type = getInputData(8);
|
||||
|
||||
inputs[| 2].setVisible(_type == 0);
|
||||
@ -672,9 +673,9 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
|
||||
if(_type == 0) tools = tools_edit;
|
||||
else if (_type == 1) tools = tools_mesh;
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static processData = function(_outSurf, _data, _output_index, _array_index) {
|
||||
static processData = function(_outSurf, _data, _output_index, _array_index) { #region
|
||||
var _inSurf = _data[0];
|
||||
if(!is_surface(_inSurf)) return _outSurf;
|
||||
|
||||
@ -696,18 +697,18 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
surface_reset_shader();
|
||||
|
||||
return _outSurf;
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static postDeserialize = function() {
|
||||
static postDeserialize = function() { #region
|
||||
var _inputs = load_map.inputs;
|
||||
|
||||
for(var i = control_index; i < array_length(_inputs); i++) {
|
||||
var inp = createControl();
|
||||
inp.applyDeserialize(_inputs[i]);
|
||||
}
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static attributeSerialize = function() {
|
||||
static attributeSerialize = function() { #region
|
||||
var att = {};
|
||||
|
||||
var pinList = [];
|
||||
@ -721,15 +722,15 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
att.mesh_bound = attributes.mesh_bound;
|
||||
|
||||
return att;
|
||||
}
|
||||
} #endregion
|
||||
|
||||
loadPin = noone;
|
||||
static attributeDeserialize = function(attr) {
|
||||
static attributeDeserialize = function(attr) { #region
|
||||
if(struct_has(attr, "pin")) loadPin = attr.pin;
|
||||
if(struct_has(attr, "mesh_bound")) attributes.mesh_bound = attr.mesh_bound;;
|
||||
}
|
||||
} #endregion
|
||||
|
||||
static postLoad = function() {
|
||||
static postLoad = function() { #region
|
||||
setTriangle();
|
||||
|
||||
if(loadPin == noone) return;
|
||||
@ -740,5 +741,5 @@ function Node_Mesh_Warp(_x, _y, _group = noone) : Node_Processor(_x, _y, _group)
|
||||
points[ind].pin = true;
|
||||
}
|
||||
loadPin = noone;
|
||||
}
|
||||
} #endregion
|
||||
}
|
@ -23,6 +23,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
highlight : false,
|
||||
}
|
||||
|
||||
connection_param = {};
|
||||
|
||||
bg_color = c_black;
|
||||
#endregion
|
||||
|
||||
@ -717,7 +719,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
|
||||
function drawNodes() { #region
|
||||
if(selection_block-- > 0) return;
|
||||
//print("==== DRAW NODES ====");
|
||||
|
||||
display_parameter.highlight =
|
||||
!array_empty(nodes_selecting) && (
|
||||
(PREFERENCES.connection_line_highlight == 1 && key_mod_press(ALT)) ||
|
||||
@ -728,7 +730,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
var gr_y = graph_y * graph_s;
|
||||
|
||||
var log = false;
|
||||
var t = current_time;
|
||||
var t = get_timer();
|
||||
printIf(log, "============ Draw start ============");
|
||||
|
||||
var frame_hovering = noone;
|
||||
|
||||
@ -736,7 +739,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
nodes_list[| i].cullCheck(gr_x, gr_y, graph_s, -32, -32, w + 32, h + 64);
|
||||
nodes_list[| i].preDraw(gr_x, gr_y, graph_s, gr_x, gr_y);
|
||||
}
|
||||
printIf(log, "Predraw time: " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Predraw time: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region draw frame
|
||||
for(var i = 0; i < ds_list_size(nodes_list); i++) {
|
||||
@ -744,7 +747,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
frame_hovering = nodes_list[| i];
|
||||
}
|
||||
#endregion
|
||||
printIf(log, "Frame draw time: " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Frame draw time: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region hover
|
||||
node_hovering = noone;
|
||||
@ -767,7 +770,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
|
||||
if(node_hovering) node_hovering.onDrawHover(gr_x, gr_y, mx, my, graph_s);
|
||||
#endregion
|
||||
printIf(log, "Hover time: " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Hover time: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region selection
|
||||
if(mouse_on_graph && pHOVER) {
|
||||
@ -878,7 +881,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
} #endregion
|
||||
}
|
||||
#endregion
|
||||
printIf(log, "Node selection time: " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Node selection time: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region draw active
|
||||
for(var i = 0; i < array_length(nodes_selecting); i++) {
|
||||
@ -887,79 +890,78 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
_node.drawActive(gr_x, gr_y, graph_s);
|
||||
}
|
||||
#endregion
|
||||
printIf(log, "Draw active: " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Draw active: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
var aa = min(8192 / w, 8192 / h, PREFERENCES.connection_line_aa);
|
||||
connection_surface = surface_verify(connection_surface, w * aa, h * aa);
|
||||
connection_surface_aa = surface_verify(connection_surface_aa, w, h);
|
||||
surface_set_target(connection_surface);
|
||||
DRAW_CLEAR
|
||||
#region draw connections
|
||||
var aa = min(8192 / w, 8192 / h, PREFERENCES.connection_line_aa);
|
||||
connection_surface = surface_verify(connection_surface, w * aa, h * aa);
|
||||
connection_surface_aa = surface_verify(connection_surface_aa, w, h);
|
||||
surface_set_target(connection_surface);
|
||||
DRAW_CLEAR
|
||||
|
||||
var hov = noone;
|
||||
var hoverable = !bool(node_dragging) && pHOVER;
|
||||
var hov = noone;
|
||||
var hoverable = !bool(node_dragging) && pHOVER;
|
||||
|
||||
var _params = {
|
||||
x : gr_x,
|
||||
y : gr_y,
|
||||
s : graph_s,
|
||||
mx : mx,
|
||||
my : my,
|
||||
aa : aa,
|
||||
bg : bg_color,
|
||||
minx : -64,
|
||||
miny : -64,
|
||||
maxx : w + 64,
|
||||
maxy : h + 64,
|
||||
active : hoverable,
|
||||
max_layer : ds_list_size(nodes_list),
|
||||
highlight : display_parameter.highlight,
|
||||
};
|
||||
connection_param.x = gr_x;
|
||||
connection_param.y = gr_y;
|
||||
connection_param.s = graph_s;
|
||||
connection_param.mx = mx;
|
||||
connection_param.my = my;
|
||||
connection_param.aa = aa;
|
||||
connection_param.bg = bg_color;
|
||||
connection_param.minx = -64;
|
||||
connection_param.miny = -64;
|
||||
connection_param.maxx = w + 64;
|
||||
connection_param.maxy = h + 64;
|
||||
connection_param.active = hoverable;
|
||||
connection_param.max_layer = ds_list_size(nodes_list);
|
||||
connection_param.highlight = display_parameter.highlight;
|
||||
|
||||
for(var i = 0; i < ds_list_size(nodes_list); i++) {
|
||||
_params.cur_layer = i + 1;
|
||||
for(var i = 0; i < ds_list_size(nodes_list); i++) {
|
||||
connection_param.cur_layer = i + 1;
|
||||
|
||||
var _hov = nodes_list[| i].drawConnections(_params);
|
||||
if(_hov != noone && is_struct(_hov)) hov = _hov;
|
||||
}
|
||||
var _hov = nodes_list[| i].drawConnections(connection_param);
|
||||
if(_hov != noone && is_struct(_hov)) hov = _hov;
|
||||
}
|
||||
|
||||
if(value_dragging && connection_draw_mouse != noone) {
|
||||
var _cmx = connection_draw_mouse[0];
|
||||
var _cmy = connection_draw_mouse[1];
|
||||
var _cmt = connection_draw_target;
|
||||
if(value_dragging && connection_draw_mouse != noone) {
|
||||
var _cmx = connection_draw_mouse[0];
|
||||
var _cmy = connection_draw_mouse[1];
|
||||
var _cmt = connection_draw_target;
|
||||
|
||||
if(array_empty(value_draggings))
|
||||
value_dragging.drawConnectionMouse(_params, _cmx, _cmy, _cmt);
|
||||
else {
|
||||
var _stIndex = array_find(value_draggings, value_dragging);
|
||||
if(array_empty(value_draggings))
|
||||
value_dragging.drawConnectionMouse(connection_param, _cmx, _cmy, _cmt);
|
||||
else {
|
||||
var _stIndex = array_find(value_draggings, value_dragging);
|
||||
|
||||
for( var i = 0, n = array_length(value_draggings); i < n; i++ ) {
|
||||
var _dmx = _cmx;
|
||||
var _dmy = value_draggings[i].connect_type == JUNCTION_CONNECT.output? _cmy + (i - _stIndex) * 24 * graph_s : _cmy;
|
||||
for( var i = 0, n = array_length(value_draggings); i < n; i++ ) {
|
||||
var _dmx = _cmx;
|
||||
var _dmy = value_draggings[i].connect_type == JUNCTION_CONNECT.output? _cmy + (i - _stIndex) * 24 * graph_s : _cmy;
|
||||
|
||||
value_draggings[i].drawConnectionMouse(_params, _dmx, _dmy, _cmt);
|
||||
value_draggings[i].drawConnectionMouse(connection_param, _dmx, _dmy, _cmt);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
printIf(log, "Draw connection: " + string(current_time - t)); t = current_time;
|
||||
surface_reset_target();
|
||||
|
||||
surface_reset_target();
|
||||
surface_set_shader(connection_surface_aa, sh_downsample);
|
||||
shader_set_f("down", aa);
|
||||
shader_set_dim("dimension", connection_surface);
|
||||
draw_surface(connection_surface, 0, 0);
|
||||
surface_reset_shader();
|
||||
|
||||
surface_set_shader(connection_surface_aa, sh_downsample);
|
||||
shader_set_f("down", aa);
|
||||
shader_set_dim("dimension", connection_surface);
|
||||
draw_surface(connection_surface, 0, 0);
|
||||
surface_reset_shader();
|
||||
BLEND_ALPHA_MULP
|
||||
draw_surface(connection_surface_aa, 0, 0);
|
||||
BLEND_NORMAL
|
||||
|
||||
BLEND_ALPHA_MULP
|
||||
draw_surface(connection_surface_aa, 0, 0);
|
||||
BLEND_NORMAL
|
||||
|
||||
junction_hovering = (node_hovering == noone && !is_struct(node_hovering))? hov : noone;
|
||||
value_focus = noone;
|
||||
junction_hovering = (node_hovering == noone && !is_struct(node_hovering))? hov : noone;
|
||||
value_focus = noone;
|
||||
#endregion
|
||||
printIf(log, $"Draw connection: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region draw node
|
||||
var t = current_time;
|
||||
var t = get_timer();
|
||||
for(var i = 0; i < ds_list_size(nodes_list); i++)
|
||||
nodes_list[| i].onDrawNodeBehind(gr_x, gr_y, mx, my, graph_s);
|
||||
|
||||
@ -977,9 +979,8 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
|
||||
for(var i = 0; i < ds_list_size(nodes_list); i++)
|
||||
nodes_list[| i].drawBadge(gr_x, gr_y, graph_s);
|
||||
|
||||
printIf(log, "Draw node: " + string(current_time - t)); t = current_time;
|
||||
#endregion
|
||||
printIf(log, $"Draw node: {get_timer() - t}"); t = get_timer();
|
||||
|
||||
#region dragging
|
||||
if(mouse_press(mb_left))
|
||||
@ -1034,11 +1035,11 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
}
|
||||
}
|
||||
}
|
||||
printIf(log, "Drag node time : " + string(current_time - t)); t = current_time;
|
||||
|
||||
if(mouse_release(mb_left))
|
||||
node_dragging = noone;
|
||||
#endregion
|
||||
printIf(log, $"Drag node time : {get_timer() - t}"); t = get_timer();
|
||||
|
||||
if(mouse_on_graph && pFOCUS) { #region
|
||||
var _node = getFocusingNode();
|
||||
@ -1125,8 +1126,7 @@ function Panel_Graph(project = PROJECT) : PanelContent() constructor {
|
||||
drag_locking = false;
|
||||
}
|
||||
#endregion
|
||||
|
||||
printIf(log, "Draw selection frame : " + string(current_time - t)); t = current_time;
|
||||
printIf(log, $"Draw selection frame : {get_timer() - t}"); t = get_timer();
|
||||
} #endregion
|
||||
|
||||
function drawJunctionConnect() { #region
|
||||
|
@ -427,7 +427,7 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
}
|
||||
|
||||
draw_set_text(f_p1, fa_center, fa_center, COLORS._main_text);
|
||||
draw_text_add(xc, yc, menus[i][0]);
|
||||
draw_text_add(round(xc), round(yc), menus[i][0]);
|
||||
|
||||
if(hori) {
|
||||
xx += ww + 8;
|
||||
@ -499,11 +499,11 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
draw_set_color(COLORS._main_text_inner);
|
||||
var wr_x = hori? nx0 + ui(8) : w / 2 - (wr_w + er_w + ui(16)) / 2;
|
||||
draw_sprite_ui_uniform(THEME.noti_icon_warning, warning_amo? 1 : 0, wr_x + ui(10), ny0);
|
||||
draw_text(wr_x + ui(28), ny0, warning_amo);
|
||||
draw_text(round(wr_x + ui(28)), round(ny0), warning_amo);
|
||||
|
||||
wr_x += wr_w + ui(16);
|
||||
draw_sprite_ui_uniform(THEME.noti_icon_error, error_amo? 1 : 0, wr_x + ui(10), ny0);
|
||||
draw_text(wr_x + ui(28), ny0, error_amo);
|
||||
draw_text(round(wr_x + ui(28)), round(ny0), error_amo);
|
||||
|
||||
if(hori) nx0 += nw + ui(8);
|
||||
else ny0 += nh + ui(8);
|
||||
@ -527,7 +527,7 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
dialogPanelCall(new Panel_Addon());
|
||||
} else
|
||||
draw_sprite_stretched(THEME.ui_panel_bg, 1, nx0, ny0 - wh / 2, ww, wh);
|
||||
draw_text(nx0 + ui(8), ny0, name);
|
||||
draw_text(round(nx0 + ui(8)), round(ny0), name);
|
||||
draw_sprite_ui(THEME.addon_icon, 0, nx0 + ui(20) + string_width(name), ny0 + ui(1),,,, COLORS._main_icon);
|
||||
|
||||
if(hori) nx0 += ww + ui(4);
|
||||
@ -644,7 +644,7 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
}
|
||||
}
|
||||
|
||||
draw_text((_x0 + _x1) / 2, (_y0 + _y1) / 2, txt);
|
||||
draw_text(round((_x0 + _x1) / 2), round((_y0 + _y1) / 2), txt);
|
||||
} else {
|
||||
var _xx1 = ui(40);
|
||||
var y1 = h - ui(20);
|
||||
@ -663,7 +663,7 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
}
|
||||
}
|
||||
|
||||
draw_text(_xx1 + ui(6), y1, txt);
|
||||
draw_text(round(_xx1 + ui(6)), round(y1), txt);
|
||||
}
|
||||
#endregion
|
||||
|
||||
@ -737,10 +737,10 @@ function Panel_Menu() : PanelContent() constructor {
|
||||
|
||||
if(hori) {
|
||||
draw_set_text(f_p0b, fa_center, fa_center, COLORS._main_text_sub);
|
||||
draw_text(tcx, (ty0 + ty1) / 2, tc);
|
||||
draw_text(round(tcx), round((ty0 + ty1) / 2), tc);
|
||||
} else {
|
||||
draw_set_text(f_p0b, fa_left, fa_center, COLORS._main_text_sub);
|
||||
draw_text(tx0 + ui(8), tby0 + th / 2, tc);
|
||||
draw_text(round(tx0 + ui(8)), round(tby0 + th / 2), tc);
|
||||
}
|
||||
|
||||
if(IS_PATREON && PREFERENCES.show_supporter_icon) {
|
||||
|
@ -168,12 +168,14 @@ function winManStep() { #region
|
||||
}
|
||||
|
||||
winMan_setRect(sx, sy, sw, sh);
|
||||
|
||||
if(mouse_release(mb_left))
|
||||
DISPLAY_REFRESH
|
||||
}
|
||||
|
||||
if(mouse_release(mb_left)) {
|
||||
window_minimize_size = [ sw, sh ];
|
||||
window_drag_status = 0;
|
||||
DISPLAY_REFRESH
|
||||
}
|
||||
} #endregion
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user