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.
Files changed (584) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +43 -21
  3. data/bin/build.bash +13 -13
  4. data/bin/import +54 -44
  5. data/ext/gl_native/extconf.rb +20 -0
  6. data/ext/gl_native/gl_native.c +563 -0
  7. data/ext/glfw_native/extconf.rb +18 -0
  8. data/ext/glfw_native/glfw_native.c +451 -0
  9. data/lib/engine/assets/_imported/cube.index_data +36 -0
  10. data/lib/engine/assets/_imported/cube.vertex_data +720 -0
  11. data/lib/engine/assets/_imported/plane.index_data +6 -0
  12. data/lib/engine/assets/_imported/plane.vertex_data +120 -0
  13. data/lib/engine/assets/_imported/sphere.index_data +2880 -0
  14. data/lib/engine/assets/_imported/sphere.vertex_data +57600 -0
  15. data/lib/engine/assets/cube.obj +46 -0
  16. data/lib/engine/assets/plane.obj +16 -0
  17. data/lib/engine/assets/sphere.obj +2488 -0
  18. data/lib/engine/autoloader.rb +11 -11
  19. data/lib/engine/camera.rb +12 -12
  20. data/lib/engine/component.rb +65 -63
  21. data/lib/engine/components/audio_source.rb +43 -41
  22. data/lib/engine/components/direction_light.rb +102 -23
  23. data/lib/engine/components/orthographic_camera.rb +60 -54
  24. data/lib/engine/components/perspective_camera.rb +76 -53
  25. data/lib/engine/components/point_light.rb +80 -24
  26. data/lib/engine/components/renderers/font_renderer.rb +19 -0
  27. data/lib/engine/components/renderers/font_renderer_base.rb +134 -0
  28. data/lib/engine/components/renderers/mesh_renderer.rb +41 -0
  29. data/lib/engine/components/renderers/sprite_renderer.rb +46 -0
  30. data/lib/engine/components/spot_light.rb +90 -0
  31. data/lib/engine/components/sprite_animator.rb +42 -0
  32. data/lib/engine/components/ui/flex/layout.rb +94 -0
  33. data/lib/engine/components/ui/flex/pack_layout.rb +65 -0
  34. data/lib/engine/components/ui/flex/stretch_layout.rb +52 -0
  35. data/lib/engine/components/ui/flex.rb +60 -0
  36. data/lib/engine/components/ui/font_renderer.rb +57 -0
  37. data/lib/engine/components/ui/rect.rb +117 -0
  38. data/lib/engine/components/ui/sprite_clickbox.rb +47 -0
  39. data/lib/engine/components/ui/sprite_renderer.rb +117 -0
  40. data/lib/engine/compute_shader.rb +14 -93
  41. data/lib/engine/compute_texture.rb +13 -0
  42. data/lib/engine/cursor.rb +43 -43
  43. data/lib/engine/debugging.rb +41 -41
  44. data/lib/engine/engine.rb +127 -131
  45. data/lib/engine/font.rb +99 -74
  46. data/lib/engine/game_object.rb +306 -234
  47. data/lib/engine/gl.rb +439 -0
  48. data/lib/engine/glfw.rb +151 -0
  49. data/lib/engine/importers/font_importer.rb +69 -69
  50. data/lib/engine/importers/obj_file.rb +244 -244
  51. data/lib/engine/importers/obj_importer.rb +33 -33
  52. data/lib/engine/input.rb +212 -105
  53. data/lib/engine/material.rb +214 -79
  54. data/lib/engine/matrix_helpers.rb +38 -0
  55. data/lib/engine/mesh.rb +68 -43
  56. data/lib/engine/metal/compute_shader.rb +118 -0
  57. data/lib/engine/metal/compute_texture.rb +176 -0
  58. data/lib/engine/metal/device.rb +98 -0
  59. data/lib/engine/metal/metal_bindings.rb +126 -0
  60. data/lib/engine/opengl/compute_shader.rb +77 -0
  61. data/lib/engine/opengl/compute_texture.rb +31 -0
  62. data/lib/engine/path.rb +92 -92
  63. data/lib/engine/physics/collision.rb +12 -12
  64. data/lib/engine/physics/components/cube_collider.rb +6 -6
  65. data/lib/engine/physics/components/rigidbody.rb +106 -103
  66. data/lib/engine/physics/components/sphere_collider.rb +103 -93
  67. data/lib/engine/physics/physics_resolver.rb +49 -37
  68. data/lib/engine/polygon_mesh.rb +45 -45
  69. data/lib/engine/quaternion.rb +234 -234
  70. data/lib/engine/rendering/cubemap_shadow_map_array.rb +77 -0
  71. data/lib/engine/rendering/gpu_timer.rb +68 -0
  72. data/lib/engine/rendering/instance_renderer.rb +232 -153
  73. data/lib/engine/rendering/post_processing/bloom_effect.rb +87 -0
  74. data/lib/engine/rendering/post_processing/depth_debug_effect.rb +17 -0
  75. data/lib/engine/rendering/post_processing/depth_of_field_effect.rb +52 -0
  76. data/lib/engine/rendering/post_processing/effect.rb +11 -0
  77. data/lib/engine/rendering/post_processing/post_processing_effect.rb +86 -0
  78. data/lib/engine/rendering/post_processing/single_pass_effect.rb +19 -0
  79. data/lib/engine/rendering/post_processing/ssao_effect.rb +182 -0
  80. data/lib/engine/rendering/post_processing/ssr_effect.rb +89 -0
  81. data/lib/engine/rendering/post_processing/tint_effect.rb +18 -0
  82. data/lib/engine/rendering/render_pipeline.rb +267 -35
  83. data/lib/engine/rendering/render_texture.rb +118 -0
  84. data/lib/engine/rendering/screen_quad.rb +64 -0
  85. data/lib/engine/rendering/shadow_map_array.rb +72 -0
  86. data/lib/engine/rendering/skybox_cubemap.rb +119 -0
  87. data/lib/engine/rendering/skybox_renderer.rb +64 -0
  88. data/lib/engine/rendering/ui/stencil_manager.rb +69 -0
  89. data/lib/engine/screenshoter.rb +34 -34
  90. data/lib/engine/serialization/graph_serializer.rb +74 -0
  91. data/lib/engine/serialization/object_serializer.rb +98 -0
  92. data/lib/engine/serialization/serializable.rb +78 -0
  93. data/lib/engine/serialization/yaml_persistence.rb +45 -0
  94. data/lib/engine/shader.rb +215 -119
  95. data/lib/engine/shaders/colour_frag.glsl +16 -8
  96. data/lib/engine/shaders/colour_vertex.glsl +20 -13
  97. data/lib/engine/shaders/fullscreen_frag.glsl +11 -0
  98. data/lib/engine/shaders/fullscreen_vertex.glsl +12 -0
  99. data/lib/engine/shaders/instanced_sprite_frag.glsl +21 -0
  100. data/lib/engine/shaders/{skybox_vert.glsl → instanced_sprite_vertex.glsl} +15 -14
  101. data/lib/engine/shaders/lighting/directional_light.glsl +49 -0
  102. data/lib/engine/shaders/lighting/lighting.glsl +33 -0
  103. data/lib/engine/shaders/lighting/lighting_common.glsl +13 -0
  104. data/lib/engine/shaders/lighting/point_light.glsl +46 -0
  105. data/lib/engine/shaders/lighting/spot_light.glsl +80 -0
  106. data/lib/engine/shaders/mesh_frag.glsl +53 -102
  107. data/lib/engine/shaders/mesh_vertex.glsl +25 -25
  108. data/lib/engine/shaders/point_shadow_frag.glsl +12 -0
  109. data/lib/engine/shaders/point_shadow_vertex.glsl +15 -0
  110. data/lib/engine/shaders/post_process/bloom_blur_frag.glsl +25 -0
  111. data/lib/engine/shaders/post_process/bloom_combine_frag.glsl +19 -0
  112. data/lib/engine/shaders/post_process/bloom_threshold_frag.glsl +19 -0
  113. data/lib/engine/shaders/post_process/debug_normals_frag.glsl +21 -0
  114. data/lib/engine/shaders/post_process/depth_debug_frag.glsl +17 -0
  115. data/lib/engine/shaders/post_process/dof_blur_frag.glsl +52 -0
  116. data/lib/engine/shaders/post_process/skybox_frag.glsl +29 -0
  117. data/lib/engine/shaders/post_process/ssao/blur_frag.glsl +50 -0
  118. data/lib/engine/shaders/post_process/ssao/combine_frag.glsl +15 -0
  119. data/lib/engine/shaders/post_process/ssao/frag.glsl +99 -0
  120. data/lib/engine/shaders/post_process/ssr/combine_frag.glsl +16 -0
  121. data/lib/engine/shaders/post_process/ssr/frag.glsl +118 -0
  122. data/lib/engine/shaders/post_process/tint_frag.glsl +14 -0
  123. data/lib/engine/shaders/shadow_frag.glsl +6 -0
  124. data/lib/engine/shaders/shadow_vertex.glsl +11 -0
  125. data/lib/engine/shaders/skybox_cubemap_frag.glsl +46 -0
  126. data/lib/engine/shaders/sprite_frag.glsl +17 -17
  127. data/lib/engine/shaders/sprite_vertex.glsl +15 -15
  128. data/lib/engine/shaders/text_frag.glsl +15 -15
  129. data/lib/engine/shaders/text_vertex.glsl +31 -31
  130. data/lib/engine/shaders/ui_sprite_frag.glsl +15 -15
  131. data/lib/engine/shaders/ui_sprite_vertex.glsl +15 -15
  132. data/lib/engine/shaders/vertex_lit_frag.glsl +33 -89
  133. data/lib/engine/shaders/vertex_lit_vertex.glsl +28 -28
  134. data/lib/engine/standard_meshes/quad_mesh.rb +26 -0
  135. data/lib/engine/standard_objects/cube.rb +23 -0
  136. data/lib/engine/standard_objects/default_material.rb +20 -0
  137. data/lib/engine/standard_objects/plane.rb +23 -0
  138. data/lib/engine/standard_objects/sphere.rb +23 -0
  139. data/lib/engine/tangent_calculator.rb +42 -42
  140. data/lib/engine/texture.rb +62 -53
  141. data/lib/engine/ui/rect.rb +16 -0
  142. data/lib/engine/video_mode.rb +37 -37
  143. data/lib/engine/window.rb +126 -126
  144. data/lib/ruby_rpg.rb +116 -58
  145. data/vendor/glew-2.2.0-win32/LICENSE.txt +73 -0
  146. data/vendor/glew-2.2.0-win32/bin/Release/x64/glew32.dll +0 -0
  147. data/vendor/glew-2.2.0-win32/include/GL/glew.h +26427 -0
  148. data/vendor/glew-2.2.0-win32/lib/Release/x64/glew32.lib +0 -0
  149. data/{glfw-3.3.9.bin.MACOS → vendor/glfw-3.3.9.bin.MACOS}/lib-arm64/libglfw.3.dylib +0 -0
  150. data/{glfw-3.3.9.bin.MACOS → vendor/glfw-3.4.bin.WIN64}/LICENSE.md +23 -23
  151. metadata +122 -463
  152. data/glfw-3.3.9.bin.MACOS/README.md +0 -5
  153. data/glfw-3.3.9.bin.MACOS/docs/html/bc_s.png +0 -0
  154. data/glfw-3.3.9.bin.MACOS/docs/html/bc_sd.png +0 -0
  155. data/glfw-3.3.9.bin.MACOS/docs/html/build_8dox.html +0 -81
  156. data/glfw-3.3.9.bin.MACOS/docs/html/build_guide.html +0 -199
  157. data/glfw-3.3.9.bin.MACOS/docs/html/closed.png +0 -0
  158. data/glfw-3.3.9.bin.MACOS/docs/html/compat_8dox.html +0 -81
  159. data/glfw-3.3.9.bin.MACOS/docs/html/compat_guide.html +0 -153
  160. data/glfw-3.3.9.bin.MACOS/docs/html/compile_8dox.html +0 -81
  161. data/glfw-3.3.9.bin.MACOS/docs/html/compile_guide.html +0 -223
  162. data/glfw-3.3.9.bin.MACOS/docs/html/context_8dox.html +0 -81
  163. data/glfw-3.3.9.bin.MACOS/docs/html/context_guide.html +0 -259
  164. data/glfw-3.3.9.bin.MACOS/docs/html/deprecated.html +0 -88
  165. data/glfw-3.3.9.bin.MACOS/docs/html/dir_08423ce7729c4554356a7de7171ba263.html +0 -85
  166. data/glfw-3.3.9.bin.MACOS/docs/html/dir_2dcebcdf14b42e92a6ed85c61bda6b9d.html +0 -93
  167. data/glfw-3.3.9.bin.MACOS/docs/html/dir_62ce056722ee97c199075aa1d6eca309.html +0 -95
  168. data/glfw-3.3.9.bin.MACOS/docs/html/dir_dddf4cf62655095a666cf715de3a31a2.html +0 -91
  169. data/glfw-3.3.9.bin.MACOS/docs/html/doc.svg +0 -12
  170. data/glfw-3.3.9.bin.MACOS/docs/html/docd.svg +0 -12
  171. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.css +0 -1685
  172. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.svg +0 -28
  173. data/glfw-3.3.9.bin.MACOS/docs/html/dynsections.js +0 -192
  174. data/glfw-3.3.9.bin.MACOS/docs/html/extra.css +0 -1
  175. data/glfw-3.3.9.bin.MACOS/docs/html/files.html +0 -91
  176. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosed.svg +0 -11
  177. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosedd.svg +0 -11
  178. data/glfw-3.3.9.bin.MACOS/docs/html/folderopen.svg +0 -17
  179. data/glfw-3.3.9.bin.MACOS/docs/html/folderopend.svg +0 -12
  180. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h.html +0 -1661
  181. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h_source.html +0 -1175
  182. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h.html +0 -167
  183. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h_source.html +0 -303
  184. data/glfw-3.3.9.bin.MACOS/docs/html/group__buttons.html +0 -282
  185. data/glfw-3.3.9.bin.MACOS/docs/html/group__context.html +0 -304
  186. data/glfw-3.3.9.bin.MACOS/docs/html/group__errors.html +0 -304
  187. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__axes.html +0 -202
  188. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__buttons.html +0 -410
  189. data/glfw-3.3.9.bin.MACOS/docs/html/group__hat__state.html +0 -234
  190. data/glfw-3.3.9.bin.MACOS/docs/html/group__init.html +0 -570
  191. data/glfw-3.3.9.bin.MACOS/docs/html/group__input.html +0 -2255
  192. data/glfw-3.3.9.bin.MACOS/docs/html/group__joysticks.html +0 -362
  193. data/glfw-3.3.9.bin.MACOS/docs/html/group__keys.html +0 -2034
  194. data/glfw-3.3.9.bin.MACOS/docs/html/group__mods.html +0 -198
  195. data/glfw-3.3.9.bin.MACOS/docs/html/group__monitor.html +0 -848
  196. data/glfw-3.3.9.bin.MACOS/docs/html/group__native.html +0 -812
  197. data/glfw-3.3.9.bin.MACOS/docs/html/group__shapes.html +0 -198
  198. data/glfw-3.3.9.bin.MACOS/docs/html/group__vulkan.html +0 -359
  199. data/glfw-3.3.9.bin.MACOS/docs/html/group__window.html +0 -3434
  200. data/glfw-3.3.9.bin.MACOS/docs/html/index.html +0 -100
  201. data/glfw-3.3.9.bin.MACOS/docs/html/input_8dox.html +0 -81
  202. data/glfw-3.3.9.bin.MACOS/docs/html/input_guide.html +0 -570
  203. data/glfw-3.3.9.bin.MACOS/docs/html/internal_8dox.html +0 -81
  204. data/glfw-3.3.9.bin.MACOS/docs/html/internals_guide.html +0 -132
  205. data/glfw-3.3.9.bin.MACOS/docs/html/intro_8dox.html +0 -81
  206. data/glfw-3.3.9.bin.MACOS/docs/html/intro_guide.html +0 -351
  207. data/glfw-3.3.9.bin.MACOS/docs/html/jquery.js +0 -34
  208. data/glfw-3.3.9.bin.MACOS/docs/html/main_8dox.html +0 -81
  209. data/glfw-3.3.9.bin.MACOS/docs/html/menu.js +0 -136
  210. data/glfw-3.3.9.bin.MACOS/docs/html/menudata.js +0 -29
  211. data/glfw-3.3.9.bin.MACOS/docs/html/minus.svg +0 -8
  212. data/glfw-3.3.9.bin.MACOS/docs/html/minusd.svg +0 -8
  213. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_8dox.html +0 -81
  214. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_guide.html +0 -229
  215. data/glfw-3.3.9.bin.MACOS/docs/html/moving_8dox.html +0 -81
  216. data/glfw-3.3.9.bin.MACOS/docs/html/moving_guide.html +0 -374
  217. data/glfw-3.3.9.bin.MACOS/docs/html/nav_f.png +0 -0
  218. data/glfw-3.3.9.bin.MACOS/docs/html/nav_fd.png +0 -0
  219. data/glfw-3.3.9.bin.MACOS/docs/html/nav_g.png +0 -0
  220. data/glfw-3.3.9.bin.MACOS/docs/html/nav_h.png +0 -0
  221. data/glfw-3.3.9.bin.MACOS/docs/html/nav_hd.png +0 -0
  222. data/glfw-3.3.9.bin.MACOS/docs/html/news.html +0 -634
  223. data/glfw-3.3.9.bin.MACOS/docs/html/news_8dox.html +0 -81
  224. data/glfw-3.3.9.bin.MACOS/docs/html/open.png +0 -0
  225. data/glfw-3.3.9.bin.MACOS/docs/html/pages.html +0 -99
  226. data/glfw-3.3.9.bin.MACOS/docs/html/plus.svg +0 -9
  227. data/glfw-3.3.9.bin.MACOS/docs/html/plusd.svg +0 -9
  228. data/glfw-3.3.9.bin.MACOS/docs/html/quick_8dox.html +0 -81
  229. data/glfw-3.3.9.bin.MACOS/docs/html/quick_guide.html +0 -397
  230. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_0.js +0 -5
  231. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1.js +0 -4
  232. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_10.js +0 -65
  233. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_11.js +0 -26
  234. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_12.js +0 -44
  235. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_13.js +0 -34
  236. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_14.js +0 -12
  237. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_15.js +0 -52
  238. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_16.js +0 -69
  239. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_17.js +0 -51
  240. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_18.js +0 -14
  241. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_19.js +0 -36
  242. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1a.js +0 -98
  243. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1b.js +0 -12
  244. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_2.js +0 -6
  245. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_3.js +0 -9
  246. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_4.js +0 -57
  247. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_5.js +0 -22
  248. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_6.js +0 -103
  249. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_7.js +0 -23
  250. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_8.js +0 -35
  251. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_9.js +0 -63
  252. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_a.js +0 -505
  253. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_b.js +0 -24
  254. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_c.js +0 -50
  255. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_d.js +0 -17
  256. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_e.js +0 -12
  257. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_f.js +0 -35
  258. data/glfw-3.3.9.bin.MACOS/docs/html/search/classes_0.js +0 -7
  259. data/glfw-3.3.9.bin.MACOS/docs/html/search/close.svg +0 -18
  260. data/glfw-3.3.9.bin.MACOS/docs/html/search/defines_0.js +0 -34
  261. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_0.js +0 -4
  262. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_1.js +0 -6
  263. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_2.js +0 -5
  264. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_3.js +0 -6
  265. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_4.js +0 -6
  266. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_5.js +0 -4
  267. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_6.js +0 -4
  268. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_7.js +0 -4
  269. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_8.js +0 -4
  270. data/glfw-3.3.9.bin.MACOS/docs/html/search/functions_0.js +0 -146
  271. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_0.js +0 -6
  272. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_1.js +0 -4
  273. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_10.js +0 -4
  274. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_2.js +0 -6
  275. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_3.js +0 -5
  276. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_4.js +0 -4
  277. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_5.js +0 -5
  278. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_6.js +0 -4
  279. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_7.js +0 -5
  280. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_8.js +0 -5
  281. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_9.js +0 -6
  282. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_a.js +0 -6
  283. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_b.js +0 -4
  284. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_c.js +0 -4
  285. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_d.js +0 -7
  286. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_e.js +0 -4
  287. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_f.js +0 -5
  288. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag.svg +0 -24
  289. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_d.svg +0 -24
  290. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_sel.svg +0 -31
  291. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_seld.svg +0 -31
  292. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_0.js +0 -4
  293. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_1.js +0 -4
  294. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_10.js +0 -4
  295. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_2.js +0 -5
  296. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_3.js +0 -4
  297. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_4.js +0 -6
  298. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_5.js +0 -4
  299. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_6.js +0 -4
  300. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_7.js +0 -7
  301. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_8.js +0 -6
  302. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_9.js +0 -4
  303. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_a.js +0 -5
  304. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_b.js +0 -5
  305. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_c.js +0 -4
  306. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_d.js +0 -6
  307. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_e.js +0 -6
  308. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_f.js +0 -4
  309. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.css +0 -291
  310. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.js +0 -840
  311. data/glfw-3.3.9.bin.MACOS/docs/html/search/searchdata.js +0 -39
  312. data/glfw-3.3.9.bin.MACOS/docs/html/search/typedefs_0.js +0 -32
  313. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_0.js +0 -4
  314. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_1.js +0 -6
  315. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_2.js +0 -5
  316. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_3.js +0 -4
  317. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_4.js +0 -4
  318. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_5.js +0 -6
  319. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_6.js +0 -4
  320. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_7.js +0 -4
  321. data/glfw-3.3.9.bin.MACOS/docs/html/spaces.svg +0 -877
  322. data/glfw-3.3.9.bin.MACOS/docs/html/splitbar.png +0 -0
  323. data/glfw-3.3.9.bin.MACOS/docs/html/splitbard.png +0 -0
  324. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgamepadstate.html +0 -134
  325. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgammaramp.html +0 -170
  326. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wimage.html +0 -151
  327. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wvidmode.html +0 -204
  328. data/glfw-3.3.9.bin.MACOS/docs/html/sync_off.png +0 -0
  329. data/glfw-3.3.9.bin.MACOS/docs/html/sync_on.png +0 -0
  330. data/glfw-3.3.9.bin.MACOS/docs/html/tab_a.png +0 -0
  331. data/glfw-3.3.9.bin.MACOS/docs/html/tab_ad.png +0 -0
  332. data/glfw-3.3.9.bin.MACOS/docs/html/tab_b.png +0 -0
  333. data/glfw-3.3.9.bin.MACOS/docs/html/tab_bd.png +0 -0
  334. data/glfw-3.3.9.bin.MACOS/docs/html/tab_h.png +0 -0
  335. data/glfw-3.3.9.bin.MACOS/docs/html/tab_hd.png +0 -0
  336. data/glfw-3.3.9.bin.MACOS/docs/html/tab_s.png +0 -0
  337. data/glfw-3.3.9.bin.MACOS/docs/html/tab_sd.png +0 -0
  338. data/glfw-3.3.9.bin.MACOS/docs/html/tabs.css +0 -1
  339. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_8dox.html +0 -81
  340. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_guide.html +0 -196
  341. data/glfw-3.3.9.bin.MACOS/docs/html/window_8dox.html +0 -81
  342. data/glfw-3.3.9.bin.MACOS/docs/html/window_guide.html +0 -763
  343. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3.h +0 -5932
  344. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3native.h +0 -634
  345. data/glfw-3.3.9.bin.MACOS/lib-arm64/libglfw3.a +0 -0
  346. data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw.3.dylib +0 -0
  347. data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw3.a +0 -0
  348. data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw.3.dylib +0 -0
  349. data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw3.a +0 -0
  350. data/glfw-3.4.bin.WIN64/README.md +0 -70
  351. data/glfw-3.4.bin.WIN64/docs/html/bc_s.png +0 -0
  352. data/glfw-3.4.bin.WIN64/docs/html/bc_sd.png +0 -0
  353. data/glfw-3.4.bin.WIN64/docs/html/build_8md.html +0 -81
  354. data/glfw-3.4.bin.WIN64/docs/html/build_guide.html +0 -217
  355. data/glfw-3.4.bin.WIN64/docs/html/closed.png +0 -0
  356. data/glfw-3.4.bin.WIN64/docs/html/compat_8md.html +0 -81
  357. data/glfw-3.4.bin.WIN64/docs/html/compat_guide.html +0 -156
  358. data/glfw-3.4.bin.WIN64/docs/html/compile_8md.html +0 -81
  359. data/glfw-3.4.bin.WIN64/docs/html/compile_guide.html +0 -219
  360. data/glfw-3.4.bin.WIN64/docs/html/context_8md.html +0 -81
  361. data/glfw-3.4.bin.WIN64/docs/html/context_guide.html +0 -258
  362. data/glfw-3.4.bin.WIN64/docs/html/deprecated.html +0 -88
  363. data/glfw-3.4.bin.WIN64/docs/html/dir_13577e2d8b9423099662de029791bd7d.html +0 -93
  364. data/glfw-3.4.bin.WIN64/docs/html/dir_7f92719a7fe62e5b064f87d7a3c220b1.html +0 -95
  365. data/glfw-3.4.bin.WIN64/docs/html/dir_a788ef6c2b1e5b367804e0b6ccfd6f11.html +0 -85
  366. data/glfw-3.4.bin.WIN64/docs/html/dir_b11153cd0f4fd04a7564cc166f482635.html +0 -91
  367. data/glfw-3.4.bin.WIN64/docs/html/doc.svg +0 -12
  368. data/glfw-3.4.bin.WIN64/docs/html/docd.svg +0 -12
  369. data/glfw-3.4.bin.WIN64/docs/html/doxygen.css +0 -1685
  370. data/glfw-3.4.bin.WIN64/docs/html/doxygen.svg +0 -28
  371. data/glfw-3.4.bin.WIN64/docs/html/dynsections.js +0 -192
  372. data/glfw-3.4.bin.WIN64/docs/html/extra.css +0 -2
  373. data/glfw-3.4.bin.WIN64/docs/html/files.html +0 -91
  374. data/glfw-3.4.bin.WIN64/docs/html/folderclosed.svg +0 -11
  375. data/glfw-3.4.bin.WIN64/docs/html/folderclosedd.svg +0 -11
  376. data/glfw-3.4.bin.WIN64/docs/html/folderopen.svg +0 -17
  377. data/glfw-3.4.bin.WIN64/docs/html/folderopend.svg +0 -12
  378. data/glfw-3.4.bin.WIN64/docs/html/glfw3_8h.html +0 -1910
  379. data/glfw-3.4.bin.WIN64/docs/html/glfw3_8h_source.html +0 -1260
  380. data/glfw-3.4.bin.WIN64/docs/html/glfw3native_8h.html +0 -170
  381. data/glfw-3.4.bin.WIN64/docs/html/glfw3native_8h_source.html +0 -306
  382. data/glfw-3.4.bin.WIN64/docs/html/group__buttons.html +0 -282
  383. data/glfw-3.4.bin.WIN64/docs/html/group__context.html +0 -304
  384. data/glfw-3.4.bin.WIN64/docs/html/group__errors.html +0 -384
  385. data/glfw-3.4.bin.WIN64/docs/html/group__gamepad__axes.html +0 -202
  386. data/glfw-3.4.bin.WIN64/docs/html/group__gamepad__buttons.html +0 -410
  387. data/glfw-3.4.bin.WIN64/docs/html/group__hat__state.html +0 -234
  388. data/glfw-3.4.bin.WIN64/docs/html/group__init.html +0 -1015
  389. data/glfw-3.4.bin.WIN64/docs/html/group__input.html +0 -2285
  390. data/glfw-3.4.bin.WIN64/docs/html/group__joysticks.html +0 -362
  391. data/glfw-3.4.bin.WIN64/docs/html/group__keys.html +0 -2034
  392. data/glfw-3.4.bin.WIN64/docs/html/group__mods.html +0 -198
  393. data/glfw-3.4.bin.WIN64/docs/html/group__monitor.html +0 -849
  394. data/glfw-3.4.bin.WIN64/docs/html/group__native.html +0 -837
  395. data/glfw-3.4.bin.WIN64/docs/html/group__shapes.html +0 -337
  396. data/glfw-3.4.bin.WIN64/docs/html/group__vulkan.html +0 -361
  397. data/glfw-3.4.bin.WIN64/docs/html/group__window.html +0 -3608
  398. data/glfw-3.4.bin.WIN64/docs/html/index.html +0 -100
  399. data/glfw-3.4.bin.WIN64/docs/html/input_8md.html +0 -81
  400. data/glfw-3.4.bin.WIN64/docs/html/input_guide.html +0 -576
  401. data/glfw-3.4.bin.WIN64/docs/html/internal_8md.html +0 -81
  402. data/glfw-3.4.bin.WIN64/docs/html/internals_guide.html +0 -135
  403. data/glfw-3.4.bin.WIN64/docs/html/intro_8md.html +0 -81
  404. data/glfw-3.4.bin.WIN64/docs/html/intro_guide.html +0 -429
  405. data/glfw-3.4.bin.WIN64/docs/html/jquery.js +0 -34
  406. data/glfw-3.4.bin.WIN64/docs/html/main_8md.html +0 -81
  407. data/glfw-3.4.bin.WIN64/docs/html/menu.js +0 -136
  408. data/glfw-3.4.bin.WIN64/docs/html/menudata.js +0 -30
  409. data/glfw-3.4.bin.WIN64/docs/html/minus.svg +0 -8
  410. data/glfw-3.4.bin.WIN64/docs/html/minusd.svg +0 -8
  411. data/glfw-3.4.bin.WIN64/docs/html/monitor_8md.html +0 -81
  412. data/glfw-3.4.bin.WIN64/docs/html/monitor_guide.html +0 -228
  413. data/glfw-3.4.bin.WIN64/docs/html/moving_8md.html +0 -81
  414. data/glfw-3.4.bin.WIN64/docs/html/moving_guide.html +0 -360
  415. data/glfw-3.4.bin.WIN64/docs/html/nav_f.png +0 -0
  416. data/glfw-3.4.bin.WIN64/docs/html/nav_fd.png +0 -0
  417. data/glfw-3.4.bin.WIN64/docs/html/nav_g.png +0 -0
  418. data/glfw-3.4.bin.WIN64/docs/html/nav_h.png +0 -0
  419. data/glfw-3.4.bin.WIN64/docs/html/nav_hd.png +0 -0
  420. data/glfw-3.4.bin.WIN64/docs/html/news.html +0 -336
  421. data/glfw-3.4.bin.WIN64/docs/html/news_8md.html +0 -81
  422. data/glfw-3.4.bin.WIN64/docs/html/open.png +0 -0
  423. data/glfw-3.4.bin.WIN64/docs/html/pages.html +0 -99
  424. data/glfw-3.4.bin.WIN64/docs/html/plus.svg +0 -9
  425. data/glfw-3.4.bin.WIN64/docs/html/plusd.svg +0 -9
  426. data/glfw-3.4.bin.WIN64/docs/html/quick_8md.html +0 -81
  427. data/glfw-3.4.bin.WIN64/docs/html/quick_guide.html +0 -406
  428. data/glfw-3.4.bin.WIN64/docs/html/search/all_0.js +0 -4
  429. data/glfw-3.4.bin.WIN64/docs/html/search/all_1.js +0 -4
  430. data/glfw-3.4.bin.WIN64/docs/html/search/all_10.js +0 -13
  431. data/glfw-3.4.bin.WIN64/docs/html/search/all_11.js +0 -11
  432. data/glfw-3.4.bin.WIN64/docs/html/search/all_12.js +0 -26
  433. data/glfw-3.4.bin.WIN64/docs/html/search/all_13.js +0 -51
  434. data/glfw-3.4.bin.WIN64/docs/html/search/all_14.js +0 -22
  435. data/glfw-3.4.bin.WIN64/docs/html/search/all_15.js +0 -35
  436. data/glfw-3.4.bin.WIN64/docs/html/search/all_16.js +0 -29
  437. data/glfw-3.4.bin.WIN64/docs/html/search/all_17.js +0 -8
  438. data/glfw-3.4.bin.WIN64/docs/html/search/all_18.js +0 -44
  439. data/glfw-3.4.bin.WIN64/docs/html/search/all_19.js +0 -60
  440. data/glfw-3.4.bin.WIN64/docs/html/search/all_1a.js +0 -39
  441. data/glfw-3.4.bin.WIN64/docs/html/search/all_1b.js +0 -8
  442. data/glfw-3.4.bin.WIN64/docs/html/search/all_1c.js +0 -32
  443. data/glfw-3.4.bin.WIN64/docs/html/search/all_1d.js +0 -84
  444. data/glfw-3.4.bin.WIN64/docs/html/search/all_1e.js +0 -13
  445. data/glfw-3.4.bin.WIN64/docs/html/search/all_1f.js +0 -4
  446. data/glfw-3.4.bin.WIN64/docs/html/search/all_2.js +0 -5
  447. data/glfw-3.4.bin.WIN64/docs/html/search/all_3.js +0 -4
  448. data/glfw-3.4.bin.WIN64/docs/html/search/all_4.js +0 -4
  449. data/glfw-3.4.bin.WIN64/docs/html/search/all_5.js +0 -4
  450. data/glfw-3.4.bin.WIN64/docs/html/search/all_6.js +0 -4
  451. data/glfw-3.4.bin.WIN64/docs/html/search/all_7.js +0 -58
  452. data/glfw-3.4.bin.WIN64/docs/html/search/all_8.js +0 -21
  453. data/glfw-3.4.bin.WIN64/docs/html/search/all_9.js +0 -82
  454. data/glfw-3.4.bin.WIN64/docs/html/search/all_a.js +0 -20
  455. data/glfw-3.4.bin.WIN64/docs/html/search/all_b.js +0 -26
  456. data/glfw-3.4.bin.WIN64/docs/html/search/all_c.js +0 -35
  457. data/glfw-3.4.bin.WIN64/docs/html/search/all_d.js +0 -555
  458. data/glfw-3.4.bin.WIN64/docs/html/search/all_e.js +0 -23
  459. data/glfw-3.4.bin.WIN64/docs/html/search/all_f.js +0 -40
  460. data/glfw-3.4.bin.WIN64/docs/html/search/classes_0.js +0 -8
  461. data/glfw-3.4.bin.WIN64/docs/html/search/close.svg +0 -18
  462. data/glfw-3.4.bin.WIN64/docs/html/search/defines_0.js +0 -43
  463. data/glfw-3.4.bin.WIN64/docs/html/search/files_0.js +0 -4
  464. data/glfw-3.4.bin.WIN64/docs/html/search/files_1.js +0 -6
  465. data/glfw-3.4.bin.WIN64/docs/html/search/files_2.js +0 -5
  466. data/glfw-3.4.bin.WIN64/docs/html/search/files_3.js +0 -6
  467. data/glfw-3.4.bin.WIN64/docs/html/search/files_4.js +0 -6
  468. data/glfw-3.4.bin.WIN64/docs/html/search/files_5.js +0 -4
  469. data/glfw-3.4.bin.WIN64/docs/html/search/files_6.js +0 -4
  470. data/glfw-3.4.bin.WIN64/docs/html/search/files_7.js +0 -4
  471. data/glfw-3.4.bin.WIN64/docs/html/search/files_8.js +0 -4
  472. data/glfw-3.4.bin.WIN64/docs/html/search/functions_0.js +0 -152
  473. data/glfw-3.4.bin.WIN64/docs/html/search/groups_0.js +0 -6
  474. data/glfw-3.4.bin.WIN64/docs/html/search/groups_1.js +0 -4
  475. data/glfw-3.4.bin.WIN64/docs/html/search/groups_10.js +0 -4
  476. data/glfw-3.4.bin.WIN64/docs/html/search/groups_2.js +0 -6
  477. data/glfw-3.4.bin.WIN64/docs/html/search/groups_3.js +0 -5
  478. data/glfw-3.4.bin.WIN64/docs/html/search/groups_4.js +0 -4
  479. data/glfw-3.4.bin.WIN64/docs/html/search/groups_5.js +0 -5
  480. data/glfw-3.4.bin.WIN64/docs/html/search/groups_6.js +0 -4
  481. data/glfw-3.4.bin.WIN64/docs/html/search/groups_7.js +0 -5
  482. data/glfw-3.4.bin.WIN64/docs/html/search/groups_8.js +0 -5
  483. data/glfw-3.4.bin.WIN64/docs/html/search/groups_9.js +0 -6
  484. data/glfw-3.4.bin.WIN64/docs/html/search/groups_a.js +0 -6
  485. data/glfw-3.4.bin.WIN64/docs/html/search/groups_b.js +0 -4
  486. data/glfw-3.4.bin.WIN64/docs/html/search/groups_c.js +0 -4
  487. data/glfw-3.4.bin.WIN64/docs/html/search/groups_d.js +0 -7
  488. data/glfw-3.4.bin.WIN64/docs/html/search/groups_e.js +0 -4
  489. data/glfw-3.4.bin.WIN64/docs/html/search/groups_f.js +0 -5
  490. data/glfw-3.4.bin.WIN64/docs/html/search/mag.svg +0 -24
  491. data/glfw-3.4.bin.WIN64/docs/html/search/mag_d.svg +0 -24
  492. data/glfw-3.4.bin.WIN64/docs/html/search/mag_sel.svg +0 -31
  493. data/glfw-3.4.bin.WIN64/docs/html/search/mag_seld.svg +0 -31
  494. data/glfw-3.4.bin.WIN64/docs/html/search/pages_0.js +0 -4
  495. data/glfw-3.4.bin.WIN64/docs/html/search/pages_1.js +0 -5
  496. data/glfw-3.4.bin.WIN64/docs/html/search/pages_10.js +0 -5
  497. data/glfw-3.4.bin.WIN64/docs/html/search/pages_11.js +0 -4
  498. data/glfw-3.4.bin.WIN64/docs/html/search/pages_2.js +0 -4
  499. data/glfw-3.4.bin.WIN64/docs/html/search/pages_3.js +0 -5
  500. data/glfw-3.4.bin.WIN64/docs/html/search/pages_4.js +0 -4
  501. data/glfw-3.4.bin.WIN64/docs/html/search/pages_5.js +0 -6
  502. data/glfw-3.4.bin.WIN64/docs/html/search/pages_6.js +0 -4
  503. data/glfw-3.4.bin.WIN64/docs/html/search/pages_7.js +0 -5
  504. data/glfw-3.4.bin.WIN64/docs/html/search/pages_8.js +0 -7
  505. data/glfw-3.4.bin.WIN64/docs/html/search/pages_9.js +0 -7
  506. data/glfw-3.4.bin.WIN64/docs/html/search/pages_a.js +0 -4
  507. data/glfw-3.4.bin.WIN64/docs/html/search/pages_b.js +0 -5
  508. data/glfw-3.4.bin.WIN64/docs/html/search/pages_c.js +0 -4
  509. data/glfw-3.4.bin.WIN64/docs/html/search/pages_d.js +0 -4
  510. data/glfw-3.4.bin.WIN64/docs/html/search/pages_e.js +0 -6
  511. data/glfw-3.4.bin.WIN64/docs/html/search/pages_f.js +0 -6
  512. data/glfw-3.4.bin.WIN64/docs/html/search/search.css +0 -291
  513. data/glfw-3.4.bin.WIN64/docs/html/search/search.js +0 -840
  514. data/glfw-3.4.bin.WIN64/docs/html/search/searchdata.js +0 -39
  515. data/glfw-3.4.bin.WIN64/docs/html/search/typedefs_0.js +0 -36
  516. data/glfw-3.4.bin.WIN64/docs/html/search/variables_0.js +0 -5
  517. data/glfw-3.4.bin.WIN64/docs/html/search/variables_1.js +0 -6
  518. data/glfw-3.4.bin.WIN64/docs/html/search/variables_2.js +0 -4
  519. data/glfw-3.4.bin.WIN64/docs/html/search/variables_3.js +0 -5
  520. data/glfw-3.4.bin.WIN64/docs/html/search/variables_4.js +0 -4
  521. data/glfw-3.4.bin.WIN64/docs/html/search/variables_5.js +0 -4
  522. data/glfw-3.4.bin.WIN64/docs/html/search/variables_6.js +0 -7
  523. data/glfw-3.4.bin.WIN64/docs/html/search/variables_7.js +0 -4
  524. data/glfw-3.4.bin.WIN64/docs/html/search/variables_8.js +0 -4
  525. data/glfw-3.4.bin.WIN64/docs/html/search/variables_9.js +0 -4
  526. data/glfw-3.4.bin.WIN64/docs/html/spaces.svg +0 -877
  527. data/glfw-3.4.bin.WIN64/docs/html/splitbar.png +0 -0
  528. data/glfw-3.4.bin.WIN64/docs/html/splitbard.png +0 -0
  529. data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wallocator.html +0 -168
  530. data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wgamepadstate.html +0 -134
  531. data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wgammaramp.html +0 -170
  532. data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wimage.html +0 -151
  533. data/glfw-3.4.bin.WIN64/docs/html/struct_g_l_f_wvidmode.html +0 -204
  534. data/glfw-3.4.bin.WIN64/docs/html/sync_off.png +0 -0
  535. data/glfw-3.4.bin.WIN64/docs/html/sync_on.png +0 -0
  536. data/glfw-3.4.bin.WIN64/docs/html/tab_a.png +0 -0
  537. data/glfw-3.4.bin.WIN64/docs/html/tab_ad.png +0 -0
  538. data/glfw-3.4.bin.WIN64/docs/html/tab_b.png +0 -0
  539. data/glfw-3.4.bin.WIN64/docs/html/tab_bd.png +0 -0
  540. data/glfw-3.4.bin.WIN64/docs/html/tab_h.png +0 -0
  541. data/glfw-3.4.bin.WIN64/docs/html/tab_hd.png +0 -0
  542. data/glfw-3.4.bin.WIN64/docs/html/tab_s.png +0 -0
  543. data/glfw-3.4.bin.WIN64/docs/html/tab_sd.png +0 -0
  544. data/glfw-3.4.bin.WIN64/docs/html/tabs.css +0 -1
  545. data/glfw-3.4.bin.WIN64/docs/html/topics.html +0 -101
  546. data/glfw-3.4.bin.WIN64/docs/html/vulkan_8md.html +0 -81
  547. data/glfw-3.4.bin.WIN64/docs/html/vulkan_guide.html +0 -206
  548. data/glfw-3.4.bin.WIN64/docs/html/window_8md.html +0 -81
  549. data/glfw-3.4.bin.WIN64/docs/html/window_guide.html +0 -806
  550. data/glfw-3.4.bin.WIN64/include/GLFW/glfw3.h +0 -6547
  551. data/glfw-3.4.bin.WIN64/include/GLFW/glfw3native.h +0 -663
  552. data/glfw-3.4.bin.WIN64/lib-mingw-w64/glfw3.dll +0 -0
  553. data/glfw-3.4.bin.WIN64/lib-mingw-w64/libglfw3.a +0 -0
  554. data/glfw-3.4.bin.WIN64/lib-mingw-w64/libglfw3dll.a +0 -0
  555. data/glfw-3.4.bin.WIN64/lib-static-ucrt/glfw3dll.lib +0 -0
  556. data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3.dll +0 -0
  557. data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3.lib +0 -0
  558. data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3_mt.lib +0 -0
  559. data/glfw-3.4.bin.WIN64/lib-vc2013/glfw3dll.lib +0 -0
  560. data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3.dll +0 -0
  561. data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3.lib +0 -0
  562. data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3_mt.lib +0 -0
  563. data/glfw-3.4.bin.WIN64/lib-vc2015/glfw3dll.lib +0 -0
  564. data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3.dll +0 -0
  565. data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3.lib +0 -0
  566. data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3_mt.lib +0 -0
  567. data/glfw-3.4.bin.WIN64/lib-vc2017/glfw3dll.lib +0 -0
  568. data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3.dll +0 -0
  569. data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3.lib +0 -0
  570. data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3_mt.lib +0 -0
  571. data/glfw-3.4.bin.WIN64/lib-vc2019/glfw3dll.lib +0 -0
  572. data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3.dll +0 -0
  573. data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3.lib +0 -0
  574. data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3_mt.lib +0 -0
  575. data/glfw-3.4.bin.WIN64/lib-vc2022/glfw3dll.lib +0 -0
  576. data/lib/engine/components/font_renderer.rb +0 -134
  577. data/lib/engine/components/mesh_renderer.rb +0 -31
  578. data/lib/engine/components/sprite_renderer.rb +0 -141
  579. data/lib/engine/components/ui_font_renderer.rb +0 -140
  580. data/lib/engine/components/ui_sprite_clickbox.rb +0 -62
  581. data/lib/engine/components/ui_sprite_renderer.rb +0 -101
  582. data/lib/engine/shaders/skybox_frag.glsl +0 -12
  583. /data/{glfw-3.4.bin.WIN64 → vendor/glfw-3.3.9.bin.MACOS}/LICENSE.md +0 -0
  584. /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 = 7) in mat4 model;
5
-
6
- out vec3 FragPos;
7
-
8
- uniform mat4 camera;
9
-
10
- void main()
11
- {
12
- FragPos = vec3(model * vec4(vertex, 1.0));
13
- gl_Position = camera * model * vec4(vertex, 1.0);
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 330 core
2
-
3
- in vec2 TexCoord;
4
- in vec3 Normal;
5
- in vec3 Tangent;
6
- in vec3 FragPos;
7
-
8
- out vec4 color;
9
-
10
- uniform sampler2D image;
11
- uniform sampler2D normalMap;
12
- uniform vec3 cameraPos;
13
- uniform float diffuseStrength;
14
- uniform float specularStrength;
15
- uniform float specularPower;
16
- uniform vec3 ambientLight;
17
-
18
- struct DirectionalLight {
19
- vec3 direction;
20
- vec3 colour;
21
- };
22
- #define NR_DIRECTIONAL_LIGHTS 4
23
- uniform DirectionalLight directionalLights[NR_DIRECTIONAL_LIGHTS];
24
-
25
- struct PointLight {
26
- vec3 position;
27
- float sqrRange;
28
- vec3 colour;
29
- };
30
- #define NR_POINT_LIGHTS 16
31
- uniform PointLight pointLights[NR_POINT_LIGHTS];
32
-
33
- vec3 CalcPointLight(PointLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
34
- {
35
- vec3 lightOffset = light.position - fragPos;
36
- float sqrDistance = dot(lightOffset, lightOffset);
37
- vec3 lightDir = normalize(lightOffset);
38
- float diff = max(dot(normal, lightDir), 0.0);
39
-
40
- vec3 reflectDir = reflect(lightDir, normal);
41
- float spec = pow(max(dot(-viewDir, reflectDir), 0.0), specularPower);
42
-
43
- float attenuation = light.sqrRange / sqrDistance;
44
-
45
- float diffuse = diff * diffuseStrength;
46
- float specular = spec * specularStrength;
47
-
48
- return light.colour * (diffuse + specular) * attenuation;
49
- }
50
-
51
- vec3 CalcDirectionalLight(DirectionalLight light, vec3 normal, vec3 fragPos, vec3 viewDir)
52
- {
53
- float diff = max(dot(normal, -light.direction), 0.0);
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 330 core
2
-
3
- // <vec2 position, vec2 texCoords, vec3 normal, vec3 tangent>
4
- layout (location = 0) in vec3 vertex;
5
- layout (location = 1) in vec2 texCoord;
6
- layout (location = 2) in vec3 normal;
7
- layout (location = 3) in vec3 tangent;
8
- layout (location = 7) in mat4 model;
9
-
10
- out vec2 TexCoord;
11
- out vec3 Normal;
12
- out vec3 Tangent;
13
- out vec3 FragPos;
14
-
15
- uniform mat4 camera;
16
-
17
- void main()
18
- {
19
- TexCoord = texCoord;
20
- mat3 normalMatrix = mat3(transpose(inverse(model)));
21
- Normal = normalMatrix * normal;
22
- Tangent = normalMatrix * tangent;
23
- FragPos = vec3(model * vec4(vertex, 1.0));
24
- gl_Position = camera * model * vec4(vertex, 1.0);
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,12 @@
1
+ #version 330 core
2
+
3
+ in vec3 FragPos;
4
+
5
+ uniform vec3 lightPos;
6
+ uniform float farPlane;
7
+
8
+ void main()
9
+ {
10
+ float dist = length(FragPos - lightPos);
11
+ gl_FragDepth = dist / farPlane;
12
+ }
@@ -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
+ }