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
@@ -0,0 +1,563 @@
1
+ #include <ruby.h>
2
+
3
+ #ifdef __APPLE__
4
+ #include <OpenGL/gl3.h>
5
+ /* Compute shader functions not in macOS gl3.h - declare for API completeness */
6
+ extern void glBindImageTexture(GLuint unit, GLuint texture, GLint level, GLboolean layered, GLint layer, GLenum access, GLenum format);
7
+ extern void glDispatchCompute(GLuint num_groups_x, GLuint num_groups_y, GLuint num_groups_z);
8
+ extern void glMemoryBarrier(GLbitfield barriers);
9
+ #elif defined(_WIN32) || defined(__MINGW32__)
10
+ #include <GL/glew.h>
11
+ #else
12
+ #include <GL/gl.h>
13
+ #endif
14
+
15
+ /* Module reference */
16
+ static VALUE mGLNative;
17
+
18
+ /* BindFramebuffer(target, framebuffer) */
19
+ static VALUE rb_gl_bind_framebuffer(VALUE self, VALUE target, VALUE framebuffer) {
20
+ glBindFramebuffer((GLenum)NUM2INT(target), (GLuint)NUM2UINT(framebuffer));
21
+ return Qnil;
22
+ }
23
+
24
+ /* BindVertexArray(array) */
25
+ static VALUE rb_gl_bind_vertex_array(VALUE self, VALUE array) {
26
+ glBindVertexArray((GLuint)NUM2UINT(array));
27
+ return Qnil;
28
+ }
29
+
30
+ /* BindBuffer(target, buffer) */
31
+ static VALUE rb_gl_bind_buffer(VALUE self, VALUE target, VALUE buffer) {
32
+ glBindBuffer((GLenum)NUM2INT(target), (GLuint)NUM2UINT(buffer));
33
+ return Qnil;
34
+ }
35
+
36
+ /* BindTexture(target, texture) */
37
+ static VALUE rb_gl_bind_texture(VALUE self, VALUE target, VALUE texture) {
38
+ glBindTexture((GLenum)NUM2INT(target), (GLuint)NUM2UINT(texture));
39
+ return Qnil;
40
+ }
41
+
42
+ /* ActiveTexture(texture) */
43
+ static VALUE rb_gl_active_texture(VALUE self, VALUE texture) {
44
+ glActiveTexture((GLenum)NUM2INT(texture));
45
+ return Qnil;
46
+ }
47
+
48
+ /* UseProgram(program) */
49
+ static VALUE rb_gl_use_program(VALUE self, VALUE program) {
50
+ glUseProgram((GLuint)NUM2UINT(program));
51
+ return Qnil;
52
+ }
53
+
54
+ /* Enable(cap) */
55
+ static VALUE rb_gl_enable(VALUE self, VALUE cap) {
56
+ glEnable((GLenum)NUM2INT(cap));
57
+ return Qnil;
58
+ }
59
+
60
+ /* Disable(cap) */
61
+ static VALUE rb_gl_disable(VALUE self, VALUE cap) {
62
+ glDisable((GLenum)NUM2INT(cap));
63
+ return Qnil;
64
+ }
65
+
66
+ /* DrawArrays(mode, first, count) */
67
+ static VALUE rb_gl_draw_arrays(VALUE self, VALUE mode, VALUE first, VALUE count) {
68
+ glDrawArrays((GLenum)NUM2INT(mode), (GLint)NUM2INT(first), (GLsizei)NUM2INT(count));
69
+ return Qnil;
70
+ }
71
+
72
+ /* DrawElements(mode, count, type, indices) */
73
+ static VALUE rb_gl_draw_elements(VALUE self, VALUE mode, VALUE count, VALUE type, VALUE indices) {
74
+ glDrawElements((GLenum)NUM2INT(mode), (GLsizei)NUM2INT(count), (GLenum)NUM2INT(type), (const void*)(uintptr_t)NUM2ULL(indices));
75
+ return Qnil;
76
+ }
77
+
78
+ /* DrawElementsInstanced(mode, count, type, indices, instance_count) */
79
+ static VALUE rb_gl_draw_elements_instanced(VALUE self, VALUE mode, VALUE count, VALUE type, VALUE indices, VALUE instance_count) {
80
+ glDrawElementsInstanced((GLenum)NUM2INT(mode), (GLsizei)NUM2INT(count), (GLenum)NUM2INT(type), (const void*)(uintptr_t)NUM2ULL(indices), (GLsizei)NUM2INT(instance_count));
81
+ return Qnil;
82
+ }
83
+
84
+ /* Clear(mask) */
85
+ static VALUE rb_gl_clear(VALUE self, VALUE mask) {
86
+ glClear((GLbitfield)NUM2UINT(mask));
87
+ return Qnil;
88
+ }
89
+
90
+ /* Viewport(x, y, width, height) */
91
+ static VALUE rb_gl_viewport(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height) {
92
+ glViewport((GLint)NUM2INT(x), (GLint)NUM2INT(y), (GLsizei)NUM2INT(width), (GLsizei)NUM2INT(height));
93
+ return Qnil;
94
+ }
95
+
96
+ /* Uniform1f(location, v0) */
97
+ static VALUE rb_gl_uniform1f(VALUE self, VALUE location, VALUE v0) {
98
+ glUniform1f((GLint)NUM2INT(location), (GLfloat)NUM2DBL(v0));
99
+ return Qnil;
100
+ }
101
+
102
+ /* Uniform2f(location, v0, v1) */
103
+ static VALUE rb_gl_uniform2f(VALUE self, VALUE location, VALUE v0, VALUE v1) {
104
+ glUniform2f((GLint)NUM2INT(location), (GLfloat)NUM2DBL(v0), (GLfloat)NUM2DBL(v1));
105
+ return Qnil;
106
+ }
107
+
108
+ /* Uniform3f(location, v0, v1, v2) */
109
+ static VALUE rb_gl_uniform3f(VALUE self, VALUE location, VALUE v0, VALUE v1, VALUE v2) {
110
+ glUniform3f((GLint)NUM2INT(location), (GLfloat)NUM2DBL(v0), (GLfloat)NUM2DBL(v1), (GLfloat)NUM2DBL(v2));
111
+ return Qnil;
112
+ }
113
+
114
+ /* Uniform4f(location, v0, v1, v2, v3) */
115
+ static VALUE rb_gl_uniform4f(VALUE self, VALUE location, VALUE v0, VALUE v1, VALUE v2, VALUE v3) {
116
+ glUniform4f((GLint)NUM2INT(location), (GLfloat)NUM2DBL(v0), (GLfloat)NUM2DBL(v1), (GLfloat)NUM2DBL(v2), (GLfloat)NUM2DBL(v3));
117
+ return Qnil;
118
+ }
119
+
120
+ /* Uniform1i(location, v0) */
121
+ static VALUE rb_gl_uniform1i(VALUE self, VALUE location, VALUE v0) {
122
+ glUniform1i((GLint)NUM2INT(location), (GLint)NUM2INT(v0));
123
+ return Qnil;
124
+ }
125
+
126
+ /* UniformMatrix4fv(location, count, transpose, value) */
127
+ static VALUE rb_gl_uniform_matrix4fv(VALUE self, VALUE location, VALUE count, VALUE transpose, VALUE value) {
128
+ /* value should be a String containing packed floats */
129
+ Check_Type(value, T_STRING);
130
+ const GLfloat *data = (const GLfloat *)RSTRING_PTR(value);
131
+ glUniformMatrix4fv((GLint)NUM2INT(location), (GLsizei)NUM2INT(count), (GLboolean)NUM2INT(transpose), data);
132
+ return Qnil;
133
+ }
134
+
135
+ /* BlitFramebuffer(...) */
136
+ static VALUE rb_gl_blit_framebuffer(VALUE self, VALUE src_x0, VALUE src_y0, VALUE src_x1, VALUE src_y1,
137
+ VALUE dst_x0, VALUE dst_y0, VALUE dst_x1, VALUE dst_y1,
138
+ VALUE mask, VALUE filter) {
139
+ glBlitFramebuffer(
140
+ (GLint)NUM2INT(src_x0), (GLint)NUM2INT(src_y0), (GLint)NUM2INT(src_x1), (GLint)NUM2INT(src_y1),
141
+ (GLint)NUM2INT(dst_x0), (GLint)NUM2INT(dst_y0), (GLint)NUM2INT(dst_x1), (GLint)NUM2INT(dst_y1),
142
+ (GLbitfield)NUM2UINT(mask), (GLenum)NUM2INT(filter)
143
+ );
144
+ return Qnil;
145
+ }
146
+
147
+ /* AttachShader(program, shader) */
148
+ static VALUE rb_gl_attach_shader(VALUE self, VALUE program, VALUE shader) {
149
+ glAttachShader((GLuint)NUM2UINT(program), (GLuint)NUM2UINT(shader));
150
+ return Qnil;
151
+ }
152
+
153
+ /* BeginQuery(target, id) */
154
+ static VALUE rb_gl_begin_query(VALUE self, VALUE target, VALUE id) {
155
+ glBeginQuery((GLenum)NUM2INT(target), (GLuint)NUM2UINT(id));
156
+ return Qnil;
157
+ }
158
+
159
+ /* BlendFunc(sfactor, dfactor) */
160
+ static VALUE rb_gl_blend_func(VALUE self, VALUE sfactor, VALUE dfactor) {
161
+ glBlendFunc((GLenum)NUM2INT(sfactor), (GLenum)NUM2INT(dfactor));
162
+ return Qnil;
163
+ }
164
+
165
+ /* BufferData(target, size, data, usage) */
166
+ static VALUE rb_gl_buffer_data(VALUE self, VALUE target, VALUE size, VALUE data, VALUE usage) {
167
+ const void *ptr = NIL_P(data) ? NULL : (const void *)RSTRING_PTR(data);
168
+ glBufferData((GLenum)NUM2INT(target), (GLsizeiptr)NUM2LONG(size), ptr, (GLenum)NUM2INT(usage));
169
+ return Qnil;
170
+ }
171
+
172
+ /* BufferSubData(target, offset, size, data) */
173
+ static VALUE rb_gl_buffer_sub_data(VALUE self, VALUE target, VALUE offset, VALUE size, VALUE data) {
174
+ const void *ptr = (const void *)RSTRING_PTR(data);
175
+ glBufferSubData((GLenum)NUM2INT(target), (GLintptr)NUM2LONG(offset), (GLsizeiptr)NUM2LONG(size), ptr);
176
+ return Qnil;
177
+ }
178
+
179
+ /* CheckFramebufferStatus(target) */
180
+ static VALUE rb_gl_check_framebuffer_status(VALUE self, VALUE target) {
181
+ GLenum result = glCheckFramebufferStatus((GLenum)NUM2INT(target));
182
+ return INT2NUM(result);
183
+ }
184
+
185
+ /* ClearColor(red, green, blue, alpha) */
186
+ static VALUE rb_gl_clear_color(VALUE self, VALUE red, VALUE green, VALUE blue, VALUE alpha) {
187
+ glClearColor((GLfloat)NUM2DBL(red), (GLfloat)NUM2DBL(green), (GLfloat)NUM2DBL(blue), (GLfloat)NUM2DBL(alpha));
188
+ return Qnil;
189
+ }
190
+
191
+ /* ColorMask(red, green, blue, alpha) */
192
+ static VALUE rb_gl_color_mask(VALUE self, VALUE red, VALUE green, VALUE blue, VALUE alpha) {
193
+ glColorMask((GLboolean)NUM2INT(red), (GLboolean)NUM2INT(green), (GLboolean)NUM2INT(blue), (GLboolean)NUM2INT(alpha));
194
+ return Qnil;
195
+ }
196
+
197
+ /* CompileShader(shader) */
198
+ static VALUE rb_gl_compile_shader(VALUE self, VALUE shader) {
199
+ glCompileShader((GLuint)NUM2UINT(shader));
200
+ return Qnil;
201
+ }
202
+
203
+ /* CreateProgram() */
204
+ static VALUE rb_gl_create_program(VALUE self) {
205
+ GLuint program = glCreateProgram();
206
+ return UINT2NUM(program);
207
+ }
208
+
209
+ /* CreateShader(type) */
210
+ static VALUE rb_gl_create_shader(VALUE self, VALUE type) {
211
+ GLuint shader = glCreateShader((GLenum)NUM2INT(type));
212
+ return UINT2NUM(shader);
213
+ }
214
+
215
+ /* CullFace(mode) */
216
+ static VALUE rb_gl_cull_face(VALUE self, VALUE mode) {
217
+ glCullFace((GLenum)NUM2INT(mode));
218
+ return Qnil;
219
+ }
220
+
221
+ /* DepthFunc(func) */
222
+ static VALUE rb_gl_depth_func(VALUE self, VALUE func) {
223
+ glDepthFunc((GLenum)NUM2INT(func));
224
+ return Qnil;
225
+ }
226
+
227
+ /* DrawBuffer(mode) */
228
+ static VALUE rb_gl_draw_buffer(VALUE self, VALUE mode) {
229
+ glDrawBuffer((GLenum)NUM2INT(mode));
230
+ return Qnil;
231
+ }
232
+
233
+ /* DrawBuffers(n, bufs) */
234
+ static VALUE rb_gl_draw_buffers(VALUE self, VALUE n, VALUE bufs) {
235
+ const GLenum *ptr = (const GLenum *)RSTRING_PTR(bufs);
236
+ glDrawBuffers((GLsizei)NUM2INT(n), ptr);
237
+ return Qnil;
238
+ }
239
+
240
+ /* EnableVertexAttribArray(index) */
241
+ static VALUE rb_gl_enable_vertex_attrib_array(VALUE self, VALUE index) {
242
+ glEnableVertexAttribArray((GLuint)NUM2UINT(index));
243
+ return Qnil;
244
+ }
245
+
246
+ /* EndQuery(target) */
247
+ static VALUE rb_gl_end_query(VALUE self, VALUE target) {
248
+ glEndQuery((GLenum)NUM2INT(target));
249
+ return Qnil;
250
+ }
251
+
252
+ /* Finish() */
253
+ static VALUE rb_gl_finish(VALUE self) {
254
+ glFinish();
255
+ return Qnil;
256
+ }
257
+
258
+ /* FramebufferTexture2D(target, attachment, textarget, texture, level) */
259
+ static VALUE rb_gl_framebuffer_texture_2d(VALUE self, VALUE target, VALUE attachment, VALUE textarget, VALUE texture, VALUE level) {
260
+ glFramebufferTexture2D((GLenum)NUM2INT(target), (GLenum)NUM2INT(attachment), (GLenum)NUM2INT(textarget), (GLuint)NUM2UINT(texture), (GLint)NUM2INT(level));
261
+ return Qnil;
262
+ }
263
+
264
+ /* FramebufferTextureLayer(target, attachment, texture, level, layer) */
265
+ static VALUE rb_gl_framebuffer_texture_layer(VALUE self, VALUE target, VALUE attachment, VALUE texture, VALUE level, VALUE layer) {
266
+ glFramebufferTextureLayer((GLenum)NUM2INT(target), (GLenum)NUM2INT(attachment), (GLuint)NUM2UINT(texture), (GLint)NUM2INT(level), (GLint)NUM2INT(layer));
267
+ return Qnil;
268
+ }
269
+
270
+ /* GenBuffers(n, buffers) */
271
+ static VALUE rb_gl_gen_buffers(VALUE self, VALUE n, VALUE buffers) {
272
+ GLuint *ptr = (GLuint *)RSTRING_PTR(buffers);
273
+ glGenBuffers((GLsizei)NUM2INT(n), ptr);
274
+ return Qnil;
275
+ }
276
+
277
+ /* GenerateMipmap(target) */
278
+ static VALUE rb_gl_generate_mipmap(VALUE self, VALUE target) {
279
+ glGenerateMipmap((GLenum)NUM2INT(target));
280
+ return Qnil;
281
+ }
282
+
283
+ /* GenFramebuffers(n, framebuffers) */
284
+ static VALUE rb_gl_gen_framebuffers(VALUE self, VALUE n, VALUE framebuffers) {
285
+ GLuint *ptr = (GLuint *)RSTRING_PTR(framebuffers);
286
+ glGenFramebuffers((GLsizei)NUM2INT(n), ptr);
287
+ return Qnil;
288
+ }
289
+
290
+ /* GenQueries(n, ids) */
291
+ static VALUE rb_gl_gen_queries(VALUE self, VALUE n, VALUE ids) {
292
+ GLuint *ptr = (GLuint *)RSTRING_PTR(ids);
293
+ glGenQueries((GLsizei)NUM2INT(n), ptr);
294
+ return Qnil;
295
+ }
296
+
297
+ /* GenTextures(n, textures) */
298
+ static VALUE rb_gl_gen_textures(VALUE self, VALUE n, VALUE textures) {
299
+ GLuint *ptr = (GLuint *)RSTRING_PTR(textures);
300
+ glGenTextures((GLsizei)NUM2INT(n), ptr);
301
+ return Qnil;
302
+ }
303
+
304
+ /* GenVertexArrays(n, arrays) */
305
+ static VALUE rb_gl_gen_vertex_arrays(VALUE self, VALUE n, VALUE arrays) {
306
+ GLuint *ptr = (GLuint *)RSTRING_PTR(arrays);
307
+ glGenVertexArrays((GLsizei)NUM2INT(n), ptr);
308
+ return Qnil;
309
+ }
310
+
311
+ /* GetError() */
312
+ static VALUE rb_gl_get_error(VALUE self) {
313
+ GLenum error = glGetError();
314
+ return INT2NUM(error);
315
+ }
316
+
317
+ /* GetProgramInfoLog(program, max_length, length, info_log) */
318
+ static VALUE rb_gl_get_program_info_log(VALUE self, VALUE program, VALUE max_length, VALUE length, VALUE info_log) {
319
+ GLsizei *len_ptr = (GLsizei *)RSTRING_PTR(length);
320
+ GLchar *log_ptr = (GLchar *)RSTRING_PTR(info_log);
321
+ glGetProgramInfoLog((GLuint)NUM2UINT(program), (GLsizei)NUM2INT(max_length), len_ptr, log_ptr);
322
+ return Qnil;
323
+ }
324
+
325
+ /* GetProgramiv(program, pname, params) */
326
+ static VALUE rb_gl_get_programiv(VALUE self, VALUE program, VALUE pname, VALUE params) {
327
+ GLint *ptr = (GLint *)RSTRING_PTR(params);
328
+ glGetProgramiv((GLuint)NUM2UINT(program), (GLenum)NUM2INT(pname), ptr);
329
+ return Qnil;
330
+ }
331
+
332
+ /* GetQueryObjectui64v(id, pname, params) */
333
+ static VALUE rb_gl_get_query_objectui64v(VALUE self, VALUE id, VALUE pname, VALUE params) {
334
+ GLuint64 *ptr = (GLuint64 *)RSTRING_PTR(params);
335
+ glGetQueryObjectui64v((GLuint)NUM2UINT(id), (GLenum)NUM2INT(pname), ptr);
336
+ return Qnil;
337
+ }
338
+
339
+ /* GetShaderInfoLog(shader, max_length, length, info_log) */
340
+ static VALUE rb_gl_get_shader_info_log(VALUE self, VALUE shader, VALUE max_length, VALUE length, VALUE info_log) {
341
+ GLsizei *len_ptr = (GLsizei *)RSTRING_PTR(length);
342
+ GLchar *log_ptr = (GLchar *)RSTRING_PTR(info_log);
343
+ glGetShaderInfoLog((GLuint)NUM2UINT(shader), (GLsizei)NUM2INT(max_length), len_ptr, log_ptr);
344
+ return Qnil;
345
+ }
346
+
347
+ /* GetString(name) */
348
+ static VALUE rb_gl_get_string(VALUE self, VALUE name) {
349
+ const GLubyte *str = glGetString((GLenum)NUM2INT(name));
350
+ if (str == NULL) return Qnil;
351
+ return rb_str_new2((const char *)str);
352
+ }
353
+
354
+ /* GetUniformLocation(program, name) */
355
+ static VALUE rb_gl_get_uniform_location(VALUE self, VALUE program, VALUE name) {
356
+ const char *name_str = StringValueCStr(name);
357
+ GLint location = glGetUniformLocation((GLuint)NUM2UINT(program), name_str);
358
+ return INT2NUM(location);
359
+ }
360
+
361
+ /* LinkProgram(program) */
362
+ static VALUE rb_gl_link_program(VALUE self, VALUE program) {
363
+ glLinkProgram((GLuint)NUM2UINT(program));
364
+ return Qnil;
365
+ }
366
+
367
+ /* ReadBuffer(mode) */
368
+ static VALUE rb_gl_read_buffer(VALUE self, VALUE mode) {
369
+ glReadBuffer((GLenum)NUM2INT(mode));
370
+ return Qnil;
371
+ }
372
+
373
+ /* ReadPixels(x, y, width, height, format, type, data) */
374
+ static VALUE rb_gl_read_pixels(VALUE self, VALUE x, VALUE y, VALUE width, VALUE height, VALUE format, VALUE type, VALUE data) {
375
+ void *ptr = (void *)RSTRING_PTR(data);
376
+ glReadPixels((GLint)NUM2INT(x), (GLint)NUM2INT(y), (GLsizei)NUM2INT(width), (GLsizei)NUM2INT(height), (GLenum)NUM2INT(format), (GLenum)NUM2INT(type), ptr);
377
+ return Qnil;
378
+ }
379
+
380
+ /* ShaderSource(shader, count, string, length) */
381
+ static VALUE rb_gl_shader_source(VALUE self, VALUE shader, VALUE count, VALUE string, VALUE length) {
382
+ /* string is a packed pointer array (from Ruby's pack('p')) */
383
+ /* length is a packed int array (from Ruby's pack('I')) */
384
+ const GLchar **src_ptr = (const GLchar **)RSTRING_PTR(string);
385
+ const GLint *len_ptr = NIL_P(length) ? NULL : (const GLint *)RSTRING_PTR(length);
386
+ glShaderSource((GLuint)NUM2UINT(shader), (GLsizei)NUM2INT(count), src_ptr, len_ptr);
387
+ return Qnil;
388
+ }
389
+
390
+ /* StencilFunc(func, ref, mask) */
391
+ static VALUE rb_gl_stencil_func(VALUE self, VALUE func, VALUE ref, VALUE mask) {
392
+ glStencilFunc((GLenum)NUM2INT(func), (GLint)NUM2INT(ref), (GLuint)NUM2UINT(mask));
393
+ return Qnil;
394
+ }
395
+
396
+ /* StencilMask(mask) */
397
+ static VALUE rb_gl_stencil_mask(VALUE self, VALUE mask) {
398
+ glStencilMask((GLuint)NUM2UINT(mask));
399
+ return Qnil;
400
+ }
401
+
402
+ /* StencilOp(sfail, dpfail, dppass) */
403
+ static VALUE rb_gl_stencil_op(VALUE self, VALUE sfail, VALUE dpfail, VALUE dppass) {
404
+ glStencilOp((GLenum)NUM2INT(sfail), (GLenum)NUM2INT(dpfail), (GLenum)NUM2INT(dppass));
405
+ return Qnil;
406
+ }
407
+
408
+ /* TexImage2D(target, level, internalformat, width, height, border, format, type, data) */
409
+ static VALUE rb_gl_tex_image_2d(VALUE self, VALUE target, VALUE level, VALUE internalformat,
410
+ VALUE width, VALUE height, VALUE border, VALUE format,
411
+ VALUE type, VALUE data) {
412
+ const void *ptr = NIL_P(data) ? NULL : (const void *)RSTRING_PTR(data);
413
+ glTexImage2D((GLenum)NUM2INT(target), (GLint)NUM2INT(level), (GLint)NUM2INT(internalformat),
414
+ (GLsizei)NUM2INT(width), (GLsizei)NUM2INT(height), (GLint)NUM2INT(border),
415
+ (GLenum)NUM2INT(format), (GLenum)NUM2INT(type), ptr);
416
+ return Qnil;
417
+ }
418
+
419
+ /* TexImage3D(target, level, internalformat, width, height, depth, border, format, type, data) */
420
+ static VALUE rb_gl_tex_image_3d(VALUE self, VALUE target, VALUE level, VALUE internalformat,
421
+ VALUE width, VALUE height, VALUE depth, VALUE border,
422
+ VALUE format, VALUE type, VALUE data) {
423
+ const void *ptr = NIL_P(data) ? NULL : (const void *)RSTRING_PTR(data);
424
+ glTexImage3D((GLenum)NUM2INT(target), (GLint)NUM2INT(level), (GLint)NUM2INT(internalformat),
425
+ (GLsizei)NUM2INT(width), (GLsizei)NUM2INT(height), (GLsizei)NUM2INT(depth),
426
+ (GLint)NUM2INT(border), (GLenum)NUM2INT(format), (GLenum)NUM2INT(type), ptr);
427
+ return Qnil;
428
+ }
429
+
430
+ /* TexParameterfv(target, pname, params) */
431
+ static VALUE rb_gl_tex_parameterfv(VALUE self, VALUE target, VALUE pname, VALUE params) {
432
+ const GLfloat *ptr = (const GLfloat *)RSTRING_PTR(params);
433
+ glTexParameterfv((GLenum)NUM2INT(target), (GLenum)NUM2INT(pname), ptr);
434
+ return Qnil;
435
+ }
436
+
437
+ /* TexParameteri(target, pname, param) */
438
+ static VALUE rb_gl_tex_parameteri(VALUE self, VALUE target, VALUE pname, VALUE param) {
439
+ glTexParameteri((GLenum)NUM2INT(target), (GLenum)NUM2INT(pname), (GLint)NUM2INT(param));
440
+ return Qnil;
441
+ }
442
+
443
+ /* VertexAttribDivisor(index, divisor) */
444
+ static VALUE rb_gl_vertex_attrib_divisor(VALUE self, VALUE index, VALUE divisor) {
445
+ glVertexAttribDivisor((GLuint)NUM2UINT(index), (GLuint)NUM2UINT(divisor));
446
+ return Qnil;
447
+ }
448
+
449
+ /* VertexAttribIPointer(index, size, type, stride, pointer) */
450
+ static VALUE rb_gl_vertex_attrib_ipointer(VALUE self, VALUE index, VALUE size, VALUE type, VALUE stride, VALUE pointer) {
451
+ glVertexAttribIPointer((GLuint)NUM2UINT(index), (GLint)NUM2INT(size), (GLenum)NUM2INT(type),
452
+ (GLsizei)NUM2INT(stride), (const void *)(uintptr_t)NUM2ULL(pointer));
453
+ return Qnil;
454
+ }
455
+
456
+ /* VertexAttribPointer(index, size, type, normalized, stride, pointer) */
457
+ static VALUE rb_gl_vertex_attrib_pointer(VALUE self, VALUE index, VALUE size, VALUE type, VALUE normalized, VALUE stride, VALUE pointer) {
458
+ glVertexAttribPointer((GLuint)NUM2UINT(index), (GLint)NUM2INT(size), (GLenum)NUM2INT(type),
459
+ (GLboolean)NUM2INT(normalized), (GLsizei)NUM2INT(stride),
460
+ (const void *)(uintptr_t)NUM2ULL(pointer));
461
+ return Qnil;
462
+ }
463
+
464
+ /* Compute shader functions - OpenGL 4.3+ */
465
+
466
+ /* BindImageTexture(unit, texture, level, layered, layer, access, format) */
467
+ static VALUE rb_gl_bind_image_texture(VALUE self, VALUE unit, VALUE texture, VALUE level,
468
+ VALUE layered, VALUE layer, VALUE access, VALUE format) {
469
+ glBindImageTexture((GLuint)NUM2UINT(unit), (GLuint)NUM2UINT(texture), (GLint)NUM2INT(level),
470
+ (GLboolean)NUM2INT(layered), (GLint)NUM2INT(layer),
471
+ (GLenum)NUM2INT(access), (GLenum)NUM2INT(format));
472
+ return Qnil;
473
+ }
474
+
475
+ /* DispatchCompute(num_groups_x, num_groups_y, num_groups_z) */
476
+ static VALUE rb_gl_dispatch_compute(VALUE self, VALUE num_groups_x, VALUE num_groups_y, VALUE num_groups_z) {
477
+ glDispatchCompute((GLuint)NUM2UINT(num_groups_x), (GLuint)NUM2UINT(num_groups_y), (GLuint)NUM2UINT(num_groups_z));
478
+ return Qnil;
479
+ }
480
+
481
+ /* MemoryBarrier(barriers) */
482
+ static VALUE rb_gl_memory_barrier(VALUE self, VALUE barriers) {
483
+ glMemoryBarrier((GLbitfield)NUM2UINT(barriers));
484
+ return Qnil;
485
+ }
486
+
487
+ /* Extension init */
488
+ void Init_gl_native(void) {
489
+ mGLNative = rb_define_module("GLNative");
490
+
491
+ rb_define_module_function(mGLNative, "bind_framebuffer", rb_gl_bind_framebuffer, 2);
492
+ rb_define_module_function(mGLNative, "bind_vertex_array", rb_gl_bind_vertex_array, 1);
493
+ rb_define_module_function(mGLNative, "bind_buffer", rb_gl_bind_buffer, 2);
494
+ rb_define_module_function(mGLNative, "bind_texture", rb_gl_bind_texture, 2);
495
+ rb_define_module_function(mGLNative, "active_texture", rb_gl_active_texture, 1);
496
+ rb_define_module_function(mGLNative, "use_program", rb_gl_use_program, 1);
497
+ rb_define_module_function(mGLNative, "enable", rb_gl_enable, 1);
498
+ rb_define_module_function(mGLNative, "disable", rb_gl_disable, 1);
499
+ rb_define_module_function(mGLNative, "draw_arrays", rb_gl_draw_arrays, 3);
500
+ rb_define_module_function(mGLNative, "draw_elements", rb_gl_draw_elements, 4);
501
+ rb_define_module_function(mGLNative, "draw_elements_instanced", rb_gl_draw_elements_instanced, 5);
502
+ rb_define_module_function(mGLNative, "clear", rb_gl_clear, 1);
503
+ rb_define_module_function(mGLNative, "viewport", rb_gl_viewport, 4);
504
+ rb_define_module_function(mGLNative, "uniform1f", rb_gl_uniform1f, 2);
505
+ rb_define_module_function(mGLNative, "uniform2f", rb_gl_uniform2f, 3);
506
+ rb_define_module_function(mGLNative, "uniform3f", rb_gl_uniform3f, 4);
507
+ rb_define_module_function(mGLNative, "uniform4f", rb_gl_uniform4f, 5);
508
+ rb_define_module_function(mGLNative, "uniform1i", rb_gl_uniform1i, 2);
509
+ rb_define_module_function(mGLNative, "uniform_matrix4fv", rb_gl_uniform_matrix4fv, 4);
510
+ rb_define_module_function(mGLNative, "blit_framebuffer", rb_gl_blit_framebuffer, 10);
511
+ rb_define_module_function(mGLNative, "attach_shader", rb_gl_attach_shader, 2);
512
+ rb_define_module_function(mGLNative, "begin_query", rb_gl_begin_query, 2);
513
+ rb_define_module_function(mGLNative, "blend_func", rb_gl_blend_func, 2);
514
+ rb_define_module_function(mGLNative, "buffer_data", rb_gl_buffer_data, 4);
515
+ rb_define_module_function(mGLNative, "buffer_sub_data", rb_gl_buffer_sub_data, 4);
516
+ rb_define_module_function(mGLNative, "check_framebuffer_status", rb_gl_check_framebuffer_status, 1);
517
+ rb_define_module_function(mGLNative, "clear_color", rb_gl_clear_color, 4);
518
+ rb_define_module_function(mGLNative, "color_mask", rb_gl_color_mask, 4);
519
+ rb_define_module_function(mGLNative, "compile_shader", rb_gl_compile_shader, 1);
520
+ rb_define_module_function(mGLNative, "create_program", rb_gl_create_program, 0);
521
+ rb_define_module_function(mGLNative, "create_shader", rb_gl_create_shader, 1);
522
+ rb_define_module_function(mGLNative, "cull_face", rb_gl_cull_face, 1);
523
+ rb_define_module_function(mGLNative, "depth_func", rb_gl_depth_func, 1);
524
+ rb_define_module_function(mGLNative, "draw_buffer", rb_gl_draw_buffer, 1);
525
+ rb_define_module_function(mGLNative, "draw_buffers", rb_gl_draw_buffers, 2);
526
+ rb_define_module_function(mGLNative, "enable_vertex_attrib_array", rb_gl_enable_vertex_attrib_array, 1);
527
+ rb_define_module_function(mGLNative, "end_query", rb_gl_end_query, 1);
528
+ rb_define_module_function(mGLNative, "finish", rb_gl_finish, 0);
529
+ rb_define_module_function(mGLNative, "framebuffer_texture_2d", rb_gl_framebuffer_texture_2d, 5);
530
+ rb_define_module_function(mGLNative, "framebuffer_texture_layer", rb_gl_framebuffer_texture_layer, 5);
531
+ rb_define_module_function(mGLNative, "gen_buffers", rb_gl_gen_buffers, 2);
532
+ rb_define_module_function(mGLNative, "generate_mipmap", rb_gl_generate_mipmap, 1);
533
+ rb_define_module_function(mGLNative, "gen_framebuffers", rb_gl_gen_framebuffers, 2);
534
+ rb_define_module_function(mGLNative, "gen_queries", rb_gl_gen_queries, 2);
535
+ rb_define_module_function(mGLNative, "gen_textures", rb_gl_gen_textures, 2);
536
+ rb_define_module_function(mGLNative, "gen_vertex_arrays", rb_gl_gen_vertex_arrays, 2);
537
+ rb_define_module_function(mGLNative, "get_error", rb_gl_get_error, 0);
538
+ rb_define_module_function(mGLNative, "get_program_info_log", rb_gl_get_program_info_log, 4);
539
+ rb_define_module_function(mGLNative, "get_programiv", rb_gl_get_programiv, 3);
540
+ rb_define_module_function(mGLNative, "get_query_objectui64v", rb_gl_get_query_objectui64v, 3);
541
+ rb_define_module_function(mGLNative, "get_shader_info_log", rb_gl_get_shader_info_log, 4);
542
+ rb_define_module_function(mGLNative, "get_string", rb_gl_get_string, 1);
543
+ rb_define_module_function(mGLNative, "get_uniform_location", rb_gl_get_uniform_location, 2);
544
+ rb_define_module_function(mGLNative, "link_program", rb_gl_link_program, 1);
545
+ rb_define_module_function(mGLNative, "read_buffer", rb_gl_read_buffer, 1);
546
+ rb_define_module_function(mGLNative, "read_pixels", rb_gl_read_pixels, 7);
547
+ rb_define_module_function(mGLNative, "shader_source", rb_gl_shader_source, 4);
548
+ rb_define_module_function(mGLNative, "stencil_func", rb_gl_stencil_func, 3);
549
+ rb_define_module_function(mGLNative, "stencil_mask", rb_gl_stencil_mask, 1);
550
+ rb_define_module_function(mGLNative, "stencil_op", rb_gl_stencil_op, 3);
551
+ rb_define_module_function(mGLNative, "tex_image_2d", rb_gl_tex_image_2d, 9);
552
+ rb_define_module_function(mGLNative, "tex_image_3d", rb_gl_tex_image_3d, 10);
553
+ rb_define_module_function(mGLNative, "tex_parameterfv", rb_gl_tex_parameterfv, 3);
554
+ rb_define_module_function(mGLNative, "tex_parameteri", rb_gl_tex_parameteri, 3);
555
+ rb_define_module_function(mGLNative, "vertex_attrib_divisor", rb_gl_vertex_attrib_divisor, 2);
556
+ rb_define_module_function(mGLNative, "vertex_attrib_ipointer", rb_gl_vertex_attrib_ipointer, 5);
557
+ rb_define_module_function(mGLNative, "vertex_attrib_pointer", rb_gl_vertex_attrib_pointer, 6);
558
+
559
+ /* Compute shader functions - OpenGL 4.3+ */
560
+ rb_define_module_function(mGLNative, "bind_image_texture", rb_gl_bind_image_texture, 7);
561
+ rb_define_module_function(mGLNative, "dispatch_compute", rb_gl_dispatch_compute, 3);
562
+ rb_define_module_function(mGLNative, "memory_barrier", rb_gl_memory_barrier, 1);
563
+ }
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'mkmf'
4
+
5
+ # We use dlopen to dynamically load GLFW at runtime, so no library linking needed
6
+ # Just need to compile with position-independent code
7
+
8
+ case RUBY_PLATFORM
9
+ when /darwin/
10
+ # macOS: we'll dlopen the bundled libglfw.3.dylib
11
+ $LDFLAGS << " -ldl"
12
+ when /linux/
13
+ $LDFLAGS << " -ldl"
14
+ when /mingw|mswin/
15
+ # Windows uses LoadLibrary, no extra flags needed
16
+ end
17
+
18
+ create_makefile('glfw_native')