Pop up text area

This commit is contained in:
Tanasart 2023-09-07 20:59:14 +02:00
parent ef215cf344
commit 679a171ef1
53 changed files with 1047 additions and 186 deletions

View file

@ -7,6 +7,7 @@
{"name":"Math","order":1,"path":"folders/_extensions/BBMOD/Math.yy",},
{"name":"GMD3D11","order":11,"path":"folders/_extensions/GMD3D11.yy",},
{"name":"MAC","order":6,"path":"folders/_extensions/MAC.yy",},
{"name":"Shader replace","order":12,"path":"folders/_extensions/Shader replace.yy",},
{"name":"addons","order":10,"path":"folders/addons.yy",},
{"name":"custom","order":4,"path":"folders/addons/custom.yy",},
{"name":"key displayer","order":2,"path":"folders/addons/key displayer.yy",},
@ -25,20 +26,19 @@
{"name":"light","order":6,"path":"folders/functions/3d/light.yy",},
{"name":"mesh","order":8,"path":"folders/functions/3d/mesh.yy",},
{"name":"util","order":5,"path":"folders/functions/3d/util.yy",},
{"name":"action","order":40,"path":"folders/functions/action.yy",},
{"name":"action","order":38,"path":"folders/functions/action.yy",},
{"name":"animation","order":19,"path":"folders/functions/animation.yy",},
{"name":"async","order":36,"path":"folders/functions/async.yy",},
{"name":"audio","order":35,"path":"folders/functions/audio.yy",},
{"name":"async","order":34,"path":"folders/functions/async.yy",},
{"name":"audio","order":33,"path":"folders/functions/audio.yy",},
{"name":"bones","order":18,"path":"folders/functions/bones.yy",},
{"name":"buffer","order":37,"path":"folders/functions/buffer.yy",},
{"name":"buffer","order":35,"path":"folders/functions/buffer.yy",},
{"name":"compat","order":13,"path":"folders/functions/compat.yy",},
{"name":"control","order":22,"path":"folders/functions/control.yy",},
{"name":"curve","order":12,"path":"folders/functions/curve.yy",},
{"name":"debug","order":14,"path":"folders/functions/debug.yy",},
{"name":"delaunay","order":30,"path":"folders/functions/delaunay.yy",},
{"name":"draw","order":2,"path":"folders/functions/draw.yy",},
{"name":"ds","order":5,"path":"folders/functions/ds.yy",},
{"name":"eval","order":10,"path":"folders/functions/eval.yy",},
{"name":"delaunay","order":28,"path":"folders/functions/delaunay.yy",},
{"name":"draw","order":3,"path":"folders/functions/draw.yy",},
{"name":"ds","order":6,"path":"folders/functions/ds.yy",},
{"name":"files","order":15,"path":"folders/functions/files.yy",},
{"name":"fluid sim","order":26,"path":"folders/functions/fluid sim.yy",},
{"name":"API","order":3,"path":"folders/functions/fluid sim/API.yy",},
@ -53,23 +53,27 @@
{"name":"object","order":4,"path":"folders/functions/fluid sim/Internal/Compatibility/object.yy",},
{"name":"texture","order":5,"path":"folders/functions/fluid sim/Internal/Compatibility/texture.yy",},
{"name":"view","order":6,"path":"folders/functions/fluid sim/Internal/Compatibility/view.yy",},
{"name":"geometry","order":31,"path":"folders/functions/geometry.yy",},
{"name":"importers","order":6,"path":"folders/functions/importers.yy",},
{"name":"inputs","order":7,"path":"folders/functions/inputs.yy",},
{"name":"geometry","order":29,"path":"folders/functions/geometry.yy",},
{"name":"GLSL","order":41,"path":"folders/functions/GLSL.yy",},
{"name":"importers","order":7,"path":"folders/functions/importers.yy",},
{"name":"inputs","order":8,"path":"folders/functions/inputs.yy",},
{"name":"lua","order":24,"path":"folders/functions/lua.yy",},
{"name":"nodes","order":34,"path":"folders/functions/nodes.yy",},
{"name":"packing","order":32,"path":"folders/functions/packing.yy",},
{"name":"migration","order":1,"path":"folders/functions/migration.yy",},
{"name":"nodes","order":32,"path":"folders/functions/nodes.yy",},
{"name":"packing","order":30,"path":"folders/functions/packing.yy",},
{"name":"PCX","order":11,"path":"folders/functions/PCX.yy",},
{"name":"physics","order":21,"path":"folders/functions/physics.yy",},
{"name":"project","order":39,"path":"folders/functions/project.yy",},
{"name":"project","order":37,"path":"folders/functions/project.yy",},
{"name":"shader","order":16,"path":"folders/functions/shader.yy",},
{"name":"string","order":4,"path":"folders/functions/string.yy",},
{"name":"surface","order":8,"path":"folders/functions/surface.yy",},
{"name":"string","order":5,"path":"folders/functions/string.yy",},
{"name":"surface","order":9,"path":"folders/functions/surface.yy",},
{"name":"test","order":23,"path":"folders/functions/test.yy",},
{"name":"tween","order":33,"path":"folders/functions/tween.yy",},
{"name":"value","order":1,"path":"folders/functions/value.yy",},
{"name":"variables","order":41,"path":"folders/functions/variables.yy",},
{"name":"vector","order":3,"path":"folders/functions/vector.yy",},
{"name":"window","order":29,"path":"folders/functions/window.yy",},
{"name":"tooltip","order":40,"path":"folders/functions/tooltip.yy",},
{"name":"tween","order":31,"path":"folders/functions/tween.yy",},
{"name":"value","order":2,"path":"folders/functions/value.yy",},
{"name":"variables","order":39,"path":"folders/functions/variables.yy",},
{"name":"vector","order":4,"path":"folders/functions/vector.yy",},
{"name":"window","order":27,"path":"folders/functions/window.yy",},
{"name":"main","order":1,"path":"folders/main.yy",},
{"name":"startup scripts","order":2,"path":"folders/main/startup scripts.yy",},
{"name":"nodes","order":3,"path":"folders/nodes.yy",},
@ -167,6 +171,7 @@
{"name":"color picker","order":56,"path":"folders/shader/color picker.yy",},
{"name":"color selector","order":51,"path":"folders/shader/color selector.yy",},
{"name":"draw","order":39,"path":"folders/shader/draw.yy",},
{"name":"dummy","order":57,"path":"folders/shader/dummy.yy",},
{"name":"filter","order":30,"path":"folders/shader/filter.yy",},
{"name":"color","order":53,"path":"folders/shader/filter/color.yy",},
{"name":"shadow caster","order":46,"path":"folders/shader/filter/shadow caster.yy",},
@ -194,7 +199,6 @@
{"name":"biterator","order":2,"path":"folders/VCT/biterator.yy",},
{"name":"widget","order":3,"path":"folders/VCT/widget.yy",},
{"name":"widgets","order":5,"path":"folders/widgets.yy",},
{"name":"tooltip","order":42,"path":"folders/functions/tooltip.yy",},
],
"ResourceOrderSettings": [
{"name":"s_node_corner","order":16,"path":"sprites/s_node_corner/s_node_corner.yy",},
@ -215,6 +219,7 @@
{"name":"sh_fd_add_velocity_glsl","order":1,"path":"shaders/sh_fd_add_velocity_glsl/sh_fd_add_velocity_glsl.yy",},
{"name":"s_node_normal","order":30,"path":"sprites/s_node_normal/s_node_normal.yy",},
{"name":"node_pixel_sort","order":12,"path":"scripts/node_pixel_sort/node_pixel_sort.yy",},
{"name":"node_glsl","order":13,"path":"scripts/node_glsl/node_glsl.yy",},
{"name":"sh_dither","order":28,"path":"shaders/sh_dither/sh_dither.yy",},
{"name":"__vec2","order":7,"path":"scripts/__vec2/__vec2.yy",},
{"name":"node_region_fill","order":20,"path":"scripts/node_region_fill/node_region_fill.yy",},
@ -404,6 +409,7 @@
{"name":"fd_rectangle_update_view","order":5,"path":"scripts/fd_rectangle_update_view/fd_rectangle_update_view.yy",},
{"name":"s_node_rigidSim_renderer","order":1,"path":"sprites/s_node_rigidSim_renderer/s_node_rigidSim_renderer.yy",},
{"name":"__init_background","order":4,"path":"scripts/__init_background/__init_background.yy",},
{"name":"shader_replace_simple_macros","order":2,"path":"scripts/shader_replace_simple_macros/shader_replace_simple_macros.yy",},
{"name":"s_textbox","order":1,"path":"sprites/s_textbox/s_textbox.yy",},
{"name":"__node","order":8,"path":"scripts/__node/__node.yy",},
{"name":"fd_rectangle_add_velocity","order":5,"path":"scripts/fd_rectangle_add_velocity/fd_rectangle_add_velocity.yy",},
@ -749,7 +755,7 @@
{"name":"node_color_remove","order":2,"path":"scripts/node_color_remove/node_color_remove.yy",},
{"name":"s_node_3d_light_directi","order":17,"path":"sprites/s_node_3d_light_directi/s_node_3d_light_directi.yy",},
{"name":"spr_gameframe_pixel","order":3,"path":"sprites/spr_gameframe_pixel/spr_gameframe_pixel.yy",},
{"name":"process_functions","order":38,"path":"scripts/process_functions/process_functions.yy",},
{"name":"process_functions","order":36,"path":"scripts/process_functions/process_functions.yy",},
{"name":"s_node_radial","order":53,"path":"sprites/s_node_radial/s_node_radial.yy",},
{"name":"s_node_grid","order":3,"path":"sprites/s_node_grid/s_node_grid.yy",},
{"name":"s_node_animation_control","order":31,"path":"sprites/s_node_animation_control/s_node_animation_control.yy",},
@ -912,6 +918,7 @@
{"name":"sh_d3d_shadow_depth","order":19,"path":"shaders/sh_d3d_shadow_depth/sh_d3d_shadow_depth.yy",},
{"name":"s_node_noise_fbm","order":26,"path":"sprites/s_node_noise_fbm/s_node_noise_fbm.yy",},
{"name":"sh_color_select_content","order":1,"path":"shaders/sh_color_select_content/sh_color_select_content.yy",},
{"name":"scr_cmd_arg","order":3,"path":"scripts/scr_cmd_arg/scr_cmd_arg.yy",},
{"name":"sh_outline","order":18,"path":"shaders/sh_outline/sh_outline.yy",},
{"name":"s_node_strandSim_break","order":8,"path":"sprites/s_node_strandSim_break/s_node_strandSim_break.yy",},
{"name":"s_node_scatter_point","order":4,"path":"sprites/s_node_scatter_point/s_node_scatter_point.yy",},
@ -1297,6 +1304,7 @@
{"name":"addon","order":1,"path":"objects/addon/addon.yy",},
{"name":"_f_h3","order":3,"path":"fonts/_f_h3/_f_h3.yy",},
{"name":"s_node_math","order":1,"path":"sprites/s_node_math/s_node_math.yy",},
{"name":"panel_text_editor","order":11,"path":"scripts/panel_text_editor/panel_text_editor.yy",},
{"name":"node_iterator_index","order":2,"path":"scripts/node_iterator_index/node_iterator_index.yy",},
{"name":"s_node_palette_sort","order":14,"path":"sprites/s_node_palette_sort/s_node_palette_sort.yy",},
{"name":"node_greyscale","order":5,"path":"scripts/node_greyscale/node_greyscale.yy",},
@ -1474,6 +1482,7 @@
{"name":"sprite_loader","order":11,"path":"scripts/sprite_loader/sprite_loader.yy",},
{"name":"fd_rectangle_get_material_surface","order":12,"path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",},
{"name":"fd_rectangle_clear","order":6,"path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",},
{"name":"shader_replace_simple","order":1,"path":"extensions/shader_replace_simple/shader_replace_simple.yy",},
{"name":"d3d_cone","order":5,"path":"scripts/d3d_cone/d3d_cone.yy",},
{"name":"__rectangle","order":7,"path":"scripts/__rectangle/__rectangle.yy",},
{"name":"s_node_iterator_index","order":8,"path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},
@ -1516,7 +1525,7 @@
{"name":"fd_rectangle_set_material_dissipation_value","order":5,"path":"scripts/fd_rectangle_set_material_dissipation_value/fd_rectangle_set_material_dissipation_value.yy",},
{"name":"node_iterator_output","order":2,"path":"scripts/node_iterator_output/node_iterator_output.yy",},
{"name":"panel_graph_export_image_dialog","order":5,"path":"scripts/panel_graph_export_image_dialog/panel_graph_export_image_dialog.yy",},
{"name":"debug","order":9,"path":"scripts/debug/debug.yy",},
{"name":"debug","order":10,"path":"scripts/debug/debug.yy",},
{"name":"node_shadow_cast","order":15,"path":"scripts/node_shadow_cast/node_shadow_cast.yy",},
{"name":"node_strand_render","order":5,"path":"scripts/node_strand_render/node_strand_render.yy",},
{"name":"s_node_3d_obj_combine","order":5,"path":"sprites/s_node_3d_obj_combine/s_node_3d_obj_combine.yy",},

View file

@ -27,6 +27,7 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"Gameframe","folderPath":"folders/_extensions/Gameframe.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"GMD3D11","folderPath":"folders/_extensions/GMD3D11.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"MAC","folderPath":"folders/_extensions/MAC.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"Shader replace","folderPath":"folders/_extensions/Shader replace.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"addons","folderPath":"folders/addons.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"custom","folderPath":"folders/addons/custom.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"key displayer","folderPath":"folders/addons/key displayer.yy",},
@ -59,7 +60,6 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"delaunay","folderPath":"folders/functions/delaunay.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"draw","folderPath":"folders/functions/draw.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"ds","folderPath":"folders/functions/ds.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"eval","folderPath":"folders/functions/eval.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"files","folderPath":"folders/functions/files.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"fluid sim","folderPath":"folders/functions/fluid sim.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"API","folderPath":"folders/functions/fluid sim/API.yy",},
@ -76,18 +76,21 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"view","folderPath":"folders/functions/fluid sim/Internal/Compatibility/view.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"Shaders","folderPath":"folders/functions/fluid sim/Shaders.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"geometry","folderPath":"folders/functions/geometry.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"GLSL","folderPath":"folders/functions/GLSL.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"importers","folderPath":"folders/functions/importers.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"inputs","folderPath":"folders/functions/inputs.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"lua","folderPath":"folders/functions/lua.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"migration","folderPath":"folders/functions/migration.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"nodes","folderPath":"folders/functions/nodes.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"packing","folderPath":"folders/functions/packing.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"PCX","folderPath":"folders/functions/PCX.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"physics","folderPath":"folders/functions/physics.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"project","folderPath":"folders/functions/project.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"shader","folderPath":"folders/functions/shader.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"string","folderPath":"folders/functions/string.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"surface","folderPath":"folders/functions/surface.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"test","folderPath":"folders/functions/test.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"tooltip","folderPath":"folders/functions/tooltip.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"tween","folderPath":"folders/functions/tween.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"value","folderPath":"folders/functions/value.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"variables","folderPath":"folders/functions/variables.yy",},
@ -202,6 +205,7 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"color picker","folderPath":"folders/shader/color picker.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"color selector","folderPath":"folders/shader/color selector.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"draw","folderPath":"folders/shader/draw.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"dummy","folderPath":"folders/shader/dummy.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"filter","folderPath":"folders/shader/filter.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"color","folderPath":"folders/shader/filter/color.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"shadow caster","folderPath":"folders/shader/filter/shadow caster.yy",},
@ -232,7 +236,6 @@
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"biterator","folderPath":"folders/VCT/biterator.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widget","folderPath":"folders/VCT/widget.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"widgets","folderPath":"folders/widgets.yy",},
{"resourceType":"GMFolder","resourceVersion":"1.0","name":"tooltip","folderPath":"folders/functions/tooltip.yy",},
],
"IncludedFiles": [
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"ApolloHelp.html","ConfigValues":{"Itch":{"CopyToMask":"0",},},"CopyToMask":-1,"filePath":"datafiles",},
@ -373,6 +376,7 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_loop_16.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_minus_24.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_name.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_new_line_shift.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_new.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_create.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_node_goto.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
@ -420,6 +424,7 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_strandSim.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_tab_exit.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_text_bullet_strip2.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_text_popup.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_timeline_clock.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_timeline_graph.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"s_timeline_keyframe_strip4.png","CopyToMask":-1,"filePath":"datafiles/data/themes/default/graphics/icon",},
@ -671,6 +676,18 @@
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"gifski.h","CopyToMask":-1,"filePath":"datafiles/gifski/win/developer",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"gifski.exe","CopyToMask":-1,"filePath":"datafiles/gifski/win",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"GMD3D11.dll","CopyToMask":-1,"filePath":"datafiles",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"D3D11ShaderParser.exe","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"D3D12ShaderParser.exe","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"d3dcompiler_46.dll","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"FShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HLSL11_PShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HLSL11_VShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HLSL9_PShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HLSL9_VShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"HLSLCompiler.exe","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"libEGL.dll","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"libGLESv2.dll","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"VShaderCommon.shader","CopyToMask":-1,"filePath":"datafiles/HLSL",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"convert.exe","CopyToMask":-1,"filePath":"datafiles/ImageMagick",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"LICENSE.txt","CopyToMask":-1,"filePath":"datafiles/ImageMagick",},
{"resourceType":"GMIncludedFile","resourceVersion":"1.0","name":"magick.exe","CopyToMask":-1,"filePath":"datafiles/ImageMagick",},
@ -713,7 +730,7 @@
"isEcma": false,
"LibraryEmitters": [],
"MetaData": {
"IDEVersion": "2023.6.0.92",
"IDEVersion": "2023.8.0.98",
},
"resources": [
{"id":{"name":"s_node_corner","path":"sprites/s_node_corner/s_node_corner.yy",},},
@ -734,6 +751,7 @@
{"id":{"name":"sh_fd_add_velocity_glsl","path":"shaders/sh_fd_add_velocity_glsl/sh_fd_add_velocity_glsl.yy",},},
{"id":{"name":"s_node_normal","path":"sprites/s_node_normal/s_node_normal.yy",},},
{"id":{"name":"node_pixel_sort","path":"scripts/node_pixel_sort/node_pixel_sort.yy",},},
{"id":{"name":"node_glsl","path":"scripts/node_glsl/node_glsl.yy",},},
{"id":{"name":"sh_dither","path":"shaders/sh_dither/sh_dither.yy",},},
{"id":{"name":"__vec2","path":"scripts/__vec2/__vec2.yy",},},
{"id":{"name":"control_function","path":"scripts/control_function/control_function.yy",},},
@ -949,6 +967,7 @@
{"id":{"name":"fd_rectangle_update_view","path":"scripts/fd_rectangle_update_view/fd_rectangle_update_view.yy",},},
{"id":{"name":"s_node_rigidSim_renderer","path":"sprites/s_node_rigidSim_renderer/s_node_rigidSim_renderer.yy",},},
{"id":{"name":"__init_background","path":"scripts/__init_background/__init_background.yy",},},
{"id":{"name":"shader_replace_simple_macros","path":"scripts/shader_replace_simple_macros/shader_replace_simple_macros.yy",},},
{"id":{"name":"s_textbox","path":"sprites/s_textbox/s_textbox.yy",},},
{"id":{"name":"__node","path":"scripts/__node/__node.yy",},},
{"id":{"name":"fd_rectangle_add_velocity","path":"scripts/fd_rectangle_add_velocity/fd_rectangle_add_velocity.yy",},},
@ -1108,6 +1127,7 @@
{"id":{"name":"s_node_pack_sprite","path":"sprites/s_node_pack_sprite/s_node_pack_sprite.yy",},},
{"id":{"name":"surface_valid","path":"scripts/surface_valid/surface_valid.yy",},},
{"id":{"name":"steam_ugc_collection","path":"scripts/steam_ugc_collection/steam_ugc_collection.yy",},},
{"id":{"name":"sh_dummy_0","path":"shaders/sh_dummy_0/sh_dummy_0.yy",},},
{"id":{"name":"sh_blur_zoom","path":"shaders/sh_blur_zoom/sh_blur_zoom.yy",},},
{"id":{"name":"node_VFX_renderer","path":"scripts/node_VFX_renderer/node_VFX_renderer.yy",},},
{"id":{"name":"s_node_pb_fx_stack","path":"sprites/s_node_pb_fx_stack/s_node_pb_fx_stack.yy",},},
@ -1501,6 +1521,7 @@
{"id":{"name":"sh_surface_replace_replace","path":"shaders/sh_surface_replace_replace/sh_surface_replace_replace.yy",},},
{"id":{"name":"node_ase_file_read","path":"scripts/node_ase_file_read/node_ase_file_read.yy",},},
{"id":{"name":"s_workshop_frame","path":"sprites/s_workshop_frame/s_workshop_frame.yy",},},
{"id":{"name":"glsl_draw","path":"scripts/glsl_draw/glsl_draw.yy",},},
{"id":{"name":"s_node_print","path":"sprites/s_node_print/s_node_print.yy",},},
{"id":{"name":"sh_seperate_shape_counter","path":"shaders/sh_seperate_shape_counter/sh_seperate_shape_counter.yy",},},
{"id":{"name":"s_node_stack","path":"sprites/s_node_stack/s_node_stack.yy",},},
@ -1529,6 +1550,7 @@
{"id":{"name":"sh_d3d_shadow_depth","path":"shaders/sh_d3d_shadow_depth/sh_d3d_shadow_depth.yy",},},
{"id":{"name":"s_node_noise_fbm","path":"sprites/s_node_noise_fbm/s_node_noise_fbm.yy",},},
{"id":{"name":"sh_color_select_content","path":"shaders/sh_color_select_content/sh_color_select_content.yy",},},
{"id":{"name":"scr_cmd_arg","path":"scripts/scr_cmd_arg/scr_cmd_arg.yy",},},
{"id":{"name":"sh_outline","path":"shaders/sh_outline/sh_outline.yy",},},
{"id":{"name":"s_node_strandSim_break","path":"sprites/s_node_strandSim_break/s_node_strandSim_break.yy",},},
{"id":{"name":"s_node_scatter_point","path":"sprites/s_node_scatter_point/s_node_scatter_point.yy",},},
@ -1638,6 +1660,7 @@
{"id":{"name":"number_function","path":"scripts/number_function/number_function.yy",},},
{"id":{"name":"s_node_array_shift","path":"sprites/s_node_array_shift/s_node_array_shift.yy",},},
{"id":{"name":"s_node_statistic","path":"sprites/s_node_statistic/s_node_statistic.yy",},},
{"id":{"name":"execute_program_pipe","path":"extensions/execute_program_pipe/execute_program_pipe.yy",},},
{"id":{"name":"s_node_cache_array","path":"sprites/s_node_cache_array/s_node_cache_array.yy",},},
{"id":{"name":"sh_blend_alpha_addition","path":"shaders/sh_blend_alpha_addition/sh_blend_alpha_addition.yy",},},
{"id":{"name":"widget","path":"scripts/widget/widget.yy",},},
@ -1975,6 +1998,7 @@
{"id":{"name":"string_decimal","path":"scripts/string_decimal/string_decimal.yy",},},
{"id":{"name":"_f_h3","path":"fonts/_f_h3/_f_h3.yy",},},
{"id":{"name":"s_node_math","path":"sprites/s_node_math/s_node_math.yy",},},
{"id":{"name":"panel_text_editor","path":"scripts/panel_text_editor/panel_text_editor.yy",},},
{"id":{"name":"node_iterator_index","path":"scripts/node_iterator_index/node_iterator_index.yy",},},
{"id":{"name":"s_node_palette_sort","path":"sprites/s_node_palette_sort/s_node_palette_sort.yy",},},
{"id":{"name":"node_greyscale","path":"scripts/node_greyscale/node_greyscale.yy",},},
@ -2177,6 +2201,7 @@
{"id":{"name":"fd_rectangle_get_material_surface","path":"scripts/fd_rectangle_get_material_surface/fd_rectangle_get_material_surface.yy",},},
{"id":{"name":"fd_rectangle_clear","path":"scripts/fd_rectangle_clear/fd_rectangle_clear.yy",},},
{"id":{"name":"instance_create","path":"scripts/instance_create/instance_create.yy",},},
{"id":{"name":"shader_replace_simple","path":"extensions/shader_replace_simple/shader_replace_simple.yy",},},
{"id":{"name":"d3d_cone","path":"scripts/d3d_cone/d3d_cone.yy",},},
{"id":{"name":"__rectangle","path":"scripts/__rectangle/__rectangle.yy",},},
{"id":{"name":"s_node_iterator_index","path":"sprites/s_node_iterator_index/s_node_iterator_index.yy",},},
@ -2259,6 +2284,7 @@
"RoomOrderNodes": [
{"roomId":{"name":"rm_main","path":"rooms/rm_main/rm_main.yy",},},
],
"templateType": null,
"TextureGroups": [
{"resourceType":"GMTextureGroup","resourceVersion":"1.3","name":"Default","autocrop":true,"border":2,"compressFormat":"bz2","directory":"","groupParent":null,"isScaled":true,"loadType":"default","mipsToGenerate":0,"targets":-1,},
],

Binary file not shown.

Binary file not shown.

View file

@ -0,0 +1,28 @@
// Uniforms look like they're shared between vertex and fragment shaders in GLSL, so we have to be careful to avoid name clashes
uniform sampler2D gm_BaseTexture;
uniform bool gm_PS_FogEnabled;
uniform vec4 gm_FogColour;
uniform bool gm_AlphaTestEnabled;
uniform float gm_AlphaRefValue;
void DoAlphaTest(vec4 SrcColour)
{
if (gm_AlphaTestEnabled)
{
if (SrcColour.a <= gm_AlphaRefValue)
{
discard;
}
}
}
void DoFog(inout vec4 SrcColour, float fogval)
{
if (gm_PS_FogEnabled)
{
SrcColour = mix(SrcColour, gm_FogColour, clamp(fogval, 0.0, 1.0));
}
}

View file

@ -0,0 +1,12 @@
// GameMaker reserved and common types/inputs
Texture2D gm_BaseTextureObject : register(t0);
SamplerState gm_BaseTexture : register(S0);
cbuffer gm_PSMaterialConstantBuffer
{
bool gm_PS_FogEnabled;
float4 gm_FogColour;
bool gm_AlphaTestEnabled;
float4 gm_AlphaRefValue;
};

View file

@ -0,0 +1,30 @@
#define MATRIX_VIEW 0
#define MATRIX_PROJECTION 1
#define MATRIX_WORLD 2
#define MATRIX_WORLD_VIEW 3
#define MATRIX_WORLD_VIEW_PROJECTION 4
#define MATRICES_MAX 5
cbuffer gm_VSTransformBuffer
{
float4x4 gm_Matrices[MATRICES_MAX];
};
cbuffer gm_VSMaterialConstantBuffer
{
bool gm_LightingEnabled;
bool gm_VS_FogEnabled;
float gm_FogStart;
float gm_RcpFogRange;
};
#define MAX_VS_LIGHTS 8
cbuffer gm_VSLightingConstantBuffer
{
float4 gm_AmbientColour; // rgb=colour, a=1
float3 gm_Lights_Direction[MAX_VS_LIGHTS]; // normalised direction
float4 gm_Lights_PosRange[MAX_VS_LIGHTS]; // X,Y,Z position, W range
float4 gm_Lights_Colour[MAX_VS_LIGHTS]; // rgb=colour, a=1
}

View file

@ -0,0 +1,8 @@
// GameMaker reserved and common types/inputs
sampler2D gm_BaseTexture : register(S0);
bool gm_PS_FogEnabled;
float4 gm_FogColour;
bool gm_AlphaTestEnabled;
float4 gm_AlphaRefValue;

View file

@ -0,0 +1,20 @@
#define MATRIX_VIEW 0
#define MATRIX_PROJECTION 1
#define MATRIX_WORLD 2
#define MATRIX_WORLD_VIEW 3
#define MATRIX_WORLD_VIEW_PROJECTION 4
#define MATRICES_MAX 5
float4x4 gm_Matrices[MATRICES_MAX] : register(c0);
bool gm_LightingEnabled;
bool gm_VS_FogEnabled;
float gm_FogStart;
float gm_RcpFogRange;
#define MAX_VS_LIGHTS 8
float4 gm_AmbientColour; // rgb=colour, a=1
float3 gm_Lights_Direction[MAX_VS_LIGHTS]; // normalised direction
float4 gm_Lights_PosRange[MAX_VS_LIGHTS]; // X,Y,Z position, W range
float4 gm_Lights_Colour[MAX_VS_LIGHTS]; // rgb=colour, a=1

Binary file not shown.

View file

@ -0,0 +1,118 @@
#define MATRIX_VIEW 0
#define MATRIX_PROJECTION 1
#define MATRIX_WORLD 2
#define MATRIX_WORLD_VIEW 3
#define MATRIX_WORLD_VIEW_PROJECTION 4
#define MATRICES_MAX 5
uniform mat4 gm_Matrices[MATRICES_MAX];
uniform bool gm_LightingEnabled;
uniform bool gm_VS_FogEnabled;
uniform float gm_FogStart;
uniform float gm_RcpFogRange;
#define MAX_VS_LIGHTS 8
#define MIRROR_WIN32_LIGHTING_EQUATION
//#define MAX_VS_LIGHTS 8
uniform vec4 gm_AmbientColour; // rgb=colour, a=1
uniform vec4 gm_Lights_Direction[MAX_VS_LIGHTS]; // normalised direction
uniform vec4 gm_Lights_PosRange[MAX_VS_LIGHTS]; // X,Y,Z position, W range
uniform vec4 gm_Lights_Colour[MAX_VS_LIGHTS]; // rgb=colour, a=1
float CalcFogFactor(vec4 pos)
{
if (gm_VS_FogEnabled)
{
vec4 viewpos = gm_Matrices[MATRIX_WORLD_VIEW] * pos;
float fogfactor = ((viewpos.z - gm_FogStart) * gm_RcpFogRange);
return fogfactor;
}
else
{
return 0.0;
}
}
vec4 DoDirLight(vec3 ws_normal, vec4 dir, vec4 diffusecol)
{
float dotresult = dot(ws_normal, dir.xyz);
dotresult = min(dotresult, dir.w); // the w component is 1 if the directional light is active, or 0 if it isn't
dotresult = max(0.0, dotresult);
return dotresult * diffusecol;
}
vec4 DoPointLight(vec3 ws_pos, vec3 ws_normal, vec4 posrange, vec4 diffusecol)
{
vec3 diffvec = ws_pos - posrange.xyz;
float veclen = length(diffvec);
diffvec /= veclen; // normalise
float atten;
if (posrange.w == 0.0) // the w component of posrange is 0 if the point light is disabled - if we don't catch it here we might end up generating INFs or NaNs
{
atten = 0.0;
}
else
{
#ifdef MIRROR_WIN32_LIGHTING_EQUATION
// This is based on the Win32 D3D and OpenGL falloff model, where:
// Attenuation = 1.0f / (factor0 + (d * factor1) + (d*d * factor2))
// For some reason, factor0 is set to 0.0f while factor1 is set to 1.0f/lightrange (on both D3D and OpenGL)
// This'll result in no visible falloff as 1.0f / (d / lightrange) will always be larger than 1.0f (if the vertex is within range)
atten = 1.0 / (veclen / posrange.w);
if (veclen > posrange.w)
{
atten = 0.0;
}
#else
atten = clamp( (1.0 - (veclen / posrange.w)), 0.0, 1.0); // storing 1.0f/range instead would save a rcp
#endif
}
float dotresult = dot(ws_normal, diffvec);
dotresult = max(0.0, dotresult);
return dotresult * atten * diffusecol;
}
vec4 DoLighting(vec4 vertexcolour, vec4 objectspacepos, vec3 objectspacenormal)
{
if (gm_LightingEnabled)
{
// Normally we'd have the light positions\\directions back-transformed from world to object space
// But to keep things simple for the moment we'll just transform the normal to world space
vec4 objectspacenormal4 = vec4(objectspacenormal, 0.0);
vec3 ws_normal;
ws_normal = (gm_Matrices[MATRIX_WORLD] * objectspacenormal4).xyz;
ws_normal = normalize(ws_normal);
vec3 ws_pos;
ws_pos = (gm_Matrices[MATRIX_WORLD] * objectspacepos).xyz;
// Accumulate lighting from different light types
vec4 accumcol = vec4(0.0, 0.0, 0.0, 0.0);
for(int i = 0; i < MAX_VS_LIGHTS; i++)
{
accumcol += DoDirLight(ws_normal, gm_Lights_Direction[i], gm_Lights_Colour[i]);
}
for(int i = 0; i < MAX_VS_LIGHTS; i++)
{
accumcol += DoPointLight(ws_pos, ws_normal, gm_Lights_PosRange[i], gm_Lights_Colour[i]);
}
accumcol *= vertexcolour;
accumcol += gm_AmbientColour;
accumcol = min(vec4(1.0, 1.0, 1.0, 1.0), accumcol);
accumcol.a = vertexcolour.a;
return accumcol;
}
else
{
return vertexcolour;
}
}

Binary file not shown.

BIN
datafiles/HLSL/libEGL.dll Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

View file

@ -65,7 +65,7 @@ event_inherited();
draw_sprite_ui(THEME.arrow, is_open[i]? 3 : 0, ui(16), yy + pad + line_get_height() / 2,,,, COLORS._main_icon);
draw_set_text(f_code, fa_left, fa_top, COLORS._main_text);
draw_code(ui(28), yy + pad, _func);
draw_code_lua(ui(28), yy + pad, _func);
if(is_open[i]) {
var ty = yy + pad + line_get_height() + ui(4);

View file

@ -61,6 +61,8 @@ event_inherited();
function onDestroy() {
if(!content) return;
content.onClose();
print("On close on panel");
}
function remove() {

View file

@ -136,7 +136,6 @@ function __addon_lua_setup_constants(lua, context) {
lua_add_code(lua, $"s_ui_panel_active = {THEME.ui_panel_active}");
lua_add_code(lua, $"s_ui_panel_bg = {THEME.ui_panel_bg}");
lua_add_code(lua, $"s_ui_panel_bg_dark = {THEME.ui_panel_bg_dark}");
lua_add_code(lua, $"s_ui_scrollbar = {THEME.ui_scrollbar}");
}

View file

@ -67,6 +67,7 @@ function buttonGroup(_data, _onClick) : widget() constructor {
if(display_button) {
var bx = _x;
var draw_sel = [];
for(var i = 0; i < amo; i++) {
buttons[i].setFocusHover(active, hover);
@ -75,7 +76,7 @@ function buttonGroup(_data, _onClick) : widget() constructor {
if(_selecting == i) {
draw_sprite_stretched(spr, 2, bx, _y, ww, _h);
draw_sprite_stretched_ext(spr, 3, bx, _y, ww, _h, COLORS._main_accent, 1);
draw_sel = [spr, bx];
} else {
buttons[i].draw(bx, _y, ww, _h, _m, spr);
if(buttons[i].clicked) onClick(i);
@ -91,6 +92,8 @@ function buttonGroup(_data, _onClick) : widget() constructor {
bx += ww;
}
draw_sprite_stretched_ext(draw_sel[0], 3, draw_sel[1], _y, ww, _h, COLORS._main_accent, 1);
if(point_in_rectangle(_m[0], _m[1], _x, _y, _x + w, _y + _h)) {
if(is_array(data) && key_mod_press(SHIFT)) {
var len = array_length(data);

View file

@ -60,11 +60,11 @@ function FileObject(_name, _path) constructor {
sprFetchID = sprite_add_ext(self.path, 0, 0, 0, true);
IMAGE_FETCH_MAP[? sprFetchID] = function(load_result) {
spr = load_result[? "id"];
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
if(spr) sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
};
} else {
spr = sprite_add(self.path, 0, false, false, 0, 0);
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
if(spr) sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
}
return spr;
}
@ -78,13 +78,13 @@ function FileObject(_name, _path) constructor {
sprFetchID = sprite_add_ext(path, amo, 0, 0, true);
IMAGE_FETCH_MAP[? sprFetchID] = function(load_result) {
spr = load_result[? "id"];
if(array_safe_get(spr_path, 2))
if(spr && array_safe_get(spr_path, 2))
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
};
}
} else {
spr = sprite_add(path, amo, false, false, 0, 0);
if(array_safe_get(spr_path, 2))
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
spr = sprite_add(path, amo, false, false, 0, 0);
if(spr && array_safe_get(spr_path, 2))
sprite_set_offset(spr, sprite_get_width(spr) / 2, sprite_get_height(spr) / 2);
}
return spr;

View file

@ -0,0 +1,42 @@
global.glsl_reserved = ds_map_create();
global.glsl_constant = ds_map_create();
var reserved = ["int", "float", "bool", "vec2", "vec3", "vec4", "mat3", "mat4", "sampler2D",
"gl_position", "gm_Matrices", "gl_FragColor", "gm_BaseTexture",
"and", "break", "do", "else", "elseif", "end", "false",
"for", "function", "if", "in", "local", "nil", "not",
"or", "repeat", "return", "then", "true", "until", "while"];
for( var i = 0, n = array_length(reserved); i < n; i++ )
global.glsl_reserved[? reserved[i]] = 1;
var constant = ["MATRIX_VIEW", "MATRIX_PROJECTION", "MATRIX_WORLD", "MATRIX_WORLD_VIEW", "MATRIX_WORLD_VIEW_PROJECTION" ];
for( var i = 0, n = array_length(constant); i < n; i++ )
global.glsl_constant[? constant[i]] = 1;
function draw_code_glsl(_x, _y, str) {
var tx = _x;
var ty = _y;
var words = token_splice(str);
for( var j = 0; j < array_length(words); j++ ) {
var word = words[j];
var wordNoS = string_trim(word);
draw_set_color(COLORS._main_text);
if(word == "(" || word == ")" || word == "[" || word == "]" || word == "{" || word == "}")
draw_set_color(COLORS.lua_highlight_bracklet);
else if(ds_map_exists(global.glsl_reserved, word))
draw_set_color(COLORS.lua_highlight_keyword);
else if(wordNoS == string_decimal(wordNoS) || ds_map_exists(global.glsl_constant, word))
draw_set_color(COLORS.lua_highlight_number);
else if(j < array_length(words) - 1) {
if(words[j + 1] == "(") draw_set_color(COLORS.lua_highlight_function);
}
draw_text_add(tx, ty, word);
tx += string_width(word);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "glsl_draw",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "GLSL",
"path": "folders/functions/GLSL.yy",
},
}

View file

@ -11,7 +11,7 @@ function token_splice(str) {
var ss = str;
var sp;
var cc;
var tk = [" ", "(", ")", "[", "]", "{", "}", ",", ";", "+", "-", "*", "/", "="];
var tk = [" ", "(", ")", "[", "]", "{", "}", ",", ";", "+", "-", "*", "/", "^", "="];
do {
sp = 999999;
@ -37,9 +37,8 @@ function token_splice(str) {
return st;
}
function draw_code(_x, _y, str) {
//print(" > Drawing: " + str);
var tx = _x
function draw_code_lua(_x, _y, str) {
var tx = _x;
var ty = _y;
var isStr = true;
@ -67,7 +66,7 @@ function draw_code(_x, _y, str) {
for( var j = 0; j < array_length(words); j++ ) {
word = words[j];
var wordNoS = string_replace_all(word, " ", "");
var wordNoS = string_trim(word);
draw_set_color(COLORS._main_text);
if(word == "(" || word == ")" || word == "[" || word == "]" || word == "{" || word == "}")

View file

@ -1,4 +1,4 @@
function luaArgumentRenderer() {
function argumentRenderer() {
argument_renderer = new Inspector_Custom_Renderer(function(_x, _y, _w, _m, _hover, _focus) {
argument_renderer.x = _x;
argument_renderer.y = _y;

View file

@ -13,7 +13,10 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
var lb_h = line_get_height(f_p0) + ui(8);
var lb_y = yy + lb_h / 2;
var breakLine = lineBreak || jun.expUse;
if(jun.type == VALUE_TYPE.text) breakLine = true;
var butx = xx;
if(jun.connect_type == JUNCTION_CONNECT.input && jun.isAnimable() && !jun.expUse) { #region animation
var index = jun.value_from == noone? jun.is_anim : 2;
@ -73,7 +76,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
if(global_var)
if(string_pos(" ", jun.name)) cc = COLORS._main_value_negative;
draw_set_text(lineBreak? f_p0 : f_p1, fa_left, fa_center, cc);
draw_set_text(breakLine? f_p0 : f_p1, fa_left, fa_center, cc);
draw_text_add(xx + ui(40), lb_y - ui(2), jun.name);
var lb_w = string_width(jun.name) + ui(48);
@ -96,7 +99,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
#endregion
#region anim
if(jun.connect_type == JUNCTION_CONNECT.input && lineBreak && jun.is_anim) {
if(jun.connect_type == JUNCTION_CONNECT.input && breakLine && jun.is_anim) {
var bx = xx + ww - ui(12);
var by = lb_y;
if(buttonInstant(THEME.button_hide, bx - ui(12), by - ui(12), ui(24), ui(24), _m, _focus, _hover, "", THEME.prop_keyframe, 2) == 2) {
@ -163,8 +166,8 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
}
#endregion
#region use expression
if(jun.connect_type == JUNCTION_CONNECT.input && lineBreak && !jun.is_anim && !global_var) {
#region right buttons
if(jun.connect_type == JUNCTION_CONNECT.input && breakLine && !jun.is_anim && !global_var) {
var bx = xx + ww - ui(12);
var by = lb_y;
var ic_b = jun.expUse? c_white : COLORS._main_icon;
@ -174,25 +177,36 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
if(jun.expUse) {
bx -= ui(28);
var cc = NODE_DROPPER_TARGET == jun? COLORS._main_value_positive : COLORS._main_icon;
if(buttonInstant(THEME.button_hide, bx - ui(12), by - ui(12), ui(24), ui(24), _m, _focus, _hover, __txtx("panel_inspector_dropper", "Node dropper"), THEME.node_dropper, 0, cc) == 2)
if(buttonInstant(THEME.button_hide, bx - ui(12), by - ui(12), ui(24), ui(24), _m, _focus, _hover, __txtx("panel_inspector_dropper", "Node Dropper"), THEME.node_dropper, 0, cc) == 2)
NODE_DROPPER_TARGET = NODE_DROPPER_TARGET == jun? noone : jun;
}
if(jun.expUse || jun.type == VALUE_TYPE.text) {
bx -= ui(28);
if(buttonInstant(THEME.button_hide, bx - ui(12), by - ui(12), ui(24), ui(24), _m, _focus, _hover, __txtx("panel_inspector_pop_text", "Pop up Editor"), THEME.text_popup, 0, COLORS._main_icon) == 2) {
var _panel = noone;
if(jun.expUse) _panel = dialogPanelCall(new Panel_Text_Editor(jun.express_edit, function() { return context.expression; }, jun));
else _panel = dialogPanelCall(new Panel_Text_Editor(jun.editWidget, function() { return context.showValue(); }, jun));
_panel.content.title = $"{jun.node.name} - {jun.name}";
}
}
}
#endregion
var _hsy = yy + lb_h;
var padd = ui(8);
var labelWidth = max(lb_w, min(ui(80) + ww * 0.2, ui(200)));
var editBoxX = xx + !lineBreak * labelWidth;
var editBoxY = lineBreak? _hsy : yy;
var editBoxX = xx + !breakLine * labelWidth;
var editBoxY = breakLine? _hsy : yy;
var editBoxW = (xx + ww) - editBoxX;
var editBoxH = lineBreak? TEXTBOX_HEIGHT : lb_h;
var editBoxH = breakLine? TEXTBOX_HEIGHT : lb_h;
var widH = lineBreak? editBoxH : 0;
var mbRight = true;
var widH = breakLine? editBoxH : 0;
var mbRight = true;
if(jun.expUse) { #region expression editor
var expValid = jun.expTree != noone && jun.expTree.validate();
jun.express_edit.boxColor = expValid? COLORS._main_value_positive : COLORS._main_value_negative;
@ -203,7 +217,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
if(_focus) jun.express_edit.register(_scrollPane);
var wd_h = jun.express_edit.draw(editBoxX, editBoxY, editBoxW, editBoxH, jun.expression, _m);
widH = wd_h - (TEXTBOX_HEIGHT * !lineBreak);
widH = wd_h - (TEXTBOX_HEIGHT * !breakLine);
#endregion
} else if(jun.editWidget) { #region edit widget
jun.editWidget.setFocusHover(_focus, _hover);
@ -230,7 +244,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
break;
case VALUE_TYPE.boolean :
param.halign = lineBreak? fa_left : fa_center;
param.halign = breakLine? fa_left : fa_center;
break;
case VALUE_TYPE.d3Material :
@ -246,7 +260,7 @@ function drawWidget(xx, yy, ww, _m, jun, global_var = true, _hover = false, _foc
}
var _widH = jun.editWidget.drawParam(param) ?? 0;
widH = _widH - (TEXTBOX_HEIGHT * !lineBreak);
widH = _widH - (TEXTBOX_HEIGHT * !breakLine);
#endregion
} else if(jun.display_type == VALUE_DISPLAY.label) { #region label
draw_set_text(f_p1, fa_left, fa_top, COLORS._main_text_sub);

View file

@ -0,0 +1,237 @@
globalvar CUSTOM_SHADER_SLOT, CUSTOM_SHADER_UNIFORM;
CUSTOM_SHADER_SLOT = ds_map_create();
CUSTOM_SHADER_SLOT[? sh_dummy_0] = noone;
CUSTOM_SHADER_UNIFORM = @"
uniform float u_float_0, u_float_1, u_float_2, u_float_3, u_float_4, u_float_5, u_float_6, u_float_7;
uniform float u_float_8, u_float_9, u_float_10, u_float_11, u_float_12, u_float_13, u_float_14, u_float_15;
uniform int u_int_0, u_int_1, u_int_2, u_int_3, u_int_4, u_int_5, u_int_6, u_int_7;
uniform int u_int_8, u_int_9, u_int_10, u_int_11, u_int_12, u_int_13, u_int_14, u_int_15;
uniform vec2 u_vec2_0, u_vec2_1, u_vec2_2, u_vec2_3, u_vec2_4, u_vec2_5, u_vec2_6, u_vec2_7;
uniform vec2 u_vec2_8, u_vec2_9, u_vec2_10, u_vec2_11, u_vec2_12, u_vec2_13, u_vec2_14, u_vec2_15;
uniform vec3 u_vec3_0, u_vec3_1, u_vec3_2, u_vec3_3, u_vec3_4, u_vec3_5, u_vec3_6, u_vec3_7;
uniform vec3 u_vec3_8, u_vec3_9, u_vec3_10, u_vec3_11, u_vec3_12, u_vec3_13, u_vec3_14, u_vec3_15;
uniform vec4 u_vec4_0, u_vec4_1, u_vec4_2, u_vec4_3, u_vec4_4, u_vec4_5, u_vec4_6, u_vec4_7;
uniform vec4 u_vec4_8, u_vec4_9, u_vec4_10, u_vec4_11, u_vec4_12, u_vec4_13, u_vec4_14, u_vec4_15;
uniform mat3 u_mat3_0, u_mat3_1, u_mat3_2, u_mat3_3, u_mat3_4, u_mat3_5, u_mat3_6, u_mat3_7;
uniform mat3 u_mat3_8, u_mat3_9, u_mat3_10, u_mat3_11, u_mat3_12, u_mat3_13, u_mat3_14, u_mat3_15;
uniform mat4 u_mat4_0, u_mat4_1, u_mat4_2, u_mat4_3, u_mat4_4, u_mat4_5, u_mat4_6, u_mat4_7;
uniform mat4 u_mat4_8, u_mat4_9, u_mat4_10, u_mat4_11, u_mat4_12, u_mat4_13, u_mat4_14, u_mat4_15;
uniform sampler2D u_sampler2D_0, u_sampler2D_1, u_sampler2D_2, u_sampler2D_3, u_sampler2D_4, u_sampler2D_5, u_sampler2D_6; ";
function custom_shader_reserve(node) {
var keys = ds_map_keys_to_array(CUSTOM_SHADER_SLOT);
for( var i = 0, n = array_length(keys); i < n; i++ ) {
if(CUSTOM_SHADER_SLOT[? keys[i]] == noone) {
CUSTOM_SHADER_SLOT[? keys[i]] = node;
return keys[i];
}
}
return noone;
}
function custom_shader_free(node) {
var keys = ds_map_keys_to_array(CUSTOM_SHADER_SLOT);
for( var i = 0, n = array_length(keys); i < n; i++ ) {
if(CUSTOM_SHADER_SLOT[? keys[i]] == node)
CUSTOM_SHADER_SLOT[? keys[i]] = noone;
}
}
function glsl_wrap_vertex(content) {
return @"
attribute vec3 in_Position;
attribute vec4 in_Colour;
attribute vec2 in_TextureCoord;
" + CUSTOM_SHADER_UNIFORM + @"
varying vec2 v_vTexcoord;
void main() {
" + string(content) + "\n}";
}
function glsl_wrap_fragment(content) {
return @"
varying vec2 v_vTexcoord;
" + CUSTOM_SHADER_UNIFORM + @"
void main() {
" + string(content) + "\n}";
}
function Node_GLSL(_x, _y, _group = noone) : Node_Processor(_x, _y, _group) constructor {
name = "GLSL";
shader = custom_shader_reserve(self);
hlslCompiler = working_directory + "HLSL/HLSLCompiler.exe";
inputs[| 0] = nodeValue("Vertex", self, JUNCTION_CONNECT.input, VALUE_TYPE.text,
@"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_vTexcoord = in_TextureCoord;")
.setDisplay(VALUE_DISPLAY.codeGLSL)
.rejectArray();
inputs[| 1] = nodeValue("Fragment", self, JUNCTION_CONNECT.input, VALUE_TYPE.text,
@"gl_FragColor = texture2D( gm_BaseTexture, v_vTexcoord );")
.setDisplay(VALUE_DISPLAY.codeGLSL)
.rejectArray();
inputs[| 2] = nodeValue("Base Texture", self, JUNCTION_CONNECT.input, VALUE_TYPE.surface, noone);
outputs[| 0] = nodeValue("Surface", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone );
static createNewInput = function() {
var index = ds_list_size(inputs);
inputs[| index + 0] = nodeValue("Argument name", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "" );
inputs[| index + 1] = nodeValue("Argument type", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0 )
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Float", "Int", "Vec2", "Vec3", "Vec4", "Mat3", "Mat4", "Sampler2D" ], { update_hover: false });
inputs[| index + 1].editWidget.interactable = false;
inputs[| index + 2] = nodeValue("Argument value", self, JUNCTION_CONNECT.input, VALUE_TYPE.float, 0 )
.setVisible(true, true);
inputs[| index + 2].editWidget.interactable = false;
}
argumentRenderer();
input_display_list = [ 2,
["Shader", false], 1,
["Arguments", false], argument_renderer,
];
setIsDynamicInput(3);
uniform_name = [
"u_float_",
"u_int_",
"u_vec2_",
"u_vec3_",
"u_vec4_",
"u_mat3_",
"u_mat4_",
"u_sampler2D_",
];
insp1UpdateTooltip = __txt("Compile");
insp1UpdateIcon = [ THEME.refresh, 1, COLORS._main_value_positive ];
static onInspector1Update = function() { //compile
refreshShader();
}
static refreshShader = function() {
var vs = inputs[| 0].getValue();
var fs = inputs[| 1].getValue();
var uTypes = array_create(8, 0);
for( var i = input_fix_len, n = ds_list_size(inputs); i < n; i += data_length ) {
var _arg_name = inputs[| i + 0].getValue();
var _arg_type = inputs[| i + 1].getValue();
var _index = uTypes[_arg_type];
uTypes[_arg_type]++;
var _uni_name = uniform_name + string(_index);
vs = string_replace_all(vs, _arg_name, _uni_name);
fs = string_replace_all(fs, _arg_name, _uni_name);
}
vs = glsl_wrap_vertex(vs);
fs = glsl_wrap_fragment(fs);
var _dir = DIRECTORY + "shadertemp/";
directory_create(_dir);
file_text_write_all(_dir + "temp.shader",
vs
+ "\n//######################_==_YOYO_SHADER_MARKER_==_######################@~\n"
+ fs
);
//print(file_text_read_all(_dir + "temp.shader"));
//print(hlslCompiler);
var cmd = (scr_cmd_arg(hlslCompiler)
+ " -hlsl11"
+ " -shader " + scr_cmd_arg(_dir + "temp.shader")
+ " -name temp"
+ " -out " + scr_cmd_arg(_dir)
+ " -typedefine " + scr_cmd_arg("#define _YY_HLSL11_ 1")
+ " -preamble " + scr_cmd_arg(filename_dir(hlslCompiler))
);
//
var ex = execute_program_pipe(cmd, 0
| program_pipe_flags_hide_window
| program_pipe_flags_capture_stdout
| program_pipe_flags_capture_stderr
);
//print(ex)
if (ex[0] != 0) { // didn't even run
noti_warning($"Error executing HLSLCompiler: {ex[2]}");
} else if (ex[1] != 0) { // errored out
noti_warning($"Error compiling the shader: {ex[2]}");
} else { // OK! Let's pick up those shaders
var vsh = file_text_read_all(_dir + "vout.shader");
var fsh = file_text_read_all(_dir + "fout.shader");
var e = shader_replace_simple(shader, vsh, fsh);
if (e != "") noti_warning($"Error applying the shader: {e}");
}
}
static onValueUpdate = function(index) {
refreshShader();
}
static processData = function(_output, _data, _output_index, _array_index = 0) {
var _surf = _data[2];
_output = surface_verify(_output, surface_get_width(_surf), surface_get_height(_surf));
surface_set_shader(_output, shader);
var uTypes = array_create(8, 0);
for( var i = input_fix_len, n = array_length(_data); i < n; i += data_length ) {
var _arg_name = _data[i + 0];
var _arg_type = _data[i + 1];
var _arg_valu = _data[i + 2];
var _index = uTypes[_arg_type];
uTypes[_arg_type]++;
var _uni_name = uniform_name + string(_index);
switch(_arg_type) {
case 0 : shader_set_f(_uni_name, _arg_valu); break; //u_float
case 1 : shader_set_i(_uni_name, _arg_valu); break; //u_int
case 2 : shader_set_f(_uni_name, _arg_valu); break; //u_vec2
case 3 : shader_set_f(_uni_name, _arg_valu); break; //u_vec3
case 4 : shader_set_f(_uni_name, _arg_valu); break; //u_vec4
case 5 : shader_set_f(_uni_name, _arg_valu); break; //u_mat3
case 6 : shader_set_f(_uni_name, _arg_valu); break; //u_mat4
case 7 : shader_set_surface(_uni_name, _arg_valu); break; //u_sampler2D
}
}
draw_surface_safe(_surf);
surface_reset_shader();
return _output;
}
static postConnect = function() {
refreshShader();
}
static onCleanUp = function() {
custom_shader_free(self);
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "node_glsl",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "node",
"path": "folders/nodes/data/node.yy",
},
}

View file

@ -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",
}

View file

@ -8,7 +8,7 @@ function Node_Lua_Compute(_x, _y, _group = noone) : Node(_x, _y, _group) constru
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "Number", "String", "Struct" ], { update_hover: false });
inputs[| 2] = nodeValue("Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "", o_dialog_lua_reference)
.setDisplay(VALUE_DISPLAY.code);
.setDisplay(VALUE_DISPLAY.codeLUA);
inputs[| 3] = nodeValue("Execution thread", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, noone)
.setVisible(false, true);
@ -32,7 +32,7 @@ function Node_Lua_Compute(_x, _y, _group = noone) : Node(_x, _y, _group) constru
outputs[| 1] = nodeValue("Return value", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, 0);
luaArgumentRenderer();
argumentRenderer();
input_display_list = [ 3, 4,
["Function", false], 0, 1,

View file

@ -4,7 +4,7 @@ function Node_Lua_Global(_x, _y, _group = noone) : Node(_x, _y, _group) construc
previewable = false;
inputs[| 0] = nodeValue("Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "", o_dialog_lua_reference)
.setDisplay(VALUE_DISPLAY.code);
.setDisplay(VALUE_DISPLAY.codeLUA);
inputs[| 1] = nodeValue("Run order", self, JUNCTION_CONNECT.input, VALUE_TYPE.integer, 0)
.setDisplay(VALUE_DISPLAY.enum_scroll, [ "On start", "Every frame" ]);

View file

@ -8,7 +8,7 @@ function Node_Lua_Surface(_x, _y, _group = noone) : Node(_x, _y, _group) constru
.setDisplay(VALUE_DISPLAY.vector);
inputs[| 2] = nodeValue("Lua code", self, JUNCTION_CONNECT.input, VALUE_TYPE.text, "", o_dialog_lua_reference)
.setDisplay(VALUE_DISPLAY.code);
.setDisplay(VALUE_DISPLAY.codeLUA);
inputs[| 3] = nodeValue("Execution thread", self, JUNCTION_CONNECT.input, VALUE_TYPE.node, noone)
.setVisible(false, true);
@ -33,7 +33,7 @@ function Node_Lua_Surface(_x, _y, _group = noone) : Node(_x, _y, _group) constru
outputs[| 1] = nodeValue("Surface out", self, JUNCTION_CONNECT.output, VALUE_TYPE.surface, noone);
attribute_surface_depth();
luaArgumentRenderer();
argumentRenderer();
input_display_list = [ 3, 4,
["Function", false], 0, 1,

View file

@ -367,26 +367,26 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
addNodeObject(d3d, "Sprite Stack", s_node_stack, "Node_Sprite_Stack", [1, Node_Sprite_Stack],, "Create sprite stack either from repeating a single image or stacking different images using array.");
ds_list_add(d3d, "3D");
addNodeObject(d3d, "3D Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]);
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]);
addNodeObject(d3d, "3D Camera", s_node_3d_camera, "Node_3D_Camera", [1, Node_3D_Camera]).setVersion(11510);
addNodeObject(d3d, "3D Material", s_node_3d_meterial, "Node_3D_Material", [1, Node_3D_Material]).setVersion(11510);
ds_list_add(d3d, "Compose");
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]);
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "Node_3D_Repeat", [1, Node_3D_Repeat]);
addNodeObject(d3d, "3D Scene", s_node_3d_scene, "Node_3D_Scene", [1, Node_3D_Scene]).setVersion(11510);
addNodeObject(d3d, "3D Repeat", s_node_3d_array, "Node_3D_Repeat", [1, Node_3D_Repeat]).setVersion(11510);
ds_list_add(d3d, "Mesh");
addNodeObject(d3d, "3D Object", s_node_3d_obj, "Node_3D_Mesh_Obj", [0, Node_create_3D_Obj],, "Load .obj file from your computer as a 3D object.");
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "Node_3D_Mesh_Plane", [1, Node_3D_Mesh_Plane],, "Put 2D image on a plane in 3D space.");
addNodeObject(d3d, "3D Cube", s_node_3d_cube, "Node_3D_Mesh_Cube", [1, Node_3D_Mesh_Cube]);
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Mesh_Cylinder", [1, Node_3D_Mesh_Cylinder]);
addNodeObject(d3d, "3D UV Sphere", s_node_3d_sphere_uv, "Node_3D_Mesh_Sphere_UV", [1, Node_3D_Mesh_Sphere_UV]);
addNodeObject(d3d, "3D Icosphere", s_node_3d_sphere_ico, "Node_3D_Mesh_Sphere_Ico", [1, Node_3D_Mesh_Sphere_Ico]);
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "Node_3D_Mesh_Cone", [1, Node_3D_Mesh_Cone])
addNodeObject(d3d, "Surface Extrude", s_node_3d_extrude, "Node_3D_Mesh_Extrude", [1, Node_3D_Mesh_Extrude],, "Extrude 2D image into 3D object.");
addNodeObject(d3d, "3D Object", s_node_3d_obj, "Node_3D_Mesh_Obj", [0, Node_create_3D_Obj],, "Load .obj file from your computer as a 3D object.").setVersion(11510);
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "Node_3D_Mesh_Plane", [1, Node_3D_Mesh_Plane],, "Put 2D image on a plane in 3D space.").setVersion(11510);
addNodeObject(d3d, "3D Cube", s_node_3d_cube, "Node_3D_Mesh_Cube", [1, Node_3D_Mesh_Cube]).setVersion(11510);
addNodeObject(d3d, "3D Cylinder", s_node_3d_cylinder, "Node_3D_Mesh_Cylinder", [1, Node_3D_Mesh_Cylinder]).setVersion(11510);
addNodeObject(d3d, "3D UV Sphere", s_node_3d_sphere_uv, "Node_3D_Mesh_Sphere_UV", [1, Node_3D_Mesh_Sphere_UV]).setVersion(11510);
addNodeObject(d3d, "3D Icosphere", s_node_3d_sphere_ico, "Node_3D_Mesh_Sphere_Ico", [1, Node_3D_Mesh_Sphere_Ico]).setVersion(11510);
addNodeObject(d3d, "3D Cone", s_node_3d_cone, "Node_3D_Mesh_Cone", [1, Node_3D_Mesh_Cone]).setVersion(11510);
addNodeObject(d3d, "Surface Extrude", s_node_3d_extrude, "Node_3D_Mesh_Extrude", [1, Node_3D_Mesh_Extrude],, "Extrude 2D image into 3D object.").setVersion(11510);
ds_list_add(d3d, "Light");
addNodeObject(d3d, "Directional Light", s_node_3d_light_directi, "Node_3D_Light_Directional", [1, Node_3D_Light_Directional]);
addNodeObject(d3d, "Point Light", s_node_3d_light_point, "Node_3D_Light_Point", [1, Node_3D_Light_Point]);
addNodeObject(d3d, "Directional Light", s_node_3d_light_directi, "Node_3D_Light_Directional", [1, Node_3D_Light_Directional]).setVersion(11510);
addNodeObject(d3d, "Point Light", s_node_3d_light_point, "Node_3D_Light_Point", [1, Node_3D_Light_Point]).setVersion(11510);
ds_list_add(d3d, "Legacy"); //////////////////////////////////////////////////////////////////////////////////////////////////////////////
addNodeObject(d3d, "3D Plane", s_node_3d_plane, "__Node_3D_Plane", [1, __Node_3D_Plane],, "Put 2D image on a plane in 3D space.").isDeprecated();
@ -650,6 +650,9 @@ function NodeObject(_name, _spr, _node, _create, tags = []) constructor {
addNodeObject(node, "Lua Surface", s_node_lua_surface, "Node_Lua_Surface", [1, Node_Lua_Surface]).setVersion(1090);
addNodeObject(node, "Lua Compute", s_node_lua_compute, "Node_Lua_Compute", [1, Node_Lua_Compute]).setVersion(1090);
ds_list_add(node, "Shader");
addNodeObject(node, "GLSL", s_node_lua_compute, "Node_GLSL", [1, Node_GLSL]).setVersion(11520);
ds_list_add(node, "Organize");
addNodeObject(node, "Pin", s_node_pin, "Node_Pin", [1, Node_Pin],, "Craete pin to organize your connection. Can be create by double clicking on a connection line.");
addNodeObject(node, "Frame", s_node_frame, "Node_Frame", [1, Node_Frame],, "Create frame surrounding nodes.");

View file

@ -92,7 +92,8 @@ enum VALUE_DISPLAY {
path_array,
//Text
code,
codeLUA,
codeGLSL,
text_array,
text_box,
@ -315,7 +316,8 @@ function nodeValueUnit(value) constructor { #region
value.node.doUpdate();
});
triggerButton.icon_blend = COLORS._main_icon_light;
triggerButton.icon = THEME.unit_ref;
triggerButton.icon = THEME.unit_ref;
triggerButton.tooltip = new tooltipSelector("Unit", ["Pixel", "Fraction"]);
static setMode = function(type) { #region
if(type == "constant" && mode == VALUE_UNIT.constant) return;
@ -329,7 +331,7 @@ function nodeValueUnit(value) constructor { #region
static draw = function(_x, _y, _w, _h, _m) { #region
triggerButton.icon_index = mode;
triggerButton.tooltip = (mode? "Fraction" : "Pixel") + " unit";
triggerButton.tooltip.index = mode;
triggerButton.draw(_x, _y, _w, _h, _m, THEME.button_hide);
} #endregion
@ -516,7 +518,7 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
express_edit.autocomplete_server = pxl_autocomplete_server;
express_edit.function_guide_server = pxl_function_guide_server;
express_edit.parser_server = pxl_document_parser;
express_edit.format = TEXT_AREA_FORMAT.code;
express_edit.format = TEXT_AREA_FORMAT.codeLUA;
express_edit.font = f_code;
express_edit.boxColor = COLORS._main_value_positive;
express_edit.align = fa_left;
@ -962,13 +964,23 @@ function NodeValue(_name, _node, _connect, _type, _value, _tooltip = "") constru
extract_node = "Node_String";
break;
case VALUE_DISPLAY.code :
case VALUE_DISPLAY.codeLUA :
editWidget = new textArea(TEXTBOX_INPUT.text, function(str) {
return setValueDirect(str);
});
editWidget.font = f_code;
editWidget.format = TEXT_AREA_FORMAT.code;
editWidget.format = TEXT_AREA_FORMAT.codeLUA;
editWidget.min_lines = 4;
extract_node = "Node_String";
break;
case VALUE_DISPLAY.codeGLSL:
editWidget = new textArea(TEXTBOX_INPUT.text, function(str) {
return setValueDirect(str);
});
editWidget.font = f_code;
editWidget.format = TEXT_AREA_FORMAT.codeGLSL;
editWidget.min_lines = 4;
extract_node = "Node_String";
break;

View file

@ -438,20 +438,21 @@ function Panel_Inspector() : PanelContent() constructor {
draw_text_add(ui(32), yy + ui(32) / 2, txt);
hh += ui(32 + 8);
if(coll) {
var j = i + 1;
while(j < amo) {
if(j >= array_length(inspecting.input_display_list)) break;
var j = i + 1;
var _len = array_length(inspecting.input_display_list);
while(j < _len) {
var j_jun = inspecting.input_display_list[j];
if(is_array(j_jun))
break;
else
j++;
j++;
}
i = j - 1;
continue;
}
continue;
} else if(is_struct(jun_disp) && instanceof(jun_disp) == "Inspector_Custom_Renderer") {
if(pFOCUS) jun_disp.register(contentPane);
@ -487,7 +488,7 @@ function Panel_Inspector() : PanelContent() constructor {
if(pos == 0) continue;
}
#region ++++ draw widget
#region ++++ draw widget ++++
var lb_h = line_get_height(f_p0) + ui(8);
var lb_w = line_get_width(jun.name, f_p0) + ui(16);
var padd = ui(8);

View file

@ -0,0 +1,73 @@
function Panel_Console() : PanelContent() constructor {
title = "Console";
w = ui(640);
h = ui(320);
command = "";
history = [];
cmd_history = [];
cmd_index = 0;
keyboard_string = "";
static submit_command = function() {
if(command == "") return;
array_push(history, { txt: command, color: COLORS._main_text_sub });
array_push(cmd_history, command);
var cmd = string_splice(command, " ");
switch(cmd[0]) {
case "flag":
if(array_length(cmd) < 2) break;
var flg = array_safe_get(cmd, 1, "");
global.FLAG[$ flg] = !global.FLAG[$ flg];
array_push(history, { txt: $"Toggled debug flag: {flg} = {global.FLAG[$ flg]? "True" : "False"}", color: COLORS._main_value_positive });
break;
}
keyboard_string = "";
command = "";
}
function drawContent(panel) {
HOTKEY_BLOCK = true;
command = keyboard_string;
draw_clear_alpha(CDEF.main_dkblack, 1);
draw_set_color(c_black);
draw_set_alpha(0.75);
draw_rectangle(0, h - ui(28), w, h, false);
draw_set_alpha(1);
draw_set_text(f_code, fa_left, fa_bottom, COLORS._main_text);
draw_text(ui(8), h - ui(4), command);
draw_set_color(COLORS._main_text_sub);
draw_text(ui(8) + string_width(command), h - ui(4), "_");
var hy = h - ui(32);
for( var i = 0; i < array_length(history); i++ ) {
var his = history[array_length(history) - i - 1];
var txt = his.txt;
draw_set_color(his.color);
draw_text_ext(ui(8), hy, txt, -1, w - ui(16));
hy -= string_height_ext(txt, -1, w - ui(16));
if(hy <= 0) break;
}
if(keyboard_check_pressed(vk_enter))
submit_command();
if(keyboard_check_pressed(vk_up)) {
cmd_index = max(0, cmd_index - 1);
keyboard_string = array_safe_get(cmd_history, cmd_index, "");
command = keyboard_string;
} else if(keyboard_check_pressed(vk_anykey))
cmd_index = array_length(cmd_history);
}
}

View file

@ -0,0 +1,48 @@
function Panel_Text_Editor(_textArea, _inputFunc, _context) : PanelContent() constructor {
title = "";
w = ui(640);
h = ui(480);
self._textArea = new textArea(_textArea.input, _textArea.onModify);
self._textArea.color = _textArea.color;
self._textArea.font = _textArea.font;
self._textArea.format = _textArea.format;
self.inputFunc = method(self, _inputFunc);
self.context = _context;
shift_new_line = false;
function drawContent(panel) {
draw_clear_alpha(COLORS.panel_bg_clear, 0);
var bx = ui(8);
var by = ui(4);
var bs = ui(32);
var txt = shift_new_line? "New line with Shift + Enter" : "New line with Enter";
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, [ mx, my ], pFOCUS, pHOVER, txt, THEME.new_line_shift, shift_new_line) == 2)
shift_new_line = !shift_new_line;
bx += bs + ui(4);
var bx = w - ui(8) - bs;
if(buttonInstant(THEME.button_hide, bx, by, bs, bs, [ mx, my ], pFOCUS, pHOVER, "Apply", THEME.accept,, COLORS._main_value_positive) == 2)
_textArea.apply();
bx -= bs + ui(4);
var tx = ui(8);
var ty = ui(4 + 36);
var tw = w - ui(8 + 8);
var th = h - ui(4 + 36 + 8);
var _text = inputFunc();
_textArea.register();
_textArea.setFocusHover(pFOCUS, pHOVER);
_textArea.shift_new_line = shift_new_line;
_textArea.drawParam(new widgetParam(tx, ty, tw, th, _text,, [mx, my], x, y));
}
function onClose() {
_textArea.apply();
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "panel_text_editor",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "_others",
"path": "folders/panels/_others.yy",
},
}

View file

@ -5,7 +5,7 @@
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "eval",
"path": "folders/functions/eval.yy",
"name": "PCX",
"path": "folders/functions/PCX.yy",
},
}

View file

@ -5,7 +5,7 @@
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "eval",
"path": "folders/functions/eval.yy",
"name": "PCX",
"path": "folders/functions/PCX.yy",
},
}

View file

@ -5,7 +5,7 @@
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "eval",
"path": "folders/functions/eval.yy",
"name": "PCX",
"path": "folders/functions/PCX.yy",
},
}

View file

@ -17,7 +17,7 @@ function quarternionBox(_onModify) : widget() constructor {
size = 4;
axis = [ "x", "y", "z", "w" ];
tooltip = new tooltipSelector("Angle type", ["Quarternion", "Euler"]);
tooltip = new tooltipSelector("Angle type", ["Quaternion", "Euler"]);
disp_w = noone;
clickable = true;

View file

@ -5,7 +5,7 @@
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "eval",
"path": "folders/functions/eval.yy",
"name": "PCX",
"path": "folders/functions/PCX.yy",
},
}

View file

@ -0,0 +1,7 @@
/// @param string
function scr_cmd_arg(argument0) {
var s = argument0;
if (string_pos(" ", s)) {
return @'"' + s + @'"';
} else return s;
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "scr_cmd_arg",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "Shader replace",
"path": "folders/_extensions/Shader replace.yy",
},
}

View file

@ -26,13 +26,6 @@ function scrollPane(_w, _h, ondraw) : widget() constructor {
h = _h;
surface_w = _w - is_scroll * ui(12);
surface_h = _h;
if(surface_w > 1 && surface_h > 1) {
if(is_surface(surface))
surface_size_to(surface, surface_w, surface_h);
else
surface = surface_create_valid(surface_w, surface_h);
}
}
static draw = function(x, y, _mx = mouse_mx - x, _my = mouse_my - y) {
@ -40,9 +33,9 @@ function scrollPane(_w, _h, ondraw) : widget() constructor {
self.y = y;
var mx = _mx, my = _my;
hover &= point_in_rectangle(mx, my, 0, 0, surface_w, surface_h);
hover &= point_in_rectangle(mx, my, 0, 0, surface_w, surface_h);
surface = surface_verify(surface, surface_w, surface_h);
if(!is_surface(surface)) surface = surface_create_valid(surface_w, surface_h);
surface_set_target(surface);
draw_clear(COLORS.panel_bg_clear);
var hh = drawFunc(scroll_y, [mx, my], [x, y]);

View file

@ -0,0 +1,18 @@
#macro shader_set shader_replace_simple_set_hook
#macro shader_replace_simple_set_base shader_set
#macro shader_reset shader_replace_simple_reset_hook
#macro shader_replace_simple_reset_base shader_reset
function shader_replace_simple_reset_hook() {
shader_replace_simple_reset_base();
shader_replace_simple_sync(-1);
}
function shader_replace_simple_set_hook() {
shader_replace_simple_set_base(argument0);
shader_replace_simple_sync(argument0);
}
function shader_replace_simple_macros(){
if (false) {
shader_replace_simple_set_base(0);
shader_replace_simple_reset_base();
}
}

View file

@ -0,0 +1,11 @@
{
"resourceType": "GMScript",
"resourceVersion": "1.0",
"name": "shader_replace_simple_macros",
"isCompatibility": false,
"isDnD": false,
"parent": {
"name": "Shader replace",
"path": "folders/_extensions/Shader replace.yy",
},
}

View file

@ -32,7 +32,8 @@ function _sprite_load_from_struct(str, theme, key) {
if(struct_has(str.slice, "tilemode"))
slice.tilemode = str.slice.tilemode;
sprite_set_nineslice(s, slice);
if(s >= 0) sprite_set_nineslice(s, slice);
else log_message("THEME", $"Load sprite {path} failed.");
}
return s;
}

View file

@ -1,6 +1,7 @@
enum TEXT_AREA_FORMAT {
_default,
code,
codeLUA,
codeGLSL,
delimiter,
path_template,
node_title,
@ -53,6 +54,8 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
function_guide_box.textbox = self;
function_guide_server = noone;
shift_new_line = true;
_cl = -1;
static activate = function() { #region
@ -80,7 +83,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
} #endregion
static onModified = function() { #region
if(format == TEXT_AREA_FORMAT.code && autocomplete_server != noone) {
if((format == TEXT_AREA_FORMAT.codeLUA || format == TEXT_AREA_FORMAT.codeGLSL) && autocomplete_server != noone) {
var crop = string_copy(_input_text, 1, cursor);
var slp = string_splice(crop, [" ", "(", ",", "\n"]);
var pmt = array_safe_get(slp, -1,, ARRAY_OVERFLOW.loop);
@ -174,75 +177,75 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
}
}
if(format != TEXT_AREA_FORMAT.code || !autocomplete_box.active)
if(key == vk_up) {
var _target;
if(!(format == TEXT_AREA_FORMAT.codeLUA || format == TEXT_AREA_FORMAT.codeGLSL) || !autocomplete_box.active) {
if(key == vk_up) {
var _target;
if(cursor_line == 0)
_target = 0;
else {
var _l = cursor_line - 1;
var _str = _input_text_line[_l];
var _run = cursor_tx;
var _char = 0;
if(cursor_line == 0)
_target = 0;
else {
var _l = cursor_line - 1;
var _str = _input_text_line[_l];
var _run = cursor_tx;
var _char = 0;
for( var i = 0; i < _l; i++ )
_char += string_length(_input_text_line[i]);
for( var i = 0; i < _l; i++ )
_char += string_length(_input_text_line[i]);
for( var i = 1; i < string_length(_str); i++ ) {
var _chr = string_char_at(_str, i);
_run += string_width(_chr);
if(_run > cursor_pos_x_to)
break;
_char++;
for( var i = 1; i < string_length(_str); i++ ) {
var _chr = string_char_at(_str, i);
_run += string_width(_chr);
if(_run > cursor_pos_x_to)
break;
_char++;
}
_target = _char;
}
_target = _char;
if(key_mod_press(SHIFT)) {
if(cursor_select == -1)
cursor_select = cursor;
} else
cursor_select = -1;
cursor = _target;
onModified();
}
if(key_mod_press(SHIFT)) {
if(cursor_select == -1)
cursor_select = cursor;
} else
cursor_select = -1;
cursor = _target;
onModified();
}
if(format != TEXT_AREA_FORMAT.code || !autocomplete_box.active)
if(key == vk_down) {
var _target;
if(key == vk_down) {
var _target;
if(cursor_line == array_length(_input_text_line) - 1)
_target = string_length(_input_text);
else {
var _l = cursor_line + 1;
var _str = _input_text_line[_l];
var _run = cursor_tx;
var _char = 0;
if(cursor_line == array_length(_input_text_line) - 1)
_target = string_length(_input_text);
else {
var _l = cursor_line + 1;
var _str = _input_text_line[_l];
var _run = cursor_tx;
var _char = 0;
for( var i = 0; i < _l; i++ )
_char += string_length(_input_text_line[i]);
for( var i = 0; i < _l; i++ )
_char += string_length(_input_text_line[i]);
for( var i = 1; i < string_length(_str); i++ ) {
var _chr = string_char_at(_str, i);
_run += string_width(_chr);
if(_run > cursor_pos_x_to) break;
_char++;
}
for( var i = 1; i < string_length(_str); i++ ) {
var _chr = string_char_at(_str, i);
_run += string_width(_chr);
if(_run > cursor_pos_x_to) break;
_char++;
}
_target = _char;
_target = _char;
}
if(key_mod_press(SHIFT)) {
if(cursor_select == -1)
cursor_select = cursor;
} else
cursor_select = -1;
cursor = _target;
onModified();
}
if(key_mod_press(SHIFT)) {
if(cursor_select == -1)
cursor_select = cursor;
} else
cursor_select = -1;
cursor = _target;
onModified();
}
} #endregion
@ -265,10 +268,17 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
var _txtLines = string_splice(_input_text, "\n");
var ss = "";
var _code = format == TEXT_AREA_FORMAT.codeLUA || format == TEXT_AREA_FORMAT.codeGLSL;
for( var i = 0, n = array_length(_txtLines); i < n; i++ ) {
var _txt = _txtLines[i] + (i < array_length(_txtLines)? "\n" : "");
var words = string_splice(_txt, " ");
var words;
if(_code)
words = token_splice(_txt);
else
words = string_splice(_txt, " ");
var currW = 0;
var currL = "";
var cut = true;
@ -277,7 +287,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
for( var j = 0; j < len; j++ ) {
var word = words[j];
if(j < len - 1) word = word + " ";
if(!_code && j < len - 1) word = word + " ";
if(string_width(word) > line_width) { //the entire word is longer than a line
for( var k = 1; k <= string_length(word); k++ ) {
@ -340,7 +350,8 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
if(keyboard_check_pressed(vk_escape)) {
} else if(keyboard_check_pressed(vk_tab)) {
} else if(keyboard_check_pressed(vk_enter) && key_mod_press(SHIFT)) {
} else if(( shift_new_line && keyboard_check_pressed(vk_enter) && key_mod_press(SHIFT)) ||
(!shift_new_line && keyboard_check_pressed(vk_enter))) {
var ch = "\n";
if(cursor_select == -1) {
var str_before = string_copy(_input_text, 1, cursor);
@ -477,15 +488,16 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
_input_text = _last_value;
cut_line();
deactivate();
} else if(keyboard_check_pressed(vk_enter) && !key_mod_press(SHIFT)) {
} else if(( shift_new_line && keyboard_check_pressed(vk_enter) && !key_mod_press(SHIFT)) ||
(!shift_new_line && keyboard_check_pressed(vk_enter) && key_mod_press(SHIFT))) {
deactivate();
}
} #endregion
static display_text = function(_x, _y, _text, _w, _mx = -1, _my = -1) { #region
static display_text = function(_x, _y, _text, _mx = -1, _my = -1) { #region
_text = string_real(_text);
if(_w != _prev_width) {
_prev_width = _w;
if(line_width != _prev_width) {
_prev_width = line_width;
cut_line();
}
@ -517,8 +529,10 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
if(format == TEXT_AREA_FORMAT._default)
draw_text_add(ch_x, ch_y, _str);
else if(format == TEXT_AREA_FORMAT.code)
draw_code(ch_x, ch_y, _str);
else if(format == TEXT_AREA_FORMAT.codeLUA)
draw_code_lua(ch_x, ch_y, _str);
else if(format == TEXT_AREA_FORMAT.codeGLSL)
draw_code_glsl(ch_x, ch_y, _str);
else if(format == TEXT_AREA_FORMAT.delimiter)
draw_text_delimiter(ch_x, ch_y, _str);
else if(format == TEXT_AREA_FORMAT.path_template)
@ -557,11 +571,12 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
break;
}
ch_x += _ch_w;
ch_x += _ch_w;
ch_cxo = ch_cxn;
}
break;
}
char_run += string_length(_input_text_line[i]);
ch_y += _ch_h;
}
@ -579,6 +594,9 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
} #endregion
static drawParam = function(params) { #region
rx = params.rx;
ry = params.ry;
return draw(params.x, params.y, params.w, params.h, params.data, params.m);
} #endregion
@ -609,7 +627,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
if(format == TEXT_AREA_FORMAT._default) {
line_width = _w - ui(16);
} else if(format == TEXT_AREA_FORMAT.code) {
} else if(format == TEXT_AREA_FORMAT.codeLUA || format == TEXT_AREA_FORMAT.codeGLSL) {
line_width = _w - ui(16 + code_line_width);
tx += ui(code_line_width);
}
@ -624,7 +642,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
draw_sprite_stretched_ext(THEME.textbox, 3, _x, _y, _w, hh, boxColor, 1);
if(format == TEXT_AREA_FORMAT.code) {
if(format == TEXT_AREA_FORMAT.codeLUA || format == TEXT_AREA_FORMAT.codeGLSL) {
draw_sprite_stretched_ext(THEME.textbox_code, 0, _x, _y, ui(code_line_width), hh, boxColor, 1);
draw_set_text(f_code, fa_right, fa_top, COLORS._main_text_sub);
@ -712,7 +730,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
_my = _m[1];
}
display_text(tx, _y + ui(7), _input_text, _w - ui(4), _mx, _my);
display_text(tx, _y + ui(7), _input_text, _mx, _my);
if(cursor_pos_y != 0 && cursor_pos_x != 0) {
draw_set_color(COLORS._main_text_accent);
@ -734,7 +752,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
} else if(!hide)
draw_sprite_stretched_ext(THEME.textbox, 0, _x, _y, _w, hh, boxColor, 0.5 + 0.5 * interactable);
display_text(tx, _y + ui(7), _text, _w - ui(4));
display_text(tx, _y + ui(7), _text);
autocomplete_box.active = 0;
}
@ -746,6 +764,7 @@ function textArea(_input, _onModify, _extras = noone) : textInput(_input, _onMod
}
resetFocus();
shift_new_line = true;
return hh;
} #endregion

View file

@ -201,7 +201,6 @@ function Theme() constructor {
ui_panel_bg = noone;
ui_panel_fg = noone;
ui_panel_bg_cover = noone;
ui_panel_bg_dark = noone;
ui_scrollbar = noone;
ui_label_bg = noone;
toolbar = noone;

View file

@ -0,0 +1,28 @@
varying vec2 v_vTexcoord;
uniform float u_float_0, u_float_1, u_float_2, u_float_3, u_float_4, u_float_5, u_float_6, u_float_7;
uniform float u_float_8, u_float_9, u_float_10, u_float_11, u_float_12, u_float_13, u_float_14, u_float_15;
uniform int u_int_0, u_int_1, u_int_2, u_int_3, u_int_4, u_int_5, u_int_6, u_int_7;
uniform int u_int_8, u_int_9, u_int_10, u_int_11, u_int_12, u_int_13, u_int_14, u_int_15;
uniform vec2 u_vec2_0, u_vec2_1, u_vec2_2, u_vec2_3, u_vec2_4, u_vec2_5, u_vec2_6, u_vec2_7;
uniform vec2 u_vec2_8, u_vec2_9, u_vec2_10, u_vec2_11, u_vec2_12, u_vec2_13, u_vec2_14, u_vec2_15;
uniform vec3 u_vec3_0, u_vec3_1, u_vec3_2, u_vec3_3, u_vec3_4, u_vec3_5, u_vec3_6, u_vec3_7;
uniform vec3 u_vec3_8, u_vec3_9, u_vec3_10, u_vec3_11, u_vec3_12, u_vec3_13, u_vec3_14, u_vec3_15;
uniform vec4 u_vec4_0, u_vec4_1, u_vec4_2, u_vec4_3, u_vec4_4, u_vec4_5, u_vec4_6, u_vec4_7;
uniform vec4 u_vec4_8, u_vec4_9, u_vec4_10, u_vec4_11, u_vec4_12, u_vec4_13, u_vec4_14, u_vec4_15;
uniform mat3 u_mat3_0, u_mat3_1, u_mat3_2, u_mat3_3, u_mat3_4, u_mat3_5, u_mat3_6, u_mat3_7;
uniform mat3 u_mat3_8, u_mat3_9, u_mat3_10, u_mat3_11, u_mat3_12, u_mat3_13, u_mat3_14, u_mat3_15;
uniform mat4 u_mat4_0, u_mat4_1, u_mat4_2, u_mat4_3, u_mat4_4, u_mat4_5, u_mat4_6, u_mat4_7;
uniform mat4 u_mat4_8, u_mat4_9, u_mat4_10, u_mat4_11, u_mat4_12, u_mat4_13, u_mat4_14, u_mat4_15;
uniform sampler2D u_sampler2D_0, u_sampler2D_1, u_sampler2D_2, u_sampler2D_3, u_sampler2D_4, u_sampler2D_5, u_sampler2D_6;
void main() {
gl_FragColor = texture2D( gm_BaseTexture, v_vTexcoord );
}

View file

@ -0,0 +1,35 @@
attribute vec3 in_Position;
attribute vec4 in_Colour;
attribute vec2 in_TextureCoord;
varying vec2 v_vTexcoord;
uniform float u_float_0, u_float_1, u_float_2, u_float_3, u_float_4, u_float_5, u_float_6, u_float_7;
uniform float u_float_8, u_float_9, u_float_10, u_float_11, u_float_12, u_float_13, u_float_14, u_float_15;
uniform int u_int_0, u_int_1, u_int_2, u_int_3, u_int_4, u_int_5, u_int_6, u_int_7;
uniform int u_int_8, u_int_9, u_int_10, u_int_11, u_int_12, u_int_13, u_int_14, u_int_15;
uniform vec2 u_vec2_0, u_vec2_1, u_vec2_2, u_vec2_3, u_vec2_4, u_vec2_5, u_vec2_6, u_vec2_7;
uniform vec2 u_vec2_8, u_vec2_9, u_vec2_10, u_vec2_11, u_vec2_12, u_vec2_13, u_vec2_14, u_vec2_15;
uniform vec3 u_vec3_0, u_vec3_1, u_vec3_2, u_vec3_3, u_vec3_4, u_vec3_5, u_vec3_6, u_vec3_7;
uniform vec3 u_vec3_8, u_vec3_9, u_vec3_10, u_vec3_11, u_vec3_12, u_vec3_13, u_vec3_14, u_vec3_15;
uniform vec4 u_vec4_0, u_vec4_1, u_vec4_2, u_vec4_3, u_vec4_4, u_vec4_5, u_vec4_6, u_vec4_7;
uniform vec4 u_vec4_8, u_vec4_9, u_vec4_10, u_vec4_11, u_vec4_12, u_vec4_13, u_vec4_14, u_vec4_15;
uniform mat3 u_mat3_0, u_mat3_1, u_mat3_2, u_mat3_3, u_mat3_4, u_mat3_5, u_mat3_6, u_mat3_7;
uniform mat3 u_mat3_8, u_mat3_9, u_mat3_10, u_mat3_11, u_mat3_12, u_mat3_13, u_mat3_14, u_mat3_15;
uniform mat4 u_mat4_0, u_mat4_1, u_mat4_2, u_mat4_3, u_mat4_4, u_mat4_5, u_mat4_6, u_mat4_7;
uniform mat4 u_mat4_8, u_mat4_9, u_mat4_10, u_mat4_11, u_mat4_12, u_mat4_13, u_mat4_14, u_mat4_15;
uniform sampler2D u_sampler2D_0, u_sampler2D_1, u_sampler2D_2, u_sampler2D_3, u_sampler2D_4, u_sampler2D_5, u_sampler2D_6;
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_vTexcoord = in_TextureCoord;
}

View file

@ -0,0 +1,10 @@
{
"resourceType": "GMShader",
"resourceVersion": "1.0",
"name": "sh_dummy_0",
"parent": {
"name": "dummy",
"path": "folders/shader/dummy.yy",
},
"type": 1,
}