ruby_rpg 0.0.4 → 0.0.5

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 (237) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +21 -21
  3. data/bin/build.bash +13 -13
  4. data/bin/import +44 -44
  5. data/glfw-3.3.9.bin.MACOS/LICENSE.md +23 -23
  6. data/glfw-3.3.9.bin.MACOS/README.md +5 -5
  7. data/glfw-3.3.9.bin.MACOS/docs/html/build_8dox.html +81 -81
  8. data/glfw-3.3.9.bin.MACOS/docs/html/build_guide.html +199 -199
  9. data/glfw-3.3.9.bin.MACOS/docs/html/compat_8dox.html +81 -81
  10. data/glfw-3.3.9.bin.MACOS/docs/html/compat_guide.html +153 -153
  11. data/glfw-3.3.9.bin.MACOS/docs/html/compile_8dox.html +81 -81
  12. data/glfw-3.3.9.bin.MACOS/docs/html/compile_guide.html +223 -223
  13. data/glfw-3.3.9.bin.MACOS/docs/html/context_8dox.html +81 -81
  14. data/glfw-3.3.9.bin.MACOS/docs/html/context_guide.html +259 -259
  15. data/glfw-3.3.9.bin.MACOS/docs/html/deprecated.html +88 -88
  16. data/glfw-3.3.9.bin.MACOS/docs/html/dir_08423ce7729c4554356a7de7171ba263.html +85 -85
  17. data/glfw-3.3.9.bin.MACOS/docs/html/dir_2dcebcdf14b42e92a6ed85c61bda6b9d.html +93 -93
  18. data/glfw-3.3.9.bin.MACOS/docs/html/dir_62ce056722ee97c199075aa1d6eca309.html +95 -95
  19. data/glfw-3.3.9.bin.MACOS/docs/html/dir_dddf4cf62655095a666cf715de3a31a2.html +91 -91
  20. data/glfw-3.3.9.bin.MACOS/docs/html/doc.svg +12 -12
  21. data/glfw-3.3.9.bin.MACOS/docs/html/docd.svg +12 -12
  22. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.css +1685 -1685
  23. data/glfw-3.3.9.bin.MACOS/docs/html/doxygen.svg +28 -28
  24. data/glfw-3.3.9.bin.MACOS/docs/html/dynsections.js +192 -192
  25. data/glfw-3.3.9.bin.MACOS/docs/html/extra.css +1 -1
  26. data/glfw-3.3.9.bin.MACOS/docs/html/files.html +91 -91
  27. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosed.svg +11 -11
  28. data/glfw-3.3.9.bin.MACOS/docs/html/folderclosedd.svg +11 -11
  29. data/glfw-3.3.9.bin.MACOS/docs/html/folderopen.svg +17 -17
  30. data/glfw-3.3.9.bin.MACOS/docs/html/folderopend.svg +12 -12
  31. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h.html +1661 -1661
  32. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3_8h_source.html +1175 -1175
  33. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h.html +167 -167
  34. data/glfw-3.3.9.bin.MACOS/docs/html/glfw3native_8h_source.html +303 -303
  35. data/glfw-3.3.9.bin.MACOS/docs/html/group__buttons.html +282 -282
  36. data/glfw-3.3.9.bin.MACOS/docs/html/group__context.html +304 -304
  37. data/glfw-3.3.9.bin.MACOS/docs/html/group__errors.html +304 -304
  38. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__axes.html +202 -202
  39. data/glfw-3.3.9.bin.MACOS/docs/html/group__gamepad__buttons.html +410 -410
  40. data/glfw-3.3.9.bin.MACOS/docs/html/group__hat__state.html +234 -234
  41. data/glfw-3.3.9.bin.MACOS/docs/html/group__init.html +570 -570
  42. data/glfw-3.3.9.bin.MACOS/docs/html/group__input.html +2255 -2255
  43. data/glfw-3.3.9.bin.MACOS/docs/html/group__joysticks.html +362 -362
  44. data/glfw-3.3.9.bin.MACOS/docs/html/group__keys.html +2034 -2034
  45. data/glfw-3.3.9.bin.MACOS/docs/html/group__mods.html +198 -198
  46. data/glfw-3.3.9.bin.MACOS/docs/html/group__monitor.html +848 -848
  47. data/glfw-3.3.9.bin.MACOS/docs/html/group__native.html +812 -812
  48. data/glfw-3.3.9.bin.MACOS/docs/html/group__shapes.html +198 -198
  49. data/glfw-3.3.9.bin.MACOS/docs/html/group__vulkan.html +359 -359
  50. data/glfw-3.3.9.bin.MACOS/docs/html/group__window.html +3434 -3434
  51. data/glfw-3.3.9.bin.MACOS/docs/html/index.html +100 -100
  52. data/glfw-3.3.9.bin.MACOS/docs/html/input_8dox.html +81 -81
  53. data/glfw-3.3.9.bin.MACOS/docs/html/input_guide.html +570 -570
  54. data/glfw-3.3.9.bin.MACOS/docs/html/internal_8dox.html +81 -81
  55. data/glfw-3.3.9.bin.MACOS/docs/html/internals_guide.html +132 -132
  56. data/glfw-3.3.9.bin.MACOS/docs/html/intro_8dox.html +81 -81
  57. data/glfw-3.3.9.bin.MACOS/docs/html/intro_guide.html +351 -351
  58. data/glfw-3.3.9.bin.MACOS/docs/html/jquery.js +33 -33
  59. data/glfw-3.3.9.bin.MACOS/docs/html/main_8dox.html +81 -81
  60. data/glfw-3.3.9.bin.MACOS/docs/html/menu.js +136 -136
  61. data/glfw-3.3.9.bin.MACOS/docs/html/menudata.js +29 -29
  62. data/glfw-3.3.9.bin.MACOS/docs/html/minus.svg +8 -8
  63. data/glfw-3.3.9.bin.MACOS/docs/html/minusd.svg +8 -8
  64. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_8dox.html +81 -81
  65. data/glfw-3.3.9.bin.MACOS/docs/html/monitor_guide.html +229 -229
  66. data/glfw-3.3.9.bin.MACOS/docs/html/moving_8dox.html +81 -81
  67. data/glfw-3.3.9.bin.MACOS/docs/html/moving_guide.html +374 -374
  68. data/glfw-3.3.9.bin.MACOS/docs/html/news.html +634 -634
  69. data/glfw-3.3.9.bin.MACOS/docs/html/news_8dox.html +81 -81
  70. data/glfw-3.3.9.bin.MACOS/docs/html/pages.html +99 -99
  71. data/glfw-3.3.9.bin.MACOS/docs/html/plus.svg +9 -9
  72. data/glfw-3.3.9.bin.MACOS/docs/html/plusd.svg +9 -9
  73. data/glfw-3.3.9.bin.MACOS/docs/html/quick_8dox.html +81 -81
  74. data/glfw-3.3.9.bin.MACOS/docs/html/quick_guide.html +397 -397
  75. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_0.js +5 -5
  76. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1.js +4 -4
  77. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_10.js +65 -65
  78. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_11.js +26 -26
  79. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_12.js +44 -44
  80. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_13.js +34 -34
  81. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_14.js +12 -12
  82. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_15.js +52 -52
  83. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_16.js +69 -69
  84. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_17.js +51 -51
  85. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_18.js +14 -14
  86. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_19.js +36 -36
  87. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1a.js +98 -98
  88. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_1b.js +12 -12
  89. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_2.js +6 -6
  90. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_3.js +9 -9
  91. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_4.js +57 -57
  92. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_5.js +22 -22
  93. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_6.js +103 -103
  94. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_7.js +23 -23
  95. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_8.js +35 -35
  96. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_9.js +63 -63
  97. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_a.js +505 -505
  98. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_b.js +24 -24
  99. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_c.js +50 -50
  100. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_d.js +17 -17
  101. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_e.js +12 -12
  102. data/glfw-3.3.9.bin.MACOS/docs/html/search/all_f.js +35 -35
  103. data/glfw-3.3.9.bin.MACOS/docs/html/search/classes_0.js +7 -7
  104. data/glfw-3.3.9.bin.MACOS/docs/html/search/close.svg +18 -18
  105. data/glfw-3.3.9.bin.MACOS/docs/html/search/defines_0.js +34 -34
  106. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_0.js +4 -4
  107. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_1.js +6 -6
  108. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_2.js +5 -5
  109. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_3.js +6 -6
  110. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_4.js +6 -6
  111. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_5.js +4 -4
  112. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_6.js +4 -4
  113. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_7.js +4 -4
  114. data/glfw-3.3.9.bin.MACOS/docs/html/search/files_8.js +4 -4
  115. data/glfw-3.3.9.bin.MACOS/docs/html/search/functions_0.js +146 -146
  116. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_0.js +6 -6
  117. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_1.js +4 -4
  118. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_10.js +4 -4
  119. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_2.js +6 -6
  120. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_3.js +5 -5
  121. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_4.js +4 -4
  122. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_5.js +5 -5
  123. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_6.js +4 -4
  124. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_7.js +5 -5
  125. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_8.js +5 -5
  126. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_9.js +6 -6
  127. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_a.js +6 -6
  128. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_b.js +4 -4
  129. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_c.js +4 -4
  130. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_d.js +7 -7
  131. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_e.js +4 -4
  132. data/glfw-3.3.9.bin.MACOS/docs/html/search/groups_f.js +5 -5
  133. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag.svg +24 -24
  134. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_d.svg +24 -24
  135. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_sel.svg +31 -31
  136. data/glfw-3.3.9.bin.MACOS/docs/html/search/mag_seld.svg +31 -31
  137. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_0.js +4 -4
  138. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_1.js +4 -4
  139. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_10.js +4 -4
  140. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_2.js +5 -5
  141. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_3.js +4 -4
  142. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_4.js +6 -6
  143. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_5.js +4 -4
  144. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_6.js +4 -4
  145. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_7.js +7 -7
  146. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_8.js +6 -6
  147. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_9.js +4 -4
  148. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_a.js +5 -5
  149. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_b.js +5 -5
  150. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_c.js +4 -4
  151. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_d.js +6 -6
  152. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_e.js +6 -6
  153. data/glfw-3.3.9.bin.MACOS/docs/html/search/pages_f.js +4 -4
  154. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.css +291 -291
  155. data/glfw-3.3.9.bin.MACOS/docs/html/search/search.js +840 -840
  156. data/glfw-3.3.9.bin.MACOS/docs/html/search/searchdata.js +39 -39
  157. data/glfw-3.3.9.bin.MACOS/docs/html/search/typedefs_0.js +32 -32
  158. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_0.js +4 -4
  159. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_1.js +6 -6
  160. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_2.js +5 -5
  161. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_3.js +4 -4
  162. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_4.js +4 -4
  163. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_5.js +6 -6
  164. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_6.js +4 -4
  165. data/glfw-3.3.9.bin.MACOS/docs/html/search/variables_7.js +4 -4
  166. data/glfw-3.3.9.bin.MACOS/docs/html/spaces.svg +877 -877
  167. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgamepadstate.html +134 -134
  168. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wgammaramp.html +170 -170
  169. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wimage.html +151 -151
  170. data/glfw-3.3.9.bin.MACOS/docs/html/struct_g_l_f_wvidmode.html +204 -204
  171. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_8dox.html +81 -81
  172. data/glfw-3.3.9.bin.MACOS/docs/html/vulkan_guide.html +196 -196
  173. data/glfw-3.3.9.bin.MACOS/docs/html/window_8dox.html +81 -81
  174. data/glfw-3.3.9.bin.MACOS/docs/html/window_guide.html +763 -763
  175. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3.h +5932 -5932
  176. data/glfw-3.3.9.bin.MACOS/include/GLFW/glfw3native.h +634 -634
  177. data/glfw-3.3.9.bin.MACOS/lib-arm64/libglfw.3.dylib +0 -0
  178. data/glfw-3.3.9.bin.MACOS/lib-universal/libglfw.3.dylib +0 -0
  179. data/glfw-3.3.9.bin.MACOS/lib-x86_64/libglfw.3.dylib +0 -0
  180. data/lib/engine/autoloader.rb +11 -11
  181. data/lib/engine/camera.rb +12 -12
  182. data/lib/engine/component.rb +63 -63
  183. data/lib/engine/components/audio_source.rb +41 -41
  184. data/lib/engine/components/direction_light.rb +22 -22
  185. data/lib/engine/components/font_renderer.rb +134 -134
  186. data/lib/engine/components/mesh_renderer.rb +31 -31
  187. data/lib/engine/components/orthographic_camera.rb +54 -54
  188. data/lib/engine/components/perspective_camera.rb +53 -53
  189. data/lib/engine/components/point_light.rb +23 -23
  190. data/lib/engine/components/sprite_renderer.rb +141 -141
  191. data/lib/engine/components/ui_font_renderer.rb +140 -140
  192. data/lib/engine/components/ui_sprite_clickbox.rb +62 -0
  193. data/lib/engine/components/ui_sprite_renderer.rb +101 -101
  194. data/lib/engine/compute_shader.rb +93 -0
  195. data/lib/engine/cursor.rb +43 -43
  196. data/lib/engine/debugging.rb +41 -41
  197. data/lib/engine/engine.rb +131 -131
  198. data/lib/engine/font.rb +74 -74
  199. data/lib/engine/game_object.rb +234 -234
  200. data/lib/engine/importers/font_importer.rb +69 -69
  201. data/lib/engine/importers/obj_file.rb +244 -244
  202. data/lib/engine/importers/obj_importer.rb +33 -33
  203. data/lib/engine/input.rb +105 -104
  204. data/lib/engine/material.rb +79 -79
  205. data/lib/engine/mesh.rb +43 -43
  206. data/lib/engine/path.rb +92 -92
  207. data/lib/engine/physics/collision.rb +12 -12
  208. data/lib/engine/physics/components/cube_collider.rb +6 -6
  209. data/lib/engine/physics/components/rigidbody.rb +103 -103
  210. data/lib/engine/physics/components/sphere_collider.rb +93 -93
  211. data/lib/engine/physics/physics_resolver.rb +37 -37
  212. data/lib/engine/polygon_mesh.rb +45 -45
  213. data/lib/engine/quaternion.rb +234 -234
  214. data/lib/engine/rendering/instance_renderer.rb +153 -153
  215. data/lib/engine/rendering/render_pipeline.rb +35 -35
  216. data/lib/engine/screenshoter.rb +34 -34
  217. data/lib/engine/shader.rb +119 -91
  218. data/lib/engine/shaders/colour_frag.glsl +8 -8
  219. data/lib/engine/shaders/colour_vertex.glsl +13 -13
  220. data/lib/engine/shaders/mesh_frag.glsl +102 -102
  221. data/lib/engine/shaders/mesh_vertex.glsl +25 -25
  222. data/lib/engine/shaders/skybox_frag.glsl +12 -12
  223. data/lib/engine/shaders/skybox_vert.glsl +14 -14
  224. data/lib/engine/shaders/sprite_frag.glsl +17 -17
  225. data/lib/engine/shaders/sprite_vertex.glsl +15 -15
  226. data/lib/engine/shaders/text_frag.glsl +15 -15
  227. data/lib/engine/shaders/text_vertex.glsl +31 -31
  228. data/lib/engine/shaders/ui_sprite_frag.glsl +15 -15
  229. data/lib/engine/shaders/ui_sprite_vertex.glsl +15 -15
  230. data/lib/engine/shaders/vertex_lit_frag.glsl +89 -89
  231. data/lib/engine/shaders/vertex_lit_vertex.glsl +28 -28
  232. data/lib/engine/tangent_calculator.rb +42 -42
  233. data/lib/engine/texture.rb +53 -53
  234. data/lib/engine/video_mode.rb +37 -37
  235. data/lib/engine/window.rb +126 -126
  236. data/lib/ruby_rpg.rb +58 -56
  237. metadata +5 -6
@@ -1,634 +1,634 @@
1
- /*************************************************************************
2
- * GLFW 3.3 - www.glfw.org
3
- * A library for OpenGL, window and input
4
- *------------------------------------------------------------------------
5
- * Copyright (c) 2002-2006 Marcus Geelnard
6
- * Copyright (c) 2006-2018 Camilla Löwy <elmindreda@glfw.org>
7
- *
8
- * This software is provided 'as-is', without any express or implied
9
- * warranty. In no event will the authors be held liable for any damages
10
- * arising from the use of this software.
11
- *
12
- * Permission is granted to anyone to use this software for any purpose,
13
- * including commercial applications, and to alter it and redistribute it
14
- * freely, subject to the following restrictions:
15
- *
16
- * 1. The origin of this software must not be misrepresented; you must not
17
- * claim that you wrote the original software. If you use this software
18
- * in a product, an acknowledgment in the product documentation would
19
- * be appreciated but is not required.
20
- *
21
- * 2. Altered source versions must be plainly marked as such, and must not
22
- * be misrepresented as being the original software.
23
- *
24
- * 3. This notice may not be removed or altered from any source
25
- * distribution.
26
- *
27
- *************************************************************************/
28
-
29
- #ifndef _glfw3_native_h_
30
- #define _glfw3_native_h_
31
-
32
- #ifdef __cplusplus
33
- extern "C" {
34
- #endif
35
-
36
-
37
- /*************************************************************************
38
- * Doxygen documentation
39
- *************************************************************************/
40
-
41
- /*! @file glfw3native.h
42
- * @brief The header of the native access functions.
43
- *
44
- * This is the header file of the native access functions. See @ref native for
45
- * more information.
46
- */
47
- /*! @defgroup native Native access
48
- * @brief Functions related to accessing native handles.
49
- *
50
- * **By using the native access functions you assert that you know what you're
51
- * doing and how to fix problems caused by using them. If you don't, you
52
- * shouldn't be using them.**
53
- *
54
- * Before the inclusion of @ref glfw3native.h, you may define zero or more
55
- * window system API macro and zero or more context creation API macros.
56
- *
57
- * The chosen backends must match those the library was compiled for. Failure
58
- * to do this will cause a link-time error.
59
- *
60
- * The available window API macros are:
61
- * * `GLFW_EXPOSE_NATIVE_WIN32`
62
- * * `GLFW_EXPOSE_NATIVE_COCOA`
63
- * * `GLFW_EXPOSE_NATIVE_X11`
64
- * * `GLFW_EXPOSE_NATIVE_WAYLAND`
65
- *
66
- * The available context API macros are:
67
- * * `GLFW_EXPOSE_NATIVE_WGL`
68
- * * `GLFW_EXPOSE_NATIVE_NSGL`
69
- * * `GLFW_EXPOSE_NATIVE_GLX`
70
- * * `GLFW_EXPOSE_NATIVE_EGL`
71
- * * `GLFW_EXPOSE_NATIVE_OSMESA`
72
- *
73
- * These macros select which of the native access functions that are declared
74
- * and which platform-specific headers to include. It is then up your (by
75
- * definition platform-specific) code to handle which of these should be
76
- * defined.
77
- *
78
- * If you do not want the platform-specific headers to be included, define
79
- * `GLFW_NATIVE_INCLUDE_NONE` before including the @ref glfw3native.h header.
80
- *
81
- * @code
82
- * #define GLFW_EXPOSE_NATIVE_WIN32
83
- * #define GLFW_EXPOSE_NATIVE_WGL
84
- * #define GLFW_NATIVE_INCLUDE_NONE
85
- * #include <GLFW/glfw3native.h>
86
- * @endcode
87
- */
88
-
89
-
90
- /*************************************************************************
91
- * System headers and types
92
- *************************************************************************/
93
-
94
- #if !defined(GLFW_NATIVE_INCLUDE_NONE)
95
-
96
- #if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)
97
- /* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
98
- * example to allow applications to correctly declare a GL_KHR_debug callback)
99
- * but windows.h assumes no one will define APIENTRY before it does
100
- */
101
- #if defined(GLFW_APIENTRY_DEFINED)
102
- #undef APIENTRY
103
- #undef GLFW_APIENTRY_DEFINED
104
- #endif
105
- #include <windows.h>
106
- #endif
107
-
108
- #if defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)
109
- #if defined(__OBJC__)
110
- #import <Cocoa/Cocoa.h>
111
- #else
112
- #include <ApplicationServices/ApplicationServices.h>
113
- #include <objc/objc.h>
114
- #endif
115
- #endif
116
-
117
- #if defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)
118
- #include <X11/Xlib.h>
119
- #include <X11/extensions/Xrandr.h>
120
- #endif
121
-
122
- #if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
123
- #include <wayland-client.h>
124
- #endif
125
-
126
- #if defined(GLFW_EXPOSE_NATIVE_WGL)
127
- /* WGL is declared by windows.h */
128
- #endif
129
- #if defined(GLFW_EXPOSE_NATIVE_NSGL)
130
- /* NSGL is declared by Cocoa.h */
131
- #endif
132
- #if defined(GLFW_EXPOSE_NATIVE_GLX)
133
- /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
134
- * default it also acts as an OpenGL header
135
- * However, glx.h will include gl.h, which will define it unconditionally
136
- */
137
- #if defined(GLFW_GLAPIENTRY_DEFINED)
138
- #undef GLAPIENTRY
139
- #undef GLFW_GLAPIENTRY_DEFINED
140
- #endif
141
- #include <GL/glx.h>
142
- #endif
143
- #if defined(GLFW_EXPOSE_NATIVE_EGL)
144
- #include <EGL/egl.h>
145
- #endif
146
- #if defined(GLFW_EXPOSE_NATIVE_OSMESA)
147
- /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
148
- * default it also acts as an OpenGL header
149
- * However, osmesa.h will include gl.h, which will define it unconditionally
150
- */
151
- #if defined(GLFW_GLAPIENTRY_DEFINED)
152
- #undef GLAPIENTRY
153
- #undef GLFW_GLAPIENTRY_DEFINED
154
- #endif
155
- #include <GL/osmesa.h>
156
- #endif
157
-
158
- #endif /*GLFW_NATIVE_INCLUDE_NONE*/
159
-
160
-
161
- /*************************************************************************
162
- * Functions
163
- *************************************************************************/
164
-
165
- #if defined(GLFW_EXPOSE_NATIVE_WIN32)
166
- /*! @brief Returns the adapter device name of the specified monitor.
167
- *
168
- * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
169
- * of the specified monitor, or `NULL` if an [error](@ref error_handling)
170
- * occurred.
171
- *
172
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
173
- *
174
- * @thread_safety This function may be called from any thread. Access is not
175
- * synchronized.
176
- *
177
- * @since Added in version 3.1.
178
- *
179
- * @ingroup native
180
- */
181
- GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor);
182
-
183
- /*! @brief Returns the display device name of the specified monitor.
184
- *
185
- * @return The UTF-8 encoded display device name (for example
186
- * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
187
- * [error](@ref error_handling) occurred.
188
- *
189
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
190
- *
191
- * @thread_safety This function may be called from any thread. Access is not
192
- * synchronized.
193
- *
194
- * @since Added in version 3.1.
195
- *
196
- * @ingroup native
197
- */
198
- GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);
199
-
200
- /*! @brief Returns the `HWND` of the specified window.
201
- *
202
- * @return The `HWND` of the specified window, or `NULL` if an
203
- * [error](@ref error_handling) occurred.
204
- *
205
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
206
- *
207
- * @remark The `HDC` associated with the window can be queried with the
208
- * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
209
- * function.
210
- * @code
211
- * HDC dc = GetDC(glfwGetWin32Window(window));
212
- * @endcode
213
- * This DC is private and does not need to be released.
214
- *
215
- * @thread_safety This function may be called from any thread. Access is not
216
- * synchronized.
217
- *
218
- * @since Added in version 3.0.
219
- *
220
- * @ingroup native
221
- */
222
- GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window);
223
- #endif
224
-
225
- #if defined(GLFW_EXPOSE_NATIVE_WGL)
226
- /*! @brief Returns the `HGLRC` of the specified window.
227
- *
228
- * @return The `HGLRC` of the specified window, or `NULL` if an
229
- * [error](@ref error_handling) occurred.
230
- *
231
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
232
- * GLFW_NOT_INITIALIZED.
233
- *
234
- * @remark The `HDC` associated with the window can be queried with the
235
- * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
236
- * function.
237
- * @code
238
- * HDC dc = GetDC(glfwGetWin32Window(window));
239
- * @endcode
240
- * This DC is private and does not need to be released.
241
- *
242
- * @thread_safety This function may be called from any thread. Access is not
243
- * synchronized.
244
- *
245
- * @since Added in version 3.0.
246
- *
247
- * @ingroup native
248
- */
249
- GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window);
250
- #endif
251
-
252
- #if defined(GLFW_EXPOSE_NATIVE_COCOA)
253
- /*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
254
- *
255
- * @return The `CGDirectDisplayID` of the specified monitor, or
256
- * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
257
- *
258
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
259
- *
260
- * @thread_safety This function may be called from any thread. Access is not
261
- * synchronized.
262
- *
263
- * @since Added in version 3.1.
264
- *
265
- * @ingroup native
266
- */
267
- GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor);
268
-
269
- /*! @brief Returns the `NSWindow` of the specified window.
270
- *
271
- * @return The `NSWindow` of the specified window, or `nil` if an
272
- * [error](@ref error_handling) occurred.
273
- *
274
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
275
- *
276
- * @thread_safety This function may be called from any thread. Access is not
277
- * synchronized.
278
- *
279
- * @since Added in version 3.0.
280
- *
281
- * @ingroup native
282
- */
283
- GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window);
284
- #endif
285
-
286
- #if defined(GLFW_EXPOSE_NATIVE_NSGL)
287
- /*! @brief Returns the `NSOpenGLContext` of the specified window.
288
- *
289
- * @return The `NSOpenGLContext` of the specified window, or `nil` if an
290
- * [error](@ref error_handling) occurred.
291
- *
292
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
293
- * GLFW_NOT_INITIALIZED.
294
- *
295
- * @thread_safety This function may be called from any thread. Access is not
296
- * synchronized.
297
- *
298
- * @since Added in version 3.0.
299
- *
300
- * @ingroup native
301
- */
302
- GLFWAPI id glfwGetNSGLContext(GLFWwindow* window);
303
- #endif
304
-
305
- #if defined(GLFW_EXPOSE_NATIVE_X11)
306
- /*! @brief Returns the `Display` used by GLFW.
307
- *
308
- * @return The `Display` used by GLFW, or `NULL` if an
309
- * [error](@ref error_handling) occurred.
310
- *
311
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
312
- *
313
- * @thread_safety This function may be called from any thread. Access is not
314
- * synchronized.
315
- *
316
- * @since Added in version 3.0.
317
- *
318
- * @ingroup native
319
- */
320
- GLFWAPI Display* glfwGetX11Display(void);
321
-
322
- /*! @brief Returns the `RRCrtc` of the specified monitor.
323
- *
324
- * @return The `RRCrtc` of the specified monitor, or `None` if an
325
- * [error](@ref error_handling) occurred.
326
- *
327
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
328
- *
329
- * @thread_safety This function may be called from any thread. Access is not
330
- * synchronized.
331
- *
332
- * @since Added in version 3.1.
333
- *
334
- * @ingroup native
335
- */
336
- GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor);
337
-
338
- /*! @brief Returns the `RROutput` of the specified monitor.
339
- *
340
- * @return The `RROutput` of the specified monitor, or `None` if an
341
- * [error](@ref error_handling) occurred.
342
- *
343
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
344
- *
345
- * @thread_safety This function may be called from any thread. Access is not
346
- * synchronized.
347
- *
348
- * @since Added in version 3.1.
349
- *
350
- * @ingroup native
351
- */
352
- GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor);
353
-
354
- /*! @brief Returns the `Window` of the specified window.
355
- *
356
- * @return The `Window` of the specified window, or `None` if an
357
- * [error](@ref error_handling) occurred.
358
- *
359
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
360
- *
361
- * @thread_safety This function may be called from any thread. Access is not
362
- * synchronized.
363
- *
364
- * @since Added in version 3.0.
365
- *
366
- * @ingroup native
367
- */
368
- GLFWAPI Window glfwGetX11Window(GLFWwindow* window);
369
-
370
- /*! @brief Sets the current primary selection to the specified string.
371
- *
372
- * @param[in] string A UTF-8 encoded string.
373
- *
374
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
375
- * GLFW_PLATFORM_ERROR.
376
- *
377
- * @pointer_lifetime The specified string is copied before this function
378
- * returns.
379
- *
380
- * @thread_safety This function must only be called from the main thread.
381
- *
382
- * @sa @ref clipboard
383
- * @sa glfwGetX11SelectionString
384
- * @sa glfwSetClipboardString
385
- *
386
- * @since Added in version 3.3.
387
- *
388
- * @ingroup native
389
- */
390
- GLFWAPI void glfwSetX11SelectionString(const char* string);
391
-
392
- /*! @brief Returns the contents of the current primary selection as a string.
393
- *
394
- * If the selection is empty or if its contents cannot be converted, `NULL`
395
- * is returned and a @ref GLFW_FORMAT_UNAVAILABLE error is generated.
396
- *
397
- * @return The contents of the selection as a UTF-8 encoded string, or `NULL`
398
- * if an [error](@ref error_handling) occurred.
399
- *
400
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
401
- * GLFW_PLATFORM_ERROR.
402
- *
403
- * @pointer_lifetime The returned string is allocated and freed by GLFW. You
404
- * should not free it yourself. It is valid until the next call to @ref
405
- * glfwGetX11SelectionString or @ref glfwSetX11SelectionString, or until the
406
- * library is terminated.
407
- *
408
- * @thread_safety This function must only be called from the main thread.
409
- *
410
- * @sa @ref clipboard
411
- * @sa glfwSetX11SelectionString
412
- * @sa glfwGetClipboardString
413
- *
414
- * @since Added in version 3.3.
415
- *
416
- * @ingroup native
417
- */
418
- GLFWAPI const char* glfwGetX11SelectionString(void);
419
- #endif
420
-
421
- #if defined(GLFW_EXPOSE_NATIVE_GLX)
422
- /*! @brief Returns the `GLXContext` of the specified window.
423
- *
424
- * @return The `GLXContext` of the specified window, or `NULL` if an
425
- * [error](@ref error_handling) occurred.
426
- *
427
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
428
- * GLFW_NOT_INITIALIZED.
429
- *
430
- * @thread_safety This function may be called from any thread. Access is not
431
- * synchronized.
432
- *
433
- * @since Added in version 3.0.
434
- *
435
- * @ingroup native
436
- */
437
- GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window);
438
-
439
- /*! @brief Returns the `GLXWindow` of the specified window.
440
- *
441
- * @return The `GLXWindow` of the specified window, or `None` if an
442
- * [error](@ref error_handling) occurred.
443
- *
444
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
445
- * GLFW_NOT_INITIALIZED.
446
- *
447
- * @thread_safety This function may be called from any thread. Access is not
448
- * synchronized.
449
- *
450
- * @since Added in version 3.2.
451
- *
452
- * @ingroup native
453
- */
454
- GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window);
455
- #endif
456
-
457
- #if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
458
- /*! @brief Returns the `struct wl_display*` used by GLFW.
459
- *
460
- * @return The `struct wl_display*` used by GLFW, or `NULL` if an
461
- * [error](@ref error_handling) occurred.
462
- *
463
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
464
- *
465
- * @thread_safety This function may be called from any thread. Access is not
466
- * synchronized.
467
- *
468
- * @since Added in version 3.2.
469
- *
470
- * @ingroup native
471
- */
472
- GLFWAPI struct wl_display* glfwGetWaylandDisplay(void);
473
-
474
- /*! @brief Returns the `struct wl_output*` of the specified monitor.
475
- *
476
- * @return The `struct wl_output*` of the specified monitor, or `NULL` if an
477
- * [error](@ref error_handling) occurred.
478
- *
479
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
480
- *
481
- * @thread_safety This function may be called from any thread. Access is not
482
- * synchronized.
483
- *
484
- * @since Added in version 3.2.
485
- *
486
- * @ingroup native
487
- */
488
- GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor);
489
-
490
- /*! @brief Returns the main `struct wl_surface*` of the specified window.
491
- *
492
- * @return The main `struct wl_surface*` of the specified window, or `NULL` if
493
- * an [error](@ref error_handling) occurred.
494
- *
495
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
496
- *
497
- * @thread_safety This function may be called from any thread. Access is not
498
- * synchronized.
499
- *
500
- * @since Added in version 3.2.
501
- *
502
- * @ingroup native
503
- */
504
- GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window);
505
- #endif
506
-
507
- #if defined(GLFW_EXPOSE_NATIVE_EGL)
508
- /*! @brief Returns the `EGLDisplay` used by GLFW.
509
- *
510
- * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
511
- * [error](@ref error_handling) occurred.
512
- *
513
- * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
514
- *
515
- * @remark Because EGL is initialized on demand, this function will return
516
- * `EGL_NO_DISPLAY` until the first context has been created via EGL.
517
- *
518
- * @thread_safety This function may be called from any thread. Access is not
519
- * synchronized.
520
- *
521
- * @since Added in version 3.0.
522
- *
523
- * @ingroup native
524
- */
525
- GLFWAPI EGLDisplay glfwGetEGLDisplay(void);
526
-
527
- /*! @brief Returns the `EGLContext` of the specified window.
528
- *
529
- * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
530
- * [error](@ref error_handling) occurred.
531
- *
532
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
533
- * GLFW_NOT_INITIALIZED.
534
- *
535
- * @thread_safety This function may be called from any thread. Access is not
536
- * synchronized.
537
- *
538
- * @since Added in version 3.0.
539
- *
540
- * @ingroup native
541
- */
542
- GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window);
543
-
544
- /*! @brief Returns the `EGLSurface` of the specified window.
545
- *
546
- * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
547
- * [error](@ref error_handling) occurred.
548
- *
549
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
550
- * GLFW_NOT_INITIALIZED.
551
- *
552
- * @thread_safety This function may be called from any thread. Access is not
553
- * synchronized.
554
- *
555
- * @since Added in version 3.0.
556
- *
557
- * @ingroup native
558
- */
559
- GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window);
560
- #endif
561
-
562
- #if defined(GLFW_EXPOSE_NATIVE_OSMESA)
563
- /*! @brief Retrieves the color buffer associated with the specified window.
564
- *
565
- * @param[in] window The window whose color buffer to retrieve.
566
- * @param[out] width Where to store the width of the color buffer, or `NULL`.
567
- * @param[out] height Where to store the height of the color buffer, or `NULL`.
568
- * @param[out] format Where to store the OSMesa pixel format of the color
569
- * buffer, or `NULL`.
570
- * @param[out] buffer Where to store the address of the color buffer, or
571
- * `NULL`.
572
- * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
573
- * [error](@ref error_handling) occurred.
574
- *
575
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
576
- * GLFW_NOT_INITIALIZED.
577
- *
578
- * @thread_safety This function may be called from any thread. Access is not
579
- * synchronized.
580
- *
581
- * @since Added in version 3.3.
582
- *
583
- * @ingroup native
584
- */
585
- GLFWAPI int glfwGetOSMesaColorBuffer(GLFWwindow* window, int* width, int* height, int* format, void** buffer);
586
-
587
- /*! @brief Retrieves the depth buffer associated with the specified window.
588
- *
589
- * @param[in] window The window whose depth buffer to retrieve.
590
- * @param[out] width Where to store the width of the depth buffer, or `NULL`.
591
- * @param[out] height Where to store the height of the depth buffer, or `NULL`.
592
- * @param[out] bytesPerValue Where to store the number of bytes per depth
593
- * buffer element, or `NULL`.
594
- * @param[out] buffer Where to store the address of the depth buffer, or
595
- * `NULL`.
596
- * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
597
- * [error](@ref error_handling) occurred.
598
- *
599
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
600
- * GLFW_NOT_INITIALIZED.
601
- *
602
- * @thread_safety This function may be called from any thread. Access is not
603
- * synchronized.
604
- *
605
- * @since Added in version 3.3.
606
- *
607
- * @ingroup native
608
- */
609
- GLFWAPI int glfwGetOSMesaDepthBuffer(GLFWwindow* window, int* width, int* height, int* bytesPerValue, void** buffer);
610
-
611
- /*! @brief Returns the `OSMesaContext` of the specified window.
612
- *
613
- * @return The `OSMesaContext` of the specified window, or `NULL` if an
614
- * [error](@ref error_handling) occurred.
615
- *
616
- * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
617
- * GLFW_NOT_INITIALIZED.
618
- *
619
- * @thread_safety This function may be called from any thread. Access is not
620
- * synchronized.
621
- *
622
- * @since Added in version 3.3.
623
- *
624
- * @ingroup native
625
- */
626
- GLFWAPI OSMesaContext glfwGetOSMesaContext(GLFWwindow* window);
627
- #endif
628
-
629
- #ifdef __cplusplus
630
- }
631
- #endif
632
-
633
- #endif /* _glfw3_native_h_ */
634
-
1
+ /*************************************************************************
2
+ * GLFW 3.3 - www.glfw.org
3
+ * A library for OpenGL, window and input
4
+ *------------------------------------------------------------------------
5
+ * Copyright (c) 2002-2006 Marcus Geelnard
6
+ * Copyright (c) 2006-2018 Camilla Löwy <elmindreda@glfw.org>
7
+ *
8
+ * This software is provided 'as-is', without any express or implied
9
+ * warranty. In no event will the authors be held liable for any damages
10
+ * arising from the use of this software.
11
+ *
12
+ * Permission is granted to anyone to use this software for any purpose,
13
+ * including commercial applications, and to alter it and redistribute it
14
+ * freely, subject to the following restrictions:
15
+ *
16
+ * 1. The origin of this software must not be misrepresented; you must not
17
+ * claim that you wrote the original software. If you use this software
18
+ * in a product, an acknowledgment in the product documentation would
19
+ * be appreciated but is not required.
20
+ *
21
+ * 2. Altered source versions must be plainly marked as such, and must not
22
+ * be misrepresented as being the original software.
23
+ *
24
+ * 3. This notice may not be removed or altered from any source
25
+ * distribution.
26
+ *
27
+ *************************************************************************/
28
+
29
+ #ifndef _glfw3_native_h_
30
+ #define _glfw3_native_h_
31
+
32
+ #ifdef __cplusplus
33
+ extern "C" {
34
+ #endif
35
+
36
+
37
+ /*************************************************************************
38
+ * Doxygen documentation
39
+ *************************************************************************/
40
+
41
+ /*! @file glfw3native.h
42
+ * @brief The header of the native access functions.
43
+ *
44
+ * This is the header file of the native access functions. See @ref native for
45
+ * more information.
46
+ */
47
+ /*! @defgroup native Native access
48
+ * @brief Functions related to accessing native handles.
49
+ *
50
+ * **By using the native access functions you assert that you know what you're
51
+ * doing and how to fix problems caused by using them. If you don't, you
52
+ * shouldn't be using them.**
53
+ *
54
+ * Before the inclusion of @ref glfw3native.h, you may define zero or more
55
+ * window system API macro and zero or more context creation API macros.
56
+ *
57
+ * The chosen backends must match those the library was compiled for. Failure
58
+ * to do this will cause a link-time error.
59
+ *
60
+ * The available window API macros are:
61
+ * * `GLFW_EXPOSE_NATIVE_WIN32`
62
+ * * `GLFW_EXPOSE_NATIVE_COCOA`
63
+ * * `GLFW_EXPOSE_NATIVE_X11`
64
+ * * `GLFW_EXPOSE_NATIVE_WAYLAND`
65
+ *
66
+ * The available context API macros are:
67
+ * * `GLFW_EXPOSE_NATIVE_WGL`
68
+ * * `GLFW_EXPOSE_NATIVE_NSGL`
69
+ * * `GLFW_EXPOSE_NATIVE_GLX`
70
+ * * `GLFW_EXPOSE_NATIVE_EGL`
71
+ * * `GLFW_EXPOSE_NATIVE_OSMESA`
72
+ *
73
+ * These macros select which of the native access functions that are declared
74
+ * and which platform-specific headers to include. It is then up your (by
75
+ * definition platform-specific) code to handle which of these should be
76
+ * defined.
77
+ *
78
+ * If you do not want the platform-specific headers to be included, define
79
+ * `GLFW_NATIVE_INCLUDE_NONE` before including the @ref glfw3native.h header.
80
+ *
81
+ * @code
82
+ * #define GLFW_EXPOSE_NATIVE_WIN32
83
+ * #define GLFW_EXPOSE_NATIVE_WGL
84
+ * #define GLFW_NATIVE_INCLUDE_NONE
85
+ * #include <GLFW/glfw3native.h>
86
+ * @endcode
87
+ */
88
+
89
+
90
+ /*************************************************************************
91
+ * System headers and types
92
+ *************************************************************************/
93
+
94
+ #if !defined(GLFW_NATIVE_INCLUDE_NONE)
95
+
96
+ #if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)
97
+ /* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for
98
+ * example to allow applications to correctly declare a GL_KHR_debug callback)
99
+ * but windows.h assumes no one will define APIENTRY before it does
100
+ */
101
+ #if defined(GLFW_APIENTRY_DEFINED)
102
+ #undef APIENTRY
103
+ #undef GLFW_APIENTRY_DEFINED
104
+ #endif
105
+ #include <windows.h>
106
+ #endif
107
+
108
+ #if defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)
109
+ #if defined(__OBJC__)
110
+ #import <Cocoa/Cocoa.h>
111
+ #else
112
+ #include <ApplicationServices/ApplicationServices.h>
113
+ #include <objc/objc.h>
114
+ #endif
115
+ #endif
116
+
117
+ #if defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)
118
+ #include <X11/Xlib.h>
119
+ #include <X11/extensions/Xrandr.h>
120
+ #endif
121
+
122
+ #if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
123
+ #include <wayland-client.h>
124
+ #endif
125
+
126
+ #if defined(GLFW_EXPOSE_NATIVE_WGL)
127
+ /* WGL is declared by windows.h */
128
+ #endif
129
+ #if defined(GLFW_EXPOSE_NATIVE_NSGL)
130
+ /* NSGL is declared by Cocoa.h */
131
+ #endif
132
+ #if defined(GLFW_EXPOSE_NATIVE_GLX)
133
+ /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
134
+ * default it also acts as an OpenGL header
135
+ * However, glx.h will include gl.h, which will define it unconditionally
136
+ */
137
+ #if defined(GLFW_GLAPIENTRY_DEFINED)
138
+ #undef GLAPIENTRY
139
+ #undef GLFW_GLAPIENTRY_DEFINED
140
+ #endif
141
+ #include <GL/glx.h>
142
+ #endif
143
+ #if defined(GLFW_EXPOSE_NATIVE_EGL)
144
+ #include <EGL/egl.h>
145
+ #endif
146
+ #if defined(GLFW_EXPOSE_NATIVE_OSMESA)
147
+ /* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by
148
+ * default it also acts as an OpenGL header
149
+ * However, osmesa.h will include gl.h, which will define it unconditionally
150
+ */
151
+ #if defined(GLFW_GLAPIENTRY_DEFINED)
152
+ #undef GLAPIENTRY
153
+ #undef GLFW_GLAPIENTRY_DEFINED
154
+ #endif
155
+ #include <GL/osmesa.h>
156
+ #endif
157
+
158
+ #endif /*GLFW_NATIVE_INCLUDE_NONE*/
159
+
160
+
161
+ /*************************************************************************
162
+ * Functions
163
+ *************************************************************************/
164
+
165
+ #if defined(GLFW_EXPOSE_NATIVE_WIN32)
166
+ /*! @brief Returns the adapter device name of the specified monitor.
167
+ *
168
+ * @return The UTF-8 encoded adapter device name (for example `\\.\DISPLAY1`)
169
+ * of the specified monitor, or `NULL` if an [error](@ref error_handling)
170
+ * occurred.
171
+ *
172
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
173
+ *
174
+ * @thread_safety This function may be called from any thread. Access is not
175
+ * synchronized.
176
+ *
177
+ * @since Added in version 3.1.
178
+ *
179
+ * @ingroup native
180
+ */
181
+ GLFWAPI const char* glfwGetWin32Adapter(GLFWmonitor* monitor);
182
+
183
+ /*! @brief Returns the display device name of the specified monitor.
184
+ *
185
+ * @return The UTF-8 encoded display device name (for example
186
+ * `\\.\DISPLAY1\Monitor0`) of the specified monitor, or `NULL` if an
187
+ * [error](@ref error_handling) occurred.
188
+ *
189
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
190
+ *
191
+ * @thread_safety This function may be called from any thread. Access is not
192
+ * synchronized.
193
+ *
194
+ * @since Added in version 3.1.
195
+ *
196
+ * @ingroup native
197
+ */
198
+ GLFWAPI const char* glfwGetWin32Monitor(GLFWmonitor* monitor);
199
+
200
+ /*! @brief Returns the `HWND` of the specified window.
201
+ *
202
+ * @return The `HWND` of the specified window, or `NULL` if an
203
+ * [error](@ref error_handling) occurred.
204
+ *
205
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
206
+ *
207
+ * @remark The `HDC` associated with the window can be queried with the
208
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
209
+ * function.
210
+ * @code
211
+ * HDC dc = GetDC(glfwGetWin32Window(window));
212
+ * @endcode
213
+ * This DC is private and does not need to be released.
214
+ *
215
+ * @thread_safety This function may be called from any thread. Access is not
216
+ * synchronized.
217
+ *
218
+ * @since Added in version 3.0.
219
+ *
220
+ * @ingroup native
221
+ */
222
+ GLFWAPI HWND glfwGetWin32Window(GLFWwindow* window);
223
+ #endif
224
+
225
+ #if defined(GLFW_EXPOSE_NATIVE_WGL)
226
+ /*! @brief Returns the `HGLRC` of the specified window.
227
+ *
228
+ * @return The `HGLRC` of the specified window, or `NULL` if an
229
+ * [error](@ref error_handling) occurred.
230
+ *
231
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
232
+ * GLFW_NOT_INITIALIZED.
233
+ *
234
+ * @remark The `HDC` associated with the window can be queried with the
235
+ * [GetDC](https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc)
236
+ * function.
237
+ * @code
238
+ * HDC dc = GetDC(glfwGetWin32Window(window));
239
+ * @endcode
240
+ * This DC is private and does not need to be released.
241
+ *
242
+ * @thread_safety This function may be called from any thread. Access is not
243
+ * synchronized.
244
+ *
245
+ * @since Added in version 3.0.
246
+ *
247
+ * @ingroup native
248
+ */
249
+ GLFWAPI HGLRC glfwGetWGLContext(GLFWwindow* window);
250
+ #endif
251
+
252
+ #if defined(GLFW_EXPOSE_NATIVE_COCOA)
253
+ /*! @brief Returns the `CGDirectDisplayID` of the specified monitor.
254
+ *
255
+ * @return The `CGDirectDisplayID` of the specified monitor, or
256
+ * `kCGNullDirectDisplay` if an [error](@ref error_handling) occurred.
257
+ *
258
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
259
+ *
260
+ * @thread_safety This function may be called from any thread. Access is not
261
+ * synchronized.
262
+ *
263
+ * @since Added in version 3.1.
264
+ *
265
+ * @ingroup native
266
+ */
267
+ GLFWAPI CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor* monitor);
268
+
269
+ /*! @brief Returns the `NSWindow` of the specified window.
270
+ *
271
+ * @return The `NSWindow` of the specified window, or `nil` if an
272
+ * [error](@ref error_handling) occurred.
273
+ *
274
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
275
+ *
276
+ * @thread_safety This function may be called from any thread. Access is not
277
+ * synchronized.
278
+ *
279
+ * @since Added in version 3.0.
280
+ *
281
+ * @ingroup native
282
+ */
283
+ GLFWAPI id glfwGetCocoaWindow(GLFWwindow* window);
284
+ #endif
285
+
286
+ #if defined(GLFW_EXPOSE_NATIVE_NSGL)
287
+ /*! @brief Returns the `NSOpenGLContext` of the specified window.
288
+ *
289
+ * @return The `NSOpenGLContext` of the specified window, or `nil` if an
290
+ * [error](@ref error_handling) occurred.
291
+ *
292
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
293
+ * GLFW_NOT_INITIALIZED.
294
+ *
295
+ * @thread_safety This function may be called from any thread. Access is not
296
+ * synchronized.
297
+ *
298
+ * @since Added in version 3.0.
299
+ *
300
+ * @ingroup native
301
+ */
302
+ GLFWAPI id glfwGetNSGLContext(GLFWwindow* window);
303
+ #endif
304
+
305
+ #if defined(GLFW_EXPOSE_NATIVE_X11)
306
+ /*! @brief Returns the `Display` used by GLFW.
307
+ *
308
+ * @return The `Display` used by GLFW, or `NULL` if an
309
+ * [error](@ref error_handling) occurred.
310
+ *
311
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
312
+ *
313
+ * @thread_safety This function may be called from any thread. Access is not
314
+ * synchronized.
315
+ *
316
+ * @since Added in version 3.0.
317
+ *
318
+ * @ingroup native
319
+ */
320
+ GLFWAPI Display* glfwGetX11Display(void);
321
+
322
+ /*! @brief Returns the `RRCrtc` of the specified monitor.
323
+ *
324
+ * @return The `RRCrtc` of the specified monitor, or `None` if an
325
+ * [error](@ref error_handling) occurred.
326
+ *
327
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
328
+ *
329
+ * @thread_safety This function may be called from any thread. Access is not
330
+ * synchronized.
331
+ *
332
+ * @since Added in version 3.1.
333
+ *
334
+ * @ingroup native
335
+ */
336
+ GLFWAPI RRCrtc glfwGetX11Adapter(GLFWmonitor* monitor);
337
+
338
+ /*! @brief Returns the `RROutput` of the specified monitor.
339
+ *
340
+ * @return The `RROutput` of the specified monitor, or `None` if an
341
+ * [error](@ref error_handling) occurred.
342
+ *
343
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
344
+ *
345
+ * @thread_safety This function may be called from any thread. Access is not
346
+ * synchronized.
347
+ *
348
+ * @since Added in version 3.1.
349
+ *
350
+ * @ingroup native
351
+ */
352
+ GLFWAPI RROutput glfwGetX11Monitor(GLFWmonitor* monitor);
353
+
354
+ /*! @brief Returns the `Window` of the specified window.
355
+ *
356
+ * @return The `Window` of the specified window, or `None` if an
357
+ * [error](@ref error_handling) occurred.
358
+ *
359
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
360
+ *
361
+ * @thread_safety This function may be called from any thread. Access is not
362
+ * synchronized.
363
+ *
364
+ * @since Added in version 3.0.
365
+ *
366
+ * @ingroup native
367
+ */
368
+ GLFWAPI Window glfwGetX11Window(GLFWwindow* window);
369
+
370
+ /*! @brief Sets the current primary selection to the specified string.
371
+ *
372
+ * @param[in] string A UTF-8 encoded string.
373
+ *
374
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
375
+ * GLFW_PLATFORM_ERROR.
376
+ *
377
+ * @pointer_lifetime The specified string is copied before this function
378
+ * returns.
379
+ *
380
+ * @thread_safety This function must only be called from the main thread.
381
+ *
382
+ * @sa @ref clipboard
383
+ * @sa glfwGetX11SelectionString
384
+ * @sa glfwSetClipboardString
385
+ *
386
+ * @since Added in version 3.3.
387
+ *
388
+ * @ingroup native
389
+ */
390
+ GLFWAPI void glfwSetX11SelectionString(const char* string);
391
+
392
+ /*! @brief Returns the contents of the current primary selection as a string.
393
+ *
394
+ * If the selection is empty or if its contents cannot be converted, `NULL`
395
+ * is returned and a @ref GLFW_FORMAT_UNAVAILABLE error is generated.
396
+ *
397
+ * @return The contents of the selection as a UTF-8 encoded string, or `NULL`
398
+ * if an [error](@ref error_handling) occurred.
399
+ *
400
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED and @ref
401
+ * GLFW_PLATFORM_ERROR.
402
+ *
403
+ * @pointer_lifetime The returned string is allocated and freed by GLFW. You
404
+ * should not free it yourself. It is valid until the next call to @ref
405
+ * glfwGetX11SelectionString or @ref glfwSetX11SelectionString, or until the
406
+ * library is terminated.
407
+ *
408
+ * @thread_safety This function must only be called from the main thread.
409
+ *
410
+ * @sa @ref clipboard
411
+ * @sa glfwSetX11SelectionString
412
+ * @sa glfwGetClipboardString
413
+ *
414
+ * @since Added in version 3.3.
415
+ *
416
+ * @ingroup native
417
+ */
418
+ GLFWAPI const char* glfwGetX11SelectionString(void);
419
+ #endif
420
+
421
+ #if defined(GLFW_EXPOSE_NATIVE_GLX)
422
+ /*! @brief Returns the `GLXContext` of the specified window.
423
+ *
424
+ * @return The `GLXContext` of the specified window, or `NULL` if an
425
+ * [error](@ref error_handling) occurred.
426
+ *
427
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
428
+ * GLFW_NOT_INITIALIZED.
429
+ *
430
+ * @thread_safety This function may be called from any thread. Access is not
431
+ * synchronized.
432
+ *
433
+ * @since Added in version 3.0.
434
+ *
435
+ * @ingroup native
436
+ */
437
+ GLFWAPI GLXContext glfwGetGLXContext(GLFWwindow* window);
438
+
439
+ /*! @brief Returns the `GLXWindow` of the specified window.
440
+ *
441
+ * @return The `GLXWindow` of the specified window, or `None` if an
442
+ * [error](@ref error_handling) occurred.
443
+ *
444
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
445
+ * GLFW_NOT_INITIALIZED.
446
+ *
447
+ * @thread_safety This function may be called from any thread. Access is not
448
+ * synchronized.
449
+ *
450
+ * @since Added in version 3.2.
451
+ *
452
+ * @ingroup native
453
+ */
454
+ GLFWAPI GLXWindow glfwGetGLXWindow(GLFWwindow* window);
455
+ #endif
456
+
457
+ #if defined(GLFW_EXPOSE_NATIVE_WAYLAND)
458
+ /*! @brief Returns the `struct wl_display*` used by GLFW.
459
+ *
460
+ * @return The `struct wl_display*` used by GLFW, or `NULL` if an
461
+ * [error](@ref error_handling) occurred.
462
+ *
463
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
464
+ *
465
+ * @thread_safety This function may be called from any thread. Access is not
466
+ * synchronized.
467
+ *
468
+ * @since Added in version 3.2.
469
+ *
470
+ * @ingroup native
471
+ */
472
+ GLFWAPI struct wl_display* glfwGetWaylandDisplay(void);
473
+
474
+ /*! @brief Returns the `struct wl_output*` of the specified monitor.
475
+ *
476
+ * @return The `struct wl_output*` of the specified monitor, or `NULL` if an
477
+ * [error](@ref error_handling) occurred.
478
+ *
479
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
480
+ *
481
+ * @thread_safety This function may be called from any thread. Access is not
482
+ * synchronized.
483
+ *
484
+ * @since Added in version 3.2.
485
+ *
486
+ * @ingroup native
487
+ */
488
+ GLFWAPI struct wl_output* glfwGetWaylandMonitor(GLFWmonitor* monitor);
489
+
490
+ /*! @brief Returns the main `struct wl_surface*` of the specified window.
491
+ *
492
+ * @return The main `struct wl_surface*` of the specified window, or `NULL` if
493
+ * an [error](@ref error_handling) occurred.
494
+ *
495
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
496
+ *
497
+ * @thread_safety This function may be called from any thread. Access is not
498
+ * synchronized.
499
+ *
500
+ * @since Added in version 3.2.
501
+ *
502
+ * @ingroup native
503
+ */
504
+ GLFWAPI struct wl_surface* glfwGetWaylandWindow(GLFWwindow* window);
505
+ #endif
506
+
507
+ #if defined(GLFW_EXPOSE_NATIVE_EGL)
508
+ /*! @brief Returns the `EGLDisplay` used by GLFW.
509
+ *
510
+ * @return The `EGLDisplay` used by GLFW, or `EGL_NO_DISPLAY` if an
511
+ * [error](@ref error_handling) occurred.
512
+ *
513
+ * @errors Possible errors include @ref GLFW_NOT_INITIALIZED.
514
+ *
515
+ * @remark Because EGL is initialized on demand, this function will return
516
+ * `EGL_NO_DISPLAY` until the first context has been created via EGL.
517
+ *
518
+ * @thread_safety This function may be called from any thread. Access is not
519
+ * synchronized.
520
+ *
521
+ * @since Added in version 3.0.
522
+ *
523
+ * @ingroup native
524
+ */
525
+ GLFWAPI EGLDisplay glfwGetEGLDisplay(void);
526
+
527
+ /*! @brief Returns the `EGLContext` of the specified window.
528
+ *
529
+ * @return The `EGLContext` of the specified window, or `EGL_NO_CONTEXT` if an
530
+ * [error](@ref error_handling) occurred.
531
+ *
532
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
533
+ * GLFW_NOT_INITIALIZED.
534
+ *
535
+ * @thread_safety This function may be called from any thread. Access is not
536
+ * synchronized.
537
+ *
538
+ * @since Added in version 3.0.
539
+ *
540
+ * @ingroup native
541
+ */
542
+ GLFWAPI EGLContext glfwGetEGLContext(GLFWwindow* window);
543
+
544
+ /*! @brief Returns the `EGLSurface` of the specified window.
545
+ *
546
+ * @return The `EGLSurface` of the specified window, or `EGL_NO_SURFACE` if an
547
+ * [error](@ref error_handling) occurred.
548
+ *
549
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
550
+ * GLFW_NOT_INITIALIZED.
551
+ *
552
+ * @thread_safety This function may be called from any thread. Access is not
553
+ * synchronized.
554
+ *
555
+ * @since Added in version 3.0.
556
+ *
557
+ * @ingroup native
558
+ */
559
+ GLFWAPI EGLSurface glfwGetEGLSurface(GLFWwindow* window);
560
+ #endif
561
+
562
+ #if defined(GLFW_EXPOSE_NATIVE_OSMESA)
563
+ /*! @brief Retrieves the color buffer associated with the specified window.
564
+ *
565
+ * @param[in] window The window whose color buffer to retrieve.
566
+ * @param[out] width Where to store the width of the color buffer, or `NULL`.
567
+ * @param[out] height Where to store the height of the color buffer, or `NULL`.
568
+ * @param[out] format Where to store the OSMesa pixel format of the color
569
+ * buffer, or `NULL`.
570
+ * @param[out] buffer Where to store the address of the color buffer, or
571
+ * `NULL`.
572
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
573
+ * [error](@ref error_handling) occurred.
574
+ *
575
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
576
+ * GLFW_NOT_INITIALIZED.
577
+ *
578
+ * @thread_safety This function may be called from any thread. Access is not
579
+ * synchronized.
580
+ *
581
+ * @since Added in version 3.3.
582
+ *
583
+ * @ingroup native
584
+ */
585
+ GLFWAPI int glfwGetOSMesaColorBuffer(GLFWwindow* window, int* width, int* height, int* format, void** buffer);
586
+
587
+ /*! @brief Retrieves the depth buffer associated with the specified window.
588
+ *
589
+ * @param[in] window The window whose depth buffer to retrieve.
590
+ * @param[out] width Where to store the width of the depth buffer, or `NULL`.
591
+ * @param[out] height Where to store the height of the depth buffer, or `NULL`.
592
+ * @param[out] bytesPerValue Where to store the number of bytes per depth
593
+ * buffer element, or `NULL`.
594
+ * @param[out] buffer Where to store the address of the depth buffer, or
595
+ * `NULL`.
596
+ * @return `GLFW_TRUE` if successful, or `GLFW_FALSE` if an
597
+ * [error](@ref error_handling) occurred.
598
+ *
599
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
600
+ * GLFW_NOT_INITIALIZED.
601
+ *
602
+ * @thread_safety This function may be called from any thread. Access is not
603
+ * synchronized.
604
+ *
605
+ * @since Added in version 3.3.
606
+ *
607
+ * @ingroup native
608
+ */
609
+ GLFWAPI int glfwGetOSMesaDepthBuffer(GLFWwindow* window, int* width, int* height, int* bytesPerValue, void** buffer);
610
+
611
+ /*! @brief Returns the `OSMesaContext` of the specified window.
612
+ *
613
+ * @return The `OSMesaContext` of the specified window, or `NULL` if an
614
+ * [error](@ref error_handling) occurred.
615
+ *
616
+ * @errors Possible errors include @ref GLFW_NO_WINDOW_CONTEXT and @ref
617
+ * GLFW_NOT_INITIALIZED.
618
+ *
619
+ * @thread_safety This function may be called from any thread. Access is not
620
+ * synchronized.
621
+ *
622
+ * @since Added in version 3.3.
623
+ *
624
+ * @ingroup native
625
+ */
626
+ GLFWAPI OSMesaContext glfwGetOSMesaContext(GLFWwindow* window);
627
+ #endif
628
+
629
+ #ifdef __cplusplus
630
+ }
631
+ #endif
632
+
633
+ #endif /* _glfw3_native_h_ */
634
+