From 0ee9e83822f9ed5f6f4c3324672a970a78909931 Mon Sep 17 00:00:00 2001 From: Tanasart Date: Fri, 10 Jan 2025 09:04:53 +0700 Subject: [PATCH] change node list to use array --- PixelComposer.resource_order | 114 ++++----- PixelComposer.yyp | 18 +- datafiles/data/Nodes/display_data.json | 14 ++ objects/o_dialog_add_node/Create_0.gml | 101 ++++---- objects/o_dialog_add_node/Destroy_0.gml | 1 - scripts/__node_custom/__node_custom.gml | 219 ------------------ scripts/array_functions/array_functions.gml | 5 +- scripts/globals/globals.gml | 2 +- .../node_action_object/node_action_object.gml | 20 +- .../node_checkerboard.yy | 0 .../node_custom_shader/node_custom_shader.gml | 205 ++++++++++++++++ .../node_custom_shader/node_custom_shader.yy | 13 ++ .../node_stripe.yy | 0 scripts/node_data/node_data.gml | 4 +- scripts/node_hlsl/node_hlsl.gml | 4 +- scripts/node_registry/node_registry.gml | 117 ++++++---- .../node_test_blur/node_color_adjustment.yy | 12 + .../node_test_blur/node_color_replacement.yy | 12 + scripts/node_test_blur/node_glow.yy | 12 + scripts/node_test_blur/node_outline.yy | 12 + scripts/node_test_blur/node_test_blur.gml | 127 ++++++++++ .../node_test_blur.yy} | 8 +- scripts/panel_collection/panel_collection.gml | 31 ++- shaders/sh_test_blur/sh_test_blur.fsh | 10 + shaders/sh_test_blur/sh_test_blur.vsh | 19 ++ shaders/sh_test_blur/sh_test_blur.yy | 12 + 26 files changed, 684 insertions(+), 408 deletions(-) delete mode 100644 scripts/__node_custom/__node_custom.gml rename scripts/{__node_custom => node_custom_shader}/node_checkerboard.yy (100%) create mode 100644 scripts/node_custom_shader/node_custom_shader.gml create mode 100644 scripts/node_custom_shader/node_custom_shader.yy rename scripts/{__node_custom => node_custom_shader}/node_stripe.yy (100%) create mode 100644 scripts/node_test_blur/node_color_adjustment.yy create mode 100644 scripts/node_test_blur/node_color_replacement.yy create mode 100644 scripts/node_test_blur/node_glow.yy create mode 100644 scripts/node_test_blur/node_outline.yy create mode 100644 scripts/node_test_blur/node_test_blur.gml rename scripts/{__node_custom/__node_custom.yy => node_test_blur/node_test_blur.yy} (54%) create mode 100644 shaders/sh_test_blur/sh_test_blur.fsh create mode 100644 shaders/sh_test_blur/sh_test_blur.vsh create mode 100644 shaders/sh_test_blur/sh_test_blur.yy diff --git a/PixelComposer.resource_order b/PixelComposer.resource_order index f6b78e1f4..0864fa344 100644 --- a/PixelComposer.resource_order +++ b/PixelComposer.resource_order @@ -68,6 +68,7 @@ {"name":"components","order":3,"path":"folders/main/components.yy",}, {"name":"misc","order":338,"path":"folders/misc.yy",}, {"name":"animation_curve","order":1,"path":"folders/misc/animation_curve.yy",}, + {"name":"debugging","order":2,"path":"folders/misc/debugging.yy",}, {"name":"nodes","order":330,"path":"folders/nodes.yy",}, {"name":"data","order":1,"path":"folders/nodes/data.yy",}, {"name":"2d_effects","order":2,"path":"folders/nodes/data/3D/2d_effects.yy",}, @@ -145,6 +146,7 @@ {"name":"for","order":2,"path":"folders/nodes/data/iterate/for.yy",}, {"name":"lua","order":9,"path":"folders/nodes/data/lua.yy",}, {"name":"misc","order":19,"path":"folders/nodes/data/misc.yy",}, + {"name":"custom","order":2,"path":"folders/nodes/data/misc/custom.yy",}, {"name":"tunnel","order":1,"path":"folders/nodes/data/misc/tunnel.yy",}, {"name":"MKFX","order":10,"path":"folders/nodes/data/MKFX.yy",}, {"name":"Flag","order":10,"path":"folders/nodes/data/MKFX/Flag.yy",}, @@ -404,7 +406,6 @@ {"name":"__node_3d_transform","order":8,"path":"scripts/__node_3d_transform/__node_3d_transform.yy",}, {"name":"__node_3d","order":10,"path":"scripts/__node_3d/__node_3d.yy",}, {"name":"__node_controller","order":14,"path":"scripts/__node_controller/__node_controller.yy",}, - {"name":"__node_custom","order":14,"path":"scripts/__node_custom/__node_custom.yy",}, {"name":"__node_iterator_inline","order":7,"path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",}, {"name":"__node_iterator","order":6,"path":"scripts/__node_iterator/__node_iterator.yy",}, {"name":"__node_module_test","order":25,"path":"scripts/__node_module_test/__node_module_test.yy",}, @@ -693,11 +694,11 @@ {"name":"node_ambient_occlusion","order":5,"path":"scripts/node_ambient_occlusion/node_ambient_occlusion.yy",}, {"name":"node_anim_curve","order":1,"path":"scripts/node_anim_curve/node_anim_curve.yy",}, {"name":"node_anim_priority","order":2,"path":"scripts/node_anim_priority/node_anim_priority.yy",}, - {"name":"node_animation_control","order":11,"path":"scripts/node_animation_control/node_animation_control.yy",}, - {"name":"node_application_in","order":20,"path":"scripts/node_application_in/node_application_in.yy",}, - {"name":"node_application_out","order":19,"path":"scripts/node_application_out/node_application_out.yy",}, + {"name":"node_animation_control","order":13,"path":"scripts/node_animation_control/node_animation_control.yy",}, + {"name":"node_application_in","order":21,"path":"scripts/node_application_in/node_application_in.yy",}, + {"name":"node_application_out","order":20,"path":"scripts/node_application_out/node_application_out.yy",}, {"name":"node_area","order":15,"path":"scripts/node_area/node_area.yy",}, - {"name":"node_argument","order":24,"path":"scripts/node_argument/node_argument.yy",}, + {"name":"node_argument","order":25,"path":"scripts/node_argument/node_argument.yy",}, {"name":"node_armature_bind","order":10,"path":"scripts/node_armature_bind/node_armature_bind.yy",}, {"name":"node_armature_mesh_rig","order":14,"path":"scripts/node_armature_mesh_rig/node_armature_mesh_rig.yy",}, {"name":"node_armature_path","order":12,"path":"scripts/node_armature_path/node_armature_path.yy",}, @@ -727,7 +728,7 @@ {"name":"node_array","order":5,"path":"scripts/node_array/node_array.yy",}, {"name":"node_ase_layer","order":1,"path":"scripts/node_ase_layer/node_ase_layer.yy",}, {"name":"node_ase_tag","order":2,"path":"scripts/node_ase_tag/node_ase_tag.yy",}, - {"name":"node_assert","order":30,"path":"scripts/node_assert/node_assert.yy",}, + {"name":"node_assert","order":31,"path":"scripts/node_assert/node_assert.yy",}, {"name":"node_atlas_get","order":1,"path":"scripts/node_atlas_get/node_atlas_get.yy",}, {"name":"node_atlas_set","order":2,"path":"scripts/node_atlas_set/node_atlas_set.yy",}, {"name":"node_atlas_to_struct","order":3,"path":"scripts/node_atlas_to_struct/node_atlas_to_struct.yy",}, @@ -740,25 +741,25 @@ {"name":"node_blend","order":1,"path":"scripts/node_blend/node_blend.yy",}, {"name":"node_blobify","order":2,"path":"scripts/node_blobify/node_blobify.yy",}, {"name":"node_bloom","order":4,"path":"scripts/node_bloom/node_bloom.yy",}, - {"name":"node_blur_bokeh","order":6,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",}, - {"name":"node_blur_box","order":10,"path":"scripts/node_blur_box/node_blur_box.yy",}, - {"name":"node_blur_contrast","order":8,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",}, - {"name":"node_blur_directional","order":12,"path":"scripts/node_blur_directional/node_blur_directional.yy",}, - {"name":"node_blur_path","order":28,"path":"scripts/node_blur_path/node_blur_path.yy",}, - {"name":"node_blur_radial","order":14,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, - {"name":"node_blur_shape","order":16,"path":"scripts/node_blur_shape/node_blur_shape.yy",}, - {"name":"node_blur_simple","order":18,"path":"scripts/node_blur_simple/node_blur_simple.yy",}, - {"name":"node_blur_slope","order":20,"path":"scripts/node_blur_slope/node_blur_slope.yy",}, - {"name":"node_blur_zoom","order":22,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",}, + {"name":"node_blur_bokeh","order":7,"path":"scripts/node_blur_bokeh/node_blur_bokeh.yy",}, + {"name":"node_blur_box","order":11,"path":"scripts/node_blur_box/node_blur_box.yy",}, + {"name":"node_blur_contrast","order":9,"path":"scripts/node_blur_contrast/node_blur_contrast.yy",}, + {"name":"node_blur_directional","order":13,"path":"scripts/node_blur_directional/node_blur_directional.yy",}, + {"name":"node_blur_path","order":29,"path":"scripts/node_blur_path/node_blur_path.yy",}, + {"name":"node_blur_radial","order":15,"path":"scripts/node_blur_radial/node_blur_radial.yy",}, + {"name":"node_blur_shape","order":17,"path":"scripts/node_blur_shape/node_blur_shape.yy",}, + {"name":"node_blur_simple","order":19,"path":"scripts/node_blur_simple/node_blur_simple.yy",}, + {"name":"node_blur_slope","order":21,"path":"scripts/node_blur_slope/node_blur_slope.yy",}, + {"name":"node_blur_zoom","order":23,"path":"scripts/node_blur_zoom/node_blur_zoom.yy",}, {"name":"node_blur","order":4,"path":"scripts/node_blur/node_blur.yy",}, {"name":"node_boolean","order":17,"path":"scripts/node_boolean/node_boolean.yy",}, {"name":"node_box_pattern","order":22,"path":"scripts/node_box_pattern/node_box_pattern.yy",}, {"name":"node_brush_linear","order":45,"path":"scripts/node_brush_linear/node_brush_linear.yy",}, {"name":"node_byte_file_read","order":16,"path":"scripts/node_byte_file_read/node_byte_file_read.yy",}, {"name":"node_byte_file_write","order":15,"path":"scripts/node_byte_file_write/node_byte_file_write.yy",}, - {"name":"node_cache_array","order":8,"path":"scripts/node_cache_array/node_cache_array.yy",}, - {"name":"node_cache_base","order":18,"path":"scripts/node_cache_base/node_cache_base.yy",}, - {"name":"node_cache","order":9,"path":"scripts/node_cache/node_cache.yy",}, + {"name":"node_cache_array","order":10,"path":"scripts/node_cache_array/node_cache_array.yy",}, + {"name":"node_cache_base","order":19,"path":"scripts/node_cache_base/node_cache_base.yy",}, + {"name":"node_cache","order":11,"path":"scripts/node_cache/node_cache.yy",}, {"name":"node_camera","order":2,"path":"scripts/node_camera/node_camera.yy",}, {"name":"node_canvas_group","order":5,"path":"scripts/node_canvas_group/node_canvas_group.yy",}, {"name":"node_canvas","order":4,"path":"scripts/node_canvas/node_canvas.yy",}, @@ -780,7 +781,7 @@ {"name":"node_combine_hsv","order":2,"path":"scripts/node_combine_hsv/node_combine_hsv.yy",}, {"name":"node_compare","order":16,"path":"scripts/node_compare/node_compare.yy",}, {"name":"node_composite","order":3,"path":"scripts/node_composite/node_composite.yy",}, - {"name":"node_condition","order":2,"path":"scripts/node_condition/node_condition.yy",}, + {"name":"node_condition","order":4,"path":"scripts/node_condition/node_condition.yy",}, {"name":"node_connection_path","order":1,"path":"scripts/node_connection_path/node_connection_path.yy",}, {"name":"node_convolution","order":8,"path":"scripts/node_convolution/node_convolution.yy",}, {"name":"node_corner","order":10,"path":"scripts/node_corner/node_corner.yy",}, @@ -798,11 +799,11 @@ {"name":"node_diffuse","order":7,"path":"scripts/node_diffuse/node_diffuse.yy",}, {"name":"node_directory_search","order":17,"path":"scripts/node_directory_search/node_directory_search.yy",}, {"name":"node_displace","order":2,"path":"scripts/node_displace/node_displace.yy",}, - {"name":"node_display_image","order":6,"path":"scripts/node_display_image/node_display_image.yy",}, - {"name":"node_display_text","order":5,"path":"scripts/node_display_text/node_display_text.yy",}, + {"name":"node_display_image","order":8,"path":"scripts/node_display_image/node_display_image.yy",}, + {"name":"node_display_text","order":7,"path":"scripts/node_display_text/node_display_text.yy",}, {"name":"node_dither_diffuse","order":14,"path":"scripts/node_dither_diffuse/node_dither_diffuse.yy",}, {"name":"node_dither","order":12,"path":"scripts/node_dither/node_dither.yy",}, - {"name":"node_dll","order":26,"path":"scripts/node_dll/node_dll.yy",}, + {"name":"node_dll","order":27,"path":"scripts/node_dll/node_dll.yy",}, {"name":"node_dust","order":6,"path":"scripts/node_dust/node_dust.yy",}, {"name":"node_dynasurf_in","order":4,"path":"scripts/node_dynasurf_in/node_dynasurf_in.yy",}, {"name":"node_dynasurf_out_height","order":3,"path":"scripts/node_dynasurf_out_height/node_dynasurf_out_height.yy",}, @@ -840,9 +841,9 @@ {"name":"node_fn_wave_table","order":1,"path":"scripts/node_fn_wave_table/node_fn_wave_table.yy",}, {"name":"node_fn","order":2,"path":"scripts/node_fn/node_fn.yy",}, {"name":"node_fold_noise","order":32,"path":"scripts/node_fold_noise/node_fold_noise.yy",}, - {"name":"node_frame","order":3,"path":"scripts/node_frame/node_frame.yy",}, + {"name":"node_frame","order":5,"path":"scripts/node_frame/node_frame.yy",}, {"name":"node_functions","order":2,"path":"scripts/node_functions/node_functions.yy",}, - {"name":"node_FXAA","order":24,"path":"scripts/node_FXAA/node_FXAA.yy",}, + {"name":"node_FXAA","order":25,"path":"scripts/node_FXAA/node_FXAA.yy",}, {"name":"node_gabor_noise","order":26,"path":"scripts/node_gabor_noise/node_gabor_noise.yy",}, {"name":"node_gamma_map","order":32,"path":"scripts/node_gamma_map/node_gamma_map.yy",}, {"name":"node_global","order":3,"path":"scripts/node_global/node_global.yy",}, @@ -856,7 +857,7 @@ {"name":"node_gradient_sample","order":16,"path":"scripts/node_gradient_sample/node_gradient_sample.yy",}, {"name":"node_gradient_shift","order":10,"path":"scripts/node_gradient_shift/node_gradient_shift.yy",}, {"name":"node_grain","order":40,"path":"scripts/node_grain/node_grain.yy",}, - {"name":"node_graph_preview","order":22,"path":"scripts/node_graph_preview/node_graph_preview.yy",}, + {"name":"node_graph_preview","order":23,"path":"scripts/node_graph_preview/node_graph_preview.yy",}, {"name":"node_grey_alpha","order":8,"path":"scripts/node_grey_alpha/node_grey_alpha.yy",}, {"name":"node_greyscale","order":14,"path":"scripts/node_greyscale/node_greyscale.yy",}, {"name":"node_grid_hex","order":4,"path":"scripts/node_grid_hex/node_grid_hex.yy",}, @@ -870,11 +871,11 @@ {"name":"node_group_thumbnail","order":3,"path":"scripts/node_group_thumbnail/node_group_thumbnail.yy",}, {"name":"node_guide","order":9,"path":"scripts/node_guide/node_guide.yy",}, {"name":"node_herringbone_tile","order":14,"path":"scripts/node_herringbone_tile/node_herringbone_tile.yy",}, - {"name":"node_high_pass","order":30,"path":"scripts/node_high_pass/node_high_pass.yy",}, - {"name":"node_hlsl","order":13,"path":"scripts/node_hlsl/node_hlsl.yy",}, + {"name":"node_high_pass","order":31,"path":"scripts/node_high_pass/node_high_pass.yy",}, + {"name":"node_hlsl","order":15,"path":"scripts/node_hlsl/node_hlsl.yy",}, {"name":"node_honey_noise","order":44,"path":"scripts/node_honey_noise/node_honey_noise.yy",}, {"name":"node_hsv_channel","order":4,"path":"scripts/node_hsv_channel/node_hsv_channel.yy",}, - {"name":"node_http_request","order":27,"path":"scripts/node_http_request/node_http_request.yy",}, + {"name":"node_http_request","order":28,"path":"scripts/node_http_request/node_http_request.yy",}, {"name":"node_image_gif","order":1,"path":"scripts/node_image_gif/node_image_gif.yy",}, {"name":"node_image_grid","order":4,"path":"scripts/node_image_grid/node_image_grid.yy",}, {"name":"node_image_sequence","order":2,"path":"scripts/node_image_sequence/node_image_sequence.yy",}, @@ -941,7 +942,7 @@ {"name":"node_mk_sparkle","order":20,"path":"scripts/node_mk_sparkle/node_mk_sparkle.yy",}, {"name":"node_mk_subpixel","order":23,"path":"scripts/node_mk_subpixel/node_mk_subpixel.yy",}, {"name":"node_mk_tile","order":11,"path":"scripts/node_mk_tile/node_mk_tile.yy",}, - {"name":"node_monitor_capture","order":21,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",}, + {"name":"node_monitor_capture","order":22,"path":"scripts/node_monitor_capture/node_monitor_capture.yy",}, {"name":"node_morph_surface","order":10,"path":"scripts/node_morph_surface/node_morph_surface.yy",}, {"name":"node_move_point","order":9,"path":"scripts/node_move_point/node_move_point.yy",}, {"name":"node_noise_aniso","order":2,"path":"scripts/node_noise_aniso/node_noise_aniso.yy",}, @@ -956,10 +957,10 @@ {"name":"node_normal_light","order":2,"path":"scripts/node_normal_light/node_normal_light.yy",}, {"name":"node_normal","order":1,"path":"scripts/node_normal/node_normal.yy",}, {"name":"node_normalize","order":36,"path":"scripts/node_normalize/node_normalize.yy",}, - {"name":"node_note","order":17,"path":"scripts/node_note/node_note.yy",}, + {"name":"node_note","order":18,"path":"scripts/node_note/node_note.yy",}, {"name":"node_number","order":1,"path":"scripts/node_number/node_number.yy",}, {"name":"node_offset","order":27,"path":"scripts/node_offset/node_offset.yy",}, - {"name":"node_onion_skin","order":12,"path":"scripts/node_onion_skin/node_onion_skin.yy",}, + {"name":"node_onion_skin","order":14,"path":"scripts/node_onion_skin/node_onion_skin.yy",}, {"name":"node_outline","order":22,"path":"scripts/node_outline/node_outline.yy",}, {"name":"node_override_channel","order":4,"path":"scripts/node_override_channel/node_override_channel.yy",}, {"name":"node_pack_sprites","order":4,"path":"scripts/node_pack_sprites/node_pack_sprites.yy",}, @@ -1036,7 +1037,7 @@ {"name":"node_perlin_extra","order":24,"path":"scripts/node_perlin_extra/node_perlin_extra.yy",}, {"name":"node_perlin_smear","order":22,"path":"scripts/node_perlin_smear/node_perlin_smear.yy",}, {"name":"node_perlin","order":18,"path":"scripts/node_perlin/node_perlin.yy",}, - {"name":"node_pin","order":4,"path":"scripts/node_pin/node_pin.yy",}, + {"name":"node_pin","order":6,"path":"scripts/node_pin/node_pin.yy",}, {"name":"node_pixel_builder","order":5,"path":"scripts/node_pixel_builder/node_pixel_builder.yy",}, {"name":"node_pixel_cloud","order":39,"path":"scripts/node_pixel_cloud/node_pixel_cloud.yy",}, {"name":"node_pixel_math","order":51,"path":"scripts/node_pixel_math/node_pixel_math.yy",}, @@ -1046,9 +1047,9 @@ {"name":"node_point_in_area","order":1,"path":"scripts/node_point_in_area/node_point_in_area.yy",}, {"name":"node_polar","order":8,"path":"scripts/node_polar/node_polar.yy",}, {"name":"node_posterize","order":24,"path":"scripts/node_posterize/node_posterize.yy",}, - {"name":"node_print","order":10,"path":"scripts/node_print/node_print.yy",}, + {"name":"node_print","order":12,"path":"scripts/node_print/node_print.yy",}, {"name":"node_processor","order":6,"path":"scripts/node_processor/node_processor.yy",}, - {"name":"node_project_data","order":23,"path":"scripts/node_project_data/node_project_data.yy",}, + {"name":"node_project_data","order":24,"path":"scripts/node_project_data/node_project_data.yy",}, {"name":"node_pytagorean_tile","order":12,"path":"scripts/node_pytagorean_tile/node_pytagorean_tile.yy",}, {"name":"node_quasicrystal","order":18,"path":"scripts/node_quasicrystal/node_quasicrystal.yy",}, {"name":"node_random_shape","order":10,"path":"scripts/node_random_shape/node_random_shape.yy",}, @@ -1061,7 +1062,7 @@ {"name":"node_registry","order":10,"path":"scripts/node_registry/node_registry.yy",}, {"name":"node_repeat_texture","order":20,"path":"scripts/node_repeat_texture/node_repeat_texture.yy",}, {"name":"node_repeat","order":12,"path":"scripts/node_repeat/node_repeat.yy",}, - {"name":"node_revert","order":29,"path":"scripts/node_revert/node_revert.yy",}, + {"name":"node_revert","order":30,"path":"scripts/node_revert/node_revert.yy",}, {"name":"node_rgb_channel","order":2,"path":"scripts/node_rgb_channel/node_rgb_channel.yy",}, {"name":"node_rigid_activate","order":1,"path":"scripts/node_rigid_activate/node_rigid_activate.yy",}, {"name":"node_rigid_force_apply","order":2,"path":"scripts/node_rigid_force_apply/node_rigid_force_apply.yy",}, @@ -1094,12 +1095,12 @@ {"name":"node_shape_polygon","order":9,"path":"scripts/node_shape_polygon/node_shape_polygon.yy",}, {"name":"node_shape","order":12,"path":"scripts/node_shape/node_shape.yy",}, {"name":"node_shard_noise","order":28,"path":"scripts/node_shard_noise/node_shard_noise.yy",}, - {"name":"node_shell","order":15,"path":"scripts/node_shell/node_shell.yy",}, + {"name":"node_shell","order":16,"path":"scripts/node_shell/node_shell.yy",}, {"name":"node_shuffle","order":53,"path":"scripts/node_shuffle/node_shuffle.yy",}, {"name":"node_skew","order":15,"path":"scripts/node_skew/node_skew.yy",}, {"name":"node_sky","order":22,"path":"scripts/node_sky/node_sky.yy",}, - {"name":"node_slideshow","order":28,"path":"scripts/node_slideshow/node_slideshow.yy",}, - {"name":"node_smear","order":26,"path":"scripts/node_smear/node_smear.yy",}, + {"name":"node_slideshow","order":29,"path":"scripts/node_slideshow/node_slideshow.yy",}, + {"name":"node_smear","order":27,"path":"scripts/node_smear/node_smear.yy",}, {"name":"node_smoke_add_collider","order":7,"path":"scripts/node_smoke_add_collider/node_smoke_add_collider.yy",}, {"name":"node_smoke_add","order":5,"path":"scripts/node_smoke_add/node_smoke_add.yy",}, {"name":"node_smoke_apply_velocity","order":6,"path":"scripts/node_smoke_apply_velocity/node_smoke_apply_velocity.yy",}, @@ -1147,8 +1148,8 @@ {"name":"node_surface_replace","order":14,"path":"scripts/node_surface_replace/node_surface_replace.yy",}, {"name":"node_surface_to_color","order":1,"path":"scripts/node_surface_to_color/node_surface_to_color.yy",}, {"name":"node_svg","order":6,"path":"scripts/node_svg/node_svg.yy",}, - {"name":"node_switch","order":7,"path":"scripts/node_switch/node_switch.yy",}, - {"name":"node_terminal_trigger","order":25,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",}, + {"name":"node_switch","order":9,"path":"scripts/node_switch/node_switch.yy",}, + {"name":"node_terminal_trigger","order":26,"path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",}, {"name":"node_text_file_read","order":4,"path":"scripts/node_text_file_read/node_text_file_read.yy",}, {"name":"node_text_file_write","order":8,"path":"scripts/node_text_file_write/node_text_file_write.yy",}, {"name":"node_text","order":14,"path":"scripts/node_text/node_text.yy",}, @@ -1254,7 +1255,7 @@ {"name":"node_wav_file_write","order":12,"path":"scripts/node_wav_file_write/node_wav_file_write.yy",}, {"name":"node_wavelet_noise","order":30,"path":"scripts/node_wavelet_noise/node_wavelet_noise.yy",}, {"name":"node_websocket_sender","order":1,"path":"scripts/node_websocket_sender/node_websocket_sender.yy",}, - {"name":"node_widget_test","order":16,"path":"scripts/node_widget_test/node_widget_test.yy",}, + {"name":"node_widget_test","order":17,"path":"scripts/node_widget_test/node_widget_test.yy",}, {"name":"node_wrap_area","order":14,"path":"scripts/node_wrap_area/node_wrap_area.yy",}, {"name":"node_wrap_perspective","order":23,"path":"scripts/node_wrap_perspective/node_wrap_perspective.yy",}, {"name":"node_xml_file_read","order":18,"path":"scripts/node_xml_file_read/node_xml_file_read.yy",}, @@ -1469,18 +1470,18 @@ {"name":"sh_blobify","order":3,"path":"shaders/sh_blobify/sh_blobify.yy",}, {"name":"sh_bloom_pass","order":5,"path":"shaders/sh_bloom_pass/sh_bloom_pass.yy",}, {"name":"sh_blur_alpha","order":5,"path":"shaders/sh_blur_alpha/sh_blur_alpha.yy",}, - {"name":"sh_blur_bokeh","order":7,"path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",}, - {"name":"sh_blur_box_contrast","order":9,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",}, - {"name":"sh_blur_box","order":11,"path":"shaders/sh_blur_box/sh_blur_box.yy",}, - {"name":"sh_blur_directional","order":13,"path":"shaders/sh_blur_directional/sh_blur_directional.yy",}, + {"name":"sh_blur_bokeh","order":8,"path":"shaders/sh_blur_bokeh/sh_blur_bokeh.yy",}, + {"name":"sh_blur_box_contrast","order":10,"path":"shaders/sh_blur_box_contrast/sh_blur_box_contrast.yy",}, + {"name":"sh_blur_box","order":12,"path":"shaders/sh_blur_box/sh_blur_box.yy",}, + {"name":"sh_blur_directional","order":14,"path":"shaders/sh_blur_directional/sh_blur_directional.yy",}, {"name":"sh_blur_final","order":6,"path":"shaders/sh_blur_final/sh_blur_final.yy",}, - {"name":"sh_blur_gaussian","order":5,"path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",}, - {"name":"sh_blur_path","order":29,"path":"shaders/sh_blur_path/sh_blur_path.yy",}, - {"name":"sh_blur_radial","order":15,"path":"shaders/sh_blur_radial/sh_blur_radial.yy",}, - {"name":"sh_blur_shape","order":17,"path":"shaders/sh_blur_shape/sh_blur_shape.yy",}, - {"name":"sh_blur_simple","order":19,"path":"shaders/sh_blur_simple/sh_blur_simple.yy",}, - {"name":"sh_blur_slope","order":21,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",}, - {"name":"sh_blur_zoom","order":23,"path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",}, + {"name":"sh_blur_gaussian","order":6,"path":"shaders/sh_blur_gaussian/sh_blur_gaussian.yy",}, + {"name":"sh_blur_path","order":30,"path":"shaders/sh_blur_path/sh_blur_path.yy",}, + {"name":"sh_blur_radial","order":16,"path":"shaders/sh_blur_radial/sh_blur_radial.yy",}, + {"name":"sh_blur_shape","order":18,"path":"shaders/sh_blur_shape/sh_blur_shape.yy",}, + {"name":"sh_blur_simple","order":20,"path":"shaders/sh_blur_simple/sh_blur_simple.yy",}, + {"name":"sh_blur_slope","order":22,"path":"shaders/sh_blur_slope/sh_blur_slope.yy",}, + {"name":"sh_blur_zoom","order":24,"path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",}, {"name":"sh_box_pattern","order":23,"path":"shaders/sh_box_pattern/sh_box_pattern.yy",}, {"name":"sh_brush_linear","order":46,"path":"shaders/sh_brush_linear/sh_brush_linear.yy",}, {"name":"sh_brush_outline","order":7,"path":"shaders/sh_brush_outline/sh_brush_outline.yy",}, @@ -1597,7 +1598,7 @@ {"name":"sh_freeform_fill_cleanup","order":6,"path":"shaders/sh_freeform_fill_cleanup/sh_freeform_fill_cleanup.yy",}, {"name":"sh_freeform_fill_pass1","order":7,"path":"shaders/sh_freeform_fill_pass1/sh_freeform_fill_pass1.yy",}, {"name":"sh_freeform_fill_pass2","order":8,"path":"shaders/sh_freeform_fill_pass2/sh_freeform_fill_pass2.yy",}, - {"name":"sh_FXAA","order":25,"path":"shaders/sh_FXAA/sh_FXAA.yy",}, + {"name":"sh_FXAA","order":26,"path":"shaders/sh_FXAA/sh_FXAA.yy",}, {"name":"sh_gamma_map","order":33,"path":"shaders/sh_gamma_map/sh_gamma_map.yy",}, {"name":"sh_get_max_downsampled","order":1,"path":"shaders/sh_get_max_downsampled/sh_get_max_downsampled.yy",}, {"name":"sh_get_min_downsampled","order":2,"path":"shaders/sh_get_min_downsampled/sh_get_min_downsampled.yy",}, @@ -1614,7 +1615,7 @@ {"name":"sh_grid_tri","order":7,"path":"shaders/sh_grid_tri/sh_grid_tri.yy",}, {"name":"sh_grid","order":3,"path":"shaders/sh_grid/sh_grid.yy",}, {"name":"sh_herringbone_tile","order":15,"path":"shaders/sh_herringbone_tile/sh_herringbone_tile.yy",}, - {"name":"sh_high_pass","order":31,"path":"shaders/sh_high_pass/sh_high_pass.yy",}, + {"name":"sh_high_pass","order":32,"path":"shaders/sh_high_pass/sh_high_pass.yy",}, {"name":"sh_image_trace","order":18,"path":"shaders/sh_image_trace/sh_image_trace.yy",}, {"name":"sh_interlaced","order":50,"path":"shaders/sh_interlaced/sh_interlaced.yy",}, {"name":"sh_interpret_number","order":9,"path":"shaders/sh_interpret_number/sh_interpret_number.yy",}, @@ -1753,7 +1754,7 @@ {"name":"sh_sky_hosek","order":2,"path":"shaders/sh_sky_hosek/sh_sky_hosek.yy",}, {"name":"sh_sky_scattering","order":1,"path":"shaders/sh_sky_scattering/sh_sky_scattering.yy",}, {"name":"sh_slice_spritesheet_empty_scan","order":4,"path":"shaders/sh_slice_spritesheet_empty_scan/sh_slice_spritesheet_empty_scan.yy",}, - {"name":"sh_smear","order":27,"path":"shaders/sh_smear/sh_smear.yy",}, + {"name":"sh_smear","order":28,"path":"shaders/sh_smear/sh_smear.yy",}, {"name":"sh_solid","order":18,"path":"shaders/sh_solid/sh_solid.yy",}, {"name":"sh_spherize","order":13,"path":"shaders/sh_spherize/sh_spherize.yy",}, {"name":"sh_stripe","order":9,"path":"shaders/sh_stripe/sh_stripe.yy",}, @@ -1761,6 +1762,7 @@ {"name":"sh_surface_replace_fast_replace","order":3,"path":"shaders/sh_surface_replace_fast_replace/sh_surface_replace_fast_replace.yy",}, {"name":"sh_surface_replace_replace","order":1,"path":"shaders/sh_surface_replace_replace/sh_surface_replace_replace.yy",}, {"name":"sh_svg_fill","order":1,"path":"shaders/sh_svg_fill/sh_svg_fill.yy",}, + {"name":"sh_test_blur","order":1,"path":"shaders/sh_test_blur/sh_test_blur.yy",}, {"name":"sh_texture_atlas","order":2,"path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",}, {"name":"sh_texture_remap","order":5,"path":"shaders/sh_texture_remap/sh_texture_remap.yy",}, {"name":"sh_texture_repeat","order":21,"path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",}, diff --git a/PixelComposer.yyp b/PixelComposer.yyp index 25803ad75..a95d0eb2b 100644 --- a/PixelComposer.yyp +++ b/PixelComposer.yyp @@ -108,6 +108,7 @@ {"$GMFolder":"","%Name":"components","folderPath":"folders/main/components.yy","name":"components","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"misc","folderPath":"folders/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"animation_curve","folderPath":"folders/misc/animation_curve.yy","name":"animation_curve","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"debugging","folderPath":"folders/misc/debugging.yy","name":"debugging","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"fx","folderPath":"folders/misc/fx.yy","name":"fx","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"nodes","folderPath":"folders/nodes.yy","name":"nodes","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"__base__","folderPath":"folders/nodes/__base__.yy","name":"__base__","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -202,6 +203,7 @@ {"$GMFolder":"","%Name":"for","folderPath":"folders/nodes/data/iterate/for.yy","name":"for","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"lua","folderPath":"folders/nodes/data/lua.yy","name":"lua","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"misc","folderPath":"folders/nodes/data/misc.yy","name":"misc","resourceType":"GMFolder","resourceVersion":"2.0",}, + {"$GMFolder":"","%Name":"custom","folderPath":"folders/nodes/data/misc/custom.yy","name":"custom","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"lovify","folderPath":"folders/nodes/data/misc/lovify.yy","name":"lovify","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"spr","folderPath":"folders/nodes/data/misc/lovify/spr.yy","name":"spr","resourceType":"GMFolder","resourceVersion":"2.0",}, {"$GMFolder":"","%Name":"tunnel","folderPath":"folders/nodes/data/misc/tunnel.yy","name":"tunnel","resourceType":"GMFolder","resourceVersion":"2.0",}, @@ -370,6 +372,18 @@ {"$GMIncludedFile":"","%Name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/locale/sample locale","name":"words.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"words.json","CopyToMask":-1,"filePath":"datafiles/data/Locale/sample locale","name":"words.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Actions.zip","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"Actions.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Armature Build.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Armature Build.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Armature Build.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Armature Build.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Create Tilemap.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Create Tilemap.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Create Tilemap.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Create Tilemap.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Follow Path.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Follow Path.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Follow Path.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Follow Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Iso cube.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Iso cube.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Iso cube.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Iso cube.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Line from Path.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Line from Path.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Line from Path.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Line from Path.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Pixel iso cube.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Pixel iso cube.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, + {"$GMIncludedFile":"","%Name":"Pixel iso cube.png","CopyToMask":-1,"filePath":"datafiles/data/Nodes/Actions","name":"Pixel iso cube.png","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"automate.ipynb","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"automate.ipynb","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"display_data.json","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"display_data.json","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, {"$GMIncludedFile":"","%Name":"Internal.zip","CopyToMask":-1,"filePath":"datafiles/data/Nodes","name":"Internal.zip","resourceType":"GMIncludedFile","resourceVersion":"2.0",}, @@ -874,7 +888,6 @@ {"id":{"name":"__node_3d_transform","path":"scripts/__node_3d_transform/__node_3d_transform.yy",},}, {"id":{"name":"__node_3d","path":"scripts/__node_3d/__node_3d.yy",},}, {"id":{"name":"__node_controller","path":"scripts/__node_controller/__node_controller.yy",},}, - {"id":{"name":"__node_custom","path":"scripts/__node_custom/__node_custom.yy",},}, {"id":{"name":"__node_iterator_inline","path":"scripts/__node_iterator_inline/__node_iterator_inline.yy",},}, {"id":{"name":"__node_iterator","path":"scripts/__node_iterator/__node_iterator.yy",},}, {"id":{"name":"__node_module_test","path":"scripts/__node_module_test/__node_module_test.yy",},}, @@ -1326,6 +1339,7 @@ {"id":{"name":"node_csv_file_write","path":"scripts/node_csv_file_write/node_csv_file_write.yy",},}, {"id":{"name":"node_curve_hsv","path":"scripts/node_curve_hsv/node_curve_hsv.yy",},}, {"id":{"name":"node_curve","path":"scripts/node_curve/node_curve.yy",},}, + {"id":{"name":"node_custom_shader","path":"scripts/node_custom_shader/node_custom_shader.yy",},}, {"id":{"name":"node_data","path":"scripts/node_data/node_data.yy",},}, {"id":{"name":"node_de_corner","path":"scripts/node_de_corner/node_de_corner.yy",},}, {"id":{"name":"node_de_stray","path":"scripts/node_de_stray/node_de_stray.yy",},}, @@ -1720,6 +1734,7 @@ {"id":{"name":"node_svg","path":"scripts/node_svg/node_svg.yy",},}, {"id":{"name":"node_switch","path":"scripts/node_switch/node_switch.yy",},}, {"id":{"name":"node_terminal_trigger","path":"scripts/node_terminal_trigger/node_terminal_trigger.yy",},}, + {"id":{"name":"node_test_blur","path":"scripts/node_test_blur/node_test_blur.yy",},}, {"id":{"name":"node_text_file_read","path":"scripts/node_text_file_read/node_text_file_read.yy",},}, {"id":{"name":"node_text_file_write","path":"scripts/node_text_file_write/node_text_file_write.yy",},}, {"id":{"name":"node_text","path":"scripts/node_text/node_text.yy",},}, @@ -2427,6 +2442,7 @@ {"id":{"name":"sh_surface_replace_replace","path":"shaders/sh_surface_replace_replace/sh_surface_replace_replace.yy",},}, {"id":{"name":"sh_svg_curve_quad","path":"shaders/sh_svg_curve_quad/sh_svg_curve_quad.yy",},}, {"id":{"name":"sh_svg_fill","path":"shaders/sh_svg_fill/sh_svg_fill.yy",},}, + {"id":{"name":"sh_test_blur","path":"shaders/sh_test_blur/sh_test_blur.yy",},}, {"id":{"name":"sh_texture_atlas","path":"shaders/sh_texture_atlas/sh_texture_atlas.yy",},}, {"id":{"name":"sh_texture_remap","path":"shaders/sh_texture_remap/sh_texture_remap.yy",},}, {"id":{"name":"sh_texture_repeat","path":"shaders/sh_texture_repeat/sh_texture_repeat.yy",},}, diff --git a/datafiles/data/Nodes/display_data.json b/datafiles/data/Nodes/display_data.json index 039a28676..7962da88d 100644 --- a/datafiles/data/Nodes/display_data.json +++ b/datafiles/data/Nodes/display_data.json @@ -17,6 +17,7 @@ }, { "name": "Loop", + "iname": "Iterate", "nodes": [ { "label": "Groups" }, "Node_Iterate", @@ -35,6 +36,7 @@ }, { "name": "Loop", + "iname": "Iterate_Inline", "nodes": [ { "label": "Loops" }, "Node_Iterator_Index", @@ -45,6 +47,7 @@ }, { "name": "Loop", + "iname": "Iterate_Each", "nodes": [ { "label": "Groups" }, "Node_Group_Input", @@ -60,6 +63,7 @@ }, { "name": "Loop", + "iname": "Iterate_Each_Inline", "nodes": [ { "label": "Loops" }, "Node_Iterator_Index", @@ -70,6 +74,7 @@ }, { "name": "Filter", + "iname": "Iterate_Filter", "nodes": [ { "label": "Groups" }, "Node_Group_Input", @@ -85,6 +90,7 @@ }, { "name": "Filter", + "iname": "Iterate_Filter_Inline", "nodes": [ { "label": "Loops" }, "Node_Iterator_Index", @@ -916,6 +922,7 @@ "pb": [ { "name": "Group", + "iname": "pb_Group", "nodes": [ "Node_Group_Input", "Node_Group_Output" @@ -923,6 +930,7 @@ }, { "name": "Draw", + "iname": "pb_Draw", "nodes": [ { "label": "Fill" }, "Node_PB_Draw_Fill", @@ -941,6 +949,7 @@ }, { "name": "Box", + "iname": "pb_Box", "nodes": [ { "label": "Layer" }, "Node_PB_Layer", @@ -957,6 +966,7 @@ }, { "name": "Effects", + "iname": "pb_Effects", "nodes": [ { "label": "Effect" }, "Node_PB_Fx_Outline", @@ -980,6 +990,7 @@ }, { "name": "Array", + "iname": "pb_Array", "nodes": [ "Node_Array", "Node_Array_Get", @@ -992,6 +1003,7 @@ "pcx": [ { "name": "Variable", + "iname": "pcx_Variable", "nodes": [ "Node_PCX_var", "Node_PCX_fn_var" @@ -999,6 +1011,7 @@ }, { "name": "Functions", + "iname": "pcx_Functions", "nodes": [ "Node_PCX_Equation", @@ -1017,6 +1030,7 @@ }, { "name": "Flow Control", + "iname": "pcx_Flow_Control", "nodes": [ "Node_PCX_Condition" ] diff --git a/objects/o_dialog_add_node/Create_0.gml b/objects/o_dialog_add_node/Create_0.gml index fd38a14f3..1edd1b7ef 100644 --- a/objects/o_dialog_add_node/Create_0.gml +++ b/objects/o_dialog_add_node/Create_0.gml @@ -15,8 +15,8 @@ event_inherited(); junction_called = noone; - node_list = ds_list_create(); - node_selecting = 0; + node_list = []; + node_selecting = 0; node_focusing = -1; node_show_connectable = false; @@ -61,17 +61,18 @@ event_inherited(); ]); #region ---- category ---- - category = NODE_CATEGORY; + switch(instanceof(context)) { case "Node_Pixel_Builder" : category = NODE_PB_CATEGORY; break; case "Node_DynaSurf" : category = NODE_PCX_CATEGORY; break; + default : category = NODE_CATEGORY; } draw_set_font(f_p0); var maxLen = 0; - for(var i = 0; i < ds_list_size(category); i++) { - var cat = category[| i]; - + for(var i = 0; i < array_length(category); i++) { + var cat = category[i]; + if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context))) continue; @@ -116,24 +117,24 @@ event_inherited(); } function setPage(pageIndex) { - ADD_NODE_PAGE = min(pageIndex, ds_list_size(category) - 1); + ADD_NODE_PAGE = min(pageIndex, array_length(category) - 1); subgroups = []; subgroup_index = 0; - ds_list_clear(node_list); + node_list = []; if(ADD_NODE_PAGE == -2) { - for(var i = 0; i < ds_list_size(category); i++) { - var cat = category[| i]; + for(var i = 0; i < array_length(category); i++) { + var cat = category[i]; if(array_length(cat.filter) && !array_exists(cat.filter, instanceof(context))) continue; - for( var j = 0; j < ds_list_size(cat.list); j++ ) - ds_list_add(node_list, cat.list[| j]); + for( var j = 0; j < array_length(cat.list); j++ ) + array_push(node_list, cat.list[j]); } } else if(ADD_NODE_PAGE == -1) { - for( var i = 0, n = ds_list_size(NEW_NODES); i < n; i++ ) - ds_list_add(node_list, NEW_NODES[| i]); + for( var i = 0, n = array_length(NEW_NODES); i < n; i++ ) + array_push(node_list, NEW_NODES[i]); } else if(ADD_NODE_PAGE == NODE_PAGE_DEFAULT && category == NODE_CATEGORY) { // page 0 global context var sug = []; @@ -148,16 +149,16 @@ event_inherited(); array_append(sug, nodeReleatedQuery("context", instanceof(context))); if(!array_empty(sug)) { - ds_list_add(node_list, "Related"); + array_push(node_list, "Related"); for( var i = 0, n = array_length(sug); i < n; i++ ) { var k = array_safe_get_fast(sug, i); if(k == 0) continue; if(struct_has(ALL_NODES, k)) - ds_list_add(node_list, ALL_NODES[$ k]); + array_push(node_list, ALL_NODES[$ k]); } } - ds_list_add(node_list, "Favourites"); + array_push(node_list, "Favourites"); var _favs = struct_get_names(global.FAV_NODES); for( var i = 0, n = array_length(_favs); i < n; i++ ) { var _nodeIndex = _favs[i]; @@ -165,10 +166,10 @@ event_inherited(); var _node = ALL_NODES[$ _nodeIndex]; if(_node.show_in_recent) - ds_list_add(node_list, _node); + array_push(node_list, _node); } - ds_list_add(node_list, "Recents"); + array_push(node_list, "Recents"); if(is_array(global.RECENT_NODES)) for( var i = 0, n = array_length(global.RECENT_NODES); i < n; i++ ) { var _nodeIndex = global.RECENT_NODES[i]; @@ -176,16 +177,16 @@ event_inherited(); var _node = ALL_NODES[$ _nodeIndex]; if(_node.show_in_recent) - ds_list_add(node_list, _node); + array_push(node_list, _node); } } else { - var _l = category[| ADD_NODE_PAGE].list; - for( var i = 0, n = ds_list_size(_l); i < n; i++ ) - ds_list_add(node_list, _l[| i]); + var _l = category[ADD_NODE_PAGE].list; + for( var i = 0, n = array_length(_l); i < n; i++ ) + array_push(node_list, _l[i]); } - for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) { - var _node = node_list[| i]; + for( var i = 0, n = array_length(node_list); i < n; i++ ) { + var _node = node_list[i]; if(!is_string(_node)) continue; if(string_starts_with(_node, "/")) continue; @@ -338,13 +339,13 @@ event_inherited(); var start = category == NODE_CATEGORY? -2 : 0; - for(var i = start; i < ds_list_size(category); i++) { + for(var i = start; i < array_length(category); i++) { var name = ""; if(i == -2) name = "All"; else if(i == -1) name = "New"; else { - var cat = category[| i]; + var cat = category[i]; name = cat.name; if(array_length(cat.filter)) { @@ -463,12 +464,11 @@ event_inherited(); var _hover = sHOVER && content_pane.hover; var _focus = sFOCUS && content_pane.active; - var _list = ds_list_create(); + var _list = []; var ww = content_pane.surface_w; var hh = 0; if(node_list == noone) { - ds_list_destroy(_list); setPage(NODE_PAGE_DEFAULT); return 0; } @@ -476,24 +476,24 @@ event_inherited(); var _subg_cur = -1; subgroups_size = array_create(array_length(subgroups), 0); - for( var i = 0, n = ds_list_size(node_list); i < n; i++ ) { - var _n = node_list[| i]; + for( var i = 0, n = array_length(node_list); i < n; i++ ) { + var _n = node_list[i]; if(!checkValid(_n)) continue; if(PREFERENCES.dialog_add_node_grouping != 2 || array_empty(subgroups)) { - ds_list_add(_list, _n); + array_push(_list, _n); continue; } if(is_string(_n) && !string_starts_with(_n, "/")) _subg_cur++ else if(_subg_cur == subgroup_index) - ds_list_add(_list, _n); + array_push(_list, _n); if(is(_n, NodeObject) && _subg_cur >= 0) subgroups_size[_subg_cur]++; } - var node_count = ds_list_size(_list); + var node_count = array_length(_list); var group_labels = []; var _hoverContent = _hover; var _lbh = PREFERENCES.dialog_add_node_grouping == 1? ui(24) : ui(16); @@ -515,7 +515,7 @@ event_inherited(); grid_width = round(ww - grid_space) / col - grid_space; for(var index = 0; index < node_count; index++) { - var _node = _list[| index]; + var _node = _list[index]; if(is_undefined(_node)) continue; if(is_instanceof(_node, NodeObject)) { if(_node.patreon && !IS_PATREON) continue; @@ -540,7 +540,7 @@ event_inherited(); yy += _lbh + ui(4); while(index + 1 < node_count) { - var _s = _list[| index + 1]; + var _s = _list[index + 1]; if(is_string(_s) && (!string_starts_with(_s, "/") || PREFERENCES.dialog_add_node_grouping == 2)) break; index++; @@ -699,7 +699,7 @@ event_inherited(); hh += list_height; for(var i = 0; i < node_count; i++) { - var _node = _list[| i]; + var _node = _list[i]; if(is_undefined(_node)) continue; if(is_instanceof(_node, NodeObject)) { if(_node.patreon && !IS_PATREON) continue; @@ -722,7 +722,7 @@ event_inherited(); yy += _lbh; while(i + 1 < node_count) { - var _s = _list[| i + 1]; + var _s = _list[i + 1]; if(is_string(_s) && (!string_starts_with(_s, "/") || PREFERENCES.dialog_add_node_grouping == 2)) break; i++; @@ -864,7 +864,6 @@ event_inherited(); } } - ds_list_destroy(_list); if(mouse_release(mb_left)) left_free = true; return hh; @@ -899,8 +898,8 @@ event_inherited(); #endregion #region search - search_string = ""; - search_list = ds_list_create(); + search_string = ""; + search_list = []; KEYBOARD_RESET tb_search = new textBox(TEXTBOX_INPUT.text, function(str) /*=>*/ { search_string = string(str); searchNodes(); }) @@ -909,15 +908,15 @@ event_inherited(); WIDGET_CURRENT = tb_search; function searchNodes() { - ds_list_clear(search_list); + search_list = []; var pr_list = ds_priority_create(); var search_lower = string_lower(search_string); var search_split = string_split(search_lower, " ", true); var search_map = ds_map_create(); - for(var i = 0; i < ds_list_size(category); i++) { - var cat = category[| i]; + for(var i = 0; i < array_length(category); i++) { + var cat = category[i]; if(!struct_has(cat, "list")) continue; @@ -926,14 +925,14 @@ event_inherited(); continue; var _content = cat.list; - for(var j = 0; j < ds_list_size(_content); j++) { - var _node = _content[| j]; + for(var j = 0; j < array_length(_content); j++) { + var _node = _content[j]; if(is_string(_node)) continue; if(ds_map_exists(search_map, _node)) continue; var match = string_partial_match_res(string_lower(_node.getName()), search_lower, search_split); - + if(is_instanceof(_node, NodeObject)) { if(_node.deprecated) continue; if(match[0] > -9000 && struct_exists(global.FAV_NODES, _node.nodeName)) @@ -961,7 +960,7 @@ event_inherited(); searchCollection(pr_list, search_string, false); repeat(ds_priority_size(pr_list)) - ds_list_add(search_list, ds_priority_delete_max(pr_list)); + array_push(search_list, ds_priority_delete_max(pr_list)); ds_priority_destroy(pr_list); } @@ -970,7 +969,7 @@ event_inherited(); draw_clear_alpha(c_white, 0); var equation = string_char_at(search_string, 0) == "="; - var amo = ds_list_size(search_list); + var amo = array_length(search_list); var hh = 0; var _hover = sHOVER && search_pane.hover; @@ -1008,7 +1007,7 @@ event_inherited(); hh += (grid_space + grid_size) * 2; for(var i = 0; i < amo; i++) { - var s_res = search_list[| i]; + var s_res = search_list[i]; var _node = noone; var _param = {}; var _query = ""; @@ -1154,7 +1153,7 @@ event_inherited(); var ind = 0; for(var i = 0; i < amo; i++) { - var s_res = search_list[| i]; + var s_res = search_list[i]; var yy = sy + list_height * ind; var _node = noone; var _param = {}; diff --git a/objects/o_dialog_add_node/Destroy_0.gml b/objects/o_dialog_add_node/Destroy_0.gml index ce3784604..57c5dc646 100644 --- a/objects/o_dialog_add_node/Destroy_0.gml +++ b/objects/o_dialog_add_node/Destroy_0.gml @@ -1,5 +1,4 @@ /// @description event_inherited(); -ds_list_destroy(node_list); WIDGET_CURRENT = noone; \ No newline at end of file diff --git a/scripts/__node_custom/__node_custom.gml b/scripts/__node_custom/__node_custom.gml deleted file mode 100644 index 2b5f2d598..000000000 --- a/scripts/__node_custom/__node_custom.gml +++ /dev/null @@ -1,219 +0,0 @@ -function Node_create_Custom(_x, _y, _group = noone, _param = {}) { - if(!struct_has(_param, "path")) return noone; - - var node = new Node_Custom(_x, _y, _group); - if(!node.setPath(_param.path)) return noone; - return node; -} - -function Node_create_Custom_path(_x, _y, path) { - if(!file_exists_empty(path)) return noone; - - var node = new Node_Custom(_x, _y, PANEL_GRAPH.getCurrentContext()); - if(!node.setPath(path)) return noone; - return node; -} - -function Node_Custom(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { - name = "Custom"; - path = ""; - info = {}; - shader = { - vs: noone, - fs: noone, - }; - - input_index_map = ds_map_create(); - output_index_map = ds_map_create(); - - surface_in_index = 0; - surface_out_index = 0; - - static setPath = function(_path) { - var _info = _path + "/info.json"; - if(!file_exists_empty(_info)) return false; - - info = json_load_struct(_info); - path = _path; - name = info.name; - setDisplayName(name); - - shader.vs = d3d11_shader_compile_vs($"{path}/{info.shader_vs}", "main", "vs_4_0"); - if(!d3d11_shader_exists(shader.vs)) noti_warning(d3d11_get_error_string()); - - shader.fs = d3d11_shader_compile_ps($"{path}/{info.shader_fs}", "main", "ps_4_0"); - if(!d3d11_shader_exists(shader.fs)) noti_warning(d3d11_get_error_string()); - - inputs = []; - outputs = []; - - for( var i = 0, n = array_length(info.inputs); i < n; i++ ) { - var _input = info.inputs[i]; - newInput(i, nodeValue(_input.name, self, CONNECT_TYPE.input, value_type_from_string(_input.type), _input.value)) - .setVisible(_input.show_in_inspector, _input.show_in_graph); - input_index_map[? _input.name] = i; - - for( var j = 0, m = array_length(_input.flags); j < m; j++ ) { - switch(_input.flags[j]) { - case "SURFACE_IN" : surface_in_index = i; break; - } - } - } - - for( var i = 0, n = array_length(info.outputs); i < n; i++ ) { - var _output = info.outputs[i]; - newOutput(i, nodeValue_Output(_output.name, self, value_type_from_string(_output.type), _output.value)) - .setVisible(_output.show_in_graph); - output_index_map[? _output.name] = i; - - for( var j = 0, m = array_length(_output.flags); j < m; j++ ) { - switch(_output.flags[j]) { - case "SURFACE_OUT" : surface_out_index = i; break; - } - } - } - } - - static processData = function(_output, _data, _output_index, _array_index = 0) { #region - if(!d3d11_shader_exists(shader.vs)) return noone; - if(!d3d11_shader_exists(shader.fs)) return noone; - - var _surf = _data[surface_in_index]; - _output = surface_verify(_output, surface_get_width_safe(_surf), surface_get_height_safe(_surf)); - - surface_set_target(_output); - DRAW_CLEAR - - d3d11_shader_override_vs(shader.vs); - d3d11_shader_override_ps(shader.fs); - - var uTypes = array_create(8, 0); - var sampler_slot = 1; - - d3d11_cbuffer_begin(); - var _buffer = buffer_create(1, buffer_grow, 1); - var _cbSize = 0; - - for( var i = 0, n = array_length(info.uniforms); i < n; i++ ) { - var _u = info.uniforms[i]; - var _index = input_index_map[? _u.input_name]; - - var _uname = _u.name; - var _utype = _u.type; - var _value = _data[_index]; - - switch(_utype) { - case 1 : - d3d11_cbuffer_add_int(1); - _cbSize++; - - buffer_write(_buffer, buffer_s32, _value); - break; - case 0 : - d3d11_cbuffer_add_float(1); - _cbSize++; - - buffer_write(_buffer, buffer_f32, _value); - break; - case 2 : - case 3 : - case 4 : - case 5 : - case 6 : - if(is_array(_value)) { - d3d11_cbuffer_add_float(array_length(_value)); - _cbSize += array_length(_value); - - for( var j = 0, m = array_length(_value); j < m; j++ ) - buffer_write(_buffer, buffer_f32, _value[j]); - } - break; - case 8 : - var _clr = colToVec4(_value); - d3d11_cbuffer_add_float(4); - _cbSize += 4; - - for( var j = 0, m = 4; j < m; j++ ) - buffer_write(_buffer, buffer_f32, _clr[i]); - break; - case 7 : - if(is_surface(_value)) - d3d11_texture_set_stage_ps(sampler_slot, surface_get_texture(_value)); - sampler_slot++; - break; - } - } - - d3d11_cbuffer_add_float(4 - _cbSize % 4); - var cbuff = d3d11_cbuffer_end(); - d3d11_cbuffer_update(cbuff, _buffer); - buffer_delete(_buffer); - - d3d11_shader_set_cbuffer_ps(10, cbuff); - - matrix_set(matrix_world, matrix_build(0, 0, 0, 0, 0, 0, - surface_get_width_safe(_surf), surface_get_height_safe(_surf), 1)); - vertex_submit(global.HLSL_VB_PLANE, pr_trianglestrip, surface_get_texture(_surf)); - matrix_set(matrix_world, matrix_build_identity()); - - d3d11_shader_override_vs(-1); - d3d11_shader_override_ps(-1); - surface_reset_target(); - - return _output; - } #endregion -} - -function __initNodeCustom(list) { #region - var root = DIRECTORY + "Nodes"; - directory_verify(root); - - root += "/Custom"; - directory_verify(root); - - var f = file_find_first(root + "/*", fa_directory); - - while (f != "") { - var _dir_raw = $"{root}/{f}"; - f = file_find_next(); - - if(!directory_exists(_dir_raw)) continue; - - var _dir = _dir_raw + "/"; - var _info = json_load_struct(_dir + "info.json"); - if(_info == noone) continue; - - var _spr = sprite_add_center(_dir + _info.icon); - var _n = new NodeObject(_info.name, _spr, Node_Custom, _info.tooltip).setBuild(Node_create_Custom).setParam({ path: _dir }); - - var _tol = _dir + _info.tooltip_spr; - if(file_exists_empty(_tol)) _n.tooltip_spr = sprite_add(_tol, 0, false, false, 0, 0); - - ds_list_add(list, _n); - - if(_info.category != noone) { - var _cat = _info.location[0]; - var _grp = _info.location[1]; - var _ins = true; - - for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) { - if(NODE_CATEGORY[| i].name != _cat) continue; - var _list = NODE_CATEGORY[| i].list; - var j = 0; - - for( var m = ds_list_size(_list); j < m; j++ ) - if(_list[| j] == _grp) break; - - ds_list_insert(_list, j + 1, _n); - _ins = false; - break; - } - - if(_ins) { - ds_list_add(_list, _grp); - ds_list_add(_list, _n); - } - } - } - file_find_close(); -} #endregion \ No newline at end of file diff --git a/scripts/array_functions/array_functions.gml b/scripts/array_functions/array_functions.gml index 6a051ae3d..9f79b776b 100644 --- a/scripts/array_functions/array_functions.gml +++ b/scripts/array_functions/array_functions.gml @@ -202,8 +202,9 @@ function array_insert_unique(arr, ind, val) { function array_append(arr, arr0) { INLINE - if(!is_array(arr)) return arr; - if(!is_array(arr0)) { array_push(arr, arr0); return arr; } + if(is_undefined(arr0)) return arr; + if(!is_array(arr)) return arr; + if(!is_array(arr0)) { array_push(arr, arr0); return arr; } for( var i = 0, n = array_length(arr0); i < n; i++ ) array_push(arr, arr0[i]); diff --git a/scripts/globals/globals.gml b/scripts/globals/globals.gml index 2a5b7d74c..22f88bf92 100644 --- a/scripts/globals/globals.gml +++ b/scripts/globals/globals.gml @@ -43,7 +43,7 @@ LATEST_VERSION = 1_18_00_0; VERSION = 1_18_06_2; SAVE_VERSION = 1_18_05_0; - VERSION_STRING = MAC? "1.18.003m" : "1.18.7.005"; + VERSION_STRING = MAC? "1.18.003m" : "1.18.7.006"; BUILD_NUMBER = 1_18_06_5; PREF_VERSION = 1_17_1; diff --git a/scripts/node_action_object/node_action_object.gml b/scripts/node_action_object/node_action_object.gml index 52a81648c..864a8e57f 100644 --- a/scripts/node_action_object/node_action_object.gml +++ b/scripts/node_action_object/node_action_object.gml @@ -134,8 +134,7 @@ function __initNodeActions() { var root = $"{DIRECTORY}Nodes/Actions"; directory_verify(root); - ds_list_clear(NODE_ACTION_LIST); - ds_list_add(NODE_ACTION_LIST, new NodeAction_create()); + NODE_ACTION_LIST = [ new NodeAction_create() ]; var f = file_find_first(root + "/*", 0), _f; @@ -146,27 +145,14 @@ function __initNodeActions() { if(filename_ext(_f) != ".json") continue; var _c = new NodeAction().deserialize($"{root}/{_f}"); - ds_list_add(NODE_ACTION_LIST, _c); + array_push(NODE_ACTION_LIST, _c); if(_c.location == noone) continue; var _cat = array_safe_get(_c.location, 0, ""); var _grp = array_safe_get(_c.location, 1, ""); - for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) { - var _category = NODE_CATEGORY[| i]; - - if(_category.name != _cat) continue; - var _list = _category.list; - var j = 0; - - if(_grp != "") - for( var m = ds_list_size(_list); j < m; j++ ) - if(_list[| j] == _grp) break; - - ds_list_insert(_list, j + 1, _c); - break; - } + } file_find_close(); } diff --git a/scripts/__node_custom/node_checkerboard.yy b/scripts/node_custom_shader/node_checkerboard.yy similarity index 100% rename from scripts/__node_custom/node_checkerboard.yy rename to scripts/node_custom_shader/node_checkerboard.yy diff --git a/scripts/node_custom_shader/node_custom_shader.gml b/scripts/node_custom_shader/node_custom_shader.gml new file mode 100644 index 000000000..5d2986e83 --- /dev/null +++ b/scripts/node_custom_shader/node_custom_shader.gml @@ -0,0 +1,205 @@ +#region shader cache + globalvar SHADER_CACHE; + + SHADER_CACHE = {}; + + function shader_compile_vs(file) { + if(struct_has(SHADER_CACHE, file)) return SHADER_CACHE[$ file]; + + var _sh = d3d11_shader_compile_vs(file, "main", "vs_4_0"); + SHADER_CACHE[$ file] = _sh; + return _sh; + } + + function shader_compile_ps(file) { + if(struct_has(SHADER_CACHE, file)) return SHADER_CACHE[$ file]; + + var _sh = d3d11_shader_compile_ps(file, "main", "ps_4_0"); + SHADER_CACHE[$ file] = _sh; + return _sh; + } +#endregion + +function Node_Custom_Shader(_x, _y, _group = noone, _param = {}) : Node_Processor(_x, _y, _group) constructor { + itype = _param[$ "iname"] ?? noone; + + shader_vs = noone; + shader_fs = noone; + + sourceDir = _param[$ "sourceDir"] ?? ""; + dataPath = _param[$ "data"] ?? ""; + + uniforms = []; + + surface_in_index = 0; + + var _infoPath = sourceDir + "/" + dataPath; + if(file_exists_empty(_infoPath)) { + var info = json_load_struct(_infoPath); + var _dir = sourceDir; + + shader_vs = shader_compile_vs($"{_dir}/{info.shader_vs}"); + if(!d3d11_shader_exists(shader_vs)) noti_warning(d3d11_get_error_string()); + + shader_fs = shader_compile_ps($"{_dir}/{info.shader_fs}"); + if(!d3d11_shader_exists(shader_fs)) noti_warning(d3d11_get_error_string()); + + inputs = []; + outputs = []; + + for( var i = 0, n = array_length(info.inputs); i < n; i++ ) { + var _input = info.inputs[i]; + var _name = _input.name; + var _type = _input.type; + var _valu = _input.value; + var _showIns = _input[$ "show_in_inspector"] ?? true; + var _showGra = _input[$ "show_in_graph"] ?? false; + var _flag = _input[$ "flag"]; + var _unif = _input[$ "uniform"]; + var _n = noone; + + switch(_type) { + case "surface" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.surface, _valu); break; + case "float" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.float, _valu); break; + case "int" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.integer, _valu); break; + case "color" : _n = nodeValue(_name, self, CONNECT_TYPE.input, VALUE_TYPE.color, _valu); break; + } + + if(_flag == "SURFACE_IN") { + _showGra = true; + surface_in_index = i; + } + + newInput(i, _n).setVisible(_showIns, _showGra); + + if(_unif != undefined) { + array_push(uniforms, { + uniform: _unif, + type: _type, + index: i + }); + } + } + + for( var i = 0, n = array_length(info.outputs); i < n; i++ ) { + var _output = info.outputs[i]; + var _name = _output.name; + var _type = _output.type; + var _valu = _output.value; + var _showGra = _output[$ "show_in_graph"] ?? false; + var _flag = _output[$ "flag"]; + + newOutput(i, nodeValue_Output(_name, self, value_type_from_string(_type), _valu)).setVisible(_showGra); + } + + if(struct_has(info, "input_display")) input_display_list = info.input_display; + if(struct_has(info, "output_display")) output_display_list = info.output_display; + } + + static processData = function(_output, _data, _output_index, _array_index = 0) { + if(!d3d11_shader_exists(shader_vs)) return noone; + if(!d3d11_shader_exists(shader_fs)) return noone; + + var _surf = _data[surface_in_index]; + _output = surface_verify(_output, surface_get_width_safe(_surf), surface_get_height_safe(_surf)); + + surface_set_target(_output); + DRAW_CLEAR + + d3d11_shader_override_vs(shader_vs); + d3d11_shader_override_ps(shader_fs); + + d3d11_cbuffer_begin(); + var _buffer = buffer_create(1, buffer_grow, 1); + var _sample = 1; + var _cbSize = 0; + + for( var i = 0, n = array_length(uniforms); i < n; i++ ) { + var _unif = uniforms[i]; + var _index = _unif.index; + var _utype = _unif.type; + var _value = _data[_index]; + + switch(_utype) { + + case "float" : // u_float + d3d11_cbuffer_add_float(1); + _cbSize++; + + buffer_write(_buffer, buffer_f32, _value); + break; + + case "int" : // u_int + d3d11_cbuffer_add_int(1); + _cbSize++; + + buffer_write(_buffer, buffer_s32, _value); + break; + + case "vec2" : // u_vec2 + case "vec3" : // u_vec3 + case "vec4" : // u_vec4 + case "mat3" : // u_mat3 + case "mat4" : // u_mat4 + if(is_array(_value)) { + d3d11_cbuffer_add_float(array_length(_value)); + _cbSize += array_length(_value); + + for( var j = 0, m = array_length(_value); j < m; j++ ) + buffer_write(_buffer, buffer_f32, _value[j]); + } + break; + + case "surface" : // u_sampler2D + if(is_surface(_value)) + d3d11_texture_set_stage_ps(_sample, surface_get_texture(_value)); + _sample++; + break; + + case "color" : // u_vec4 color + var _clr = colToVec4(_value); + d3d11_cbuffer_add_float(4); + _cbSize += 4; + + for( var j = 0, m = 4; j < m; j++ ) + buffer_write(_buffer, buffer_f32, _clr[i]); + break; + + } + } + + d3d11_cbuffer_add_float(4 - _cbSize % 4); + var cbuff = d3d11_cbuffer_end(); + d3d11_cbuffer_update(cbuff, _buffer); + buffer_delete(_buffer); + d3d11_shader_set_cbuffer_ps(10, cbuff); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + d3d11_cbuffer_begin(); + var _buffer = buffer_create(1, buffer_grow, 1); + var _cbSize = 0; + + buffer_write(_buffer, buffer_f32, surface_get_width_safe(_surf)); + buffer_write(_buffer, buffer_f32, surface_get_height_safe(_surf)); + d3d11_cbuffer_add_float(2); _cbSize += 2; + + d3d11_cbuffer_add_float(4 - _cbSize % 4); + var cbuff = d3d11_cbuffer_end(); + d3d11_cbuffer_update(cbuff, _buffer); + buffer_delete(_buffer); + d3d11_shader_set_cbuffer_ps(4, cbuff); + +//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// + + matrix_set(matrix_world, matrix_build(0, 0, 0, 0, 0, 0, surface_get_width_safe(_surf), surface_get_height_safe(_surf), 1)); + vertex_submit(global.HLSL_VB_PLANE, pr_trianglestrip, surface_get_texture(_surf)); + matrix_set(matrix_world, matrix_build_identity()); + + d3d11_shader_override_vs(-1); + d3d11_shader_override_ps(-1); + surface_reset_target(); + + return _output; + } +} \ No newline at end of file diff --git a/scripts/node_custom_shader/node_custom_shader.yy b/scripts/node_custom_shader/node_custom_shader.yy new file mode 100644 index 000000000..458084824 --- /dev/null +++ b/scripts/node_custom_shader/node_custom_shader.yy @@ -0,0 +1,13 @@ +{ + "$GMScript":"v1", + "%Name":"node_custom_shader", + "isCompatibility":false, + "isDnD":false, + "name":"node_custom_shader", + "parent":{ + "name":"custom", + "path":"folders/nodes/data/misc/custom.yy", + }, + "resourceType":"GMScript", + "resourceVersion":"2.0", +} \ No newline at end of file diff --git a/scripts/__node_custom/node_stripe.yy b/scripts/node_custom_shader/node_stripe.yy similarity index 100% rename from scripts/__node_custom/node_stripe.yy rename to scripts/node_custom_shader/node_stripe.yy diff --git a/scripts/node_data/node_data.gml b/scripts/node_data/node_data.gml index 01ca88c56..d7bef1796 100644 --- a/scripts/node_data/node_data.gml +++ b/scripts/node_data/node_data.gml @@ -24,9 +24,11 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { + #region ---- main & active ---- project = PROJECT; + itype = noone; active = true; renderActive = true; @@ -2409,7 +2411,7 @@ function Node(_x, _y, _group = noone) : __Node_Base(_x, _y) constructor { _map.iname = internalName; _map.x = x; _map.y = y; - _map.type = instanceof(self); + _map.type = itype == noone? instanceof(self) : itype; if(isTool) _map.tool = isTool; if(group != noone) _map.group = group.node_id; diff --git a/scripts/node_hlsl/node_hlsl.gml b/scripts/node_hlsl/node_hlsl.gml index 5e90c313e..528dc3cc4 100644 --- a/scripts/node_hlsl/node_hlsl.gml +++ b/scripts/node_hlsl/node_hlsl.gml @@ -325,9 +325,7 @@ void main(in VertexShaderOutput _input, out PixelShaderOutput output) { var _arg_valu = _data[i + 2]; if(_arg_name == "") continue; - - var _uni = shader_get_uniform(shader.fs, _arg_name); - + switch(_arg_type) { case 0 : // u_float d3d11_cbuffer_add_float(1); diff --git a/scripts/node_registry/node_registry.gml b/scripts/node_registry/node_registry.gml index dc7c12d98..b9dfb5724 100644 --- a/scripts/node_registry/node_registry.gml +++ b/scripts/node_registry/node_registry.gml @@ -1,16 +1,19 @@ #region globalvar globalvar ALL_NODES, NODE_CATEGORY, NODE_PB_CATEGORY, NODE_PCX_CATEGORY; globalvar SUPPORTER_NODES, NEW_NODES; + globalvar CUSTOM_NODES, CUSTOM_NODES_POSITION; globalvar NODE_PAGE_DEFAULT; globalvar NODE_ACTION_LIST; + CUSTOM_NODES_POSITION = {}; ALL_NODES = {}; - NODE_CATEGORY = ds_list_create(); - NODE_PB_CATEGORY = ds_list_create(); - NODE_PCX_CATEGORY = ds_list_create(); - SUPPORTER_NODES = ds_list_create(); - NEW_NODES = ds_list_create(); + NODE_CATEGORY = []; + NODE_PB_CATEGORY = []; + NODE_PCX_CATEGORY = []; + SUPPORTER_NODES = []; + NEW_NODES = []; + CUSTOM_NODES = []; global.__currPage = ""; global.__currNewPage = ""; @@ -45,6 +48,7 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor { spr = _spr; node = _node; icon = noone; + nodekey = ""; nodeName = script_get_name(node); createFn = noone; @@ -63,7 +67,7 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor { show_in_global = true; patreon = array_exists(global.PATREON_NODES, node); - if(patreon) ds_list_add(SUPPORTER_NODES, self); + if(patreon) array_push(SUPPORTER_NODES, self); testable = true; @@ -110,11 +114,11 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor { if(new_node) { if(global.__currPage != global.__currNewPage) { - ds_list_add(NEW_NODES, global.__currPage); + array_push(NEW_NODES, global.__currPage); global.__currNewPage = global.__currPage; } - ds_list_add(NEW_NODES, self); + array_push(NEW_NODES, self); } return self; } @@ -171,8 +175,15 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor { static build = function(_x = 0, _y = 0, _group = PANEL_GRAPH.getCurrentContext(), _param = {}) { INLINE - if(createParam != noone) struct_append(_param, createParam); - var _node = createFn == noone? new node(_x, _y, _group, _param) : createFn(_x, _y, _group, _param); + if(createParam != noone) { + struct_append(_param, createParam); + _param.sourceDir = sourceDir; + _param.iname = nodekey; + } + + var _node = createFn == noone? new node(_x, _y, _group, _param) : createFn(_x, _y, _group, _param); + _node.name = name; + return _node; } @@ -343,6 +354,19 @@ function NodeObject(_name, _spr, _node, _tooltip = "") constructor { if(struct_has(_data, "pxc_version")) setVersion(_data.pxc_version); + if(struct_has(_data, "params")) + setParam(_data.params); + + if(struct_has(_data, "position")) { + for( var i = 0, n = array_length(_data.position); i < n; i++ ) { + var pos = _data.position[i]; + if(struct_has(CUSTOM_NODES_POSITION, pos)) + array_push(CUSTOM_NODES_POSITION[$ pos], self); + else + CUSTOM_NODES_POSITION[$ pos] = [ self ]; + } + } + return self; } } @@ -361,9 +385,9 @@ function nodeBuild(_name, _x, _y, _group = PANEL_GRAPH.getCurrentContext()) { return _bnode; } -function addNodeCatagory( name, list, filter = [], color = noone) { ds_list_add(NODE_CATEGORY, { name, list, filter, color }); global.__currPage = name; } -function addNodePBCatagory( name, list, filter = []) { ds_list_add(NODE_PB_CATEGORY, { name, list, filter }); } -function addNodePCXCatagory( name, list, filter = []) { ds_list_add(NODE_PCX_CATEGORY, { name, list, filter }); } +function addNodeCatagory( name, list, filter = [], color = noone) { array_push(NODE_CATEGORY, { name, list, filter, color }); global.__currPage = name; } +function addNodePBCatagory( name, list, filter = []) { array_push(NODE_PB_CATEGORY, { name, list, filter }); } +function addNodePCXCatagory( name, list, filter = []) { array_push(NODE_PCX_CATEGORY, { name, list, filter }); } ////- Nodes @@ -397,6 +421,7 @@ function __read_node_folder(dir) { var _base = _data[$ "baseNode"]; var _inme = _data[$ "iname"] ?? _base; var _spr = _data[$ "spr"]; + var _custom = _data[$ "custom"] ?? false; if(is_undefined(_base)) { print($"NODE ERROR: baseNode not found in {_info}."); @@ -416,40 +441,51 @@ function __read_node_folder(dir) { var _node = asset_get_index(_base); var _n = new NodeObject(_name, _spr, _node); + _n.nodekey = _inme; _n.deserialize(_data, dir); ALL_NODES[$ _inme] = _n; + + if(_custom) array_push(CUSTOM_NODES, _n); return _n; } function __read_node_display(_list, _addCat) { - for( var i = 0, n = array_length(_list); i < n; i++ ) { var _dl = _list[i]; var _name = _dl.name; + var _iname = _dl[$ "iname"] ?? _name; var _filter = _dl[$ "context"] ?? []; var _color = noone; + var _kname = _iname; + if(struct_has(_dl, "color")) _color = COLORS[$ _dl.color]; - var _l = ds_list_create(); + var _nodes = _dl.nodes; + var _l = []; + var _head = ""; + var _lab = ""; + _addCat(_name, _l, _filter, _color); - var _nodes = _dl.nodes; for( var j = 0, m = array_length(_nodes); j < m; j++ ) { var _n = _nodes[j]; - if(is_string(_n)) { - if(struct_has(ALL_NODES, _n)) - ds_list_add(_l, ALL_NODES[$ _n]); - continue; - } - - if(is_struct(_n)) { - if(struct_has(_n, "label")) - ds_list_add(_l, _n.label); + if(is_string(_n) && struct_has(ALL_NODES, _n)) array_push(_l, ALL_NODES[$ _n]); + if(is_struct(_n) && struct_has(_n, "label")) { + var _k = _kname; if(_head != "") _k += "/" + _head; if(_lab != "") _k += "/" + _lab; + array_append(_l, CUSTOM_NODES_POSITION[$ _k]); + + if(!string_starts_with(_n.label, "/")) _head = _n.label; + else _lab = string_trim_start(_n.label, ["/"]); + + array_push(_l, _n.label); } } + + var _k = _kname; if(_head != "") _k += "/" + _head; if(_lab != "") _k += "/" + _lab; + array_append(_l, CUSTOM_NODES_POSITION[$ _k]); } } @@ -459,6 +495,7 @@ function __initNodes() { global.__startPage = 0; global.FAV_NODES = {}; + CUSTOM_NODES_POSITION = {}; NODE_PAGE_DEFAULT = 0; ADD_NODE_PAGE = 0; @@ -468,7 +505,7 @@ function __initNodes() { if(check_version($"{DIRECTORY}Nodes/version")) zip_unzip("data/Nodes/Internal.zip", $"{DIRECTORY}Nodes"); - __read_node_directory($"{DIRECTORY}Nodes/Internal"); + __read_node_directory($"{DIRECTORY}Nodes"); if(IS_CMD) return; @@ -481,11 +518,11 @@ function __initNodes() { var _data = json_load_struct(_relTo); __read_node_display(_data.list, addNodeCatagory); - NODE_ACTION_LIST = ds_list_create(); - addNodeCatagory("Action", NODE_ACTION_LIST); __initNodeActions(); + addNodeCatagory("Action", NODE_ACTION_LIST); if(IS_PATREON) addNodeCatagory("Extra", SUPPORTER_NODES); + if(!array_empty(CUSTOM_NODES)) addNodeCatagory("Custom", CUSTOM_NODES); __read_node_display(_data.pb, addNodePBCatagory); __read_node_display(_data.pcx, addNodePCXCatagory); @@ -507,15 +544,15 @@ function __initNodes() { function __generateNodeData() { var _dir = "D:/Project/MakhamDev/LTS-PixelComposer/PixelComposer/datafiles/data/Nodes/Internal" - for( var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++ ) { - var _cat = NODE_CATEGORY[| i]; + for( var i = 0, n = array_length(NODE_CATEGORY); i < n; i++ ) { + var _cat = NODE_CATEGORY[i]; var _lnme = _cat.name; var _list = _cat.list; directory_verify($"{_dir}/{_lnme}"); - for( var j = 0, m = ds_list_size(_list); j < m; j++ ) { - var _node = _list[| j]; + for( var j = 0, m = array_length(_list); j < m; j++ ) { + var _node = _list[j]; if(!is(_node, NodeObject)) continue; var _nme = _node.nodeName; @@ -527,15 +564,15 @@ function __generateNodeData() { } } - for( var i = 0, n = ds_list_size(NODE_PB_CATEGORY); i < n; i++ ) { - var _cat = NODE_PB_CATEGORY[| i]; + for( var i = 0, n = array_length(NODE_PB_CATEGORY); i < n; i++ ) { + var _cat = NODE_PB_CATEGORY[i]; var _lnme = _cat.name; var _list = _cat.list; directory_verify($"{_dir}/{_lnme}"); - for( var j = 0, m = ds_list_size(_list); j < m; j++ ) { - var _node = _list[| j]; + for( var j = 0, m = array_length(_list); j < m; j++ ) { + var _node = _list[j]; if(!is(_node, NodeObject)) continue; var _nme = _node.nodeName; @@ -547,15 +584,15 @@ function __generateNodeData() { } } - for( var i = 0, n = ds_list_size(NODE_PCX_CATEGORY); i < n; i++ ) { - var _cat = NODE_PCX_CATEGORY[| i]; + for( var i = 0, n = array_length(NODE_PCX_CATEGORY); i < n; i++ ) { + var _cat = NODE_PCX_CATEGORY[i]; var _lnme = _cat.name; var _list = _cat.list; directory_verify($"{_dir}/{_lnme}"); - for( var j = 0, m = ds_list_size(_list); j < m; j++ ) { - var _node = _list[| j]; + for( var j = 0, m = array_length(_list); j < m; j++ ) { + var _node = _list[j]; if(!is(_node, NodeObject)) continue; var _nme = _node.nodeName; diff --git a/scripts/node_test_blur/node_color_adjustment.yy b/scripts/node_test_blur/node_color_adjustment.yy new file mode 100644 index 000000000..b90346cca --- /dev/null +++ b/scripts/node_test_blur/node_color_adjustment.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_adjustment", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_test_blur/node_color_replacement.yy b/scripts/node_test_blur/node_color_replacement.yy new file mode 100644 index 000000000..024aa6a80 --- /dev/null +++ b/scripts/node_test_blur/node_color_replacement.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_color_replacement", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_test_blur/node_glow.yy b/scripts/node_test_blur/node_glow.yy new file mode 100644 index 000000000..27053f0a6 --- /dev/null +++ b/scripts/node_test_blur/node_glow.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_glow", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_test_blur/node_outline.yy b/scripts/node_test_blur/node_outline.yy new file mode 100644 index 000000000..86468bc09 --- /dev/null +++ b/scripts/node_test_blur/node_outline.yy @@ -0,0 +1,12 @@ +{ + "isDnD": false, + "isCompatibility": false, + "parent": { + "name": "process", + "path": "folders/nodes/data/process.yy", + }, + "resourceVersion": "1.0", + "name": "node_outline", + "tags": [], + "resourceType": "GMScript", +} \ No newline at end of file diff --git a/scripts/node_test_blur/node_test_blur.gml b/scripts/node_test_blur/node_test_blur.gml new file mode 100644 index 000000000..bc1adb0ca --- /dev/null +++ b/scripts/node_test_blur/node_test_blur.gml @@ -0,0 +1,127 @@ +// function Node_Blur(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor { +// name = "Blur"; + +// newInput(0, nodeValue_Surface("Surface in", self)); + +// newInput(1, nodeValue_Int("Size", self, 3)) +// .setValidator(VV_min(0)) +// .setUnitRef((index) => getDimension(index)); + +// newInput(2, nodeValue_Enum_Scroll("Oversample mode", self, 0, [ "Empty", "Clamp", "Repeat" ])) +// .setTooltip("How to deal with pixel outside the surface.\n - Empty: Use empty pixel\n - Clamp: Repeat edge pixel\n - Repeat: Repeat texture."); + +// newInput(3, nodeValue_Bool("Override color", self, false, "Replace all color while keeping the alpha. Used to\nfix grey outline when bluring transparent pixel.")); + +// newInput(4, nodeValue_Color("Color", self, cola(c_black))); + +// newInput(5, nodeValue_Surface("Mask", self)); + +// newInput(6, nodeValue_Float("Mix", self, 1)) +// .setDisplay(VALUE_DISPLAY.slider); + +// newInput(7, nodeValue_Bool("Active", self, true)); +// active_index = 7; + +// newInput(8, nodeValue_Toggle("Channel", self, 0b1111, { data: array_create(4, THEME.inspector_channel) })); + +// __init_mask_modifier(5); // inputs 9, 10 + +// newInput(11, nodeValue_Bool("Gamma Correction", self, false)); + +// newInput(12, nodeValue_Float("Aspect Ratio", self, 1)) +// .setDisplay(VALUE_DISPLAY.slider); + +// newInput(13, nodeValue_Rotation("Direction", self, 0)); + +// newOutput(0, nodeValue_Output("Surface out", self, VALUE_TYPE.surface, noone)); + +// input_display_list = [ 7, 8, +// ["Surfaces", true], 0, 5, 6, 9, 10, +// ["Blur", false], 1, 3, 4, 11, +// ["Directional", true], 12, 13, +// ]; + +// temp_surface = [ 0, 0 ]; + +// attribute_surface_depth(); +// attribute_oversample(); +// surface_blur_init(); + +// static step = function() { +// __step_mask_modifier(); +// } + +// static processData = function(_outSurf, _data, _output_index, _array_index) { +// var _surf = _data[0]; +// var _size = min(128, _data[1]); +// var _clamp = getAttribute("oversample"); +// var _isovr = _data[3]; +// var _mask = _data[5]; +// var _mix = _data[6]; +// var _overc = _isovr? _data[4] : noone; +// var _gam = _data[11]; +// var _aspc = _data[12]; +// var _dirr = _data[13]; + +// inputs[4].setVisible(_isovr); + +// if(!is_surface(_surf)) return _outSurf; +// var format = surface_get_format(_surf); +// var _sw = surface_get_width_safe(_surf); +// var _sh = surface_get_height_safe(_surf); + +// for(var i = 0; i < 2; i++) +// temp_surface[i] = surface_verify(temp_surface[i], _sw, _sh, format); + +// BLEND_OVERRIDE +// gpu_set_tex_filter(true); + +// surface_set_target(temp_surface[0]); +// draw_clear_alpha(c_white, false); + +// shader_set(sh_blur_gaussian); +// shader_set_f("dimension", [ _sw, _sh ]); +// shader_set_f("weight", __gaussian_get_kernel(_size)); + +// shader_set_i("sampleMode", _clamp); +// shader_set_i("size", _size); +// shader_set_i("horizontal", 1); +// shader_set_i("gamma", _gam); + +// shader_set_i("overrideColor", _overc != noone); +// shader_set_f("overColor", colToVec4(_overc)); +// shader_set_f("angle", degtorad(_dirr)); + +// draw_surface_safe(_surf); +// shader_reset(); +// surface_reset_target(); + +// surface_set_target(temp_surface[1]); +// draw_clear_alpha(c_white, false); + +// var _size_v = round(_size * _aspc); + +// shader_set(sh_blur_gaussian); +// shader_set_f("weight", __gaussian_get_kernel(_size_v)); +// shader_set_i("size", _size_v); +// shader_set_i("horizontal", 0); + +// draw_surface_safe(temp_surface[0]); +// shader_reset(); +// surface_reset_target(); + +// gpu_set_tex_filter(false); + +// surface_set_target(_outSurf); +// draw_clear_alpha(_isovr? _overc : 0, 0); +// draw_surface_safe(temp_surface[1]); +// surface_reset_target(); +// BLEND_NORMAL + +// __process_mask_modifier(_data); +// _outSurf = mask_apply(_data[0], _outSurf, _mask, _mix); +// _outSurf = channel_apply(_data[0], _outSurf, _data[8]); + +// return _outSurf; +// } +// } \ No newline at end of file diff --git a/scripts/__node_custom/__node_custom.yy b/scripts/node_test_blur/node_test_blur.yy similarity index 54% rename from scripts/__node_custom/__node_custom.yy rename to scripts/node_test_blur/node_test_blur.yy index fa09c8828..a08da2107 100644 --- a/scripts/__node_custom/__node_custom.yy +++ b/scripts/node_test_blur/node_test_blur.yy @@ -1,12 +1,12 @@ { "$GMScript":"v1", - "%Name":"__node_custom", + "%Name":"node_test_blur", "isCompatibility":false, "isDnD":false, - "name":"__node_custom", + "name":"node_test_blur", "parent":{ - "name":"misc", - "path":"folders/nodes/data/misc.yy", + "name":"debugging", + "path":"folders/misc/debugging.yy", }, "resourceType":"GMScript", "resourceVersion":"2.0", diff --git a/scripts/panel_collection/panel_collection.gml b/scripts/panel_collection/panel_collection.gml index d19bf2532..25bdd52b0 100644 --- a/scripts/panel_collection/panel_collection.gml +++ b/scripts/panel_collection/panel_collection.gml @@ -232,20 +232,20 @@ function Panel_Collection() : PanelContent() constructor { var pr_list = ds_priority_create(); var search_map = ds_map_create(); - for(var i = 0; i < ds_list_size(NODE_CATEGORY); i++) { - var cat = NODE_CATEGORY[| i]; + for(var i = 0; i < array_length(NODE_CATEGORY); i++) { + var cat = NODE_CATEGORY[i]; if(!struct_has(cat, "list")) continue; if(!array_empty(cat.filter)) continue; var _content = cat.list; - for(var j = 0; j < ds_list_size(_content); j++) { - var _node = _content[| j]; + for(var j = 0; j < array_length(_content); j++) { + var _node = _content[j]; if(is_string(_node)) continue; if(ds_map_exists(search_map, _node)) continue; if(!is_instanceof(_node, NodeObject)) continue; - if(_node.patreon && !IS_PATREON) continue; + if(_node.patreon && !IS_PATREON) continue; if(_node.deprecated) continue; var match = string_partial_match(string_lower(_node.getName()), search_lower); @@ -566,12 +566,11 @@ function Panel_Collection() : PanelContent() constructor { var _hov = pHOVER && nodeListPane.hover; var _foc = pFOCUS; - for (var i = 0, n = ds_list_size(NODE_CATEGORY); i < n; i++) { - var _cat = NODE_CATEGORY[| i]; + for (var i = 0, n = array_length(NODE_CATEGORY); i < n; i++) { + var _cat = NODE_CATEGORY[i]; var _nam = _cat.name; var _fil = _cat.filter; - - if(!array_empty(_fil)) continue; + if(!array_empty(_fil)) continue; var _y0 = _y; var _y1 = _y + _hg; @@ -596,8 +595,8 @@ function Panel_Collection() : PanelContent() constructor { nodecontentPane = new scrollPane(content_w - ui(8), content_h - ui(4), function(_y, _m) { draw_clear_alpha(COLORS.panel_bg_clear_inner, 1); var hh = ui(0); - var _cat = NODE_CATEGORY[| nodeListPane_page]; - var _list = _cat.list; + var _cat = NODE_CATEGORY[nodeListPane_page]; + var _list; if(searching) { _list = search_list; @@ -615,7 +614,15 @@ function Panel_Collection() : PanelContent() constructor { ds_list_add(node_temp_list, _node); } _list = node_temp_list; - } + + } else { + ds_list_clear(node_temp_list); + + for( var i = 0, n = array_length(_cat.list); i < n; i++ ) + ds_list_add(node_temp_list, _cat.list[i]); + + _list = nodeTempList; + } var grid_width = PREFERENCES.collection_label? max(ui(40), round(grid_size * 1.25)) : grid_size; var node_count = ds_list_size(_list); diff --git a/shaders/sh_test_blur/sh_test_blur.fsh b/shaders/sh_test_blur/sh_test_blur.fsh new file mode 100644 index 000000000..e28a17897 --- /dev/null +++ b/shaders/sh_test_blur/sh_test_blur.fsh @@ -0,0 +1,10 @@ +// +// Simple passthrough fragment shader +// +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + gl_FragColor = v_vColour * texture2D( gm_BaseTexture, v_vTexcoord ); +} diff --git a/shaders/sh_test_blur/sh_test_blur.vsh b/shaders/sh_test_blur/sh_test_blur.vsh new file mode 100644 index 000000000..3900c20f4 --- /dev/null +++ b/shaders/sh_test_blur/sh_test_blur.vsh @@ -0,0 +1,19 @@ +// +// Simple passthrough vertex shader +// +attribute vec3 in_Position; // (x,y,z) +//attribute vec3 in_Normal; // (x,y,z) unused in this shader. +attribute vec4 in_Colour; // (r,g,b,a) +attribute vec2 in_TextureCoord; // (u,v) + +varying vec2 v_vTexcoord; +varying vec4 v_vColour; + +void main() +{ + vec4 object_space_pos = vec4( in_Position.x, in_Position.y, in_Position.z, 1.0); + gl_Position = gm_Matrices[MATRIX_WORLD_VIEW_PROJECTION] * object_space_pos; + + v_vColour = in_Colour; + v_vTexcoord = in_TextureCoord; +} diff --git a/shaders/sh_test_blur/sh_test_blur.yy b/shaders/sh_test_blur/sh_test_blur.yy new file mode 100644 index 000000000..4fa29135c --- /dev/null +++ b/shaders/sh_test_blur/sh_test_blur.yy @@ -0,0 +1,12 @@ +{ + "$GMShader":"", + "%Name":"sh_test_blur", + "name":"sh_test_blur", + "parent":{ + "name":"debugging", + "path":"folders/misc/debugging.yy", + }, + "resourceType":"GMShader", + "resourceVersion":"2.0", + "type":1, +} \ No newline at end of file