mirror of
https://github.com/Ttanasart-pt/Pixel-Composer.git
synced 2025-02-20 00:45:40 +01:00
Pop up text area
This commit is contained in:
parent
ef215cf344
commit
679a171ef1
53 changed files with 1047 additions and 186 deletions
|
@ -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",},
|
||||
|
|
|
@ -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,},
|
||||
],
|
||||
|
|
BIN
datafiles/HLSL/D3D11ShaderParser.exe
Normal file
BIN
datafiles/HLSL/D3D11ShaderParser.exe
Normal file
Binary file not shown.
BIN
datafiles/HLSL/D3D12ShaderParser.exe
Normal file
BIN
datafiles/HLSL/D3D12ShaderParser.exe
Normal file
Binary file not shown.
28
datafiles/HLSL/FShaderCommon.shader
Normal file
28
datafiles/HLSL/FShaderCommon.shader
Normal 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));
|
||||
}
|
||||
}
|
||||
|
12
datafiles/HLSL/HLSL11_PShaderCommon.shader
Normal file
12
datafiles/HLSL/HLSL11_PShaderCommon.shader
Normal 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;
|
||||
};
|
30
datafiles/HLSL/HLSL11_VShaderCommon.shader
Normal file
30
datafiles/HLSL/HLSL11_VShaderCommon.shader
Normal 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
|
||||
}
|
||||
|
8
datafiles/HLSL/HLSL9_PShaderCommon.shader
Normal file
8
datafiles/HLSL/HLSL9_PShaderCommon.shader
Normal 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;
|
20
datafiles/HLSL/HLSL9_VShaderCommon.shader
Normal file
20
datafiles/HLSL/HLSL9_VShaderCommon.shader
Normal 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
|
||||
|
BIN
datafiles/HLSL/HLSLCompiler.exe
Normal file
BIN
datafiles/HLSL/HLSLCompiler.exe
Normal file
Binary file not shown.
118
datafiles/HLSL/VShaderCommon.shader
Normal file
118
datafiles/HLSL/VShaderCommon.shader
Normal 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;
|
||||
}
|
||||
}
|
||||
|
BIN
datafiles/HLSL/d3dcompiler_46.dll
Normal file
BIN
datafiles/HLSL/d3dcompiler_46.dll
Normal file
Binary file not shown.
BIN
datafiles/HLSL/libEGL.dll
Normal file
BIN
datafiles/HLSL/libEGL.dll
Normal file
Binary file not shown.
BIN
datafiles/HLSL/libGLESv2.dll
Normal file
BIN
datafiles/HLSL/libGLESv2.dll
Normal file
Binary file not shown.
Binary file not shown.
|
@ -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);
|
||||
|
|
|
@ -61,6 +61,8 @@ event_inherited();
|
|||
function onDestroy() {
|
||||
if(!content) return;
|
||||
content.onClose();
|
||||
|
||||
print("On close on panel");
|
||||
}
|
||||
|
||||
function remove() {
|
||||
|
|
|
@ -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}");
|
||||
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
|
|
42
scripts/glsl_draw/glsl_draw.gml
Normal file
42
scripts/glsl_draw/glsl_draw.gml
Normal 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);
|
||||
}
|
||||
}
|
11
scripts/glsl_draw/glsl_draw.yy
Normal file
11
scripts/glsl_draw/glsl_draw.yy
Normal 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",
|
||||
},
|
||||
}
|
|
@ -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 == "}")
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
237
scripts/node_glsl/node_glsl.gml
Normal file
237
scripts/node_glsl/node_glsl.gml
Normal 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);
|
||||
}
|
||||
}
|
11
scripts/node_glsl/node_glsl.yy
Normal file
11
scripts/node_glsl/node_glsl.yy
Normal 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",
|
||||
},
|
||||
}
|
12
scripts/node_glsl/node_outline.yy
Normal file
12
scripts/node_glsl/node_outline.yy
Normal 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",
|
||||
}
|
|
@ -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,
|
||||
|
|
|
@ -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" ]);
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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.");
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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);
|
||||
|
|
73
scripts/panel_text_editor/panel_console.gml
Normal file
73
scripts/panel_text_editor/panel_console.gml
Normal 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);
|
||||
}
|
||||
}
|
48
scripts/panel_text_editor/panel_text_editor.gml
Normal file
48
scripts/panel_text_editor/panel_text_editor.gml
Normal 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();
|
||||
}
|
||||
}
|
11
scripts/panel_text_editor/panel_text_editor.yy
Normal file
11
scripts/panel_text_editor/panel_text_editor.yy
Normal 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",
|
||||
},
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
"isCompatibility": false,
|
||||
"isDnD": false,
|
||||
"parent": {
|
||||
"name": "eval",
|
||||
"path": "folders/functions/eval.yy",
|
||||
"name": "PCX",
|
||||
"path": "folders/functions/PCX.yy",
|
||||
},
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
"isCompatibility": false,
|
||||
"isDnD": false,
|
||||
"parent": {
|
||||
"name": "eval",
|
||||
"path": "folders/functions/eval.yy",
|
||||
"name": "PCX",
|
||||
"path": "folders/functions/PCX.yy",
|
||||
},
|
||||
}
|
|
@ -5,7 +5,7 @@
|
|||
"isCompatibility": false,
|
||||
"isDnD": false,
|
||||
"parent": {
|
||||
"name": "eval",
|
||||
"path": "folders/functions/eval.yy",
|
||||
"name": "PCX",
|
||||
"path": "folders/functions/PCX.yy",
|
||||
},
|
||||
}
|
|
@ -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;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
"isCompatibility": false,
|
||||
"isDnD": false,
|
||||
"parent": {
|
||||
"name": "eval",
|
||||
"path": "folders/functions/eval.yy",
|
||||
"name": "PCX",
|
||||
"path": "folders/functions/PCX.yy",
|
||||
},
|
||||
}
|
7
scripts/scr_cmd_arg/scr_cmd_arg.gml
Normal file
7
scripts/scr_cmd_arg/scr_cmd_arg.gml
Normal file
|
@ -0,0 +1,7 @@
|
|||
/// @param string
|
||||
function scr_cmd_arg(argument0) {
|
||||
var s = argument0;
|
||||
if (string_pos(" ", s)) {
|
||||
return @'"' + s + @'"';
|
||||
} else return s;
|
||||
}
|
11
scripts/scr_cmd_arg/scr_cmd_arg.yy
Normal file
11
scripts/scr_cmd_arg/scr_cmd_arg.yy
Normal 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",
|
||||
},
|
||||
}
|
|
@ -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]);
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
|
@ -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",
|
||||
},
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
|
|
28
shaders/sh_dummy_0/sh_dummy_0.fsh
Normal file
28
shaders/sh_dummy_0/sh_dummy_0.fsh
Normal 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 );
|
||||
}
|
35
shaders/sh_dummy_0/sh_dummy_0.vsh
Normal file
35
shaders/sh_dummy_0/sh_dummy_0.vsh
Normal 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;
|
||||
}
|
10
shaders/sh_dummy_0/sh_dummy_0.yy
Normal file
10
shaders/sh_dummy_0/sh_dummy_0.yy
Normal file
|
@ -0,0 +1,10 @@
|
|||
{
|
||||
"resourceType": "GMShader",
|
||||
"resourceVersion": "1.0",
|
||||
"name": "sh_dummy_0",
|
||||
"parent": {
|
||||
"name": "dummy",
|
||||
"path": "folders/shader/dummy.yy",
|
||||
},
|
||||
"type": 1,
|
||||
}
|
Loading…
Add table
Reference in a new issue