ruby_rpg 0.0.5 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +43 -21
- data/bin/build.bash +13 -13
- data/bin/import +54 -44
- data/ext/gl_native/extconf.rb +20 -0
- data/ext/gl_native/gl_native.c +563 -0
- data/ext/glfw_native/extconf.rb +18 -0
- data/ext/glfw_native/glfw_native.c +451 -0
- data/lib/engine/assets/_imported/cube.index_data +36 -0
- data/lib/engine/assets/_imported/cube.vertex_data +720 -0
- data/lib/engine/assets/_imported/plane.index_data +6 -0
- data/lib/engine/assets/_imported/plane.vertex_data +120 -0
- data/lib/engine/assets/_imported/sphere.index_data +2880 -0
- data/lib/engine/assets/_imported/sphere.vertex_data +57600 -0
- data/lib/engine/assets/cube.obj +46 -0
- data/lib/engine/assets/plane.obj +16 -0
- data/lib/engine/assets/sphere.obj +2488 -0
- data/lib/engine/autoloader.rb +11 -11
- data/lib/engine/camera.rb +12 -12
- data/lib/engine/component.rb +65 -63
- data/lib/engine/components/audio_source.rb +43 -41
- data/lib/engine/components/direction_light.rb +102 -23
- data/lib/engine/components/orthographic_camera.rb +60 -54
- data/lib/engine/components/perspective_camera.rb +76 -53
- data/lib/engine/components/point_light.rb +80 -24
- data/lib/engine/components/renderers/font_renderer.rb +19 -0
- data/lib/engine/components/renderers/font_renderer_base.rb +134 -0
- data/lib/engine/components/renderers/mesh_renderer.rb +41 -0
- data/lib/engine/components/renderers/sprite_renderer.rb +46 -0
- data/lib/engine/components/spot_light.rb +90 -0
- data/lib/engine/components/sprite_animator.rb +42 -0
- data/lib/engine/components/ui/flex/layout.rb +94 -0
- data/lib/engine/components/ui/flex/pack_layout.rb +65 -0
- data/lib/engine/components/ui/flex/stretch_layout.rb +52 -0
- data/lib/engine/components/ui/flex.rb +60 -0
- data/lib/engine/components/ui/font_renderer.rb +57 -0
- data/lib/engine/components/ui/rect.rb +117 -0
- data/lib/engine/components/ui/sprite_clickbox.rb +47 -0
- data/lib/engine/components/ui/sprite_renderer.rb +117 -0
- data/lib/engine/compute_shader.rb +14 -93
- data/lib/engine/compute_texture.rb +13 -0
- data/lib/engine/cursor.rb +43 -43
- data/lib/engine/debugging.rb +41 -41
- data/lib/engine/engine.rb +127 -131
- data/lib/engine/font.rb +99 -74
- data/lib/engine/game_object.rb +306 -234
- data/lib/engine/gl.rb +439 -0
- data/lib/engine/glfw.rb +151 -0
- data/lib/engine/importers/font_importer.rb +69 -69
- data/lib/engine/importers/obj_file.rb +244 -244
- data/lib/engine/importers/obj_importer.rb +33 -33
- data/lib/engine/input.rb +212 -105
- data/lib/engine/material.rb +214 -79
- data/lib/engine/matrix_helpers.rb +38 -0
- data/lib/engine/mesh.rb +68 -43
- data/lib/engine/metal/compute_shader.rb +118 -0
- data/lib/engine/metal/compute_texture.rb +176 -0
- data/lib/engine/metal/device.rb +98 -0
- data/lib/engine/metal/metal_bindings.rb +126 -0
- data/lib/engine/opengl/compute_shader.rb +77 -0
- data/lib/engine/opengl/compute_texture.rb +31 -0
- data/lib/engine/path.rb +92 -92
- data/lib/engine/physics/collision.rb +12 -12
- data/lib/engine/physics/components/cube_collider.rb +6 -6
- data/lib/engine/physics/components/rigidbody.rb +106 -103
- data/lib/engine/physics/components/sphere_collider.rb +103 -93
- data/lib/engine/physics/physics_resolver.rb +49 -37
- data/lib/engine/polygon_mesh.rb +45 -45
- data/lib/engine/quaternion.rb +234 -234
- data/lib/engine/rendering/cubemap_shadow_map_array.rb +77 -0
- data/lib/engine/rendering/gpu_timer.rb +68 -0
- data/lib/engine/rendering/instance_renderer.rb +232 -153
- data/lib/engine/rendering/post_processing/bloom_effect.rb +87 -0
- data/lib/engine/rendering/post_processing/depth_debug_effect.rb +17 -0
- data/lib/engine/rendering/post_processing/depth_of_field_effect.rb +52 -0
- data/lib/engine/rendering/post_processing/effect.rb +11 -0
- data/lib/engine/rendering/post_processing/post_processing_effect.rb +86 -0
- data/lib/engine/rendering/post_processing/single_pass_effect.rb +19 -0
- data/lib/engine/rendering/post_processing/ssao_effect.rb +182 -0
- data/lib/engine/rendering/post_processing/ssr_effect.rb +89 -0
- data/lib/engine/rendering/post_processing/tint_effect.rb +18 -0
- data/lib/engine/rendering/render_pipeline.rb +267 -35
- data/lib/engine/rendering/render_texture.rb +118 -0
- data/lib/engine/rendering/screen_quad.rb +64 -0
- data/lib/engine/rendering/shadow_map_array.rb +72 -0
- data/lib/engine/rendering/skybox_cubemap.rb +119 -0
- data/lib/engine/rendering/skybox_renderer.rb +64 -0
- data/lib/engine/rendering/ui/stencil_manager.rb +69 -0
- data/lib/engine/screenshoter.rb +34 -34
- data/lib/engine/serialization/graph_serializer.rb +74 -0
- data/lib/engine/serialization/object_serializer.rb +98 -0
- data/lib/engine/serialization/serializable.rb +78 -0
- data/lib/engine/serialization/yaml_persistence.rb +45 -0
- data/lib/engine/shader.rb +215 -119
- data/lib/engine/shaders/colour_frag.glsl +16 -8
- data/lib/engine/shaders/colour_vertex.glsl +20 -13
- data/lib/engine/shaders/fullscreen_frag.glsl +11 -0
- data/lib/engine/shaders/fullscreen_vertex.glsl +12 -0
- data/lib/engine/shaders/instanced_sprite_frag.glsl +21 -0
- data/lib/engine/shaders/{skybox_vert.glsl → instanced_sprite_vertex.glsl} +15 -14
- data/lib/engine/shaders/lighting/directional_light.glsl +49 -0
- data/lib/engine/shaders/lighting/lighting.glsl +33 -0
- data/lib/engine/shaders/lighting/lighting_common.glsl +13 -0
- data/lib/engine/shaders/lighting/point_light.glsl +46 -0
- data/lib/engine/shaders/lighting/spot_light.glsl +80 -0
- data/lib/engine/shaders/mesh_frag.glsl +53 -102
- data/lib/engine/shaders/mesh_vertex.glsl +25 -25
- data/lib/engine/shaders/point_shadow_frag.glsl +12 -0
- data/lib/engine/shaders/point_shadow_vertex.glsl +15 -0
- data/lib/engine/shaders/post_process/bloom_blur_frag.glsl +25 -0
- data/lib/engine/shaders/post_process/bloom_combine_frag.glsl +19 -0
- data/lib/engine/shaders/post_process/bloom_threshold_frag.glsl +19 -0
- data/lib/engine/shaders/post_process/debug_normals_frag.glsl +21 -0
- data/lib/engine/shaders/post_process/depth_debug_frag.glsl +17 -0
- data/lib/engine/shaders/post_process/dof_blur_frag.glsl +52 -0
- data/lib/engine/shaders/post_process/skybox_frag.glsl +29 -0
- data/lib/engine/shaders/post_process/ssao/blur_frag.glsl +50 -0
- data/lib/engine/shaders/post_process/ssao/combine_frag.glsl +15 -0
- data/lib/engine/shaders/post_process/ssao/frag.glsl +99 -0
- data/lib/engine/shaders/post_process/ssr/combine_frag.glsl +16 -0
- data/lib/engine/shaders/post_process/ssr/frag.glsl +118 -0
- data/lib/engine/shaders/post_process/tint_frag.glsl +14 -0
- data/lib/engine/shaders/shadow_frag.glsl +6 -0
- data/lib/engine/shaders/shadow_vertex.glsl +11 -0
- data/lib/engine/shaders/skybox_cubemap_frag.glsl +46 -0
- data/lib/engine/shaders/sprite_frag.glsl +17 -17
- data/lib/engine/shaders/sprite_vertex.glsl +15 -15
- data/lib/engine/shaders/text_frag.glsl +15 -15
- data/lib/engine/shaders/text_vertex.glsl +31 -31
- data/lib/engine/shaders/ui_sprite_frag.glsl +15 -15
- data/lib/engine/shaders/ui_sprite_vertex.glsl +15 -15
- data/lib/engine/shaders/vertex_lit_frag.glsl +33 -89
- data/lib/engine/shaders/vertex_lit_vertex.glsl +28 -28
- data/lib/engine/standard_meshes/quad_mesh.rb +26 -0
- data/lib/engine/standard_objects/cube.rb +23 -0
- data/lib/engine/standard_objects/default_material.rb +20 -0
- data/lib/engine/standard_objects/plane.rb +23 -0
- data/lib/engine/standard_objects/sphere.rb +23 -0
- data/lib/engine/tangent_calculator.rb +42 -42
- data/lib/engine/texture.rb +62 -53
- data/lib/engine/ui/rect.rb +16 -0
- data/lib/engine/video_mode.rb +37 -37
- data/lib/engine/window.rb +126 -126
- data/lib/ruby_rpg.rb +116 -58
- data/vendor/glew-2.2.0-win32/LICENSE.txt +73 -0
- data/vendor/glew-2.2.0-win32/bin/Release/x64/glew32.dll +0 -0
- data/vendor/glew-2.2.0-win32/include/GL/glew.h +26427 -0
- data/vendor/glew-2.2.0-win32/lib/Release/x64/glew32.lib +0 -0
- data/{glfw-3.3.9.bin.MACOS → vendor/glfw-3.3.9.bin.MACOS}/lib-arm64/libglfw.3.dylib +0 -0
- data/{glfw-3.3.9.bin.MACOS → vendor/glfw-3.4.bin.WIN64}/LICENSE.md +23 -23
- metadata +122 -463
- data/glfw-3.3.9.bin.MACOS/README.md +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/bc_s.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/bc_sd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/build_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/build_guide.html +0 -199
- data/glfw-3.3.9.bin.MACOS/docs/html/closed.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/compat_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/compat_guide.html +0 -153
- data/glfw-3.3.9.bin.MACOS/docs/html/compile_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/compile_guide.html +0 -223
- data/glfw-3.3.9.bin.MACOS/docs/html/context_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/context_guide.html +0 -259
- data/glfw-3.3.9.bin.MACOS/docs/html/deprecated.html +0 -88
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_08423ce7729c4554356a7de7171ba263.html +0 -85
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_2dcebcdf14b42e92a6ed85c61bda6b9d.html +0 -93
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_62ce056722ee97c199075aa1d6eca309.html +0 -95
- data/glfw-3.3.9.bin.MACOS/docs/html/dir_dddf4cf62655095a666cf715de3a31a2.html +0 -91
- data/glfw-3.3.9.bin.MACOS/docs/html/doc.svg +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/docd.svg +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.css +0 -1685
- data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.svg +0 -28
- data/glfw-3.3.9.bin.MACOS/docs/html/dynsections.js +0 -192
- data/glfw-3.3.9.bin.MACOS/docs/html/extra.css +0 -1
- data/glfw-3.3.9.bin.MACOS/docs/html/files.html +0 -91
- data/glfw-3.3.9.bin.MACOS/docs/html/folderclosed.svg +0 -11
- data/glfw-3.3.9.bin.MACOS/docs/html/folderclosedd.svg +0 -11
- data/glfw-3.3.9.bin.MACOS/docs/html/folderopen.svg +0 -17
- data/glfw-3.3.9.bin.MACOS/docs/html/folderopend.svg +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h.html +0 -1661
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h_source.html +0 -1175
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h.html +0 -167
- data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h_source.html +0 -303
- data/glfw-3.3.9.bin.MACOS/docs/html/group__buttons.html +0 -282
- data/glfw-3.3.9.bin.MACOS/docs/html/group__context.html +0 -304
- data/glfw-3.3.9.bin.MACOS/docs/html/group__errors.html +0 -304
- data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__axes.html +0 -202
- data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__buttons.html +0 -410
- data/glfw-3.3.9.bin.MACOS/docs/html/group__hat__state.html +0 -234
- data/glfw-3.3.9.bin.MACOS/docs/html/group__init.html +0 -570
- data/glfw-3.3.9.bin.MACOS/docs/html/group__input.html +0 -2255
- data/glfw-3.3.9.bin.MACOS/docs/html/group__joysticks.html +0 -362
- data/glfw-3.3.9.bin.MACOS/docs/html/group__keys.html +0 -2034
- data/glfw-3.3.9.bin.MACOS/docs/html/group__mods.html +0 -198
- data/glfw-3.3.9.bin.MACOS/docs/html/group__monitor.html +0 -848
- data/glfw-3.3.9.bin.MACOS/docs/html/group__native.html +0 -812
- data/glfw-3.3.9.bin.MACOS/docs/html/group__shapes.html +0 -198
- data/glfw-3.3.9.bin.MACOS/docs/html/group__vulkan.html +0 -359
- data/glfw-3.3.9.bin.MACOS/docs/html/group__window.html +0 -3434
- data/glfw-3.3.9.bin.MACOS/docs/html/index.html +0 -100
- data/glfw-3.3.9.bin.MACOS/docs/html/input_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/input_guide.html +0 -570
- data/glfw-3.3.9.bin.MACOS/docs/html/internal_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/internals_guide.html +0 -132
- data/glfw-3.3.9.bin.MACOS/docs/html/intro_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/intro_guide.html +0 -351
- data/glfw-3.3.9.bin.MACOS/docs/html/jquery.js +0 -34
- data/glfw-3.3.9.bin.MACOS/docs/html/main_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/menu.js +0 -136
- data/glfw-3.3.9.bin.MACOS/docs/html/menudata.js +0 -29
- data/glfw-3.3.9.bin.MACOS/docs/html/minus.svg +0 -8
- data/glfw-3.3.9.bin.MACOS/docs/html/minusd.svg +0 -8
- data/glfw-3.3.9.bin.MACOS/docs/html/monitor_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/monitor_guide.html +0 -229
- data/glfw-3.3.9.bin.MACOS/docs/html/moving_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/moving_guide.html +0 -374
- data/glfw-3.3.9.bin.MACOS/docs/html/nav_f.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/nav_fd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/nav_g.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/nav_h.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/nav_hd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/news.html +0 -634
- data/glfw-3.3.9.bin.MACOS/docs/html/news_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/open.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/pages.html +0 -99
- data/glfw-3.3.9.bin.MACOS/docs/html/plus.svg +0 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/plusd.svg +0 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/quick_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/quick_guide.html +0 -397
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_0.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_10.js +0 -65
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_11.js +0 -26
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_12.js +0 -44
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_13.js +0 -34
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_14.js +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_15.js +0 -52
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_16.js +0 -69
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_17.js +0 -51
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_18.js +0 -14
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_19.js +0 -36
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1a.js +0 -98
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1b.js +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_2.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_3.js +0 -9
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_4.js +0 -57
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_5.js +0 -22
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_6.js +0 -103
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_7.js +0 -23
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_8.js +0 -35
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_9.js +0 -63
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_a.js +0 -505
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_b.js +0 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_c.js +0 -50
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_d.js +0 -17
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_e.js +0 -12
- data/glfw-3.3.9.bin.MACOS/docs/html/search/all_f.js +0 -35
- data/glfw-3.3.9.bin.MACOS/docs/html/search/classes_0.js +0 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/close.svg +0 -18
- data/glfw-3.3.9.bin.MACOS/docs/html/search/defines_0.js +0 -34
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_0.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_1.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_2.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_3.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_4.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_5.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_6.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_7.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/files_8.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/functions_0.js +0 -146
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_0.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_1.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_10.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_2.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_3.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_4.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_5.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_6.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_7.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_8.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_9.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_a.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_b.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_c.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_d.js +0 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_e.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_f.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag.svg +0 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_d.svg +0 -24
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_sel.svg +0 -31
- data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_seld.svg +0 -31
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_0.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_1.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_10.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_2.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_3.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_4.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_5.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_6.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_7.js +0 -7
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_8.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_9.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_a.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_b.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_c.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_d.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_e.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_f.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/search.css +0 -291
- data/glfw-3.3.9.bin.MACOS/docs/html/search/search.js +0 -840
- data/glfw-3.3.9.bin.MACOS/docs/html/search/searchdata.js +0 -39
- data/glfw-3.3.9.bin.MACOS/docs/html/search/typedefs_0.js +0 -32
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_0.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_1.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_2.js +0 -5
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_3.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_4.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_5.js +0 -6
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_6.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_7.js +0 -4
- data/glfw-3.3.9.bin.MACOS/docs/html/spaces.svg +0 -877
- data/glfw-3.3.9.bin.MACOS/docs/html/splitbar.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/splitbard.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgamepadstate.html +0 -134
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgammaramp.html +0 -170
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wimage.html +0 -151
- data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wvidmode.html +0 -204
- data/glfw-3.3.9.bin.MACOS/docs/html/sync_off.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/sync_on.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_a.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_ad.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_b.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_bd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_h.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_hd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_s.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tab_sd.png +0 -0
- data/glfw-3.3.9.bin.MACOS/docs/html/tabs.css +0 -1
- data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_guide.html +0 -196
- data/glfw-3.3.9.bin.MACOS/docs/html/window_8dox.html +0 -81
- data/glfw-3.3.9.bin.MACOS/docs/html/window_guide.html +0 -763
- data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3.h +0 -5932
- data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3native.h +0 -634
- data/glfw-3.3.9.bin.MACOS/lib-arm64/libglfw3.a +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw.3.dylib +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw3.a +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw.3.dylib +0 -0
- data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw3.a +0 -0
- data/glfw-3.4.bin.WIN64/README.md +0 -70
- data/glfw-3.4.bin.WIN64/docs/html/bc_s.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/bc_sd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/build_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/build_guide.html +0 -217
- data/glfw-3.4.bin.WIN64/docs/html/closed.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/compat_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/compat_guide.html +0 -156
- data/glfw-3.4.bin.WIN64/docs/html/compile_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/compile_guide.html +0 -219
- data/glfw-3.4.bin.WIN64/docs/html/context_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/context_guide.html +0 -258
- data/glfw-3.4.bin.WIN64/docs/html/deprecated.html +0 -88
- data/glfw-3.4.bin.WIN64/docs/html/dir_13577e2d8b9423099662de029791bd7d.html +0 -93
- data/glfw-3.4.bin.WIN64/docs/html/dir_7f92719a7fe62e5b064f87d7a3c220b1.html +0 -95
- data/glfw-3.4.bin.WIN64/docs/html/dir_a788ef6c2b1e5b367804e0b6ccfd6f11.html +0 -85
- data/glfw-3.4.bin.WIN64/docs/html/dir_b11153cd0f4fd04a7564cc166f482635.html +0 -91
- data/glfw-3.4.bin.WIN64/docs/html/doc.svg +0 -12
- data/glfw-3.4.bin.WIN64/docs/html/docd.svg +0 -12
- data/glfw-3.4.bin.WIN64/docs/html/doxygen.css +0 -1685
- data/glfw-3.4.bin.WIN64/docs/html/doxygen.svg +0 -28
- data/glfw-3.4.bin.WIN64/docs/html/dynsections.js +0 -192
- data/glfw-3.4.bin.WIN64/docs/html/extra.css +0 -2
- data/glfw-3.4.bin.WIN64/docs/html/files.html +0 -91
- data/glfw-3.4.bin.WIN64/docs/html/folderclosed.svg +0 -11
- data/glfw-3.4.bin.WIN64/docs/html/folderclosedd.svg +0 -11
- data/glfw-3.4.bin.WIN64/docs/html/folderopen.svg +0 -17
- data/glfw-3.4.bin.WIN64/docs/html/folderopend.svg +0 -12
- data/glfw-3.4.bin.WIN64/docs/html/glfw3_8h.html +0 -1910
- data/glfw-3.4.bin.WIN64/docs/html/glfw3_8h_source.html +0 -1260
- data/glfw-3.4.bin.WIN64/docs/html/glfw3native_8h.html +0 -170
- data/glfw-3.4.bin.WIN64/docs/html/glfw3native_8h_source.html +0 -306
- data/glfw-3.4.bin.WIN64/docs/html/group__buttons.html +0 -282
- data/glfw-3.4.bin.WIN64/docs/html/group__context.html +0 -304
- data/glfw-3.4.bin.WIN64/docs/html/group__errors.html +0 -384
- data/glfw-3.4.bin.WIN64/docs/html/group__gamepad__axes.html +0 -202
- data/glfw-3.4.bin.WIN64/docs/html/group__gamepad__buttons.html +0 -410
- data/glfw-3.4.bin.WIN64/docs/html/group__hat__state.html +0 -234
- data/glfw-3.4.bin.WIN64/docs/html/group__init.html +0 -1015
- data/glfw-3.4.bin.WIN64/docs/html/group__input.html +0 -2285
- data/glfw-3.4.bin.WIN64/docs/html/group__joysticks.html +0 -362
- data/glfw-3.4.bin.WIN64/docs/html/group__keys.html +0 -2034
- data/glfw-3.4.bin.WIN64/docs/html/group__mods.html +0 -198
- data/glfw-3.4.bin.WIN64/docs/html/group__monitor.html +0 -849
- data/glfw-3.4.bin.WIN64/docs/html/group__native.html +0 -837
- data/glfw-3.4.bin.WIN64/docs/html/group__shapes.html +0 -337
- data/glfw-3.4.bin.WIN64/docs/html/group__vulkan.html +0 -361
- data/glfw-3.4.bin.WIN64/docs/html/group__window.html +0 -3608
- data/glfw-3.4.bin.WIN64/docs/html/index.html +0 -100
- data/glfw-3.4.bin.WIN64/docs/html/input_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/input_guide.html +0 -576
- data/glfw-3.4.bin.WIN64/docs/html/internal_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/internals_guide.html +0 -135
- data/glfw-3.4.bin.WIN64/docs/html/intro_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/intro_guide.html +0 -429
- data/glfw-3.4.bin.WIN64/docs/html/jquery.js +0 -34
- data/glfw-3.4.bin.WIN64/docs/html/main_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/menu.js +0 -136
- data/glfw-3.4.bin.WIN64/docs/html/menudata.js +0 -30
- data/glfw-3.4.bin.WIN64/docs/html/minus.svg +0 -8
- data/glfw-3.4.bin.WIN64/docs/html/minusd.svg +0 -8
- data/glfw-3.4.bin.WIN64/docs/html/monitor_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/monitor_guide.html +0 -228
- data/glfw-3.4.bin.WIN64/docs/html/moving_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/moving_guide.html +0 -360
- data/glfw-3.4.bin.WIN64/docs/html/nav_f.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/nav_fd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/nav_g.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/nav_h.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/nav_hd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/news.html +0 -336
- data/glfw-3.4.bin.WIN64/docs/html/news_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/open.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/pages.html +0 -99
- data/glfw-3.4.bin.WIN64/docs/html/plus.svg +0 -9
- data/glfw-3.4.bin.WIN64/docs/html/plusd.svg +0 -9
- data/glfw-3.4.bin.WIN64/docs/html/quick_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/quick_guide.html +0 -406
- data/glfw-3.4.bin.WIN64/docs/html/search/all_0.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_10.js +0 -13
- data/glfw-3.4.bin.WIN64/docs/html/search/all_11.js +0 -11
- data/glfw-3.4.bin.WIN64/docs/html/search/all_12.js +0 -26
- data/glfw-3.4.bin.WIN64/docs/html/search/all_13.js +0 -51
- data/glfw-3.4.bin.WIN64/docs/html/search/all_14.js +0 -22
- data/glfw-3.4.bin.WIN64/docs/html/search/all_15.js +0 -35
- data/glfw-3.4.bin.WIN64/docs/html/search/all_16.js +0 -29
- data/glfw-3.4.bin.WIN64/docs/html/search/all_17.js +0 -8
- data/glfw-3.4.bin.WIN64/docs/html/search/all_18.js +0 -44
- data/glfw-3.4.bin.WIN64/docs/html/search/all_19.js +0 -60
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1a.js +0 -39
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1b.js +0 -8
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1c.js +0 -32
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1d.js +0 -84
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1e.js +0 -13
- data/glfw-3.4.bin.WIN64/docs/html/search/all_1f.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_2.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/all_3.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_4.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_5.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_6.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/all_7.js +0 -58
- data/glfw-3.4.bin.WIN64/docs/html/search/all_8.js +0 -21
- data/glfw-3.4.bin.WIN64/docs/html/search/all_9.js +0 -82
- data/glfw-3.4.bin.WIN64/docs/html/search/all_a.js +0 -20
- data/glfw-3.4.bin.WIN64/docs/html/search/all_b.js +0 -26
- data/glfw-3.4.bin.WIN64/docs/html/search/all_c.js +0 -35
- data/glfw-3.4.bin.WIN64/docs/html/search/all_d.js +0 -555
- data/glfw-3.4.bin.WIN64/docs/html/search/all_e.js +0 -23
- data/glfw-3.4.bin.WIN64/docs/html/search/all_f.js +0 -40
- data/glfw-3.4.bin.WIN64/docs/html/search/classes_0.js +0 -8
- data/glfw-3.4.bin.WIN64/docs/html/search/close.svg +0 -18
- data/glfw-3.4.bin.WIN64/docs/html/search/defines_0.js +0 -43
- data/glfw-3.4.bin.WIN64/docs/html/search/files_0.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/files_1.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/files_2.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/files_3.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/files_4.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/files_5.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/files_6.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/files_7.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/files_8.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/functions_0.js +0 -152
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_0.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_1.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_10.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_2.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_3.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_4.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_5.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_6.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_7.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_8.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_9.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_a.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_b.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_c.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_d.js +0 -7
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_e.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/groups_f.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/mag.svg +0 -24
- data/glfw-3.4.bin.WIN64/docs/html/search/mag_d.svg +0 -24
- data/glfw-3.4.bin.WIN64/docs/html/search/mag_sel.svg +0 -31
- data/glfw-3.4.bin.WIN64/docs/html/search/mag_seld.svg +0 -31
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_0.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_1.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_10.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_11.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_2.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_3.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_4.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_5.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_6.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_7.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_8.js +0 -7
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_9.js +0 -7
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_a.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_b.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_c.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_d.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_e.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/pages_f.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/search.css +0 -291
- data/glfw-3.4.bin.WIN64/docs/html/search/search.js +0 -840
- data/glfw-3.4.bin.WIN64/docs/html/search/searchdata.js +0 -39
- data/glfw-3.4.bin.WIN64/docs/html/search/typedefs_0.js +0 -36
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_0.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_1.js +0 -6
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_2.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_3.js +0 -5
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_4.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_5.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_6.js +0 -7
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_7.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_8.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/search/variables_9.js +0 -4
- data/glfw-3.4.bin.WIN64/docs/html/spaces.svg +0 -877
- data/glfw-3.4.bin.WIN64/docs/html/splitbar.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/splitbard.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wallocator.html +0 -168
- data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wgamepadstate.html +0 -134
- data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wgammaramp.html +0 -170
- data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wimage.html +0 -151
- data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wvidmode.html +0 -204
- data/glfw-3.4.bin.WIN64/docs/html/sync_off.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/sync_on.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_a.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_ad.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_b.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_bd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_h.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_hd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_s.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tab_sd.png +0 -0
- data/glfw-3.4.bin.WIN64/docs/html/tabs.css +0 -1
- data/glfw-3.4.bin.WIN64/docs/html/topics.html +0 -101
- data/glfw-3.4.bin.WIN64/docs/html/vulkan_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/vulkan_guide.html +0 -206
- data/glfw-3.4.bin.WIN64/docs/html/window_8md.html +0 -81
- data/glfw-3.4.bin.WIN64/docs/html/window_guide.html +0 -806
- data/glfw-3.4.bin.WIN64/include/GLFW/glfw3.h +0 -6547
- data/glfw-3.4.bin.WIN64/include/GLFW/glfw3native.h +0 -663
- data/glfw-3.4.bin.WIN64/lib-mingw-w64/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-mingw-w64/libglfw3.a +0 -0
- data/glfw-3.4.bin.WIN64/lib-mingw-w64/libglfw3dll.a +0 -0
- data/glfw-3.4.bin.WIN64/lib-static-ucrt/glfw3dll.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3_mt.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3dll.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3_mt.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3dll.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3_mt.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3dll.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3_mt.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3dll.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3.dll +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3_mt.lib +0 -0
- data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3dll.lib +0 -0
- data/lib/engine/components/font_renderer.rb +0 -134
- data/lib/engine/components/mesh_renderer.rb +0 -31
- data/lib/engine/components/sprite_renderer.rb +0 -141
- data/lib/engine/components/ui_font_renderer.rb +0 -140
- data/lib/engine/components/ui_sprite_clickbox.rb +0 -62
- data/lib/engine/components/ui_sprite_renderer.rb +0 -101
- data/lib/engine/shaders/skybox_frag.glsl +0 -12
- /data/{glfw-3.4.bin.WIN64 → vendor/glfw-3.3.9.bin.MACOS}/LICENSE.md +0 -0
- /data/{glfw-3.4.bin.WIN64 → vendor/glfw-3.4.bin.WIN64}/lib-static-ucrt/glfw3.dll +0 -0
|
@@ -1,14 +1,15 @@
|
|
|
1
|
-
#version 330 core
|
|
2
|
-
|
|
3
|
-
layout (location = 0) in vec3 vertex;
|
|
4
|
-
layout (location =
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
layout (location = 0) in vec3 vertex;
|
|
4
|
+
layout (location = 1) in vec2 texCoord;
|
|
5
|
+
layout (location = 7) in mat4 model;
|
|
6
|
+
|
|
7
|
+
out vec2 TexCoords;
|
|
8
|
+
|
|
9
|
+
uniform mat4 camera;
|
|
10
|
+
|
|
11
|
+
void main()
|
|
12
|
+
{
|
|
13
|
+
TexCoords = texCoord;
|
|
14
|
+
gl_Position = camera * model * vec4(vertex, 1.0);
|
|
15
|
+
}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
// Directional light structure and calculation functions
|
|
2
|
+
|
|
3
|
+
#include "lighting_common.glsl"
|
|
4
|
+
|
|
5
|
+
struct DirectionalLight {
|
|
6
|
+
vec3 direction;
|
|
7
|
+
vec3 colour;
|
|
8
|
+
mat4 lightSpaceMatrix;
|
|
9
|
+
bool castsShadows;
|
|
10
|
+
};
|
|
11
|
+
#define NR_DIRECTIONAL_LIGHTS 4
|
|
12
|
+
uniform DirectionalLight directionalLights[NR_DIRECTIONAL_LIGHTS];
|
|
13
|
+
uniform sampler2DArray directionalShadowMaps;
|
|
14
|
+
|
|
15
|
+
float CalcDirectionalShadow(DirectionalLight light, int lightIndex, vec3 fragPos)
|
|
16
|
+
{
|
|
17
|
+
if (!light.castsShadows) {
|
|
18
|
+
return 0.0;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
vec4 fragPosLightSpace = light.lightSpaceMatrix * vec4(fragPos, 1.0);
|
|
22
|
+
vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w;
|
|
23
|
+
projCoords = projCoords * 0.5 + 0.5;
|
|
24
|
+
|
|
25
|
+
// Fragment is beyond the shadow map frustum
|
|
26
|
+
if (projCoords.z > 1.0) {
|
|
27
|
+
return 0.0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Check if coords are in valid range
|
|
31
|
+
if (projCoords.x < 0.0 || projCoords.x > 1.0 ||
|
|
32
|
+
projCoords.y < 0.0 || projCoords.y > 1.0) {
|
|
33
|
+
return 0.0; // Outside frustum XY
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
float closestDepth = texture(directionalShadowMaps, vec3(projCoords.xy, float(lightIndex))).r;
|
|
37
|
+
float currentDepth = projCoords.z;
|
|
38
|
+
float bias = 0.005;
|
|
39
|
+
|
|
40
|
+
return currentDepth - bias > closestDepth ? 1.0 : 0.0;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
vec3 CalcDirectionalLight(DirectionalLight light, int lightIndex, vec3 normal, vec3 fragPos, vec3 viewDir, float diffuseStrength, float specularStrength, float specularPower)
|
|
44
|
+
{
|
|
45
|
+
float shadow = CalcDirectionalShadow(light, lightIndex, fragPos);
|
|
46
|
+
vec3 lightDir = -light.direction;
|
|
47
|
+
vec2 phong = CalcPhong(normal, lightDir, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
48
|
+
return light.colour * (phong.x + phong.y) * (1.0 - shadow);
|
|
49
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
// Lighting - includes all light types and provides combined calculation
|
|
2
|
+
// Include this file in shaders that need lighting support
|
|
3
|
+
|
|
4
|
+
#include "directional_light.glsl"
|
|
5
|
+
#include "point_light.glsl"
|
|
6
|
+
#include "spot_light.glsl"
|
|
7
|
+
|
|
8
|
+
uniform samplerCube skybox; // @fallback skybox
|
|
9
|
+
uniform float ambientStrength = 0.3;
|
|
10
|
+
|
|
11
|
+
vec3 CalcAllLights(vec3 normal, vec3 fragPos, vec3 viewDir, float diffuseStrength, float specularStrength, float specularPower)
|
|
12
|
+
{
|
|
13
|
+
// Sample skybox using surface normal for ambient lighting
|
|
14
|
+
vec3 ambientLight = texture(skybox, normal).rgb * ambientStrength;
|
|
15
|
+
vec3 result = ambientLight;
|
|
16
|
+
|
|
17
|
+
for (int i = 0; i < NR_POINT_LIGHTS; i++) {
|
|
18
|
+
if (pointLights[i].sqrRange == 0.0) break;
|
|
19
|
+
result += CalcPointLight(pointLights[i], i, normal, fragPos, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
for (int i = 0; i < NR_DIRECTIONAL_LIGHTS; i++) {
|
|
23
|
+
if (directionalLights[i].colour == vec3(0.0)) break;
|
|
24
|
+
result += CalcDirectionalLight(directionalLights[i], i, normal, fragPos, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
for (int i = 0; i < NR_SPOT_LIGHTS; i++) {
|
|
28
|
+
if (spotLights[i].sqrRange == 0.0) break;
|
|
29
|
+
result += CalcSpotLight(spotLights[i], i, normal, fragPos, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Common lighting calculations shared by all light types
|
|
2
|
+
|
|
3
|
+
// Calculates Phong diffuse and specular contribution
|
|
4
|
+
// lightDir: normalized direction FROM fragment TO light
|
|
5
|
+
// Returns vec2(diffuse, specular)
|
|
6
|
+
vec2 CalcPhong(vec3 normal, vec3 lightDir, vec3 viewDir,
|
|
7
|
+
float diffuseStrength, float specularStrength, float specularPower)
|
|
8
|
+
{
|
|
9
|
+
float diff = max(dot(normal, lightDir), 0.0);
|
|
10
|
+
vec3 reflectDir = reflect(lightDir, normal);
|
|
11
|
+
float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
|
|
12
|
+
return vec2(diff * diffuseStrength, spec * specularStrength);
|
|
13
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
// Point light structure and calculation functions
|
|
2
|
+
|
|
3
|
+
#include "lighting_common.glsl"
|
|
4
|
+
|
|
5
|
+
struct PointLight {
|
|
6
|
+
vec3 position;
|
|
7
|
+
float sqrRange;
|
|
8
|
+
vec3 colour;
|
|
9
|
+
bool castsShadows;
|
|
10
|
+
int shadowLayerIndex;
|
|
11
|
+
float shadowFar;
|
|
12
|
+
};
|
|
13
|
+
#define NR_POINT_LIGHTS 16
|
|
14
|
+
#define NR_SHADOW_CASTING_POINT_LIGHTS 4
|
|
15
|
+
uniform PointLight pointLights[NR_POINT_LIGHTS];
|
|
16
|
+
uniform samplerCubeArray pointShadowMaps;
|
|
17
|
+
|
|
18
|
+
float CalcPointShadow(PointLight light, int lightIndex, vec3 fragPos)
|
|
19
|
+
{
|
|
20
|
+
if (!light.castsShadows) {
|
|
21
|
+
return 0.0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
vec3 fragToLight = fragPos - light.position;
|
|
25
|
+
float currentDepth = length(fragToLight);
|
|
26
|
+
|
|
27
|
+
// Sample from cubemap array using vec4(direction, layerIndex)
|
|
28
|
+
float closestDepth = texture(pointShadowMaps, vec4(fragToLight, float(light.shadowLayerIndex))).r;
|
|
29
|
+
closestDepth *= light.shadowFar; // Convert from [0,1] to world units
|
|
30
|
+
|
|
31
|
+
float bias = 0.5;
|
|
32
|
+
return currentDepth - bias > closestDepth ? 1.0 : 0.0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
vec3 CalcPointLight(PointLight light, int lightIndex, vec3 normal, vec3 fragPos, vec3 viewDir, float diffuseStrength, float specularStrength, float specularPower)
|
|
36
|
+
{
|
|
37
|
+
vec3 lightOffset = light.position - fragPos;
|
|
38
|
+
float sqrDistance = dot(lightOffset, lightOffset);
|
|
39
|
+
vec3 lightDir = normalize(lightOffset);
|
|
40
|
+
|
|
41
|
+
float attenuation = light.sqrRange / sqrDistance;
|
|
42
|
+
float shadow = CalcPointShadow(light, lightIndex, fragPos);
|
|
43
|
+
|
|
44
|
+
vec2 phong = CalcPhong(normal, lightDir, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
45
|
+
return light.colour * (phong.x + phong.y) * attenuation * (1.0 - shadow);
|
|
46
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Spot light structure and calculation functions
|
|
2
|
+
|
|
3
|
+
#include "lighting_common.glsl"
|
|
4
|
+
|
|
5
|
+
struct SpotLight {
|
|
6
|
+
vec3 position;
|
|
7
|
+
vec3 direction;
|
|
8
|
+
float sqrRange;
|
|
9
|
+
vec3 colour;
|
|
10
|
+
float innerCutoff;
|
|
11
|
+
float outerCutoff;
|
|
12
|
+
mat4 lightSpaceMatrix;
|
|
13
|
+
bool castsShadows;
|
|
14
|
+
float shadowNear;
|
|
15
|
+
float shadowFar;
|
|
16
|
+
};
|
|
17
|
+
#define NR_SPOT_LIGHTS 8
|
|
18
|
+
#define NR_SHADOW_CASTING_SPOT_LIGHTS 4
|
|
19
|
+
uniform SpotLight spotLights[NR_SPOT_LIGHTS];
|
|
20
|
+
uniform sampler2DArray spotShadowMaps;
|
|
21
|
+
|
|
22
|
+
// Convert non-linear depth buffer value to linear depth
|
|
23
|
+
float LinearizeDepth(float depth, float near, float far)
|
|
24
|
+
{
|
|
25
|
+
float z = depth * 2.0 - 1.0; // back to NDC
|
|
26
|
+
return (2.0 * near * far) / (far + near - z * (far - near));
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
float CalcSpotShadow(SpotLight light, int lightIndex, vec3 fragPos)
|
|
30
|
+
{
|
|
31
|
+
if (!light.castsShadows || lightIndex >= NR_SHADOW_CASTING_SPOT_LIGHTS) {
|
|
32
|
+
return 0.0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
vec4 fragPosLightSpace = light.lightSpaceMatrix * vec4(fragPos, 1.0);
|
|
36
|
+
|
|
37
|
+
// Point is behind the light
|
|
38
|
+
if (fragPosLightSpace.w <= 0.0) {
|
|
39
|
+
return 0.0;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
vec3 projCoords = fragPosLightSpace.xyz / fragPosLightSpace.w;
|
|
43
|
+
projCoords = projCoords * 0.5 + 0.5;
|
|
44
|
+
|
|
45
|
+
// Fragment is outside the shadow map frustum
|
|
46
|
+
if (projCoords.z > 1.0 || projCoords.z < 0.0 ||
|
|
47
|
+
projCoords.x < 0.0 || projCoords.x > 1.0 ||
|
|
48
|
+
projCoords.y < 0.0 || projCoords.y > 1.0) {
|
|
49
|
+
return 0.0;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
float closestDepth = texture(spotShadowMaps, vec3(projCoords.xy, float(lightIndex))).r;
|
|
53
|
+
float currentDepth = projCoords.z;
|
|
54
|
+
|
|
55
|
+
// Convert to linear depth for more stable comparison
|
|
56
|
+
float near = light.shadowNear;
|
|
57
|
+
float far = light.shadowFar;
|
|
58
|
+
float linearClosest = LinearizeDepth(closestDepth, near, far);
|
|
59
|
+
float linearCurrent = LinearizeDepth(currentDepth, near, far);
|
|
60
|
+
|
|
61
|
+
float bias = 0.5; // bias in world units
|
|
62
|
+
return linearCurrent - bias > linearClosest ? 1.0 : 0.0;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
vec3 CalcSpotLight(SpotLight light, int lightIndex, vec3 normal, vec3 fragPos, vec3 viewDir, float diffuseStrength, float specularStrength, float specularPower)
|
|
66
|
+
{
|
|
67
|
+
vec3 lightOffset = light.position - fragPos;
|
|
68
|
+
float sqrDistance = dot(lightOffset, lightOffset);
|
|
69
|
+
vec3 lightDir = normalize(lightOffset);
|
|
70
|
+
|
|
71
|
+
float theta = dot(lightDir, -light.direction);
|
|
72
|
+
float epsilon = light.innerCutoff - light.outerCutoff;
|
|
73
|
+
float intensity = clamp((theta - light.outerCutoff) / epsilon, 0.0, 1.0);
|
|
74
|
+
|
|
75
|
+
float shadow = CalcSpotShadow(light, lightIndex, fragPos);
|
|
76
|
+
float attenuation = light.sqrRange / sqrDistance;
|
|
77
|
+
|
|
78
|
+
vec2 phong = CalcPhong(normal, lightDir, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
79
|
+
return light.colour * (phong.x + phong.y) * attenuation * intensity * (1.0 - shadow);
|
|
80
|
+
}
|
|
@@ -1,102 +1,53 @@
|
|
|
1
|
-
#version
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
in
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
uniform sampler2D
|
|
12
|
-
uniform
|
|
13
|
-
uniform
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
uniform vec3
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
#
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
vec3
|
|
34
|
-
|
|
35
|
-
vec3
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
vec3 reflectDir = reflect(-light.direction, normal);
|
|
56
|
-
float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
|
|
57
|
-
|
|
58
|
-
float diffuse = diff * diffuseStrength;
|
|
59
|
-
float specular = spec * specularStrength;
|
|
60
|
-
|
|
61
|
-
return light.colour * (diffuse + specular);
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
void main()
|
|
65
|
-
{
|
|
66
|
-
vec3 sampledNormal = texture(normalMap, TexCoord).rgb * 2.0 - 1.0;
|
|
67
|
-
if ( sampledNormal.r + sampledNormal.g + sampledNormal.b <= 0)
|
|
68
|
-
{
|
|
69
|
-
sampledNormal = vec3(0.0, 0.0, 1.0);
|
|
70
|
-
}
|
|
71
|
-
vec3 n = normalize(Normal);
|
|
72
|
-
vec3 t = normalize(Tangent);
|
|
73
|
-
vec3 norm = n;
|
|
74
|
-
if ( length(t) > 0.0 )
|
|
75
|
-
{
|
|
76
|
-
vec3 b = cross(t, n);
|
|
77
|
-
mat3 TBN = mat3(t, b, n);
|
|
78
|
-
norm = normalize(TBN * normalize(sampledNormal));
|
|
79
|
-
}
|
|
80
|
-
vec3 viewDir = normalize(cameraPos - FragPos);
|
|
81
|
-
|
|
82
|
-
vec3 result = ambientLight;
|
|
83
|
-
|
|
84
|
-
for (int i = 0; i < NR_POINT_LIGHTS; i++) {
|
|
85
|
-
if (pointLights[i].sqrRange == 0.0)
|
|
86
|
-
{
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
result += CalcPointLight(pointLights[i], norm, FragPos, viewDir);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
for (int i = 0; i < NR_DIRECTIONAL_LIGHTS; i++) {
|
|
93
|
-
if (directionalLights[i].colour == vec3(0.0))
|
|
94
|
-
{
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
result += CalcDirectionalLight(directionalLights[i], norm, FragPos, viewDir);
|
|
98
|
-
}
|
|
99
|
-
|
|
100
|
-
vec4 tex = texture(image, TexCoord);
|
|
101
|
-
color = tex * vec4(result, 1.0);
|
|
102
|
-
}
|
|
1
|
+
#version 400 core
|
|
2
|
+
|
|
3
|
+
layout(location = 0) out vec4 FragColour;
|
|
4
|
+
layout(location = 1) out vec4 normalRoughness;
|
|
5
|
+
|
|
6
|
+
in vec2 TexCoord;
|
|
7
|
+
in vec3 Normal;
|
|
8
|
+
in vec3 Tangent;
|
|
9
|
+
in vec3 FragPos;
|
|
10
|
+
|
|
11
|
+
uniform sampler2D image; // @fallback white
|
|
12
|
+
uniform sampler2D normalMap; // @fallback normal
|
|
13
|
+
uniform vec3 cameraPos;
|
|
14
|
+
|
|
15
|
+
// Material properties with sensible defaults
|
|
16
|
+
uniform vec3 baseColour = vec3(1.0, 1.0, 1.0);
|
|
17
|
+
uniform float diffuseStrength = 0.5;
|
|
18
|
+
uniform float specularStrength = 0.7;
|
|
19
|
+
uniform float specularPower = 32.0;
|
|
20
|
+
uniform float roughness = 0.5;
|
|
21
|
+
|
|
22
|
+
#include "lighting/lighting.glsl"
|
|
23
|
+
|
|
24
|
+
void main()
|
|
25
|
+
{
|
|
26
|
+
// Sample texture and apply base colour tint
|
|
27
|
+
// (nil textures → white 1x1, baseColour defaults to white in Material)
|
|
28
|
+
vec4 texSample = texture(image, TexCoord);
|
|
29
|
+
vec3 colour = texSample.rgb * baseColour;
|
|
30
|
+
|
|
31
|
+
// Calculate world-space normal (with normal mapping if available)
|
|
32
|
+
vec3 sampledNormal = texture(normalMap, TexCoord).rgb * 2.0 - 1.0;
|
|
33
|
+
vec3 n = normalize(Normal);
|
|
34
|
+
vec3 t = normalize(Tangent);
|
|
35
|
+
vec3 norm = n;
|
|
36
|
+
|
|
37
|
+
// Apply normal map if valid tangent exists
|
|
38
|
+
if (length(t) > 0.0 && (sampledNormal.r + sampledNormal.g + sampledNormal.b) > 0.0) {
|
|
39
|
+
vec3 b = cross(t, n);
|
|
40
|
+
mat3 TBN = mat3(t, b, n);
|
|
41
|
+
norm = normalize(TBN * normalize(sampledNormal));
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
// Calculate lighting
|
|
45
|
+
vec3 viewDir = normalize(cameraPos - FragPos);
|
|
46
|
+
|
|
47
|
+
vec3 result = CalcAllLights(norm, FragPos, viewDir, diffuseStrength, specularStrength, specularPower);
|
|
48
|
+
|
|
49
|
+
FragColour = vec4(colour * result, texSample.a);
|
|
50
|
+
|
|
51
|
+
// Output world-space normal (encoded to 0-1) and roughness in alpha
|
|
52
|
+
normalRoughness = vec4(norm * 0.5 + 0.5, roughness);
|
|
53
|
+
}
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
#version
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
layout (location =
|
|
5
|
-
layout (location =
|
|
6
|
-
layout (location =
|
|
7
|
-
layout (location =
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
out
|
|
12
|
-
out vec3
|
|
13
|
-
out vec3
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
TexCoord = texCoord;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
}
|
|
1
|
+
#version 400 core
|
|
2
|
+
|
|
3
|
+
layout (location = 0) in vec3 vertex;
|
|
4
|
+
layout (location = 1) in vec2 texCoord;
|
|
5
|
+
layout (location = 2) in vec3 normal;
|
|
6
|
+
layout (location = 3) in vec3 tangent;
|
|
7
|
+
layout (location = 7) in mat4 model;
|
|
8
|
+
|
|
9
|
+
uniform mat4 camera;
|
|
10
|
+
|
|
11
|
+
out vec2 TexCoord;
|
|
12
|
+
out vec3 Normal;
|
|
13
|
+
out vec3 Tangent;
|
|
14
|
+
out vec3 FragPos;
|
|
15
|
+
|
|
16
|
+
void main()
|
|
17
|
+
{
|
|
18
|
+
gl_Position = camera * model * vec4(vertex, 1.0);
|
|
19
|
+
TexCoord = texCoord;
|
|
20
|
+
// Transform normal and tangent to world space (proper normal matrix for non-uniform scale)
|
|
21
|
+
mat3 normalMatrix = mat3(transpose(inverse(model)));
|
|
22
|
+
Normal = normalMatrix * normal;
|
|
23
|
+
Tangent = normalMatrix * tangent;
|
|
24
|
+
FragPos = vec3(model * vec4(vertex, 1.0));
|
|
25
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
layout (location = 0) in vec3 vertex;
|
|
4
|
+
layout (location = 7) in mat4 model;
|
|
5
|
+
|
|
6
|
+
uniform mat4 lightSpaceMatrix;
|
|
7
|
+
|
|
8
|
+
out vec3 FragPos;
|
|
9
|
+
|
|
10
|
+
void main()
|
|
11
|
+
{
|
|
12
|
+
vec4 worldPos = model * vec4(vertex, 1.0);
|
|
13
|
+
FragPos = worldPos.xyz;
|
|
14
|
+
gl_Position = lightSpaceMatrix * worldPos;
|
|
15
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture;
|
|
7
|
+
uniform vec2 direction; // (1,0) for horizontal, (0,1) for vertical
|
|
8
|
+
uniform float blurScale; // multiplier for sample spacing
|
|
9
|
+
|
|
10
|
+
// 9-tap gaussian weights
|
|
11
|
+
const float weights[5] = float[](0.227027, 0.1945946, 0.1216216, 0.054054, 0.016216);
|
|
12
|
+
|
|
13
|
+
void main()
|
|
14
|
+
{
|
|
15
|
+
vec2 texelSize = 1.0 / textureSize(screenTexture, 0);
|
|
16
|
+
vec3 result = texture(screenTexture, TexCoords).rgb * weights[0];
|
|
17
|
+
|
|
18
|
+
for (int i = 1; i < 5; i++) {
|
|
19
|
+
vec2 offset = direction * texelSize * float(i) * blurScale;
|
|
20
|
+
result += texture(screenTexture, TexCoords + offset).rgb * weights[i];
|
|
21
|
+
result += texture(screenTexture, TexCoords - offset).rgb * weights[i];
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
color = vec4(result, 1.0);
|
|
25
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture; // original image
|
|
7
|
+
uniform sampler2D bloomTexture; // blurred bright pixels
|
|
8
|
+
uniform float intensity;
|
|
9
|
+
|
|
10
|
+
void main()
|
|
11
|
+
{
|
|
12
|
+
vec3 original = texture(screenTexture, TexCoords).rgb;
|
|
13
|
+
vec3 bloom = texture(bloomTexture, TexCoords).rgb;
|
|
14
|
+
|
|
15
|
+
// Debug: output red to verify shader runs
|
|
16
|
+
// color = vec4(1.0, 0.0, 0.0, 1.0);
|
|
17
|
+
|
|
18
|
+
color = vec4(original + bloom * intensity, 1.0);
|
|
19
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture;
|
|
7
|
+
uniform float threshold;
|
|
8
|
+
|
|
9
|
+
void main()
|
|
10
|
+
{
|
|
11
|
+
vec3 texColor = texture(screenTexture, TexCoords).rgb;
|
|
12
|
+
float brightness = dot(texColor, vec3(0.2126, 0.7152, 0.0722));
|
|
13
|
+
|
|
14
|
+
if (brightness > threshold) {
|
|
15
|
+
color = vec4(texColor, 1.0);
|
|
16
|
+
} else {
|
|
17
|
+
color = vec4(0.0, 0.0, 0.0, 1.0);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture;
|
|
7
|
+
uniform sampler2D normalTexture;
|
|
8
|
+
|
|
9
|
+
void main()
|
|
10
|
+
{
|
|
11
|
+
vec4 normalRough = texture(normalTexture, TexCoords);
|
|
12
|
+
vec3 normal = normalRough.rgb; // already 0-1 encoded
|
|
13
|
+
float roughness = normalRough.a;
|
|
14
|
+
|
|
15
|
+
// Output: RGB = normal colors (visualizes surface orientation)
|
|
16
|
+
// Blue = up, Green = forward, Red = right
|
|
17
|
+
color = vec4(normal, 1.0);
|
|
18
|
+
|
|
19
|
+
// Uncomment to visualize roughness instead:
|
|
20
|
+
// color = vec4(vec3(roughness), 1.0);
|
|
21
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture;
|
|
7
|
+
uniform sampler2D depthTexture;
|
|
8
|
+
|
|
9
|
+
void main()
|
|
10
|
+
{
|
|
11
|
+
float depth = texture(depthTexture, TexCoords).r;
|
|
12
|
+
// Visualize depth (linearize for better visualization)
|
|
13
|
+
float near = 0.1;
|
|
14
|
+
float far = 100.0;
|
|
15
|
+
float linearDepth = (2.0 * near) / (far + near - depth * (far - near));
|
|
16
|
+
color = vec4(vec3(linearDepth), 1.0);
|
|
17
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
#version 330 core
|
|
2
|
+
|
|
3
|
+
in vec2 TexCoords;
|
|
4
|
+
out vec4 color;
|
|
5
|
+
|
|
6
|
+
uniform sampler2D screenTexture;
|
|
7
|
+
uniform sampler2D depthTexture;
|
|
8
|
+
uniform vec2 direction; // (1,0) horizontal, (0,1) vertical
|
|
9
|
+
uniform float focusDistance;
|
|
10
|
+
uniform float focusRange;
|
|
11
|
+
uniform float blurAmount;
|
|
12
|
+
uniform float nearPlane;
|
|
13
|
+
uniform float farPlane;
|
|
14
|
+
|
|
15
|
+
float linearizeDepth(float d) {
|
|
16
|
+
return nearPlane * farPlane / (farPlane - d * (farPlane - nearPlane));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
float calcCoC(vec2 uv) {
|
|
20
|
+
float depth = texture(depthTexture, uv).r;
|
|
21
|
+
float linear = linearizeDepth(depth);
|
|
22
|
+
float coc = max(0.0, linear - focusDistance) / focusRange;
|
|
23
|
+
return clamp(coc, 0.0, 1.0) * blurAmount;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
void main()
|
|
27
|
+
{
|
|
28
|
+
float centerCoC = calcCoC(TexCoords);
|
|
29
|
+
|
|
30
|
+
// Early out for sharp pixels
|
|
31
|
+
if (centerCoC < 0.01) {
|
|
32
|
+
color = texture(screenTexture, TexCoords);
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
vec2 texelSize = 1.0 / textureSize(screenTexture, 0);
|
|
37
|
+
vec3 result = texture(screenTexture, TexCoords).rgb;
|
|
38
|
+
float totalWeight = 1.0;
|
|
39
|
+
|
|
40
|
+
int samples = int(centerCoC * 4.0) + 1;
|
|
41
|
+
|
|
42
|
+
for (int i = 1; i <= samples; i++) {
|
|
43
|
+
vec2 offset = direction * texelSize * float(i) * centerCoC;
|
|
44
|
+
|
|
45
|
+
// Sample both directions
|
|
46
|
+
result += texture(screenTexture, TexCoords + offset).rgb;
|
|
47
|
+
result += texture(screenTexture, TexCoords - offset).rgb;
|
|
48
|
+
totalWeight += 2.0;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
color = vec4(result / totalWeight, 1.0);
|
|
52
|
+
}
|