diff --git a/PixelComposer.yyp b/PixelComposer.yyp index a319e792c..4257d2f7e 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -417,7 +417,7 @@ {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"mf.dll","CopyToMask":-1,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"mfcore.dll","CopyToMask":-1,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"mfplat.dll","CopyToMask":-1,"filePath":"datafiles",}, - {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"pxc","CopyToMask":-1,"filePath":"datafiles",}, + {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"pxc.exe","CopyToMask":-1,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"README.txt","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"data.win","CopyToMask":-1,"filePath":"datafiles/report",}, {"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"execute_shell_simple_ext_x64.dll","CopyToMask":-1,"filePath":"datafiles/report",}, diff --git a/datafiles/pxc b/datafiles/pxc.exe similarity index 99% rename from datafiles/pxc rename to datafiles/pxc.exe index ed19e3507..ebdbccff8 100644 Binary files a/datafiles/pxc and b/datafiles/pxc.exe differ diff --git a/fonts/_f_sdf/_f_sdf.old.png b/fonts/_f_sdf/_f_sdf.old.png index 3ae3cda1d..d2f452d63 100644 Binary files a/fonts/_f_sdf/_f_sdf.old.png and b/fonts/_f_sdf/_f_sdf.old.png differ diff --git a/fonts/_f_sdf/_f_sdf.png b/fonts/_f_sdf/_f_sdf.png index 885a319b8..8f3b84a30 100644 Binary files a/fonts/_f_sdf/_f_sdf.png and b/fonts/_f_sdf/_f_sdf.png differ diff --git a/fonts/_f_sdf_medium/_f_sdf_medium.old.png b/fonts/_f_sdf_medium/_f_sdf_medium.old.png index bba9d0823..246de4bd4 100644 Binary files a/fonts/_f_sdf_medium/_f_sdf_medium.old.png and b/fonts/_f_sdf_medium/_f_sdf_medium.old.png differ diff --git a/fonts/_f_sdf_medium/_f_sdf_medium.png b/fonts/_f_sdf_medium/_f_sdf_medium.png index a2d3ab2f0..8e6c81e9c 100644 Binary files a/fonts/_f_sdf_medium/_f_sdf_medium.png and b/fonts/_f_sdf_medium/_f_sdf_medium.png differ diff --git a/scripts/color_function/color_function.gml b/scripts/color_function/color_function.gml index 9217e3604..e61f867ba 100644 --- a/scripts/color_function/color_function.gml +++ b/scripts/color_function/color_function.gml @@ -28,9 +28,9 @@ k.z = power(k.z, 3); var rg = global.CVTMAT_OKLAB_RGB.multiplyVector(k); - rg.x = power(rg.x, 1 / 2.2); - rg.y = power(rg.y, 1 / 2.2); - rg.z = power(rg.z, 1 / 2.2); + rg.x = power(rg.x, 1 / 2.2) * 255; + rg.y = power(rg.y, 1 / 2.2) * 255; + rg.z = power(rg.z, 1 / 2.2) * 255; return make_color_rgba(rg.x, rg.y, rg.z, a); } #endregion diff --git a/scripts/node_color_mix/node_color_mix.gml b/scripts/node_color_mix/node_color_mix.gml index 3f73172a8..e62037157 100644 --- a/scripts/node_color_mix/node_color_mix.gml +++ b/scripts/node_color_mix/node_color_mix.gml @@ -17,15 +17,18 @@ function Node_Color_Mix(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) input_display_list = [ 3, 0, 1, 2 ]; static processData = function(_output, _data, _output_index, _array_index = 0) { + var c = c_black; + switch(_data[3]) { - case 0 : return merge_color_ext(_data[0], _data[1], _data[2]); - case 1 : return merge_color_hsv(_data[0], _data[1], _data[2]); - case 2 : return merge_color_oklab(_data[0], _data[1], _data[2]); + case 0 : c = merge_color_ext( _data[0], _data[1], _data[2]); break; + case 1 : c = merge_color_hsv( _data[0], _data[1], _data[2]); break; + case 2 : c = merge_color_oklab(_data[0], _data[1], _data[2]); break; } + return c; } - static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { + static onDrawNode = function(xx, yy, _mx, _my, _s, _hover, _focus) { #region var bbox = drawGetBbox(xx, yy, _s); if(bbox.h < 1) return; @@ -37,5 +40,5 @@ function Node_Color_Mix(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) } drawColor(col, bbox.x0, bbox.y0, bbox.w, bbox.h); - } + } #endregion } \ No newline at end of file diff --git a/scripts/node_image/node_image.gml b/scripts/node_image/node_image.gml index dd5c66e95..06b019969 100644 --- a/scripts/node_image/node_image.gml +++ b/scripts/node_image/node_image.gml @@ -117,7 +117,7 @@ function Node_Image(_x, _y, _group = noone) : Node(_x, _y, _group) constructor { if(array_empty(spr)) return; - var _arr = is_array(spr); + var _arr = is_array(spr) && array_length(spr) > 1; var _outsurf = outputs[| 0].getValue(); if(!is_array(_outsurf)) _outsurf = [ _outsurf ]; diff --git a/scripts/node_region_fill/node_region_fill.gml b/scripts/node_region_fill/node_region_fill.gml index 5cfb2ca3c..6e52c93c7 100644 --- a/scripts/node_region_fill/node_region_fill.gml +++ b/scripts/node_region_fill/node_region_fill.gml @@ -98,13 +98,13 @@ function Node_Region_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou draw_surface_safe(temp_surface[1]); surface_reset_shader(); } - - surface_set_shader(temp_surface[base], sh_region_fill_coordinate_init); - draw_surface_safe(temp_surface[2]); - surface_reset_shader(); #endregion #region coordinate + surface_set_shader(temp_surface[base], sh_region_fill_coordinate_init); + draw_surface_safe(temp_surface[2]); + surface_reset_shader(); + base = !base; var amo = _sw + _sh; @@ -120,7 +120,7 @@ function Node_Region_Fill(_x, _y, _group = noone) : Node_Processor(_x, _y, _grou } surface_set_shader(temp_surface[base], sh_region_fill_border); - shader_set_f("dimension", _sw, _sh); + shader_set_f("dimension", _sw, _sh); shader_set_surface("original", _surf); draw_surface_safe(temp_surface[!base]); diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index 698238463..e6ddb83e3 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -715,7 +715,7 @@ function __initNodes() { addNodeObject(generator, "StrandSim", s_node_strandSim, "Node_Strand_Group_Inline", [1, Node_Strand_Group_Inline], ["hair"], "Create group for hair simulation.").setVersion(1140); addNodeObject(generator, "Diffuse", s_node_diffuse, "Node_Diffuse", [1, Node_Diffuse],, "Simulate diffusion like simulation.").setVersion(11640); addNodeObject(generator, "Reaction Diffusion", s_node_reaction_diffusion, "Node_RD", [1, Node_RD],, "Simulate reaction diffusion effect.").setVersion(11630); - + ds_list_add(generator, "Region"); addNodeObject(generator, "Separate Shape", s_node_sepearte_shape, "Node_Seperate_Shape", [1, Node_Seperate_Shape],, "Separate disconnected pixel each into an image in an image array."); addNodeObject(generator, "Region Fill", s_node_region_fill, "Node_Region_Fill", [1, Node_Region_Fill],, "Fill connected pixel with colors.").setVersion(1147); diff --git a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh index 0e44d1c75..c3251c420 100644 --- a/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh +++ b/shaders/sh_region_fill_coordinate/sh_region_fill_coordinate.fsh @@ -6,24 +6,6 @@ varying vec4 v_vColour; uniform sampler2D base; uniform vec2 dimension; -vec2 less ( vec2 a, vec2 b ) { #region - if(b == vec2(0.)) return a; - if(a == vec2(0.)) return b; - - if(a.y < b.y) return a; - else if(a.y > b.y) return b; - else return a.x < b.x? a : b; -} #endregion - -vec2 more ( vec2 a, vec2 b ) { #region - if(b == vec2(0.)) return a; - if(a == vec2(0.)) return b; - - if(a.y > b.y) return a; - else if(a.y < b.y) return b; - else return a.x > b.x? a : b; -} #endregion - void main() { vec2 tx = 1. / dimension; vec4 c = texture2D( gm_BaseTexture, v_vTexcoord ); @@ -40,12 +22,12 @@ void main() { if(x.x < 0. || x.y < 0. || x.x > 1. || x.y > 1.) break; vec4 s = texture2D( gm_BaseTexture, x ); - vec4 b = texture2D( base, x ); + vec4 b = texture2D( base, x ); if(b.a == 0.) break; - gl_FragColor.xy = less( gl_FragColor.xy, s.xy ); - gl_FragColor.zw = more( gl_FragColor.zw, s.zw ); + gl_FragColor.xy = min( gl_FragColor.xy, s.xy ); + gl_FragColor.zw = max( gl_FragColor.zw, s.zw ); } for( float i = 1.; i < ITERATION; i++ ) { @@ -53,12 +35,12 @@ void main() { if(x.x < 0. || x.y < 0. || x.x > 1. || x.y > 1.) break; vec4 s = texture2D( gm_BaseTexture, x ); - vec4 b = texture2D( base, x ); + vec4 b = texture2D( base, x ); if(b.a == 0.) break; - gl_FragColor.xy = less( gl_FragColor.xy, s.xy ); - gl_FragColor.zw = more( gl_FragColor.zw, s.zw ); + gl_FragColor.xy = min( gl_FragColor.xy, s.xy ); + gl_FragColor.zw = max( gl_FragColor.zw, s.zw ); } for( float i = 1.; i < ITERATION; i++ ) { @@ -66,12 +48,12 @@ void main() { if(x.x < 0. || x.y < 0. || x.x > 1. || x.y > 1.) break; vec4 s = texture2D( gm_BaseTexture, x ); - vec4 b = texture2D( base, x ); + vec4 b = texture2D( base, x ); if(b.a == 0.) break; - gl_FragColor.xy = less( gl_FragColor.xy, s.xy ); - gl_FragColor.zw = more( gl_FragColor.zw, s.zw ); + gl_FragColor.xy = min( gl_FragColor.xy, s.xy ); + gl_FragColor.zw = max( gl_FragColor.zw, s.zw ); } for( float i = 1.; i < ITERATION; i++ ) { @@ -79,11 +61,11 @@ void main() { if(x.x < 0. || x.y < 0. || x.x > 1. || x.y > 1.) break; vec4 s = texture2D( gm_BaseTexture, x ); - vec4 b = texture2D( base, x ); + vec4 b = texture2D( base, x ); if(b.a == 0.) break; - gl_FragColor.xy = less( gl_FragColor.xy, s.xy ); - gl_FragColor.zw = more( gl_FragColor.zw, s.zw ); + gl_FragColor.xy = min( gl_FragColor.xy, s.xy ); + gl_FragColor.zw = max( gl_FragColor.zw, s.zw ); } } diff --git a/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.fsh b/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.fsh index b99478e2d..fafe119e5 100644 --- a/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.fsh +++ b/shaders/sh_region_fill_rg_map/sh_region_fill_rg_map.fsh @@ -13,5 +13,4 @@ void main() { vec2 t = (v_vTexcoord - c.xy) / (c.zw - c.xy); gl_FragColor = texture2D( textureMap, t ); - gl_FragColor = vec4( t, 0., 1. ); }