Bläddra i källkod

Updated to GLFW 3.3.8

Added GLFW Joystick driver.
Brucey 3 år sedan
förälder
incheckning
77eae8a432
100 ändrade filer med 6813 tillägg och 5128 borttagningar
  1. 1 0
      .gitignore
  2. 2 2
      examples/learnopengl/1.getting_started/2.1.hello_triangle.bmx
  3. 3 3
      examples/learnopengl/1.getting_started/2.2.hello_triangle_indexed.bmx
  4. 2 2
      examples/learnopengl/1.getting_started/3.1_shaders_uniform.bmx
  5. 3 3
      examples/learnopengl/1.getting_started/3.2.shaders_interpolation.bmx
  6. 3 3
      examples/learnopengl/1.getting_started/3.3_shaders_class.bmx
  7. 5 5
      examples/learnopengl/1.getting_started/4.1.textures.bmx
  8. 5 5
      examples/learnopengl/1.getting_started/4.2.textures_combined.bmx
  9. 4 4
      examples/learnopengl/1.getting_started/5.1.transformations.bmx
  10. 4 4
      examples/learnopengl/1.getting_started/6.1.coordinate_systems.bmx
  11. 3 3
      examples/learnopengl/1.getting_started/6.2.coordinate_systems_depth.bmx
  12. 3 3
      examples/learnopengl/1.getting_started/6.3.coordinate_systems_multiple.bmx
  13. 3 3
      examples/learnopengl/1.getting_started/7.1.camera_circle.bmx
  14. 3 3
      examples/learnopengl/1.getting_started/7.2.camera_keyboard_dt.bmx
  15. 3 3
      examples/learnopengl/1.getting_started/7.3.camera_mouse_zoom.bmx
  16. 3 3
      examples/learnopengl/1.getting_started/7.4.camera_class.bmx
  17. 3 3
      examples/learnopengl/2.lighting/1.colors.bmx
  18. 4 4
      examples/learnopengl/2.lighting/2.1.basic_lighting_diffuse.bmx
  19. 4 4
      examples/learnopengl/2.lighting/2.2.basic_lighting_specular.bmx
  20. 7 1
      glfw.mod/common.bmx
  21. 6 1
      glfw.mod/glfw.bmx
  22. 17 2
      glfw.mod/glfw/CMake/GenerateMappings.cmake
  23. 1 1
      glfw.mod/glfw/CMake/modules/FindEpollShim.cmake
  24. 20 9
      glfw.mod/glfw/CMakeLists.txt
  25. 250 0
      glfw.mod/glfw/CONTRIBUTORS.md
  26. 88 221
      glfw.mod/glfw/README.md
  27. 6 14
      glfw.mod/glfw/deps/glad/vk_platform.h
  28. 609 103
      glfw.mod/glfw/deps/glad/vulkan.h
  29. 348 208
      glfw.mod/glfw/deps/glad_vulkan.c
  30. 2 2
      glfw.mod/glfw/deps/linmath.h
  31. 760 126
      glfw.mod/glfw/deps/stb_image_write.h
  32. 2 0
      glfw.mod/glfw/docs/CMakeLists.txt
  33. 0 10
      glfw.mod/glfw/docs/CODEOWNERS
  34. 3 3
      glfw.mod/glfw/docs/CONTRIBUTING.md
  35. 0 20
      glfw.mod/glfw/docs/Doxyfile.in
  36. 2 2
      glfw.mod/glfw/docs/SUPPORT.md
  37. 28 22
      glfw.mod/glfw/docs/build.dox
  38. 1 5
      glfw.mod/glfw/docs/compat.dox
  39. 196 119
      glfw.mod/glfw/docs/compile.dox
  40. 18 18
      glfw.mod/glfw/docs/context.dox
  41. 0 0
      glfw.mod/glfw/docs/extra.css
  42. 1 0
      glfw.mod/glfw/docs/extra.css.map
  43. 110 94
      glfw.mod/glfw/docs/extra.scss
  44. 3 2
      glfw.mod/glfw/docs/header.html
  45. 0 78
      glfw.mod/glfw/docs/html/bug.html
  46. 12 11
      glfw.mod/glfw/docs/html/build_8dox.html
  47. 71 70
      glfw.mod/glfw/docs/html/build_guide.html
  48. 12 11
      glfw.mod/glfw/docs/html/compat_8dox.html
  49. 59 58
      glfw.mod/glfw/docs/html/compat_guide.html
  50. 12 11
      glfw.mod/glfw/docs/html/compile_8dox.html
  51. 120 101
      glfw.mod/glfw/docs/html/compile_guide.html
  52. 12 11
      glfw.mod/glfw/docs/html/context_8dox.html
  53. 91 90
      glfw.mod/glfw/docs/html/context_guide.html
  54. 14 13
      glfw.mod/glfw/docs/html/deprecated.html
  55. 16 15
      glfw.mod/glfw/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html
  56. 17 16
      glfw.mod/glfw/docs/html/dir_4351554941a2744586042c1cf3cf139a.html
  57. 15 14
      glfw.mod/glfw/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html
  58. 13 12
      glfw.mod/glfw/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html
  59. 145 70
      glfw.mod/glfw/docs/html/doxygen.css
  60. BIN
      glfw.mod/glfw/docs/html/doxygen.png
  61. 19 0
      glfw.mod/glfw/docs/html/doxygen.svg
  62. 17 16
      glfw.mod/glfw/docs/html/dynsections.js
  63. 0 0
      glfw.mod/glfw/docs/html/extra.css
  64. 19 14
      glfw.mod/glfw/docs/html/files.html
  65. 232 215
      glfw.mod/glfw/docs/html/glfw3_8h.html
  66. 1073 1124
      glfw.mod/glfw/docs/html/glfw3_8h_source.html
  67. 36 35
      glfw.mod/glfw/docs/html/glfw3native_8h.html
  68. 215 202
      glfw.mod/glfw/docs/html/glfw3native_8h_source.html
  69. 26 25
      glfw.mod/glfw/docs/html/group__buttons.html
  70. 44 43
      glfw.mod/glfw/docs/html/group__context.html
  71. 38 37
      glfw.mod/glfw/docs/html/group__errors.html
  72. 21 20
      glfw.mod/glfw/docs/html/group__gamepad__axes.html
  73. 34 33
      glfw.mod/glfw/docs/html/group__gamepad__buttons.html
  74. 23 22
      glfw.mod/glfw/docs/html/group__hat__state.html
  75. 80 76
      glfw.mod/glfw/docs/html/group__init.html
  76. 214 212
      glfw.mod/glfw/docs/html/group__input.html
  77. 31 30
      glfw.mod/glfw/docs/html/group__joysticks.html
  78. 119 118
      glfw.mod/glfw/docs/html/group__keys.html
  79. 26 25
      glfw.mod/glfw/docs/html/group__mods.html
  80. 130 129
      glfw.mod/glfw/docs/html/group__monitor.html
  81. 117 82
      glfw.mod/glfw/docs/html/group__native.html
  82. 26 25
      glfw.mod/glfw/docs/html/group__shapes.html
  83. 48 49
      glfw.mod/glfw/docs/html/group__vulkan.html
  84. 181 179
      glfw.mod/glfw/docs/html/group__window.html
  85. 23 21
      glfw.mod/glfw/docs/html/index.html
  86. 12 11
      glfw.mod/glfw/docs/html/input_8dox.html
  87. 306 302
      glfw.mod/glfw/docs/html/input_guide.html
  88. 12 11
      glfw.mod/glfw/docs/html/internal_8dox.html
  89. 39 38
      glfw.mod/glfw/docs/html/internals_guide.html
  90. 12 11
      glfw.mod/glfw/docs/html/intro_8dox.html
  91. 116 115
      glfw.mod/glfw/docs/html/intro_guide.html
  92. 0 1
      glfw.mod/glfw/docs/html/jquery.js
  93. 12 11
      glfw.mod/glfw/docs/html/main_8dox.html
  94. 107 22
      glfw.mod/glfw/docs/html/menu.js
  95. 17 15
      glfw.mod/glfw/docs/html/menudata.js
  96. 13 12
      glfw.mod/glfw/docs/html/modules.html
  97. 12 11
      glfw.mod/glfw/docs/html/monitor_8dox.html
  98. 90 89
      glfw.mod/glfw/docs/html/monitor_guide.html
  99. 12 11
      glfw.mod/glfw/docs/html/moving_8dox.html
  100. 113 112
      glfw.mod/glfw/docs/html/moving_guide.html

+ 1 - 0
.gitignore

@@ -7,3 +7,4 @@
 
 glfwopengl.mod/_out_/
 *.app
+.DS_Store

+ 2 - 2
examples/learnopengl/1.getting_started/2.1.hello_triangle.bmx

@@ -139,9 +139,9 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(3 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 ' note that this is allowed, the call to glVertexAttribPointer registered VBO as the vertex attribute's bound vertex buffer object so afterwards we can safely unbind

+ 3 - 3
examples/learnopengl/1.getting_started/2.2.hello_triangle_indexed.bmx

@@ -149,12 +149,12 @@ glGenBuffers (1, Varptr EBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)
-glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Float), indices, GL_STATIC_DRAW)
+glBufferData (GL_ELEMENT_ARRAY_BUFFER, Int(indices.length * SizeOf (0:Float)), indices, GL_STATIC_DRAW)
 
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(3 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 ' note that this is allowed, the call to glVertexAttribPointer registered VBO as the vertex attribute's bound vertex buffer object so afterwards we can safely unbind

+ 2 - 2
examples/learnopengl/1.getting_started/3.1_shaders_uniform.bmx

@@ -134,9 +134,9 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(3 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 ' bind the VAO (it was already bound, but just to demonstrate): seeing as we only have a single VAO we can

+ 3 - 3
examples/learnopengl/1.getting_started/3.2.shaders_interpolation.bmx

@@ -146,16 +146,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' color attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' as we only have a single shader, we could also just activate our shader once beforehand if we want to 

+ 3 - 3
examples/learnopengl/1.getting_started/3.3_shaders_class.bmx

@@ -77,16 +77,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' color attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' render loop

+ 5 - 5
examples/learnopengl/1.getting_started/4.1.textures.bmx

@@ -85,25 +85,25 @@ glGenBuffers (1, Varptr EBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)
-glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Int), indices, GL_STATIC_DRAW)
+glBufferData (GL_ELEMENT_ARRAY_BUFFER, Int(indices.length * SizeOf (0:Int)), indices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' color attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 attribute_offset:Int = 6 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (2, 2, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (2, 2, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (2)
 
 ' load and create a texture

+ 5 - 5
examples/learnopengl/1.getting_started/4.2.textures_combined.bmx

@@ -86,25 +86,25 @@ glGenBuffers (1, Varptr EBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)
-glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Int), indices, GL_STATIC_DRAW)
+glBufferData (GL_ELEMENT_ARRAY_BUFFER, Int(indices.length * SizeOf (0:Int)), indices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' color attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 attribute_offset:Int = 6 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (2, 2, GL_FLOAT, GL_FALSE, 8 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (2, 2, GL_FLOAT, GL_FALSE, Int(8 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (2)
 
 ' load and create a texture

+ 4 - 4
examples/learnopengl/1.getting_started/5.1.transformations.bmx

@@ -86,19 +86,19 @@ glGenBuffers (1, Varptr EBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)
-glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Int), indices, GL_STATIC_DRAW)
+glBufferData (GL_ELEMENT_ARRAY_BUFFER, Int(indices.length * SizeOf (0:Int)), indices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 4 - 4
examples/learnopengl/1.getting_started/6.1.coordinate_systems.bmx

@@ -86,19 +86,19 @@ glGenBuffers (1, Varptr EBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 glBindBuffer (GL_ELEMENT_ARRAY_BUFFER, EBO)
-glBufferData (GL_ELEMENT_ARRAY_BUFFER, indices.length * SizeOf (0:Int), indices, GL_STATIC_DRAW)
+glBufferData (GL_ELEMENT_ARRAY_BUFFER, Int(indices.length * SizeOf (0:Int)), indices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/6.2.coordinate_systems_depth.bmx

@@ -120,16 +120,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/6.3.coordinate_systems_multiple.bmx

@@ -134,16 +134,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/7.1.camera_circle.bmx

@@ -134,16 +134,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/7.2.camera_keyboard_dt.bmx

@@ -157,16 +157,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/7.3.camera_mouse_zoom.bmx

@@ -213,16 +213,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/1.getting_started/7.4.camera_class.bmx

@@ -181,16 +181,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (VAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' texture coord attribute
-glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, 5 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 2, GL_FLOAT, GL_FALSE, Int(5 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' load and create a texture

+ 3 - 3
examples/learnopengl/2.lighting/1.colors.bmx

@@ -170,10 +170,10 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (cubeVAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(3 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 ' second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
@@ -184,7 +184,7 @@ glBindVertexArray(lightVAO)
 ' we only need to bind to the VBO (to link it with glVertexAttribPointer), no need to fill it; the VBO's data already contains all we need (it's already bound, but we do it again for educational purposes)
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
 
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 3 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(3 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 

+ 4 - 4
examples/learnopengl/2.lighting/2.1.basic_lighting_diffuse.bmx

@@ -170,16 +170,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (cubeVAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' normal attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
@@ -189,7 +189,7 @@ glBindVertexArray(lightVAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
 ' note that we update the lamp's position attribute's stride to reflect the updated buffer data
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 

+ 4 - 4
examples/learnopengl/2.lighting/2.2.basic_lighting_specular.bmx

@@ -170,16 +170,16 @@ glGenBuffers (1, Varptr VBO)
 glBindVertexArray (cubeVAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
-glBufferData (GL_ARRAY_BUFFER, vertices.length * SizeOf (0:Float), vertices, GL_STATIC_DRAW)
+glBufferData (GL_ARRAY_BUFFER, Int(vertices.length * SizeOf (0:Float)), vertices, GL_STATIC_DRAW)
 
 ' position attribute
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 Local attribute_offset:Int = 3 * SizeOf (0:Float)
 
 ' normal attribute
-glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), Byte Ptr (attribute_offset))
+glVertexAttribPointer (1, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), Byte Ptr (attribute_offset))
 glEnableVertexAttribArray (1)
 
 ' second, configure the light's VAO (VBO stays the same; the vertices are the same for the light object which is also a 3D cube)
@@ -189,7 +189,7 @@ glBindVertexArray(lightVAO)
 
 glBindBuffer (GL_ARRAY_BUFFER, VBO)
 ' note that we update the lamp's position attribute's stride to reflect the updated buffer data
-glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, 6 * SizeOf (0:Float), 0:Byte Ptr)
+glVertexAttribPointer (0, 3, GL_FLOAT, GL_FALSE, Int(6 * SizeOf (0:Float)), 0:Byte Ptr)
 glEnableVertexAttribArray (0)
 
 

+ 7 - 1
glfw.mod/common.bmx

@@ -1,4 +1,4 @@
-' Copyright (c) 2020 Bruce A Henderson
+' Copyright (c) 2022 Bruce A Henderson
 '
 ' This software is provided 'as-is', without any express or implied
 ' warranty. In no event will the authors be held liable for any damages
@@ -70,3 +70,9 @@ Const GLFW_RELEASE_BEHAVIOR_NONE:Int = $00035002
 Const GLFW_NATIVE_CONTEXT_API:Int = $00036001
 Const GLFW_EGL_CONTEXT_API:Int = $00036002
 Const GLFW_OSMESA_CONTEXT_API:Int = $00036003
+
+Const GLFW_CONNECTED:Int = $00040001
+Const GLFW_DISCONNECTED:Int = $00040002
+
+Const GLFW_RELEASE:Int = 0
+Const GLFW_PRESS:Int = 1

+ 6 - 1
glfw.mod/glfw.bmx

@@ -1,4 +1,4 @@
-' Copyright (c) 2020 Bruce A Henderson
+' Copyright (c) 2022 Bruce A Henderson
 '
 ' This software is provided 'as-is', without any express or implied
 ' warranty. In no event will the authors be held liable for any damages
@@ -39,6 +39,11 @@ ModuleInfo "CC_OPTS: -D_GLFW_X11"
 
 Import "common.bmx"
 
+' Notes :
+'  Changed include in deps/glad/gl.h from
+'      #include <glad/khrplatform.h>
+'  to
+'      #include <glfw.mod/glfw.mod/glfw/deps/glad/khrplatform.h>
 
 Rem
 bbdoc: Returns the current GLFW time, in seconds.

+ 17 - 2
glfw.mod/glfw/CMake/GenerateMappings.cmake

@@ -23,8 +23,23 @@ endif()
 
 file(STRINGS "${source_path}" lines)
 foreach(line ${lines})
-    if ("${line}" MATCHES "^[0-9a-fA-F].*$")
-        set(GLFW_GAMEPAD_MAPPINGS "${GLFW_GAMEPAD_MAPPINGS}\"${line}\",\n")
+    if (line MATCHES "^[0-9a-fA-F]")
+        if (line MATCHES "platform:Windows")
+            if (GLFW_WIN32_MAPPINGS)
+                set(GLFW_WIN32_MAPPINGS "${GLFW_WIN32_MAPPINGS}\n")
+            endif()
+            set(GLFW_WIN32_MAPPINGS "${GLFW_WIN32_MAPPINGS}\"${line}\",")
+        elseif (line MATCHES "platform:Mac OS X")
+            if (GLFW_COCOA_MAPPINGS)
+                set(GLFW_COCOA_MAPPINGS "${GLFW_COCOA_MAPPINGS}\n")
+            endif()
+            set(GLFW_COCOA_MAPPINGS "${GLFW_COCOA_MAPPINGS}\"${line}\",")
+        elseif (line MATCHES "platform:Linux")
+            if (GLFW_LINUX_MAPPINGS)
+                set(GLFW_LINUX_MAPPINGS "${GLFW_LINUX_MAPPINGS}\n")
+            endif()
+            set(GLFW_LINUX_MAPPINGS "${GLFW_LINUX_MAPPINGS}\"${line}\",")
+        endif()
     endif()
 endforeach()
 

+ 1 - 1
glfw.mod/glfw/CMake/modules/FindEpollShim.cmake

@@ -13,5 +13,5 @@ if (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES)
 endif (EPOLLSHIM_INCLUDE_DIRS AND EPOLLSHIM_LIBRARIES)
 
 include(FindPackageHandleStandardArgs)
-find_package_handle_standard_args(EPOLLSHIM DEFAULT_MSG EPOLLSHIM_LIBRARIES EPOLLSHIM_INCLUDE_DIRS)
+find_package_handle_standard_args(EpollShim DEFAULT_MSG EPOLLSHIM_LIBRARIES EPOLLSHIM_INCLUDE_DIRS)
 mark_as_advanced(EPOLLSHIM_INCLUDE_DIRS EPOLLSHIM_LIBRARIES)

+ 20 - 9
glfw.mod/glfw/CMakeLists.txt

@@ -1,6 +1,6 @@
-cmake_minimum_required(VERSION 3.0)
+cmake_minimum_required(VERSION 3.0...3.20 FATAL_ERROR)
 
-project(GLFW VERSION 3.3.2 LANGUAGES C)
+project(GLFW VERSION 3.3.8 LANGUAGES C)
 
 set(CMAKE_LEGACY_CYGWIN_WIN32 OFF)
 
@@ -8,6 +8,10 @@ if (POLICY CMP0054)
     cmake_policy(SET CMP0054 NEW)
 endif()
 
+if (POLICY CMP0069)
+    cmake_policy(SET CMP0069 NEW)
+endif()
+
 if (POLICY CMP0077)
     cmake_policy(SET CMP0077 NEW)
 endif()
@@ -63,7 +67,8 @@ if (GLFW_BUILD_DOCS)
 endif()
 
 #--------------------------------------------------------------------
-# Set compiler specific flags
+# Apply Microsoft C runtime library option
+# This is here because it also applies to tests and examples
 #--------------------------------------------------------------------
 if (MSVC)
     if (MSVC90)
@@ -76,22 +81,26 @@ if (MSVC)
         # Workaround for VS 2008 not shipping with stdint.h
         list(APPEND glfw_INCLUDE_DIRS "${GLFW_SOURCE_DIR}/deps/vs2008")
     endif()
+endif()
 
-    if (NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
+if (MSVC AND NOT USE_MSVC_RUNTIME_LIBRARY_DLL)
+    if (CMAKE_VERSION VERSION_LESS 3.15)
         foreach (flag CMAKE_C_FLAGS
                       CMAKE_C_FLAGS_DEBUG
                       CMAKE_C_FLAGS_RELEASE
                       CMAKE_C_FLAGS_MINSIZEREL
                       CMAKE_C_FLAGS_RELWITHDEBINFO)
 
-            if (${flag} MATCHES "/MD")
+            if (flag MATCHES "/MD")
                 string(REGEX REPLACE "/MD" "/MT" ${flag} "${${flag}}")
             endif()
-            if (${flag} MATCHES "/MDd")
+            if (flag MATCHES "/MDd")
                 string(REGEX REPLACE "/MDd" "/MTd" ${flag} "${${flag}}")
             endif()
 
         endforeach()
+    else()
+        set(CMAKE_MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
     endif()
 endif()
 
@@ -128,6 +137,9 @@ if (MINGW)
     if (_GLFW_HAS_64ASLR)
         set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--high-entropy-va ${CMAKE_SHARED_LINKER_FLAGS}")
     endif()
+
+    # Clear flags again to avoid breaking later tests
+    set(CMAKE_REQUIRED_FLAGS)
 endif()
 
 #--------------------------------------------------------------------
@@ -244,7 +256,7 @@ if (_GLFW_WAYLAND)
     find_package(WaylandScanner REQUIRED)
     find_package(WaylandProtocols 1.15 REQUIRED)
 
-    list(APPEND glfw_PKG_DEPS "wayland-egl")
+    list(APPEND glfw_PKG_DEPS "wayland-client")
 
     list(APPEND glfw_INCLUDE_DIRS "${Wayland_INCLUDE_DIRS}")
     list(APPEND glfw_LIBRARIES "${Wayland_LIBRARIES}" "${CMAKE_THREAD_LIBS_INIT}")
@@ -254,10 +266,9 @@ if (_GLFW_WAYLAND)
 
     include(CheckIncludeFiles)
     include(CheckFunctionExists)
-    check_include_files(xkbcommon/xkbcommon-compose.h HAVE_XKBCOMMON_COMPOSE_H)
     check_function_exists(memfd_create HAVE_MEMFD_CREATE)
 
-    if (NOT ("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux"))
+    if (NOT CMAKE_SYSTEM_NAME STREQUAL "Linux")
         find_package(EpollShim)
         if (EPOLLSHIM_FOUND)
             list(APPEND glfw_INCLUDE_DIRS "${EPOLLSHIM_INCLUDE_DIRS}")

+ 250 - 0
glfw.mod/glfw/CONTRIBUTORS.md

@@ -0,0 +1,250 @@
+# Acknowledgements
+
+GLFW exists because people around the world donated their time and lent their
+skills.  This list only includes contributions to the main repository and
+excludes other invaluable contributions like language bindings and text and
+video tutorials.
+
+ - Bobyshev Alexander
+ - Laurent Aphecetche
+ - Matt Arsenault
+ - ashishgamedev
+ - David Avedissian
+ - Keith Bauer
+ - John Bartholomew
+ - Coşku Baş
+ - Niklas Behrens
+ - Andrew Belt
+ - Nevyn Bengtsson
+ - Niklas Bergström
+ - Denis Bernard
+ - BiBi
+ - Doug Binks
+ - blanco
+ - Waris Boonyasiriwat
+ - Kyle Brenneman
+ - Rok Breulj
+ - TheBrokenRail
+ - Kai Burjack
+ - Martin Capitanio
+ - Nicolas Caramelli
+ - David Carlier
+ - Arturo Castro
+ - Chi-kwan Chan
+ - TheChocolateOre
+ - Joseph Chua
+ - Ian Clarkson
+ - Michał Cichoń
+ - Lambert Clara
+ - Anna Clarke
+ - Josh Codd
+ - Yaron Cohen-Tal
+ - Omar Cornut
+ - Andrew Corrigan
+ - Bailey Cosier
+ - Noel Cower
+ - CuriouserThing
+ - Jason Daly
+ - danhambleton
+ - Jarrod Davis
+ - Olivier Delannoy
+ - Paul R. Deppe
+ - Michael Dickens
+ - Роман Донченко
+ - Mario Dorn
+ - Wolfgang Draxinger
+ - Jonathan Dummer
+ - Ralph Eastwood
+ - Fredrik Ehnbom
+ - Robin Eklind
+ - Jan Ekström
+ - Siavash Eliasi
+ - TheExileFox
+ - Nikita Fediuchin
+ - Felipe Ferreira
+ - Michael Fogleman
+ - Jason Francis
+ - Gerald Franz
+ - Mário Freitas
+ - GeO4d
+ - Marcus Geelnard
+ - ghuser404
+ - Charles Giessen
+ - Ryan C. Gordon
+ - Stephen Gowen
+ - Kovid Goyal
+ - Kevin Grandemange
+ - Eloi Marín Gratacós
+ - Stefan Gustavson
+ - Andrew Gutekanst
+ - Stephen Gutekanst
+ - Jonathan Hale
+ - hdf89shfdfs
+ - Sylvain Hellegouarch
+ - Matthew Henry
+ - heromyth
+ - Lucas Hinderberger
+ - Paul Holden
+ - Hajime Hoshi
+ - Warren Hu
+ - Charles Huber
+ - Brent Huisman
+ - illustris
+ - InKryption
+ - IntellectualKitty
+ - Aaron Jacobs
+ - JannikGM
+ - Erik S. V. Jansson
+ - jjYBdx4IL
+ - Toni Jovanoski
+ - Arseny Kapoulkine
+ - Cem Karan
+ - Osman Keskin
+ - Koray Kilinc
+ - Josh Kilmer
+ - Byunghoon Kim
+ - Cameron King
+ - Peter Knut
+ - Christoph Kubisch
+ - Yuri Kunde Schlesner
+ - Rokas Kupstys
+ - Konstantin Käfer
+ - Eric Larson
+ - Francis Lecavalier
+ - Jong Won Lee
+ - Robin Leffmann
+ - Glenn Lewis
+ - Shane Liesegang
+ - Anders Lindqvist
+ - Leon Linhart
+ - Marco Lizza
+ - Eyal Lotem
+ - Aaron Loucks
+ - Luflosi
+ - lukect
+ - Tristam MacDonald
+ - Hans Mackowiak
+ - Дмитри Малышев
+ - Zbigniew Mandziejewicz
+ - Adam Marcus
+ - Célestin Marot
+ - Kyle McDonald
+ - David V. McKay
+ - David Medlock
+ - Bryce Mehring
+ - Jonathan Mercier
+ - Marcel Metz
+ - Liam Middlebrook
+ - Ave Milia
+ - Jonathan Miller
+ - Kenneth Miller
+ - Bruce Mitchener
+ - Jack Moffitt
+ - Ravi Mohan
+ - Jeff Molofee
+ - Alexander Monakov
+ - Pierre Morel
+ - Jon Morton
+ - Pierre Moulon
+ - Martins Mozeiko
+ - James Murphy
+ - Julian Møller
+ - ndogxj
+ - F. Nedelec
+ - Kristian Nielsen
+ - Joel Niemelä
+ - Kamil Nowakowski
+ - onox
+ - Denis Ovod
+ - Ozzy
+ - Andri Pálsson
+ - Peoro
+ - Braden Pellett
+ - Christopher Pelloux
+ - Arturo J. Pérez
+ - Vladimir Perminov
+ - Olivier Perret
+ - Anthony Pesch
+ - Orson Peters
+ - Emmanuel Gil Peyrot
+ - Cyril Pichard
+ - Pilzschaf
+ - Keith Pitt
+ - Stanislav Podgorskiy
+ - Konstantin Podsvirov
+ - Nathan Poirier
+ - Alexandre Pretyman
+ - Pablo Prietz
+ - przemekmirek
+ - pthom
+ - Martin Pulec
+ - Guillaume Racicot
+ - Philip Rideout
+ - Eddie Ringle
+ - Max Risuhin
+ - Jorge Rodriguez
+ - Luca Rood
+ - Ed Ropple
+ - Aleksey Rybalkin
+ - Mikko Rytkönen
+ - Riku Salminen
+ - Brandon Schaefer
+ - Sebastian Schuberth
+ - Christian Sdunek
+ - Matt Sealey
+ - Steve Sexton
+ - Arkady Shapkin
+ - Ali Sherief
+ - Yoshiki Shibukawa
+ - Dmitri Shuralyov
+ - Joao da Silva
+ - Daniel Sieger
+ - Daniel Skorupski
+ - Slemmie
+ - Bradley Smith
+ - Cliff Smolinsky
+ - Patrick Snape
+ - Erlend Sogge Heggen
+ - Olivier Sohn
+ - Julian Squires
+ - Johannes Stein
+ - Pontus Stenetorp
+ - Michael Stocker
+ - Justin Stoecker
+ - Elviss Strazdins
+ - Paul Sultana
+ - Nathan Sweet
+ - TTK-Bandit
+ - Sergey Tikhomirov
+ - Arthur Tombs
+ - TronicLabs
+ - Ioannis Tsakpinis
+ - Samuli Tuomola
+ - Matthew Turner
+ - urraka
+ - Elias Vanderstuyft
+ - Stef Velzel
+ - Jari Vetoniemi
+ - Ricardo Vieira
+ - Nicholas Vitovitch
+ - Simon Voordouw
+ - Corentin Wallez
+ - Torsten Walluhn
+ - Patrick Walton
+ - Xo Wang
+ - Jay Weisskopf
+ - Frank Wille
+ - Richard A. Wilkes
+ - Tatsuya Yatagawa
+ - Ryogo Yoshimura
+ - Rácz Zalán
+ - Lukas Zanner
+ - Andrey Zholos
+ - Aihui Zhu
+ - Santi Zupancic
+ - Jonas Ådahl
+ - Lasse Öörni
+ - Leonard König
+ - All the unmentioned and anonymous contributors in the GLFW community, for bug
+   reports, patches, feedback, testing and encouragement
+

+ 88 - 221
glfw.mod/glfw/README.md

@@ -1,6 +1,6 @@
 # GLFW
 
-[![Build status](https://travis-ci.org/glfw/glfw.svg?branch=master)](https://travis-ci.org/glfw/glfw)
+[![Build status](https://github.com/glfw/glfw/actions/workflows/build.yml/badge.svg)](https://github.com/glfw/glfw/actions)
 [![Build status](https://ci.appveyor.com/api/projects/status/0kf0ct9831i5l6sp/branch/master?svg=true)](https://ci.appveyor.com/project/elmindreda/glfw)
 [![Coverity Scan](https://scan.coverity.com/projects/4884/badge.svg)](https://scan.coverity.com/projects/glfw-glfw)
 
@@ -14,18 +14,18 @@ GLFW natively supports Windows, macOS and Linux and other Unix-like systems.  On
 Linux both X11 and Wayland are supported.
 
 GLFW is licensed under the [zlib/libpng
-license](http://www.glfw.org/license.html).
+license](https://www.glfw.org/license.html).
 
-You can [download](http://www.glfw.org/download.html) the latest stable release
+You can [download](https://www.glfw.org/download.html) the latest stable release
 as source or Windows binaries, or fetch the `latest` branch from GitHub.  Each
 release starting with 3.0 also has a corresponding [annotated
 tag](https://github.com/glfw/glfw/releases) with source and binary archives.
 
-The [documentation](http://www.glfw.org/docs/latest/) is available online and is
+The [documentation](https://www.glfw.org/docs/latest/) is available online and is
 included in all source and binary archives.  See the [release
 notes](https://www.glfw.org/docs/latest/news.html) for new features, caveats and
 deprecations in the latest release.  For more details see the [version
-history](http://www.glfw.org/changelog.html).
+history](https://www.glfw.org/changelog.html).
 
 The `master` branch is the stable integration branch and _should_ always compile
 and run on all supported platforms, although details of newly added features may
@@ -34,11 +34,16 @@ fixes live in [other branches](https://github.com/glfw/glfw/branches/all) until
 they are stable enough to merge.
 
 If you are new to GLFW, you may find the
-[tutorial](http://www.glfw.org/docs/latest/quick.html) for GLFW 3 useful.  If
+[tutorial](https://www.glfw.org/docs/latest/quick.html) for GLFW 3 useful.  If
 you have used GLFW 2 in the past, there is a [transition
-guide](http://www.glfw.org/docs/latest/moving.html) for moving to the GLFW
+guide](https://www.glfw.org/docs/latest/moving.html) for moving to the GLFW
 3 API.
 
+GLFW exists because of the contributions of [many people](CONTRIBUTORS.md)
+around the world, whether by reporting bugs, providing community support, adding
+features, reviewing or testing code, debugging, proofreading docs, suggesting
+features or fixing bugs.
+
 
 ## Compiling GLFW
 
@@ -52,16 +57,16 @@ MinGW-w64, on macOS with Clang and on Linux and other Unix-like systems with GCC
 and Clang.  It will likely compile in other environments as well, but this is
 not regularly tested.
 
-There are [pre-compiled Windows binaries](http://www.glfw.org/download.html)
+There are [pre-compiled Windows binaries](https://www.glfw.org/download.html)
 available for all supported compilers.
 
-See the [compilation guide](http://www.glfw.org/docs/latest/compile.html) for
+See the [compilation guide](https://www.glfw.org/docs/latest/compile.html) for
 more information about how to compile GLFW yourself.
 
 
 ## Using GLFW
 
-See the [documentation](http://www.glfw.org/docs/latest/) for tutorials, guides
+See the [documentation](https://www.glfw.org/docs/latest/) for tutorials, guides
 and the API reference.
 
 
@@ -79,7 +84,7 @@ Unix-like systems running the X Window System are supported even without
 a desktop environment or modern extensions, although some features require
 a running window or clipboard manager.  The OSMesa backend requires Mesa 6.3.
 
-See the [compatibility guide](http://www.glfw.org/docs/latest/compat.html)
+See the [compatibility guide](https://www.glfw.org/docs/latest/compat.html)
 in the documentation for more information.
 
 
@@ -101,10 +106,10 @@ located in the `deps/` directory.
    functions
  - [linmath.h](https://github.com/datenwolf/linmath.h) for linear algebra in
    examples
- - [Nuklear](https://github.com/vurtun/nuklear) for test and example UI
+ - [Nuklear](https://github.com/Immediate-Mode-UI/Nuklear) for test and example UI
  - [stb\_image\_write](https://github.com/nothings/stb) for writing images to disk
 
-The documentation is generated with [Doxygen](http://doxygen.org/) if CMake can
+The documentation is generated with [Doxygen](https://doxygen.org/) if CMake can
 find that tool.
 
 
@@ -118,26 +123,84 @@ information on what to include when reporting a bug.
 
 ## Changelog
 
- - [Win32] Bugfix: Super key was not released after Win+V hotkey (#1622)
- - [Win32] Bugfix: `glfwGetKeyName` could access out of bounds and return an
-   invalid pointer
- - [Win32] Bugfix: Some synthetic key events were reported as `GLFW_KEY_UNKNOWN`
-   (#1623)
- - [Cocoa] Added support for `VK_EXT_metal_surface` (#1619)
- - [Cocoa] Added locating the Vulkan loader at runtime in an application bundle
- - [X11] Bugfix: `glfwFocusWindow` could terminate on older WMs or without a WM
- - [X11] Bugfix: Creating an undecorated window could fail with BadMatch (#1620)
- - [X11] Bugfix: Querying a disconnected monitor could segfault (#1602)
+ - Added `GLFW_NATIVE_INCLUDE_NONE` for disabling inclusion of native headers (#1348)
+ - Bugfix: `glfwMakeContextCurrent` would access TLS slot before initialization
+ - Bugfix: `glfwSetGammaRamp` could emit `GLFW_INVALID_VALUE` before initialization
+ - Bugfix: `glfwGetJoystickUserPointer` returned `NULL` during disconnection (#2092)
+ - [Win32] Bugfix: `Alt+PrtSc` would emit `GLFW_KEY_UNKNOWN` and a different
+   scancode than `PrtSc` (#1993)
+ - [Win32] Bugfix: `GLFW_KEY_PAUSE` scancode from `glfwGetKeyScancode` did not
+   match event scancode (#1993)
+ - [Win32] Bugfix: Instance-local operations used executable instance (#469,#1296,#1395)
+ - [Win32] Bugfix: The OSMesa library was not unloaded on termination
+ - [Win32] Bugfix: Right shift emitted `GLFW_KEY_UNKNOWN` when using a CJK IME (#2050)
+ - [Cocoa] Disabled macOS fullscreen when `GLFW_RESIZABLE` is false
+ - [Cocoa] Bugfix: A connected Apple AirPlay would emit a useless error (#1791)
+ - [Cocoa] Bugfix: The EGL and OSMesa libraries were not unloaded on termination
+ - [Cocoa] Bugfix: `GLFW_MAXIMIZED` was always true when `GLFW_RESIZABLE` was false
+ - [Cocoa] Bugfix: Changing `GLFW_DECORATED` in macOS fullscreen would abort
+   application (#1886)
+ - [Cocoa] Bugfix: Setting a monitor from macOS fullscreen would abort
+   application (#2110)
+ - [Cocoa] Bugfix: The Vulkan loader was not loaded from the `Frameworks` bundle
+   subdirectory (#2113,#2120)
+ - [X11] Bugfix: The OSMesa libray was not unloaded on termination
+ - [X11] Bugfix: A malformed response during selection transfer could cause a segfault
+ - [X11] Bugfix: Some calls would reset Xlib to the default error handler (#2108)
+ - [Wayland] Added support for file path drop events (#2040)
+ - [Wayland] Added support for more human-readable monitor names where available
+ - [Wayland] Removed support for the deprecated wl\_shell protocol
+ - [Wayland] Bugfix: `glfwSetClipboardString` would fail if set to result of
+   `glfwGetClipboardString`
+ - [Wayland] Bugfix: Data source creation error would cause double free at termination
+ - [Wayland] Bugfix: Partial writes of clipboard string would cause beginning to repeat
+ - [Wayland] Bugfix: Some errors would cause clipboard string transfer to hang
+ - [Wayland] Bugfix: Drag and drop data was misinterpreted as clipboard string
+ - [Wayland] Bugfix: MIME type matching was not performed for clipboard string
+ - [Wayland] Bugfix: The OSMesa library was not unloaded on termination
+ - [Wayland] Bugfix: `glfwCreateWindow` could emit `GLFW_PLATFORM_ERROR`
+ - [Wayland] Bugfix: Lock key modifier bits were only set when lock keys were pressed
+ - [Wayland] Bugfix: A window leaving full screen mode would be iconified (#1995)
+ - [Wayland] Bugfix: A window leaving full screen mode ignored its desired size
+ - [Wayland] Bugfix: `glfwSetWindowMonitor` did not update windowed mode size
+ - [Wayland] Bugfix: `glfwRestoreWindow` would make a full screen window windowed
+ - [Wayland] Bugfix: A window maximized or restored by the user would enter an
+   inconsistent state
+ - [Wayland] Bugfix: Window maximization events were not emitted
+ - [Wayland] Bugfix: `glfwRestoreWindow` assumed it was always in windowed mode
+ - [Wayland] Bugfix: `glfwSetWindowSize` would resize a full screen window
+ - [Wayland] Bugfix: A window content scale event would be emitted every time
+   the window resized
+ - [Wayland] Bugfix: If `glfwInit` failed it would close stdin
+ - [Wayland] Bugfix: Manual resizing with fallback decorations behaved erratically
+   (#1991,#2115,#2127)
+ - [Wayland] Bugfix: Size limits included frame size for fallback decorations
+ - [Wayland] Bugfix: Updating `GLFW_DECORATED` had no effect on server-side
+   decorations
+ - [Wayland] Bugfix: A monitor would be reported as connected again if its scale
+   changed
+ - [Wayland] Bugfix: `glfwTerminate` would segfault if any monitor had changed
+   scale
+ - [Wayland] Bugfix: Window content scale events were not emitted when monitor
+   scale changed
+ - [Wayland] Bugfix: `glfwSetWindowAspectRatio` reported an error instead of
+   applying the specified ratio
+ - [Wayland] Bugfix: `GLFW_MAXIMIZED` window hint had no effect
+ - [Wayland] Bugfix: `glfwRestoreWindow` had no effect before first show
+ - [Wayland] Bugfix: Hiding and then showing a window caused program abort on
+   wlroots compositors (#1268)
+ - [Wayland] Bugfix: `GLFW_DECORATED` was ignored when showing a window with XDG
+   decorations
 
 
 ## Contact
 
-On [glfw.org](http://www.glfw.org/) you can find the latest version of GLFW, as
+On [glfw.org](https://www.glfw.org/) you can find the latest version of GLFW, as
 well as news, documentation and other information about the project.
 
 If you have questions related to the use of GLFW, we have a
 [forum](https://discourse.glfw.org/), and the `#glfw` IRC channel on
-[Freenode](http://freenode.net/).
+[Libera.Chat](https://libera.chat/).
 
 If you have a bug to report, a patch to submit or a feature you'd like to
 request, please file it in the
@@ -146,199 +209,3 @@ request, please file it in the
 Finally, if you're interested in helping out with the development of GLFW or
 porting it to your favorite platform, join us on the forum, GitHub or IRC.
 
-
-## Acknowledgements
-
-GLFW exists because people around the world donated their time and lent their
-skills.
-
- - Bobyshev Alexander
- - Matt Arsenault
- - David Avedissian
- - Keith Bauer
- - John Bartholomew
- - Coşku Baş
- - Niklas Behrens
- - Andrew Belt
- - Niklas Bergström
- - Denis Bernard
- - Doug Binks
- - blanco
- - Kyle Brenneman
- - Rok Breulj
- - Kai Burjack
- - Martin Capitanio
- - David Carlier
- - Arturo Castro
- - Chi-kwan Chan
- - Ian Clarkson
- - Michał Cichoń
- - Lambert Clara
- - Anna Clarke
- - Yaron Cohen-Tal
- - Omar Cornut
- - Andrew Corrigan
- - Bailey Cosier
- - Noel Cower
- - Jason Daly
- - Jarrod Davis
- - Olivier Delannoy
- - Paul R. Deppe
- - Michael Dickens
- - Роман Донченко
- - Mario Dorn
- - Wolfgang Draxinger
- - Jonathan Dummer
- - Ralph Eastwood
- - Fredrik Ehnbom
- - Robin Eklind
- - Siavash Eliasi
- - Felipe Ferreira
- - Michael Fogleman
- - Gerald Franz
- - Mário Freitas
- - GeO4d
- - Marcus Geelnard
- - Charles Giessen
- - Ryan C. Gordon
- - Stephen Gowen
- - Kovid Goyal
- - Eloi Marín Gratacós
- - Stefan Gustavson
- - Jonathan Hale
- - Sylvain Hellegouarch
- - Matthew Henry
- - heromyth
- - Lucas Hinderberger
- - Paul Holden
- - Warren Hu
- - Charles Huber
- - IntellectualKitty
- - Aaron Jacobs
- - Erik S. V. Jansson
- - Toni Jovanoski
- - Arseny Kapoulkine
- - Cem Karan
- - Osman Keskin
- - Josh Kilmer
- - Byunghoon Kim
- - Cameron King
- - Peter Knut
- - Christoph Kubisch
- - Yuri Kunde Schlesner
- - Rokas Kupstys
- - Konstantin Käfer
- - Eric Larson
- - Francis Lecavalier
- - Robin Leffmann
- - Glenn Lewis
- - Shane Liesegang
- - Anders Lindqvist
- - Leon Linhart
- - Eyal Lotem
- - Aaron Loucks
- - Luflosi
- - lukect
- - Tristam MacDonald
- - Hans Mackowiak
- - Дмитри Малышев
- - Zbigniew Mandziejewicz
- - Adam Marcus
- - Célestin Marot
- - Kyle McDonald
- - David Medlock
- - Bryce Mehring
- - Jonathan Mercier
- - Marcel Metz
- - Liam Middlebrook
- - Ave Milia
- - Jonathan Miller
- - Kenneth Miller
- - Bruce Mitchener
- - Jack Moffitt
- - Jeff Molofee
- - Alexander Monakov
- - Pierre Morel
- - Jon Morton
- - Pierre Moulon
- - Martins Mozeiko
- - Julian Møller
- - ndogxj
- - Kristian Nielsen
- - Kamil Nowakowski
- - Denis Ovod
- - Ozzy
- - Andri Pálsson
- - Peoro
- - Braden Pellett
- - Christopher Pelloux
- - Arturo J. Pérez
- - Anthony Pesch
- - Orson Peters
- - Emmanuel Gil Peyrot
- - Cyril Pichard
- - Keith Pitt
- - Stanislav Podgorskiy
- - Konstantin Podsvirov
- - Nathan Poirier
- - Alexandre Pretyman
- - Pablo Prietz
- - przemekmirek
- - pthom
- - Guillaume Racicot
- - Philip Rideout
- - Eddie Ringle
- - Max Risuhin
- - Jorge Rodriguez
- - Ed Ropple
- - Aleksey Rybalkin
- - Riku Salminen
- - Brandon Schaefer
- - Sebastian Schuberth
- - Christian Sdunek
- - Matt Sealey
- - Steve Sexton
- - Arkady Shapkin
- - Yoshiki Shibukawa
- - Dmitri Shuralyov
- - Daniel Skorupski
- - Bradley Smith
- - Cliff Smolinsky
- - Patrick Snape
- - Erlend Sogge Heggen
- - Julian Squires
- - Johannes Stein
- - Pontus Stenetorp
- - Michael Stocker
- - Justin Stoecker
- - Elviss Strazdins
- - Paul Sultana
- - Nathan Sweet
- - TTK-Bandit
- - Sergey Tikhomirov
- - Arthur Tombs
- - Ioannis Tsakpinis
- - Samuli Tuomola
- - Matthew Turner
- - urraka
- - Elias Vanderstuyft
- - Stef Velzel
- - Jari Vetoniemi
- - Ricardo Vieira
- - Nicholas Vitovitch
- - Simon Voordouw
- - Corentin Wallez
- - Torsten Walluhn
- - Patrick Walton
- - Xo Wang
- - Jay Weisskopf
- - Frank Wille
- - Ryogo Yoshimura
- - Lukas Zanner
- - Andrey Zholos
- - Santi Zupancic
- - Jonas Ådahl
- - Lasse Öörni
- - All the unmentioned and anonymous contributors in the GLFW community, for bug
-   reports, patches, feedback, testing and encouragement
-

+ 6 - 14
glfw.mod/glfw/deps/glad/vk_platform.h

@@ -2,19 +2,9 @@
 /* File: vk_platform.h */
 /* */
 /*
-** Copyright (c) 2014-2017 The Khronos Group Inc.
+** Copyright 2014-2022 The Khronos Group Inc.
 **
-** Licensed under the Apache License, Version 2.0 (the "License");
-** you may not use this file except in compliance with the License.
-** You may obtain a copy of the License at
-**
-**     http://www.apache.org/licenses/LICENSE-2.0
-**
-** Unless required by applicable law or agreed to in writing, software
-** distributed under the License is distributed on an "AS IS" BASIS,
-** WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-** See the License for the specific language governing permissions and
-** limitations under the License.
+** SPDX-License-Identifier: Apache-2.0
 */
 
 
@@ -52,7 +42,7 @@ extern "C"
     #define VKAPI_CALL __stdcall
     #define VKAPI_PTR  VKAPI_CALL
 #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH < 7
-    #error "Vulkan isn't supported for the 'armeabi' NDK ABI"
+    #error "Vulkan is not supported for the 'armeabi' NDK ABI"
 #elif defined(__ANDROID__) && defined(__ARM_ARCH) && __ARM_ARCH >= 7 && defined(__ARM_32BIT_STATE)
     /* On Android 32-bit ARM targets, Vulkan functions use the "hardfloat" */
     /* calling convention, i.e. float parameters are passed in registers. This */
@@ -68,7 +58,9 @@ extern "C"
     #define VKAPI_PTR
 #endif
 
-#include <stddef.h>
+#if !defined(VK_NO_STDDEF_H)
+    #include <stddef.h>
+#endif /* !defined(VK_NO_STDDEF_H) */
 
 #if !defined(VK_NO_STDINT_H)
     #if defined(_MSC_VER) && (_MSC_VER < 1600)

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 609 - 103
glfw.mod/glfw/deps/glad/vulkan.h


+ 348 - 208
glfw.mod/glfw/deps/glad_vulkan.c

@@ -14,10 +14,18 @@
 
 #endif /* GLAD_IMPL_UTIL_C_ */
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
 
 int GLAD_VK_VERSION_1_0 = 0;
 int GLAD_VK_VERSION_1_1 = 0;
+int GLAD_VK_VERSION_1_2 = 0;
+int GLAD_VK_VERSION_1_3 = 0;
 int GLAD_VK_EXT_debug_report = 0;
+int GLAD_VK_KHR_portability_enumeration = 0;
 int GLAD_VK_KHR_surface = 0;
 int GLAD_VK_KHR_swapchain = 0;
 
@@ -35,18 +43,26 @@ PFN_vkBindImageMemory glad_vkBindImageMemory = NULL;
 PFN_vkBindImageMemory2 glad_vkBindImageMemory2 = NULL;
 PFN_vkCmdBeginQuery glad_vkCmdBeginQuery = NULL;
 PFN_vkCmdBeginRenderPass glad_vkCmdBeginRenderPass = NULL;
+PFN_vkCmdBeginRenderPass2 glad_vkCmdBeginRenderPass2 = NULL;
+PFN_vkCmdBeginRendering glad_vkCmdBeginRendering = NULL;
 PFN_vkCmdBindDescriptorSets glad_vkCmdBindDescriptorSets = NULL;
 PFN_vkCmdBindIndexBuffer glad_vkCmdBindIndexBuffer = NULL;
 PFN_vkCmdBindPipeline glad_vkCmdBindPipeline = NULL;
 PFN_vkCmdBindVertexBuffers glad_vkCmdBindVertexBuffers = NULL;
+PFN_vkCmdBindVertexBuffers2 glad_vkCmdBindVertexBuffers2 = NULL;
 PFN_vkCmdBlitImage glad_vkCmdBlitImage = NULL;
+PFN_vkCmdBlitImage2 glad_vkCmdBlitImage2 = NULL;
 PFN_vkCmdClearAttachments glad_vkCmdClearAttachments = NULL;
 PFN_vkCmdClearColorImage glad_vkCmdClearColorImage = NULL;
 PFN_vkCmdClearDepthStencilImage glad_vkCmdClearDepthStencilImage = NULL;
 PFN_vkCmdCopyBuffer glad_vkCmdCopyBuffer = NULL;
+PFN_vkCmdCopyBuffer2 glad_vkCmdCopyBuffer2 = NULL;
 PFN_vkCmdCopyBufferToImage glad_vkCmdCopyBufferToImage = NULL;
+PFN_vkCmdCopyBufferToImage2 glad_vkCmdCopyBufferToImage2 = NULL;
 PFN_vkCmdCopyImage glad_vkCmdCopyImage = NULL;
+PFN_vkCmdCopyImage2 glad_vkCmdCopyImage2 = NULL;
 PFN_vkCmdCopyImageToBuffer glad_vkCmdCopyImageToBuffer = NULL;
+PFN_vkCmdCopyImageToBuffer2 glad_vkCmdCopyImageToBuffer2 = NULL;
 PFN_vkCmdCopyQueryPoolResults glad_vkCmdCopyQueryPoolResults = NULL;
 PFN_vkCmdDispatch glad_vkCmdDispatch = NULL;
 PFN_vkCmdDispatchBase glad_vkCmdDispatchBase = NULL;
@@ -54,31 +70,56 @@ PFN_vkCmdDispatchIndirect glad_vkCmdDispatchIndirect = NULL;
 PFN_vkCmdDraw glad_vkCmdDraw = NULL;
 PFN_vkCmdDrawIndexed glad_vkCmdDrawIndexed = NULL;
 PFN_vkCmdDrawIndexedIndirect glad_vkCmdDrawIndexedIndirect = NULL;
+PFN_vkCmdDrawIndexedIndirectCount glad_vkCmdDrawIndexedIndirectCount = NULL;
 PFN_vkCmdDrawIndirect glad_vkCmdDrawIndirect = NULL;
+PFN_vkCmdDrawIndirectCount glad_vkCmdDrawIndirectCount = NULL;
 PFN_vkCmdEndQuery glad_vkCmdEndQuery = NULL;
 PFN_vkCmdEndRenderPass glad_vkCmdEndRenderPass = NULL;
+PFN_vkCmdEndRenderPass2 glad_vkCmdEndRenderPass2 = NULL;
+PFN_vkCmdEndRendering glad_vkCmdEndRendering = NULL;
 PFN_vkCmdExecuteCommands glad_vkCmdExecuteCommands = NULL;
 PFN_vkCmdFillBuffer glad_vkCmdFillBuffer = NULL;
 PFN_vkCmdNextSubpass glad_vkCmdNextSubpass = NULL;
+PFN_vkCmdNextSubpass2 glad_vkCmdNextSubpass2 = NULL;
 PFN_vkCmdPipelineBarrier glad_vkCmdPipelineBarrier = NULL;
+PFN_vkCmdPipelineBarrier2 glad_vkCmdPipelineBarrier2 = NULL;
 PFN_vkCmdPushConstants glad_vkCmdPushConstants = NULL;
 PFN_vkCmdResetEvent glad_vkCmdResetEvent = NULL;
+PFN_vkCmdResetEvent2 glad_vkCmdResetEvent2 = NULL;
 PFN_vkCmdResetQueryPool glad_vkCmdResetQueryPool = NULL;
 PFN_vkCmdResolveImage glad_vkCmdResolveImage = NULL;
+PFN_vkCmdResolveImage2 glad_vkCmdResolveImage2 = NULL;
 PFN_vkCmdSetBlendConstants glad_vkCmdSetBlendConstants = NULL;
+PFN_vkCmdSetCullMode glad_vkCmdSetCullMode = NULL;
 PFN_vkCmdSetDepthBias glad_vkCmdSetDepthBias = NULL;
+PFN_vkCmdSetDepthBiasEnable glad_vkCmdSetDepthBiasEnable = NULL;
 PFN_vkCmdSetDepthBounds glad_vkCmdSetDepthBounds = NULL;
+PFN_vkCmdSetDepthBoundsTestEnable glad_vkCmdSetDepthBoundsTestEnable = NULL;
+PFN_vkCmdSetDepthCompareOp glad_vkCmdSetDepthCompareOp = NULL;
+PFN_vkCmdSetDepthTestEnable glad_vkCmdSetDepthTestEnable = NULL;
+PFN_vkCmdSetDepthWriteEnable glad_vkCmdSetDepthWriteEnable = NULL;
 PFN_vkCmdSetDeviceMask glad_vkCmdSetDeviceMask = NULL;
 PFN_vkCmdSetEvent glad_vkCmdSetEvent = NULL;
+PFN_vkCmdSetEvent2 glad_vkCmdSetEvent2 = NULL;
+PFN_vkCmdSetFrontFace glad_vkCmdSetFrontFace = NULL;
 PFN_vkCmdSetLineWidth glad_vkCmdSetLineWidth = NULL;
+PFN_vkCmdSetPrimitiveRestartEnable glad_vkCmdSetPrimitiveRestartEnable = NULL;
+PFN_vkCmdSetPrimitiveTopology glad_vkCmdSetPrimitiveTopology = NULL;
+PFN_vkCmdSetRasterizerDiscardEnable glad_vkCmdSetRasterizerDiscardEnable = NULL;
 PFN_vkCmdSetScissor glad_vkCmdSetScissor = NULL;
+PFN_vkCmdSetScissorWithCount glad_vkCmdSetScissorWithCount = NULL;
 PFN_vkCmdSetStencilCompareMask glad_vkCmdSetStencilCompareMask = NULL;
+PFN_vkCmdSetStencilOp glad_vkCmdSetStencilOp = NULL;
 PFN_vkCmdSetStencilReference glad_vkCmdSetStencilReference = NULL;
+PFN_vkCmdSetStencilTestEnable glad_vkCmdSetStencilTestEnable = NULL;
 PFN_vkCmdSetStencilWriteMask glad_vkCmdSetStencilWriteMask = NULL;
 PFN_vkCmdSetViewport glad_vkCmdSetViewport = NULL;
+PFN_vkCmdSetViewportWithCount glad_vkCmdSetViewportWithCount = NULL;
 PFN_vkCmdUpdateBuffer glad_vkCmdUpdateBuffer = NULL;
 PFN_vkCmdWaitEvents glad_vkCmdWaitEvents = NULL;
+PFN_vkCmdWaitEvents2 glad_vkCmdWaitEvents2 = NULL;
 PFN_vkCmdWriteTimestamp glad_vkCmdWriteTimestamp = NULL;
+PFN_vkCmdWriteTimestamp2 glad_vkCmdWriteTimestamp2 = NULL;
 PFN_vkCreateBuffer glad_vkCreateBuffer = NULL;
 PFN_vkCreateBufferView glad_vkCreateBufferView = NULL;
 PFN_vkCreateCommandPool glad_vkCreateCommandPool = NULL;
@@ -97,8 +138,10 @@ PFN_vkCreateImageView glad_vkCreateImageView = NULL;
 PFN_vkCreateInstance glad_vkCreateInstance = NULL;
 PFN_vkCreatePipelineCache glad_vkCreatePipelineCache = NULL;
 PFN_vkCreatePipelineLayout glad_vkCreatePipelineLayout = NULL;
+PFN_vkCreatePrivateDataSlot glad_vkCreatePrivateDataSlot = NULL;
 PFN_vkCreateQueryPool glad_vkCreateQueryPool = NULL;
 PFN_vkCreateRenderPass glad_vkCreateRenderPass = NULL;
+PFN_vkCreateRenderPass2 glad_vkCreateRenderPass2 = NULL;
 PFN_vkCreateSampler glad_vkCreateSampler = NULL;
 PFN_vkCreateSamplerYcbcrConversion glad_vkCreateSamplerYcbcrConversion = NULL;
 PFN_vkCreateSemaphore glad_vkCreateSemaphore = NULL;
@@ -122,6 +165,7 @@ PFN_vkDestroyInstance glad_vkDestroyInstance = NULL;
 PFN_vkDestroyPipeline glad_vkDestroyPipeline = NULL;
 PFN_vkDestroyPipelineCache glad_vkDestroyPipelineCache = NULL;
 PFN_vkDestroyPipelineLayout glad_vkDestroyPipelineLayout = NULL;
+PFN_vkDestroyPrivateDataSlot glad_vkDestroyPrivateDataSlot = NULL;
 PFN_vkDestroyQueryPool glad_vkDestroyQueryPool = NULL;
 PFN_vkDestroyRenderPass glad_vkDestroyRenderPass = NULL;
 PFN_vkDestroySampler glad_vkDestroySampler = NULL;
@@ -143,13 +187,19 @@ PFN_vkFlushMappedMemoryRanges glad_vkFlushMappedMemoryRanges = NULL;
 PFN_vkFreeCommandBuffers glad_vkFreeCommandBuffers = NULL;
 PFN_vkFreeDescriptorSets glad_vkFreeDescriptorSets = NULL;
 PFN_vkFreeMemory glad_vkFreeMemory = NULL;
+PFN_vkGetBufferDeviceAddress glad_vkGetBufferDeviceAddress = NULL;
 PFN_vkGetBufferMemoryRequirements glad_vkGetBufferMemoryRequirements = NULL;
 PFN_vkGetBufferMemoryRequirements2 glad_vkGetBufferMemoryRequirements2 = NULL;
+PFN_vkGetBufferOpaqueCaptureAddress glad_vkGetBufferOpaqueCaptureAddress = NULL;
 PFN_vkGetDescriptorSetLayoutSupport glad_vkGetDescriptorSetLayoutSupport = NULL;
+PFN_vkGetDeviceBufferMemoryRequirements glad_vkGetDeviceBufferMemoryRequirements = NULL;
 PFN_vkGetDeviceGroupPeerMemoryFeatures glad_vkGetDeviceGroupPeerMemoryFeatures = NULL;
 PFN_vkGetDeviceGroupPresentCapabilitiesKHR glad_vkGetDeviceGroupPresentCapabilitiesKHR = NULL;
 PFN_vkGetDeviceGroupSurfacePresentModesKHR glad_vkGetDeviceGroupSurfacePresentModesKHR = NULL;
+PFN_vkGetDeviceImageMemoryRequirements glad_vkGetDeviceImageMemoryRequirements = NULL;
+PFN_vkGetDeviceImageSparseMemoryRequirements glad_vkGetDeviceImageSparseMemoryRequirements = NULL;
 PFN_vkGetDeviceMemoryCommitment glad_vkGetDeviceMemoryCommitment = NULL;
+PFN_vkGetDeviceMemoryOpaqueCaptureAddress glad_vkGetDeviceMemoryOpaqueCaptureAddress = NULL;
 PFN_vkGetDeviceProcAddr glad_vkGetDeviceProcAddr = NULL;
 PFN_vkGetDeviceQueue glad_vkGetDeviceQueue = NULL;
 PFN_vkGetDeviceQueue2 glad_vkGetDeviceQueue2 = NULL;
@@ -183,9 +233,12 @@ PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR glad_vkGetPhysicalDeviceSurfaceCap
 PFN_vkGetPhysicalDeviceSurfaceFormatsKHR glad_vkGetPhysicalDeviceSurfaceFormatsKHR = NULL;
 PFN_vkGetPhysicalDeviceSurfacePresentModesKHR glad_vkGetPhysicalDeviceSurfacePresentModesKHR = NULL;
 PFN_vkGetPhysicalDeviceSurfaceSupportKHR glad_vkGetPhysicalDeviceSurfaceSupportKHR = NULL;
+PFN_vkGetPhysicalDeviceToolProperties glad_vkGetPhysicalDeviceToolProperties = NULL;
 PFN_vkGetPipelineCacheData glad_vkGetPipelineCacheData = NULL;
+PFN_vkGetPrivateData glad_vkGetPrivateData = NULL;
 PFN_vkGetQueryPoolResults glad_vkGetQueryPoolResults = NULL;
 PFN_vkGetRenderAreaGranularity glad_vkGetRenderAreaGranularity = NULL;
+PFN_vkGetSemaphoreCounterValue glad_vkGetSemaphoreCounterValue = NULL;
 PFN_vkGetSwapchainImagesKHR glad_vkGetSwapchainImagesKHR = NULL;
 PFN_vkInvalidateMappedMemoryRanges glad_vkInvalidateMappedMemoryRanges = NULL;
 PFN_vkMapMemory glad_vkMapMemory = NULL;
@@ -193,216 +246,277 @@ PFN_vkMergePipelineCaches glad_vkMergePipelineCaches = NULL;
 PFN_vkQueueBindSparse glad_vkQueueBindSparse = NULL;
 PFN_vkQueuePresentKHR glad_vkQueuePresentKHR = NULL;
 PFN_vkQueueSubmit glad_vkQueueSubmit = NULL;
+PFN_vkQueueSubmit2 glad_vkQueueSubmit2 = NULL;
 PFN_vkQueueWaitIdle glad_vkQueueWaitIdle = NULL;
 PFN_vkResetCommandBuffer glad_vkResetCommandBuffer = NULL;
 PFN_vkResetCommandPool glad_vkResetCommandPool = NULL;
 PFN_vkResetDescriptorPool glad_vkResetDescriptorPool = NULL;
 PFN_vkResetEvent glad_vkResetEvent = NULL;
 PFN_vkResetFences glad_vkResetFences = NULL;
+PFN_vkResetQueryPool glad_vkResetQueryPool = NULL;
 PFN_vkSetEvent glad_vkSetEvent = NULL;
+PFN_vkSetPrivateData glad_vkSetPrivateData = NULL;
+PFN_vkSignalSemaphore glad_vkSignalSemaphore = NULL;
 PFN_vkTrimCommandPool glad_vkTrimCommandPool = NULL;
 PFN_vkUnmapMemory glad_vkUnmapMemory = NULL;
 PFN_vkUpdateDescriptorSetWithTemplate glad_vkUpdateDescriptorSetWithTemplate = NULL;
 PFN_vkUpdateDescriptorSets glad_vkUpdateDescriptorSets = NULL;
 PFN_vkWaitForFences glad_vkWaitForFences = NULL;
+PFN_vkWaitSemaphores glad_vkWaitSemaphores = NULL;
 
 
 static void glad_vk_load_VK_VERSION_1_0( GLADuserptrloadfunc load, void* userptr) {
     if(!GLAD_VK_VERSION_1_0) return;
-    vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers) load("vkAllocateCommandBuffers", userptr);
-    vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets) load("vkAllocateDescriptorSets", userptr);
-    vkAllocateMemory = (PFN_vkAllocateMemory) load("vkAllocateMemory", userptr);
-    vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer) load("vkBeginCommandBuffer", userptr);
-    vkBindBufferMemory = (PFN_vkBindBufferMemory) load("vkBindBufferMemory", userptr);
-    vkBindImageMemory = (PFN_vkBindImageMemory) load("vkBindImageMemory", userptr);
-    vkCmdBeginQuery = (PFN_vkCmdBeginQuery) load("vkCmdBeginQuery", userptr);
-    vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass) load("vkCmdBeginRenderPass", userptr);
-    vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) load("vkCmdBindDescriptorSets", userptr);
-    vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) load("vkCmdBindIndexBuffer", userptr);
-    vkCmdBindPipeline = (PFN_vkCmdBindPipeline) load("vkCmdBindPipeline", userptr);
-    vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) load("vkCmdBindVertexBuffers", userptr);
-    vkCmdBlitImage = (PFN_vkCmdBlitImage) load("vkCmdBlitImage", userptr);
-    vkCmdClearAttachments = (PFN_vkCmdClearAttachments) load("vkCmdClearAttachments", userptr);
-    vkCmdClearColorImage = (PFN_vkCmdClearColorImage) load("vkCmdClearColorImage", userptr);
-    vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage) load("vkCmdClearDepthStencilImage", userptr);
-    vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer) load("vkCmdCopyBuffer", userptr);
-    vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage) load("vkCmdCopyBufferToImage", userptr);
-    vkCmdCopyImage = (PFN_vkCmdCopyImage) load("vkCmdCopyImage", userptr);
-    vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer) load("vkCmdCopyImageToBuffer", userptr);
-    vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults) load("vkCmdCopyQueryPoolResults", userptr);
-    vkCmdDispatch = (PFN_vkCmdDispatch) load("vkCmdDispatch", userptr);
-    vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect) load("vkCmdDispatchIndirect", userptr);
-    vkCmdDraw = (PFN_vkCmdDraw) load("vkCmdDraw", userptr);
-    vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed) load("vkCmdDrawIndexed", userptr);
-    vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect) load("vkCmdDrawIndexedIndirect", userptr);
-    vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect) load("vkCmdDrawIndirect", userptr);
-    vkCmdEndQuery = (PFN_vkCmdEndQuery) load("vkCmdEndQuery", userptr);
-    vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass) load("vkCmdEndRenderPass", userptr);
-    vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands) load("vkCmdExecuteCommands", userptr);
-    vkCmdFillBuffer = (PFN_vkCmdFillBuffer) load("vkCmdFillBuffer", userptr);
-    vkCmdNextSubpass = (PFN_vkCmdNextSubpass) load("vkCmdNextSubpass", userptr);
-    vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier) load("vkCmdPipelineBarrier", userptr);
-    vkCmdPushConstants = (PFN_vkCmdPushConstants) load("vkCmdPushConstants", userptr);
-    vkCmdResetEvent = (PFN_vkCmdResetEvent) load("vkCmdResetEvent", userptr);
-    vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool) load("vkCmdResetQueryPool", userptr);
-    vkCmdResolveImage = (PFN_vkCmdResolveImage) load("vkCmdResolveImage", userptr);
-    vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) load("vkCmdSetBlendConstants", userptr);
-    vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias) load("vkCmdSetDepthBias", userptr);
-    vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) load("vkCmdSetDepthBounds", userptr);
-    vkCmdSetEvent = (PFN_vkCmdSetEvent) load("vkCmdSetEvent", userptr);
-    vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth) load("vkCmdSetLineWidth", userptr);
-    vkCmdSetScissor = (PFN_vkCmdSetScissor) load("vkCmdSetScissor", userptr);
-    vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) load("vkCmdSetStencilCompareMask", userptr);
-    vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference) load("vkCmdSetStencilReference", userptr);
-    vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) load("vkCmdSetStencilWriteMask", userptr);
-    vkCmdSetViewport = (PFN_vkCmdSetViewport) load("vkCmdSetViewport", userptr);
-    vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer) load("vkCmdUpdateBuffer", userptr);
-    vkCmdWaitEvents = (PFN_vkCmdWaitEvents) load("vkCmdWaitEvents", userptr);
-    vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp) load("vkCmdWriteTimestamp", userptr);
-    vkCreateBuffer = (PFN_vkCreateBuffer) load("vkCreateBuffer", userptr);
-    vkCreateBufferView = (PFN_vkCreateBufferView) load("vkCreateBufferView", userptr);
-    vkCreateCommandPool = (PFN_vkCreateCommandPool) load("vkCreateCommandPool", userptr);
-    vkCreateComputePipelines = (PFN_vkCreateComputePipelines) load("vkCreateComputePipelines", userptr);
-    vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool) load("vkCreateDescriptorPool", userptr);
-    vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout) load("vkCreateDescriptorSetLayout", userptr);
-    vkCreateDevice = (PFN_vkCreateDevice) load("vkCreateDevice", userptr);
-    vkCreateEvent = (PFN_vkCreateEvent) load("vkCreateEvent", userptr);
-    vkCreateFence = (PFN_vkCreateFence) load("vkCreateFence", userptr);
-    vkCreateFramebuffer = (PFN_vkCreateFramebuffer) load("vkCreateFramebuffer", userptr);
-    vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines) load("vkCreateGraphicsPipelines", userptr);
-    vkCreateImage = (PFN_vkCreateImage) load("vkCreateImage", userptr);
-    vkCreateImageView = (PFN_vkCreateImageView) load("vkCreateImageView", userptr);
-    vkCreateInstance = (PFN_vkCreateInstance) load("vkCreateInstance", userptr);
-    vkCreatePipelineCache = (PFN_vkCreatePipelineCache) load("vkCreatePipelineCache", userptr);
-    vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout) load("vkCreatePipelineLayout", userptr);
-    vkCreateQueryPool = (PFN_vkCreateQueryPool) load("vkCreateQueryPool", userptr);
-    vkCreateRenderPass = (PFN_vkCreateRenderPass) load("vkCreateRenderPass", userptr);
-    vkCreateSampler = (PFN_vkCreateSampler) load("vkCreateSampler", userptr);
-    vkCreateSemaphore = (PFN_vkCreateSemaphore) load("vkCreateSemaphore", userptr);
-    vkCreateShaderModule = (PFN_vkCreateShaderModule) load("vkCreateShaderModule", userptr);
-    vkDestroyBuffer = (PFN_vkDestroyBuffer) load("vkDestroyBuffer", userptr);
-    vkDestroyBufferView = (PFN_vkDestroyBufferView) load("vkDestroyBufferView", userptr);
-    vkDestroyCommandPool = (PFN_vkDestroyCommandPool) load("vkDestroyCommandPool", userptr);
-    vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool) load("vkDestroyDescriptorPool", userptr);
-    vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout) load("vkDestroyDescriptorSetLayout", userptr);
-    vkDestroyDevice = (PFN_vkDestroyDevice) load("vkDestroyDevice", userptr);
-    vkDestroyEvent = (PFN_vkDestroyEvent) load("vkDestroyEvent", userptr);
-    vkDestroyFence = (PFN_vkDestroyFence) load("vkDestroyFence", userptr);
-    vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer) load("vkDestroyFramebuffer", userptr);
-    vkDestroyImage = (PFN_vkDestroyImage) load("vkDestroyImage", userptr);
-    vkDestroyImageView = (PFN_vkDestroyImageView) load("vkDestroyImageView", userptr);
-    vkDestroyInstance = (PFN_vkDestroyInstance) load("vkDestroyInstance", userptr);
-    vkDestroyPipeline = (PFN_vkDestroyPipeline) load("vkDestroyPipeline", userptr);
-    vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache) load("vkDestroyPipelineCache", userptr);
-    vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout) load("vkDestroyPipelineLayout", userptr);
-    vkDestroyQueryPool = (PFN_vkDestroyQueryPool) load("vkDestroyQueryPool", userptr);
-    vkDestroyRenderPass = (PFN_vkDestroyRenderPass) load("vkDestroyRenderPass", userptr);
-    vkDestroySampler = (PFN_vkDestroySampler) load("vkDestroySampler", userptr);
-    vkDestroySemaphore = (PFN_vkDestroySemaphore) load("vkDestroySemaphore", userptr);
-    vkDestroyShaderModule = (PFN_vkDestroyShaderModule) load("vkDestroyShaderModule", userptr);
-    vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle) load("vkDeviceWaitIdle", userptr);
-    vkEndCommandBuffer = (PFN_vkEndCommandBuffer) load("vkEndCommandBuffer", userptr);
-    vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties) load("vkEnumerateDeviceExtensionProperties", userptr);
-    vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties) load("vkEnumerateDeviceLayerProperties", userptr);
-    vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties) load("vkEnumerateInstanceExtensionProperties", userptr);
-    vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties) load("vkEnumerateInstanceLayerProperties", userptr);
-    vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) load("vkEnumeratePhysicalDevices", userptr);
-    vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges) load("vkFlushMappedMemoryRanges", userptr);
-    vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers) load("vkFreeCommandBuffers", userptr);
-    vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets) load("vkFreeDescriptorSets", userptr);
-    vkFreeMemory = (PFN_vkFreeMemory) load("vkFreeMemory", userptr);
-    vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements) load("vkGetBufferMemoryRequirements", userptr);
-    vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment) load("vkGetDeviceMemoryCommitment", userptr);
-    vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) load("vkGetDeviceProcAddr", userptr);
-    vkGetDeviceQueue = (PFN_vkGetDeviceQueue) load("vkGetDeviceQueue", userptr);
-    vkGetEventStatus = (PFN_vkGetEventStatus) load("vkGetEventStatus", userptr);
-    vkGetFenceStatus = (PFN_vkGetFenceStatus) load("vkGetFenceStatus", userptr);
-    vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements) load("vkGetImageMemoryRequirements", userptr);
-    vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements) load("vkGetImageSparseMemoryRequirements", userptr);
-    vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout) load("vkGetImageSubresourceLayout", userptr);
-    vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) load("vkGetInstanceProcAddr", userptr);
-    vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) load("vkGetPhysicalDeviceFeatures", userptr);
-    vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties) load("vkGetPhysicalDeviceFormatProperties", userptr);
-    vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) load("vkGetPhysicalDeviceImageFormatProperties", userptr);
-    vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties) load("vkGetPhysicalDeviceMemoryProperties", userptr);
-    vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties) load("vkGetPhysicalDeviceProperties", userptr);
-    vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) load("vkGetPhysicalDeviceQueueFamilyProperties", userptr);
-    vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties) load("vkGetPhysicalDeviceSparseImageFormatProperties", userptr);
-    vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData) load("vkGetPipelineCacheData", userptr);
-    vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults) load("vkGetQueryPoolResults", userptr);
-    vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity) load("vkGetRenderAreaGranularity", userptr);
-    vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges) load("vkInvalidateMappedMemoryRanges", userptr);
-    vkMapMemory = (PFN_vkMapMemory) load("vkMapMemory", userptr);
-    vkMergePipelineCaches = (PFN_vkMergePipelineCaches) load("vkMergePipelineCaches", userptr);
-    vkQueueBindSparse = (PFN_vkQueueBindSparse) load("vkQueueBindSparse", userptr);
-    vkQueueSubmit = (PFN_vkQueueSubmit) load("vkQueueSubmit", userptr);
-    vkQueueWaitIdle = (PFN_vkQueueWaitIdle) load("vkQueueWaitIdle", userptr);
-    vkResetCommandBuffer = (PFN_vkResetCommandBuffer) load("vkResetCommandBuffer", userptr);
-    vkResetCommandPool = (PFN_vkResetCommandPool) load("vkResetCommandPool", userptr);
-    vkResetDescriptorPool = (PFN_vkResetDescriptorPool) load("vkResetDescriptorPool", userptr);
-    vkResetEvent = (PFN_vkResetEvent) load("vkResetEvent", userptr);
-    vkResetFences = (PFN_vkResetFences) load("vkResetFences", userptr);
-    vkSetEvent = (PFN_vkSetEvent) load("vkSetEvent", userptr);
-    vkUnmapMemory = (PFN_vkUnmapMemory) load("vkUnmapMemory", userptr);
-    vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) load("vkUpdateDescriptorSets", userptr);
-    vkWaitForFences = (PFN_vkWaitForFences) load("vkWaitForFences", userptr);
+    glad_vkAllocateCommandBuffers = (PFN_vkAllocateCommandBuffers) load(userptr, "vkAllocateCommandBuffers");
+    glad_vkAllocateDescriptorSets = (PFN_vkAllocateDescriptorSets) load(userptr, "vkAllocateDescriptorSets");
+    glad_vkAllocateMemory = (PFN_vkAllocateMemory) load(userptr, "vkAllocateMemory");
+    glad_vkBeginCommandBuffer = (PFN_vkBeginCommandBuffer) load(userptr, "vkBeginCommandBuffer");
+    glad_vkBindBufferMemory = (PFN_vkBindBufferMemory) load(userptr, "vkBindBufferMemory");
+    glad_vkBindImageMemory = (PFN_vkBindImageMemory) load(userptr, "vkBindImageMemory");
+    glad_vkCmdBeginQuery = (PFN_vkCmdBeginQuery) load(userptr, "vkCmdBeginQuery");
+    glad_vkCmdBeginRenderPass = (PFN_vkCmdBeginRenderPass) load(userptr, "vkCmdBeginRenderPass");
+    glad_vkCmdBindDescriptorSets = (PFN_vkCmdBindDescriptorSets) load(userptr, "vkCmdBindDescriptorSets");
+    glad_vkCmdBindIndexBuffer = (PFN_vkCmdBindIndexBuffer) load(userptr, "vkCmdBindIndexBuffer");
+    glad_vkCmdBindPipeline = (PFN_vkCmdBindPipeline) load(userptr, "vkCmdBindPipeline");
+    glad_vkCmdBindVertexBuffers = (PFN_vkCmdBindVertexBuffers) load(userptr, "vkCmdBindVertexBuffers");
+    glad_vkCmdBlitImage = (PFN_vkCmdBlitImage) load(userptr, "vkCmdBlitImage");
+    glad_vkCmdClearAttachments = (PFN_vkCmdClearAttachments) load(userptr, "vkCmdClearAttachments");
+    glad_vkCmdClearColorImage = (PFN_vkCmdClearColorImage) load(userptr, "vkCmdClearColorImage");
+    glad_vkCmdClearDepthStencilImage = (PFN_vkCmdClearDepthStencilImage) load(userptr, "vkCmdClearDepthStencilImage");
+    glad_vkCmdCopyBuffer = (PFN_vkCmdCopyBuffer) load(userptr, "vkCmdCopyBuffer");
+    glad_vkCmdCopyBufferToImage = (PFN_vkCmdCopyBufferToImage) load(userptr, "vkCmdCopyBufferToImage");
+    glad_vkCmdCopyImage = (PFN_vkCmdCopyImage) load(userptr, "vkCmdCopyImage");
+    glad_vkCmdCopyImageToBuffer = (PFN_vkCmdCopyImageToBuffer) load(userptr, "vkCmdCopyImageToBuffer");
+    glad_vkCmdCopyQueryPoolResults = (PFN_vkCmdCopyQueryPoolResults) load(userptr, "vkCmdCopyQueryPoolResults");
+    glad_vkCmdDispatch = (PFN_vkCmdDispatch) load(userptr, "vkCmdDispatch");
+    glad_vkCmdDispatchIndirect = (PFN_vkCmdDispatchIndirect) load(userptr, "vkCmdDispatchIndirect");
+    glad_vkCmdDraw = (PFN_vkCmdDraw) load(userptr, "vkCmdDraw");
+    glad_vkCmdDrawIndexed = (PFN_vkCmdDrawIndexed) load(userptr, "vkCmdDrawIndexed");
+    glad_vkCmdDrawIndexedIndirect = (PFN_vkCmdDrawIndexedIndirect) load(userptr, "vkCmdDrawIndexedIndirect");
+    glad_vkCmdDrawIndirect = (PFN_vkCmdDrawIndirect) load(userptr, "vkCmdDrawIndirect");
+    glad_vkCmdEndQuery = (PFN_vkCmdEndQuery) load(userptr, "vkCmdEndQuery");
+    glad_vkCmdEndRenderPass = (PFN_vkCmdEndRenderPass) load(userptr, "vkCmdEndRenderPass");
+    glad_vkCmdExecuteCommands = (PFN_vkCmdExecuteCommands) load(userptr, "vkCmdExecuteCommands");
+    glad_vkCmdFillBuffer = (PFN_vkCmdFillBuffer) load(userptr, "vkCmdFillBuffer");
+    glad_vkCmdNextSubpass = (PFN_vkCmdNextSubpass) load(userptr, "vkCmdNextSubpass");
+    glad_vkCmdPipelineBarrier = (PFN_vkCmdPipelineBarrier) load(userptr, "vkCmdPipelineBarrier");
+    glad_vkCmdPushConstants = (PFN_vkCmdPushConstants) load(userptr, "vkCmdPushConstants");
+    glad_vkCmdResetEvent = (PFN_vkCmdResetEvent) load(userptr, "vkCmdResetEvent");
+    glad_vkCmdResetQueryPool = (PFN_vkCmdResetQueryPool) load(userptr, "vkCmdResetQueryPool");
+    glad_vkCmdResolveImage = (PFN_vkCmdResolveImage) load(userptr, "vkCmdResolveImage");
+    glad_vkCmdSetBlendConstants = (PFN_vkCmdSetBlendConstants) load(userptr, "vkCmdSetBlendConstants");
+    glad_vkCmdSetDepthBias = (PFN_vkCmdSetDepthBias) load(userptr, "vkCmdSetDepthBias");
+    glad_vkCmdSetDepthBounds = (PFN_vkCmdSetDepthBounds) load(userptr, "vkCmdSetDepthBounds");
+    glad_vkCmdSetEvent = (PFN_vkCmdSetEvent) load(userptr, "vkCmdSetEvent");
+    glad_vkCmdSetLineWidth = (PFN_vkCmdSetLineWidth) load(userptr, "vkCmdSetLineWidth");
+    glad_vkCmdSetScissor = (PFN_vkCmdSetScissor) load(userptr, "vkCmdSetScissor");
+    glad_vkCmdSetStencilCompareMask = (PFN_vkCmdSetStencilCompareMask) load(userptr, "vkCmdSetStencilCompareMask");
+    glad_vkCmdSetStencilReference = (PFN_vkCmdSetStencilReference) load(userptr, "vkCmdSetStencilReference");
+    glad_vkCmdSetStencilWriteMask = (PFN_vkCmdSetStencilWriteMask) load(userptr, "vkCmdSetStencilWriteMask");
+    glad_vkCmdSetViewport = (PFN_vkCmdSetViewport) load(userptr, "vkCmdSetViewport");
+    glad_vkCmdUpdateBuffer = (PFN_vkCmdUpdateBuffer) load(userptr, "vkCmdUpdateBuffer");
+    glad_vkCmdWaitEvents = (PFN_vkCmdWaitEvents) load(userptr, "vkCmdWaitEvents");
+    glad_vkCmdWriteTimestamp = (PFN_vkCmdWriteTimestamp) load(userptr, "vkCmdWriteTimestamp");
+    glad_vkCreateBuffer = (PFN_vkCreateBuffer) load(userptr, "vkCreateBuffer");
+    glad_vkCreateBufferView = (PFN_vkCreateBufferView) load(userptr, "vkCreateBufferView");
+    glad_vkCreateCommandPool = (PFN_vkCreateCommandPool) load(userptr, "vkCreateCommandPool");
+    glad_vkCreateComputePipelines = (PFN_vkCreateComputePipelines) load(userptr, "vkCreateComputePipelines");
+    glad_vkCreateDescriptorPool = (PFN_vkCreateDescriptorPool) load(userptr, "vkCreateDescriptorPool");
+    glad_vkCreateDescriptorSetLayout = (PFN_vkCreateDescriptorSetLayout) load(userptr, "vkCreateDescriptorSetLayout");
+    glad_vkCreateDevice = (PFN_vkCreateDevice) load(userptr, "vkCreateDevice");
+    glad_vkCreateEvent = (PFN_vkCreateEvent) load(userptr, "vkCreateEvent");
+    glad_vkCreateFence = (PFN_vkCreateFence) load(userptr, "vkCreateFence");
+    glad_vkCreateFramebuffer = (PFN_vkCreateFramebuffer) load(userptr, "vkCreateFramebuffer");
+    glad_vkCreateGraphicsPipelines = (PFN_vkCreateGraphicsPipelines) load(userptr, "vkCreateGraphicsPipelines");
+    glad_vkCreateImage = (PFN_vkCreateImage) load(userptr, "vkCreateImage");
+    glad_vkCreateImageView = (PFN_vkCreateImageView) load(userptr, "vkCreateImageView");
+    glad_vkCreateInstance = (PFN_vkCreateInstance) load(userptr, "vkCreateInstance");
+    glad_vkCreatePipelineCache = (PFN_vkCreatePipelineCache) load(userptr, "vkCreatePipelineCache");
+    glad_vkCreatePipelineLayout = (PFN_vkCreatePipelineLayout) load(userptr, "vkCreatePipelineLayout");
+    glad_vkCreateQueryPool = (PFN_vkCreateQueryPool) load(userptr, "vkCreateQueryPool");
+    glad_vkCreateRenderPass = (PFN_vkCreateRenderPass) load(userptr, "vkCreateRenderPass");
+    glad_vkCreateSampler = (PFN_vkCreateSampler) load(userptr, "vkCreateSampler");
+    glad_vkCreateSemaphore = (PFN_vkCreateSemaphore) load(userptr, "vkCreateSemaphore");
+    glad_vkCreateShaderModule = (PFN_vkCreateShaderModule) load(userptr, "vkCreateShaderModule");
+    glad_vkDestroyBuffer = (PFN_vkDestroyBuffer) load(userptr, "vkDestroyBuffer");
+    glad_vkDestroyBufferView = (PFN_vkDestroyBufferView) load(userptr, "vkDestroyBufferView");
+    glad_vkDestroyCommandPool = (PFN_vkDestroyCommandPool) load(userptr, "vkDestroyCommandPool");
+    glad_vkDestroyDescriptorPool = (PFN_vkDestroyDescriptorPool) load(userptr, "vkDestroyDescriptorPool");
+    glad_vkDestroyDescriptorSetLayout = (PFN_vkDestroyDescriptorSetLayout) load(userptr, "vkDestroyDescriptorSetLayout");
+    glad_vkDestroyDevice = (PFN_vkDestroyDevice) load(userptr, "vkDestroyDevice");
+    glad_vkDestroyEvent = (PFN_vkDestroyEvent) load(userptr, "vkDestroyEvent");
+    glad_vkDestroyFence = (PFN_vkDestroyFence) load(userptr, "vkDestroyFence");
+    glad_vkDestroyFramebuffer = (PFN_vkDestroyFramebuffer) load(userptr, "vkDestroyFramebuffer");
+    glad_vkDestroyImage = (PFN_vkDestroyImage) load(userptr, "vkDestroyImage");
+    glad_vkDestroyImageView = (PFN_vkDestroyImageView) load(userptr, "vkDestroyImageView");
+    glad_vkDestroyInstance = (PFN_vkDestroyInstance) load(userptr, "vkDestroyInstance");
+    glad_vkDestroyPipeline = (PFN_vkDestroyPipeline) load(userptr, "vkDestroyPipeline");
+    glad_vkDestroyPipelineCache = (PFN_vkDestroyPipelineCache) load(userptr, "vkDestroyPipelineCache");
+    glad_vkDestroyPipelineLayout = (PFN_vkDestroyPipelineLayout) load(userptr, "vkDestroyPipelineLayout");
+    glad_vkDestroyQueryPool = (PFN_vkDestroyQueryPool) load(userptr, "vkDestroyQueryPool");
+    glad_vkDestroyRenderPass = (PFN_vkDestroyRenderPass) load(userptr, "vkDestroyRenderPass");
+    glad_vkDestroySampler = (PFN_vkDestroySampler) load(userptr, "vkDestroySampler");
+    glad_vkDestroySemaphore = (PFN_vkDestroySemaphore) load(userptr, "vkDestroySemaphore");
+    glad_vkDestroyShaderModule = (PFN_vkDestroyShaderModule) load(userptr, "vkDestroyShaderModule");
+    glad_vkDeviceWaitIdle = (PFN_vkDeviceWaitIdle) load(userptr, "vkDeviceWaitIdle");
+    glad_vkEndCommandBuffer = (PFN_vkEndCommandBuffer) load(userptr, "vkEndCommandBuffer");
+    glad_vkEnumerateDeviceExtensionProperties = (PFN_vkEnumerateDeviceExtensionProperties) load(userptr, "vkEnumerateDeviceExtensionProperties");
+    glad_vkEnumerateDeviceLayerProperties = (PFN_vkEnumerateDeviceLayerProperties) load(userptr, "vkEnumerateDeviceLayerProperties");
+    glad_vkEnumerateInstanceExtensionProperties = (PFN_vkEnumerateInstanceExtensionProperties) load(userptr, "vkEnumerateInstanceExtensionProperties");
+    glad_vkEnumerateInstanceLayerProperties = (PFN_vkEnumerateInstanceLayerProperties) load(userptr, "vkEnumerateInstanceLayerProperties");
+    glad_vkEnumeratePhysicalDevices = (PFN_vkEnumeratePhysicalDevices) load(userptr, "vkEnumeratePhysicalDevices");
+    glad_vkFlushMappedMemoryRanges = (PFN_vkFlushMappedMemoryRanges) load(userptr, "vkFlushMappedMemoryRanges");
+    glad_vkFreeCommandBuffers = (PFN_vkFreeCommandBuffers) load(userptr, "vkFreeCommandBuffers");
+    glad_vkFreeDescriptorSets = (PFN_vkFreeDescriptorSets) load(userptr, "vkFreeDescriptorSets");
+    glad_vkFreeMemory = (PFN_vkFreeMemory) load(userptr, "vkFreeMemory");
+    glad_vkGetBufferMemoryRequirements = (PFN_vkGetBufferMemoryRequirements) load(userptr, "vkGetBufferMemoryRequirements");
+    glad_vkGetDeviceMemoryCommitment = (PFN_vkGetDeviceMemoryCommitment) load(userptr, "vkGetDeviceMemoryCommitment");
+    glad_vkGetDeviceProcAddr = (PFN_vkGetDeviceProcAddr) load(userptr, "vkGetDeviceProcAddr");
+    glad_vkGetDeviceQueue = (PFN_vkGetDeviceQueue) load(userptr, "vkGetDeviceQueue");
+    glad_vkGetEventStatus = (PFN_vkGetEventStatus) load(userptr, "vkGetEventStatus");
+    glad_vkGetFenceStatus = (PFN_vkGetFenceStatus) load(userptr, "vkGetFenceStatus");
+    glad_vkGetImageMemoryRequirements = (PFN_vkGetImageMemoryRequirements) load(userptr, "vkGetImageMemoryRequirements");
+    glad_vkGetImageSparseMemoryRequirements = (PFN_vkGetImageSparseMemoryRequirements) load(userptr, "vkGetImageSparseMemoryRequirements");
+    glad_vkGetImageSubresourceLayout = (PFN_vkGetImageSubresourceLayout) load(userptr, "vkGetImageSubresourceLayout");
+    glad_vkGetInstanceProcAddr = (PFN_vkGetInstanceProcAddr) load(userptr, "vkGetInstanceProcAddr");
+    glad_vkGetPhysicalDeviceFeatures = (PFN_vkGetPhysicalDeviceFeatures) load(userptr, "vkGetPhysicalDeviceFeatures");
+    glad_vkGetPhysicalDeviceFormatProperties = (PFN_vkGetPhysicalDeviceFormatProperties) load(userptr, "vkGetPhysicalDeviceFormatProperties");
+    glad_vkGetPhysicalDeviceImageFormatProperties = (PFN_vkGetPhysicalDeviceImageFormatProperties) load(userptr, "vkGetPhysicalDeviceImageFormatProperties");
+    glad_vkGetPhysicalDeviceMemoryProperties = (PFN_vkGetPhysicalDeviceMemoryProperties) load(userptr, "vkGetPhysicalDeviceMemoryProperties");
+    glad_vkGetPhysicalDeviceProperties = (PFN_vkGetPhysicalDeviceProperties) load(userptr, "vkGetPhysicalDeviceProperties");
+    glad_vkGetPhysicalDeviceQueueFamilyProperties = (PFN_vkGetPhysicalDeviceQueueFamilyProperties) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties");
+    glad_vkGetPhysicalDeviceSparseImageFormatProperties = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties");
+    glad_vkGetPipelineCacheData = (PFN_vkGetPipelineCacheData) load(userptr, "vkGetPipelineCacheData");
+    glad_vkGetQueryPoolResults = (PFN_vkGetQueryPoolResults) load(userptr, "vkGetQueryPoolResults");
+    glad_vkGetRenderAreaGranularity = (PFN_vkGetRenderAreaGranularity) load(userptr, "vkGetRenderAreaGranularity");
+    glad_vkInvalidateMappedMemoryRanges = (PFN_vkInvalidateMappedMemoryRanges) load(userptr, "vkInvalidateMappedMemoryRanges");
+    glad_vkMapMemory = (PFN_vkMapMemory) load(userptr, "vkMapMemory");
+    glad_vkMergePipelineCaches = (PFN_vkMergePipelineCaches) load(userptr, "vkMergePipelineCaches");
+    glad_vkQueueBindSparse = (PFN_vkQueueBindSparse) load(userptr, "vkQueueBindSparse");
+    glad_vkQueueSubmit = (PFN_vkQueueSubmit) load(userptr, "vkQueueSubmit");
+    glad_vkQueueWaitIdle = (PFN_vkQueueWaitIdle) load(userptr, "vkQueueWaitIdle");
+    glad_vkResetCommandBuffer = (PFN_vkResetCommandBuffer) load(userptr, "vkResetCommandBuffer");
+    glad_vkResetCommandPool = (PFN_vkResetCommandPool) load(userptr, "vkResetCommandPool");
+    glad_vkResetDescriptorPool = (PFN_vkResetDescriptorPool) load(userptr, "vkResetDescriptorPool");
+    glad_vkResetEvent = (PFN_vkResetEvent) load(userptr, "vkResetEvent");
+    glad_vkResetFences = (PFN_vkResetFences) load(userptr, "vkResetFences");
+    glad_vkSetEvent = (PFN_vkSetEvent) load(userptr, "vkSetEvent");
+    glad_vkUnmapMemory = (PFN_vkUnmapMemory) load(userptr, "vkUnmapMemory");
+    glad_vkUpdateDescriptorSets = (PFN_vkUpdateDescriptorSets) load(userptr, "vkUpdateDescriptorSets");
+    glad_vkWaitForFences = (PFN_vkWaitForFences) load(userptr, "vkWaitForFences");
 }
 static void glad_vk_load_VK_VERSION_1_1( GLADuserptrloadfunc load, void* userptr) {
     if(!GLAD_VK_VERSION_1_1) return;
-    vkBindBufferMemory2 = (PFN_vkBindBufferMemory2) load("vkBindBufferMemory2", userptr);
-    vkBindImageMemory2 = (PFN_vkBindImageMemory2) load("vkBindImageMemory2", userptr);
-    vkCmdDispatchBase = (PFN_vkCmdDispatchBase) load("vkCmdDispatchBase", userptr);
-    vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask) load("vkCmdSetDeviceMask", userptr);
-    vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate) load("vkCreateDescriptorUpdateTemplate", userptr);
-    vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion) load("vkCreateSamplerYcbcrConversion", userptr);
-    vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate) load("vkDestroyDescriptorUpdateTemplate", userptr);
-    vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion) load("vkDestroySamplerYcbcrConversion", userptr);
-    vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load("vkEnumerateInstanceVersion", userptr);
-    vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups) load("vkEnumeratePhysicalDeviceGroups", userptr);
-    vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2) load("vkGetBufferMemoryRequirements2", userptr);
-    vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport) load("vkGetDescriptorSetLayoutSupport", userptr);
-    vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures) load("vkGetDeviceGroupPeerMemoryFeatures", userptr);
-    vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2) load("vkGetDeviceQueue2", userptr);
-    vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2) load("vkGetImageMemoryRequirements2", userptr);
-    vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2) load("vkGetImageSparseMemoryRequirements2", userptr);
-    vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties) load("vkGetPhysicalDeviceExternalBufferProperties", userptr);
-    vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties) load("vkGetPhysicalDeviceExternalFenceProperties", userptr);
-    vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties) load("vkGetPhysicalDeviceExternalSemaphoreProperties", userptr);
-    vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2) load("vkGetPhysicalDeviceFeatures2", userptr);
-    vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2) load("vkGetPhysicalDeviceFormatProperties2", userptr);
-    vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2) load("vkGetPhysicalDeviceImageFormatProperties2", userptr);
-    vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2) load("vkGetPhysicalDeviceMemoryProperties2", userptr);
-    vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2) load("vkGetPhysicalDeviceProperties2", userptr);
-    vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2) load("vkGetPhysicalDeviceQueueFamilyProperties2", userptr);
-    vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2) load("vkGetPhysicalDeviceSparseImageFormatProperties2", userptr);
-    vkTrimCommandPool = (PFN_vkTrimCommandPool) load("vkTrimCommandPool", userptr);
-    vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate) load("vkUpdateDescriptorSetWithTemplate", userptr);
+    glad_vkBindBufferMemory2 = (PFN_vkBindBufferMemory2) load(userptr, "vkBindBufferMemory2");
+    glad_vkBindImageMemory2 = (PFN_vkBindImageMemory2) load(userptr, "vkBindImageMemory2");
+    glad_vkCmdDispatchBase = (PFN_vkCmdDispatchBase) load(userptr, "vkCmdDispatchBase");
+    glad_vkCmdSetDeviceMask = (PFN_vkCmdSetDeviceMask) load(userptr, "vkCmdSetDeviceMask");
+    glad_vkCreateDescriptorUpdateTemplate = (PFN_vkCreateDescriptorUpdateTemplate) load(userptr, "vkCreateDescriptorUpdateTemplate");
+    glad_vkCreateSamplerYcbcrConversion = (PFN_vkCreateSamplerYcbcrConversion) load(userptr, "vkCreateSamplerYcbcrConversion");
+    glad_vkDestroyDescriptorUpdateTemplate = (PFN_vkDestroyDescriptorUpdateTemplate) load(userptr, "vkDestroyDescriptorUpdateTemplate");
+    glad_vkDestroySamplerYcbcrConversion = (PFN_vkDestroySamplerYcbcrConversion) load(userptr, "vkDestroySamplerYcbcrConversion");
+    glad_vkEnumerateInstanceVersion = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
+    glad_vkEnumeratePhysicalDeviceGroups = (PFN_vkEnumeratePhysicalDeviceGroups) load(userptr, "vkEnumeratePhysicalDeviceGroups");
+    glad_vkGetBufferMemoryRequirements2 = (PFN_vkGetBufferMemoryRequirements2) load(userptr, "vkGetBufferMemoryRequirements2");
+    glad_vkGetDescriptorSetLayoutSupport = (PFN_vkGetDescriptorSetLayoutSupport) load(userptr, "vkGetDescriptorSetLayoutSupport");
+    glad_vkGetDeviceGroupPeerMemoryFeatures = (PFN_vkGetDeviceGroupPeerMemoryFeatures) load(userptr, "vkGetDeviceGroupPeerMemoryFeatures");
+    glad_vkGetDeviceQueue2 = (PFN_vkGetDeviceQueue2) load(userptr, "vkGetDeviceQueue2");
+    glad_vkGetImageMemoryRequirements2 = (PFN_vkGetImageMemoryRequirements2) load(userptr, "vkGetImageMemoryRequirements2");
+    glad_vkGetImageSparseMemoryRequirements2 = (PFN_vkGetImageSparseMemoryRequirements2) load(userptr, "vkGetImageSparseMemoryRequirements2");
+    glad_vkGetPhysicalDeviceExternalBufferProperties = (PFN_vkGetPhysicalDeviceExternalBufferProperties) load(userptr, "vkGetPhysicalDeviceExternalBufferProperties");
+    glad_vkGetPhysicalDeviceExternalFenceProperties = (PFN_vkGetPhysicalDeviceExternalFenceProperties) load(userptr, "vkGetPhysicalDeviceExternalFenceProperties");
+    glad_vkGetPhysicalDeviceExternalSemaphoreProperties = (PFN_vkGetPhysicalDeviceExternalSemaphoreProperties) load(userptr, "vkGetPhysicalDeviceExternalSemaphoreProperties");
+    glad_vkGetPhysicalDeviceFeatures2 = (PFN_vkGetPhysicalDeviceFeatures2) load(userptr, "vkGetPhysicalDeviceFeatures2");
+    glad_vkGetPhysicalDeviceFormatProperties2 = (PFN_vkGetPhysicalDeviceFormatProperties2) load(userptr, "vkGetPhysicalDeviceFormatProperties2");
+    glad_vkGetPhysicalDeviceImageFormatProperties2 = (PFN_vkGetPhysicalDeviceImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceImageFormatProperties2");
+    glad_vkGetPhysicalDeviceMemoryProperties2 = (PFN_vkGetPhysicalDeviceMemoryProperties2) load(userptr, "vkGetPhysicalDeviceMemoryProperties2");
+    glad_vkGetPhysicalDeviceProperties2 = (PFN_vkGetPhysicalDeviceProperties2) load(userptr, "vkGetPhysicalDeviceProperties2");
+    glad_vkGetPhysicalDeviceQueueFamilyProperties2 = (PFN_vkGetPhysicalDeviceQueueFamilyProperties2) load(userptr, "vkGetPhysicalDeviceQueueFamilyProperties2");
+    glad_vkGetPhysicalDeviceSparseImageFormatProperties2 = (PFN_vkGetPhysicalDeviceSparseImageFormatProperties2) load(userptr, "vkGetPhysicalDeviceSparseImageFormatProperties2");
+    glad_vkTrimCommandPool = (PFN_vkTrimCommandPool) load(userptr, "vkTrimCommandPool");
+    glad_vkUpdateDescriptorSetWithTemplate = (PFN_vkUpdateDescriptorSetWithTemplate) load(userptr, "vkUpdateDescriptorSetWithTemplate");
+}
+static void glad_vk_load_VK_VERSION_1_2( GLADuserptrloadfunc load, void* userptr) {
+    if(!GLAD_VK_VERSION_1_2) return;
+    glad_vkCmdBeginRenderPass2 = (PFN_vkCmdBeginRenderPass2) load(userptr, "vkCmdBeginRenderPass2");
+    glad_vkCmdDrawIndexedIndirectCount = (PFN_vkCmdDrawIndexedIndirectCount) load(userptr, "vkCmdDrawIndexedIndirectCount");
+    glad_vkCmdDrawIndirectCount = (PFN_vkCmdDrawIndirectCount) load(userptr, "vkCmdDrawIndirectCount");
+    glad_vkCmdEndRenderPass2 = (PFN_vkCmdEndRenderPass2) load(userptr, "vkCmdEndRenderPass2");
+    glad_vkCmdNextSubpass2 = (PFN_vkCmdNextSubpass2) load(userptr, "vkCmdNextSubpass2");
+    glad_vkCreateRenderPass2 = (PFN_vkCreateRenderPass2) load(userptr, "vkCreateRenderPass2");
+    glad_vkGetBufferDeviceAddress = (PFN_vkGetBufferDeviceAddress) load(userptr, "vkGetBufferDeviceAddress");
+    glad_vkGetBufferOpaqueCaptureAddress = (PFN_vkGetBufferOpaqueCaptureAddress) load(userptr, "vkGetBufferOpaqueCaptureAddress");
+    glad_vkGetDeviceMemoryOpaqueCaptureAddress = (PFN_vkGetDeviceMemoryOpaqueCaptureAddress) load(userptr, "vkGetDeviceMemoryOpaqueCaptureAddress");
+    glad_vkGetSemaphoreCounterValue = (PFN_vkGetSemaphoreCounterValue) load(userptr, "vkGetSemaphoreCounterValue");
+    glad_vkResetQueryPool = (PFN_vkResetQueryPool) load(userptr, "vkResetQueryPool");
+    glad_vkSignalSemaphore = (PFN_vkSignalSemaphore) load(userptr, "vkSignalSemaphore");
+    glad_vkWaitSemaphores = (PFN_vkWaitSemaphores) load(userptr, "vkWaitSemaphores");
+}
+static void glad_vk_load_VK_VERSION_1_3( GLADuserptrloadfunc load, void* userptr) {
+    if(!GLAD_VK_VERSION_1_3) return;
+    glad_vkCmdBeginRendering = (PFN_vkCmdBeginRendering) load(userptr, "vkCmdBeginRendering");
+    glad_vkCmdBindVertexBuffers2 = (PFN_vkCmdBindVertexBuffers2) load(userptr, "vkCmdBindVertexBuffers2");
+    glad_vkCmdBlitImage2 = (PFN_vkCmdBlitImage2) load(userptr, "vkCmdBlitImage2");
+    glad_vkCmdCopyBuffer2 = (PFN_vkCmdCopyBuffer2) load(userptr, "vkCmdCopyBuffer2");
+    glad_vkCmdCopyBufferToImage2 = (PFN_vkCmdCopyBufferToImage2) load(userptr, "vkCmdCopyBufferToImage2");
+    glad_vkCmdCopyImage2 = (PFN_vkCmdCopyImage2) load(userptr, "vkCmdCopyImage2");
+    glad_vkCmdCopyImageToBuffer2 = (PFN_vkCmdCopyImageToBuffer2) load(userptr, "vkCmdCopyImageToBuffer2");
+    glad_vkCmdEndRendering = (PFN_vkCmdEndRendering) load(userptr, "vkCmdEndRendering");
+    glad_vkCmdPipelineBarrier2 = (PFN_vkCmdPipelineBarrier2) load(userptr, "vkCmdPipelineBarrier2");
+    glad_vkCmdResetEvent2 = (PFN_vkCmdResetEvent2) load(userptr, "vkCmdResetEvent2");
+    glad_vkCmdResolveImage2 = (PFN_vkCmdResolveImage2) load(userptr, "vkCmdResolveImage2");
+    glad_vkCmdSetCullMode = (PFN_vkCmdSetCullMode) load(userptr, "vkCmdSetCullMode");
+    glad_vkCmdSetDepthBiasEnable = (PFN_vkCmdSetDepthBiasEnable) load(userptr, "vkCmdSetDepthBiasEnable");
+    glad_vkCmdSetDepthBoundsTestEnable = (PFN_vkCmdSetDepthBoundsTestEnable) load(userptr, "vkCmdSetDepthBoundsTestEnable");
+    glad_vkCmdSetDepthCompareOp = (PFN_vkCmdSetDepthCompareOp) load(userptr, "vkCmdSetDepthCompareOp");
+    glad_vkCmdSetDepthTestEnable = (PFN_vkCmdSetDepthTestEnable) load(userptr, "vkCmdSetDepthTestEnable");
+    glad_vkCmdSetDepthWriteEnable = (PFN_vkCmdSetDepthWriteEnable) load(userptr, "vkCmdSetDepthWriteEnable");
+    glad_vkCmdSetEvent2 = (PFN_vkCmdSetEvent2) load(userptr, "vkCmdSetEvent2");
+    glad_vkCmdSetFrontFace = (PFN_vkCmdSetFrontFace) load(userptr, "vkCmdSetFrontFace");
+    glad_vkCmdSetPrimitiveRestartEnable = (PFN_vkCmdSetPrimitiveRestartEnable) load(userptr, "vkCmdSetPrimitiveRestartEnable");
+    glad_vkCmdSetPrimitiveTopology = (PFN_vkCmdSetPrimitiveTopology) load(userptr, "vkCmdSetPrimitiveTopology");
+    glad_vkCmdSetRasterizerDiscardEnable = (PFN_vkCmdSetRasterizerDiscardEnable) load(userptr, "vkCmdSetRasterizerDiscardEnable");
+    glad_vkCmdSetScissorWithCount = (PFN_vkCmdSetScissorWithCount) load(userptr, "vkCmdSetScissorWithCount");
+    glad_vkCmdSetStencilOp = (PFN_vkCmdSetStencilOp) load(userptr, "vkCmdSetStencilOp");
+    glad_vkCmdSetStencilTestEnable = (PFN_vkCmdSetStencilTestEnable) load(userptr, "vkCmdSetStencilTestEnable");
+    glad_vkCmdSetViewportWithCount = (PFN_vkCmdSetViewportWithCount) load(userptr, "vkCmdSetViewportWithCount");
+    glad_vkCmdWaitEvents2 = (PFN_vkCmdWaitEvents2) load(userptr, "vkCmdWaitEvents2");
+    glad_vkCmdWriteTimestamp2 = (PFN_vkCmdWriteTimestamp2) load(userptr, "vkCmdWriteTimestamp2");
+    glad_vkCreatePrivateDataSlot = (PFN_vkCreatePrivateDataSlot) load(userptr, "vkCreatePrivateDataSlot");
+    glad_vkDestroyPrivateDataSlot = (PFN_vkDestroyPrivateDataSlot) load(userptr, "vkDestroyPrivateDataSlot");
+    glad_vkGetDeviceBufferMemoryRequirements = (PFN_vkGetDeviceBufferMemoryRequirements) load(userptr, "vkGetDeviceBufferMemoryRequirements");
+    glad_vkGetDeviceImageMemoryRequirements = (PFN_vkGetDeviceImageMemoryRequirements) load(userptr, "vkGetDeviceImageMemoryRequirements");
+    glad_vkGetDeviceImageSparseMemoryRequirements = (PFN_vkGetDeviceImageSparseMemoryRequirements) load(userptr, "vkGetDeviceImageSparseMemoryRequirements");
+    glad_vkGetPhysicalDeviceToolProperties = (PFN_vkGetPhysicalDeviceToolProperties) load(userptr, "vkGetPhysicalDeviceToolProperties");
+    glad_vkGetPrivateData = (PFN_vkGetPrivateData) load(userptr, "vkGetPrivateData");
+    glad_vkQueueSubmit2 = (PFN_vkQueueSubmit2) load(userptr, "vkQueueSubmit2");
+    glad_vkSetPrivateData = (PFN_vkSetPrivateData) load(userptr, "vkSetPrivateData");
 }
 static void glad_vk_load_VK_EXT_debug_report( GLADuserptrloadfunc load, void* userptr) {
     if(!GLAD_VK_EXT_debug_report) return;
-    vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) load("vkCreateDebugReportCallbackEXT", userptr);
-    vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT) load("vkDebugReportMessageEXT", userptr);
-    vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT) load("vkDestroyDebugReportCallbackEXT", userptr);
+    glad_vkCreateDebugReportCallbackEXT = (PFN_vkCreateDebugReportCallbackEXT) load(userptr, "vkCreateDebugReportCallbackEXT");
+    glad_vkDebugReportMessageEXT = (PFN_vkDebugReportMessageEXT) load(userptr, "vkDebugReportMessageEXT");
+    glad_vkDestroyDebugReportCallbackEXT = (PFN_vkDestroyDebugReportCallbackEXT) load(userptr, "vkDestroyDebugReportCallbackEXT");
 }
 static void glad_vk_load_VK_KHR_surface( GLADuserptrloadfunc load, void* userptr) {
     if(!GLAD_VK_KHR_surface) return;
-    vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) load("vkDestroySurfaceKHR", userptr);
-    vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) load("vkGetPhysicalDeviceSurfaceCapabilitiesKHR", userptr);
-    vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) load("vkGetPhysicalDeviceSurfaceFormatsKHR", userptr);
-    vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) load("vkGetPhysicalDeviceSurfacePresentModesKHR", userptr);
-    vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) load("vkGetPhysicalDeviceSurfaceSupportKHR", userptr);
+    glad_vkDestroySurfaceKHR = (PFN_vkDestroySurfaceKHR) load(userptr, "vkDestroySurfaceKHR");
+    glad_vkGetPhysicalDeviceSurfaceCapabilitiesKHR = (PFN_vkGetPhysicalDeviceSurfaceCapabilitiesKHR) load(userptr, "vkGetPhysicalDeviceSurfaceCapabilitiesKHR");
+    glad_vkGetPhysicalDeviceSurfaceFormatsKHR = (PFN_vkGetPhysicalDeviceSurfaceFormatsKHR) load(userptr, "vkGetPhysicalDeviceSurfaceFormatsKHR");
+    glad_vkGetPhysicalDeviceSurfacePresentModesKHR = (PFN_vkGetPhysicalDeviceSurfacePresentModesKHR) load(userptr, "vkGetPhysicalDeviceSurfacePresentModesKHR");
+    glad_vkGetPhysicalDeviceSurfaceSupportKHR = (PFN_vkGetPhysicalDeviceSurfaceSupportKHR) load(userptr, "vkGetPhysicalDeviceSurfaceSupportKHR");
 }
 static void glad_vk_load_VK_KHR_swapchain( GLADuserptrloadfunc load, void* userptr) {
     if(!GLAD_VK_KHR_swapchain) return;
-    vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR) load("vkAcquireNextImage2KHR", userptr);
-    vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) load("vkAcquireNextImageKHR", userptr);
-    vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) load("vkCreateSwapchainKHR", userptr);
-    vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) load("vkDestroySwapchainKHR", userptr);
-    vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR) load("vkGetDeviceGroupPresentCapabilitiesKHR", userptr);
-    vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR) load("vkGetDeviceGroupSurfacePresentModesKHR", userptr);
-    vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR) load("vkGetPhysicalDevicePresentRectanglesKHR", userptr);
-    vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR) load("vkGetSwapchainImagesKHR", userptr);
-    vkQueuePresentKHR = (PFN_vkQueuePresentKHR) load("vkQueuePresentKHR", userptr);
+    glad_vkAcquireNextImage2KHR = (PFN_vkAcquireNextImage2KHR) load(userptr, "vkAcquireNextImage2KHR");
+    glad_vkAcquireNextImageKHR = (PFN_vkAcquireNextImageKHR) load(userptr, "vkAcquireNextImageKHR");
+    glad_vkCreateSwapchainKHR = (PFN_vkCreateSwapchainKHR) load(userptr, "vkCreateSwapchainKHR");
+    glad_vkDestroySwapchainKHR = (PFN_vkDestroySwapchainKHR) load(userptr, "vkDestroySwapchainKHR");
+    glad_vkGetDeviceGroupPresentCapabilitiesKHR = (PFN_vkGetDeviceGroupPresentCapabilitiesKHR) load(userptr, "vkGetDeviceGroupPresentCapabilitiesKHR");
+    glad_vkGetDeviceGroupSurfacePresentModesKHR = (PFN_vkGetDeviceGroupSurfacePresentModesKHR) load(userptr, "vkGetDeviceGroupSurfacePresentModesKHR");
+    glad_vkGetPhysicalDevicePresentRectanglesKHR = (PFN_vkGetPhysicalDevicePresentRectanglesKHR) load(userptr, "vkGetPhysicalDevicePresentRectanglesKHR");
+    glad_vkGetSwapchainImagesKHR = (PFN_vkGetSwapchainImagesKHR) load(userptr, "vkGetSwapchainImagesKHR");
+    glad_vkQueuePresentKHR = (PFN_vkQueuePresentKHR) load(userptr, "vkQueuePresentKHR");
 }
 
 
@@ -411,47 +525,49 @@ static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *o
     uint32_t i;
     uint32_t instance_extension_count = 0;
     uint32_t device_extension_count = 0;
-    uint32_t max_extension_count;
-    uint32_t total_extension_count;
-    char **extensions;
-    VkExtensionProperties *ext_properties;
+    uint32_t max_extension_count = 0;
+    uint32_t total_extension_count = 0;
+    char **extensions = NULL;
+    VkExtensionProperties *ext_properties = NULL;
     VkResult result;
 
-    if (vkEnumerateInstanceExtensionProperties == NULL || (physical_device != NULL && vkEnumerateDeviceExtensionProperties == NULL)) {
+    if (glad_vkEnumerateInstanceExtensionProperties == NULL || (physical_device != NULL && glad_vkEnumerateDeviceExtensionProperties == NULL)) {
         return 0;
     }
 
-    result = vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, NULL);
+    result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, NULL);
     if (result != VK_SUCCESS) {
         return 0;
     }
 
     if (physical_device != NULL) {
-        result = vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, NULL);
+        result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, NULL);
         if (result != VK_SUCCESS) {
             return 0;
         }
     }
 
     total_extension_count = instance_extension_count + device_extension_count;
+    if (total_extension_count <= 0) {
+        return 0;
+    }
+
     max_extension_count = instance_extension_count > device_extension_count
         ? instance_extension_count : device_extension_count;
 
     ext_properties = (VkExtensionProperties*) malloc(max_extension_count * sizeof(VkExtensionProperties));
     if (ext_properties == NULL) {
-        return 0;
+        goto glad_vk_get_extensions_error;
     }
 
-    result = vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, ext_properties);
+    result = glad_vkEnumerateInstanceExtensionProperties(NULL, &instance_extension_count, ext_properties);
     if (result != VK_SUCCESS) {
-        free((void*) ext_properties);
-        return 0;
+        goto glad_vk_get_extensions_error;
     }
 
     extensions = (char**) calloc(total_extension_count, sizeof(char*));
     if (extensions == NULL) {
-        free((void*) ext_properties);
-        return 0;
+        goto glad_vk_get_extensions_error;
     }
 
     for (i = 0; i < instance_extension_count; ++i) {
@@ -459,17 +575,16 @@ static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *o
 
         size_t extension_name_length = strlen(ext.extensionName) + 1;
         extensions[i] = (char*) malloc(extension_name_length * sizeof(char));
+        if (extensions[i] == NULL) {
+            goto glad_vk_get_extensions_error;
+        }
         memcpy(extensions[i], ext.extensionName, extension_name_length * sizeof(char));
     }
 
     if (physical_device != NULL) {
-        result = vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, ext_properties);
+        result = glad_vkEnumerateDeviceExtensionProperties(physical_device, NULL, &device_extension_count, ext_properties);
         if (result != VK_SUCCESS) {
-            for (i = 0; i < instance_extension_count; ++i) {
-                free((void*) extensions[i]);
-            }
-            free(extensions);
-            return 0;
+            goto glad_vk_get_extensions_error;
         }
 
         for (i = 0; i < device_extension_count; ++i) {
@@ -477,6 +592,9 @@ static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *o
 
             size_t extension_name_length = strlen(ext.extensionName) + 1;
             extensions[instance_extension_count + i] = (char*) malloc(extension_name_length * sizeof(char));
+            if (extensions[instance_extension_count + i] == NULL) {
+                goto glad_vk_get_extensions_error;
+            }
             memcpy(extensions[instance_extension_count + i], ext.extensionName, extension_name_length * sizeof(char));
         }
     }
@@ -487,6 +605,16 @@ static int glad_vk_get_extensions( VkPhysicalDevice physical_device, uint32_t *o
     *out_extensions = extensions;
 
     return 1;
+
+glad_vk_get_extensions_error:
+    free((void*) ext_properties);
+    if (extensions != NULL) {
+        for (i = 0; i < total_extension_count; ++i) {
+            free((void*) extensions[i]);
+        }
+        free(extensions);
+    }
+    return 0;
 }
 
 static void glad_vk_free_extensions(uint32_t extension_count, char **extensions) {
@@ -503,7 +631,7 @@ static int glad_vk_has_extension(const char *name, uint32_t extension_count, cha
     uint32_t i;
 
     for (i = 0; i < extension_count; ++i) {
-        if(strcmp(name, extensions[i]) == 0) {
+        if(extensions[i] != NULL && strcmp(name, extensions[i]) == 0) {
             return 1;
         }
     }
@@ -511,7 +639,7 @@ static int glad_vk_has_extension(const char *name, uint32_t extension_count, cha
     return 0;
 }
 
-static GLADapiproc glad_vk_get_proc_from_userptr(const char* name, void *userptr) {
+static GLADapiproc glad_vk_get_proc_from_userptr(void *userptr, const char* name) {
     return (GLAD_GNUC_EXTENSION (GLADapiproc (*)(const char *name)) userptr)(name);
 }
 
@@ -521,9 +649,12 @@ static int glad_vk_find_extensions_vulkan( VkPhysicalDevice physical_device) {
     if (!glad_vk_get_extensions(physical_device, &extension_count, &extensions)) return 0;
 
     GLAD_VK_EXT_debug_report = glad_vk_has_extension("VK_EXT_debug_report", extension_count, extensions);
+    GLAD_VK_KHR_portability_enumeration = glad_vk_has_extension("VK_KHR_portability_enumeration", extension_count, extensions);
     GLAD_VK_KHR_surface = glad_vk_has_extension("VK_KHR_surface", extension_count, extensions);
     GLAD_VK_KHR_swapchain = glad_vk_has_extension("VK_KHR_swapchain", extension_count, extensions);
 
+    (void) glad_vk_has_extension;
+
     glad_vk_free_extensions(extension_count, extensions);
 
     return 1;
@@ -534,11 +665,11 @@ static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
     int minor = 0;
 
 #ifdef VK_VERSION_1_1
-    if (vkEnumerateInstanceVersion  != NULL) {
+    if (glad_vkEnumerateInstanceVersion != NULL) {
         uint32_t version;
         VkResult result;
 
-        result = vkEnumerateInstanceVersion(&version);
+        result = glad_vkEnumerateInstanceVersion(&version);
         if (result == VK_SUCCESS) {
             major = (int) VK_VERSION_MAJOR(version);
             minor = (int) VK_VERSION_MINOR(version);
@@ -546,9 +677,9 @@ static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
     }
 #endif
 
-    if (physical_device != NULL && vkGetPhysicalDeviceProperties  != NULL) {
+    if (physical_device != NULL && glad_vkGetPhysicalDeviceProperties != NULL) {
         VkPhysicalDeviceProperties properties;
-        vkGetPhysicalDeviceProperties(physical_device, &properties);
+        glad_vkGetPhysicalDeviceProperties(physical_device, &properties);
 
         major = (int) VK_VERSION_MAJOR(properties.apiVersion);
         minor = (int) VK_VERSION_MINOR(properties.apiVersion);
@@ -556,6 +687,8 @@ static int glad_vk_find_core_vulkan( VkPhysicalDevice physical_device) {
 
     GLAD_VK_VERSION_1_0 = (major == 1 && minor >= 0) || major > 1;
     GLAD_VK_VERSION_1_1 = (major == 1 && minor >= 1) || major > 1;
+    GLAD_VK_VERSION_1_2 = (major == 1 && minor >= 2) || major > 1;
+    GLAD_VK_VERSION_1_3 = (major == 1 && minor >= 3) || major > 1;
 
     return GLAD_MAKE_VERSION(major, minor);
 }
@@ -564,7 +697,7 @@ int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc
     int version;
 
 #ifdef VK_VERSION_1_1
-    vkEnumerateInstanceVersion  = (PFN_vkEnumerateInstanceVersion) load("vkEnumerateInstanceVersion", userptr);
+    glad_vkEnumerateInstanceVersion  = (PFN_vkEnumerateInstanceVersion) load(userptr, "vkEnumerateInstanceVersion");
 #endif
     version = glad_vk_find_core_vulkan( physical_device);
     if (!version) {
@@ -573,6 +706,8 @@ int gladLoadVulkanUserPtr( VkPhysicalDevice physical_device, GLADuserptrloadfunc
 
     glad_vk_load_VK_VERSION_1_0(load, userptr);
     glad_vk_load_VK_VERSION_1_1(load, userptr);
+    glad_vk_load_VK_VERSION_1_2(load, userptr);
+    glad_vk_load_VK_VERSION_1_3(load, userptr);
 
     if (!glad_vk_find_extensions_vulkan( physical_device)) return 0;
     glad_vk_load_VK_EXT_debug_report(load, userptr);
@@ -590,4 +725,9 @@ int gladLoadVulkan( VkPhysicalDevice physical_device, GLADloadfunc load) {
 
 
 
+ 
 
+
+#ifdef __cplusplus
+}
+#endif

+ 2 - 2
glfw.mod/glfw/deps/linmath.h

@@ -237,9 +237,9 @@ static inline void mat4x4_rotate_Y(mat4x4 Q, mat4x4 M, float angle)
 	float s = sinf(angle);
 	float c = cosf(angle);
 	mat4x4 R = {
-		{   c, 0.f,   s, 0.f},
+		{   c, 0.f,  -s, 0.f},
 		{ 0.f, 1.f, 0.f, 0.f},
-		{  -s, 0.f,   c, 0.f},
+		{   s, 0.f,   c, 0.f},
 		{ 0.f, 0.f, 0.f, 1.f}
 	};
 	mat4x4_mul(Q, M, R);

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 760 - 126
glfw.mod/glfw/deps/stb_image_write.h


+ 2 - 0
glfw.mod/glfw/docs/CMakeLists.txt

@@ -30,3 +30,5 @@ add_custom_target(docs ALL "${DOXYGEN_EXECUTABLE}"
                   WORKING_DIRECTORY "${GLFW_BINARY_DIR}/docs"
                   COMMENT "Generating HTML documentation" VERBATIM)
 
+set_target_properties(docs PROPERTIES FOLDER "GLFW3")
+

+ 0 - 10
glfw.mod/glfw/docs/CODEOWNERS

@@ -1,10 +0,0 @@
-
-*               @elmindreda
-
-src/wl_*        @linkmauve
-
-docs/*.css      @glfw/webdev
-docs/*.less     @glfw/webdev
-docs/*.html     @glfw/webdev
-docs/*.xml      @glfw/webdev
-

+ 3 - 3
glfw.mod/glfw/docs/CONTRIBUTING.md

@@ -24,7 +24,7 @@ section](https://discourse.glfw.org/c/support) of the forum, under the [Stack
 Overflow tag](https://stackoverflow.com/questions/tagged/glfw) or [Game
 Development tag](https://gamedev.stackexchange.com/questions/tagged/glfw) on
 Stack Exchange or in the IRC channel `#glfw` on
-[Freenode](http://freenode.net/).
+[Libera.Chat](https://libera.chat/).
 
 Questions about the design or implementation of GLFW or about future plans
 should be asked in the [dev section](https://discourse.glfw.org/c/dev) of the
@@ -351,8 +351,8 @@ __Note:__ If you haven't already implemented the feature, check first if there
 already is an open issue for it and if it's already being developed in an
 [experimental branch](https://github.com/glfw/glfw/branches/all).
 
-__There is no preferred patch size__.  A one character change is just as welcome
-as one adding a thousand line one, if that is the appropriate size for the
+__There is no preferred patch size__.  A one-character change is just as welcome
+as one adding a thousand lines, if that is the appropriate size for the
 feature.
 
 In addition to the code, a complete feature includes:

+ 0 - 20
glfw.mod/glfw/docs/Doxyfile.in

@@ -208,13 +208,6 @@ ALIASES                = "thread_safety=@par Thread safety^^" \
                          "macos=__macOS:__" \
                          "linux=__Linux:__"
 
-# This tag can be used to specify a number of word-keyword mappings (TCL only).
-# A mapping has the form "name=value". For example adding
-# "class=itcl::class" will allow you to use the command class in the
-# itcl::class meaning.
-
-TCL_SUBST              =
-
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C
 # sources only. Doxygen will then generate output that is more tailored for C.
 # For instance, some of the names that are used will be different. The list
@@ -854,12 +847,6 @@ VERBATIM_HEADERS       = YES
 
 ALPHABETICAL_INDEX     = YES
 
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
 # In case all classes in a project start with a common prefix, all
 # classes will be put under the same header in the alphabetical index.
 # The IGNORE_PREFIX tag can be used to specify one or more prefixes that
@@ -1367,13 +1354,6 @@ LATEX_BATCHMODE        = NO
 
 LATEX_HIDE_INDICES     = NO
 
-# If LATEX_SOURCE_CODE is set to YES then doxygen will include
-# source code with syntax highlighting in the LaTeX output.
-# Note that which sources are shown also depends on other settings
-# such as SOURCE_BROWSER.
-
-LATEX_SOURCE_CODE      = NO
-
 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
 # bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
 # http://en.wikipedia.org/wiki/BibTeX for more info.

+ 2 - 2
glfw.mod/glfw/docs/SUPPORT.md

@@ -1,11 +1,11 @@
 # Support resources
 
-See the [latest documentation](http://www.glfw.org/docs/latest/) for tutorials,
+See the [latest documentation](https://www.glfw.org/docs/latest/) for tutorials,
 guides and the API reference.
 
 If you have questions about using GLFW, we have a
 [forum](https://discourse.glfw.org/), and the `#glfw` IRC channel on
-[Freenode](http://freenode.net/).
+[Libera.Chat](https://libera.chat/).
 
 Bugs are reported to our [issue tracker](https://github.com/glfw/glfw/issues).
 Please check the [contribution

+ 28 - 22
glfw.mod/glfw/docs/build.dox

@@ -25,39 +25,41 @@ GLFW.
 #include <GLFW/glfw3.h>
 @endcode
 
-This header declares the GLFW API and by default also includes the OpenGL header
-from your development environment.  See below for how to control this.
+This header defines all the constants and declares all the types and function
+prototypes of the GLFW API.  By default it also includes the OpenGL header from
+your development environment.  See [option macros](@ref build_macros) below for
+how to select OpenGL ES headers and more.
 
 The GLFW header also defines any platform-specific macros needed by your OpenGL
-header, so it can be included without needing any window system headers.
+header, so that it can be included without needing any window system headers.
 
-For example, under Windows you are normally required to include `windows.h`
-before the OpenGL header, which would bring in the whole Win32 API.  The GLFW
-header duplicates the small number of macros needed.
-
-It does this only when needed, so if `windows.h` _is_ included, the GLFW header
-does not try to redefine those symbols.  The reverse is not true, i.e.
-`windows.h` cannot cope if any of its symbols have already been defined.
+It does this only when needed, so if window system headers are included, the
+GLFW header does not try to redefine those symbols.  The reverse is not true,
+i.e. `windows.h` cannot cope if any Win32 symbols have already been defined.
 
 In other words:
 
- - Do _not_ include the OpenGL headers yourself, as GLFW does this for you
- - Do _not_ include `windows.h` or other platform-specific headers unless you
-   plan on using those APIs directly
- - If you _do_ need to include such headers, do it _before_ including
-   the GLFW header and it will handle this
+ - Use the GLFW header to include OpenGL or OpenGL ES headers portably
+ - Do not include window system headers unless you will use those APIs directly
+ - If you do need such headers, include them before the GLFW header
 
 If you are using an OpenGL extension loading library such as
 [glad](https://github.com/Dav1dde/glad), the extension loader header should
-be included _before_ the GLFW one.
+be included before the GLFW one.  GLFW attempts to detect any OpenGL or OpenGL
+ES header or extension loader header included before it and will then disable
+the inclusion of the default OpenGL header.  Most extension loaders also define
+macros that disable similar headers below it.
 
 @code
 #include <glad/gl.h>
 #include <GLFW/glfw3.h>
 @endcode
 
-Alternatively the @ref GLFW_INCLUDE_NONE macro (described below) can be used to
-prevent the GLFW header from including the OpenGL header.
+Both of these mechanisms depend on the extension loader header defining a known
+macro.  If yours doesn't or you don't know which one your users will pick, the
+@ref GLFW_INCLUDE_NONE macro will explicitly prevent the GLFW header from
+including the OpenGL header.  This will also allow you to include the two
+headers in any order.
 
 @code
 #define GLFW_INCLUDE_NONE
@@ -105,7 +107,7 @@ __GLFW_INCLUDE_ES31__ makes the GLFW header include the OpenGL ES 3.1
 `GLES3/gl31.h` header instead of the regular OpenGL header.
 
 @anchor GLFW_INCLUDE_ES32
-__GLFW_INCLUDE_ES31__ makes the GLFW header include the OpenGL ES 3.2
+__GLFW_INCLUDE_ES32__ makes the GLFW header include the OpenGL ES 3.2
 `GLES3/gl32.h` header instead of the regular OpenGL header.
 
 @anchor GLFW_INCLUDE_NONE
@@ -113,7 +115,8 @@ __GLFW_INCLUDE_NONE__ makes the GLFW header not include any OpenGL or OpenGL ES
 API header.  This is useful in combination with an extension loading library.
 
 If none of the above inclusion macros are defined, the standard OpenGL `GL/gl.h`
-header (`OpenGL/gl.h` on macOS) is included.
+header (`OpenGL/gl.h` on macOS) is included, unless GLFW detects the inclusion
+guards of any OpenGL, OpenGL ES or extension loader header it knows about.
 
 The following macros control the inclusion of additional API headers.  Any
 number of these may be defined simultaneously, and/or together with one of the
@@ -219,12 +222,15 @@ find_package(OpenGL REQUIRED)
 @endcode
 
 If OpenGL is found, the `OpenGL::GL` target is added to your project, containing
-library and include directory paths.  Link against this like above.
+library and include directory paths.  Link against this like any other library.
 
 @code{.cmake}
 target_link_libraries(myapp OpenGL::GL)
 @endcode
 
+For a minimal example of a program and GLFW sources built with CMake, see the
+[GLFW CMake Starter](https://github.com/juliettef/GLFW-CMake-starter) on GitHub.
+
 
 @subsection build_link_cmake_package With CMake and installed GLFW binaries
 
@@ -258,7 +264,7 @@ find_package(OpenGL REQUIRED)
 @endcode
 
 If OpenGL is found, the `OpenGL::GL` target is added to your project, containing
-library and include directory paths.  Link against this like above.
+library and include directory paths.  Link against this like any other library.
 
 @code{.cmake}
 target_link_libraries(myapp OpenGL::GL)

+ 1 - 5
glfw.mod/glfw/docs/compat.dox

@@ -104,11 +104,7 @@ has been configured in the compositor.
 GLFW uses the [xdg-shell
 protocol](https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml)
 to provide better window management.  This protocol is part of
-wayland-protocols 1.12, and mandatory at build time.  If the running compositor
-does not support this protocol, the older [wl_shell
-interface](https://cgit.freedesktop.org/wayland/wayland/tree/protocol/wayland.xml#n972)
-will be used instead.  This will result in a worse integration with the
-desktop, especially on tiling compositors.
+wayland-protocols 1.12, and mandatory at build time.
 
 GLFW uses the [relative pointer
 protocol](https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/relative-pointer/relative-pointer-unstable-v1.xml)

+ 196 - 119
glfw.mod/glfw/docs/compile.dox

@@ -10,165 +10,173 @@ build applications that use GLFW, see @ref build_guide.
 
 @section compile_cmake Using CMake
 
-GLFW uses [CMake](https://cmake.org/) to generate project files or makefiles
-for a particular development environment.  If you are on a Unix-like system such
-as Linux or FreeBSD or have a package system like Fink, MacPorts, Cygwin or
-Homebrew, you can install its CMake package.  If not, you can download
-installers for Windows and macOS from the
-[CMake website](https://cmake.org/).
-
-@note CMake only generates project files or makefiles.  It does not compile the
-actual GLFW library.  To compile GLFW, first generate these files for your
-chosen development environment and then use them to compile the actual GLFW
-library.
+@note GLFW behaves like most other libraries that use CMake so this guide mostly
+describes the basic configure/generate/compile sequence.  If you are already
+familiar with this from other projects, you may want to focus on the @ref
+compile_deps and @ref compile_options sections for GLFW-specific information.
 
+GLFW uses [CMake](https://cmake.org/) to generate project files or makefiles
+for your chosen development environment.  To compile GLFW, first generate these
+files with CMake and then use them to compile the GLFW library. 
 
-@subsection compile_deps Dependencies
+If you are on Windows and macOS you can
+[download CMake](https://cmake.org/download/) from their site.
 
-Once you have installed CMake, make sure that all other dependencies are
-available.  On some platforms, GLFW needs a few additional packages to be
-installed.  See the section for your chosen platform and development environment
-below.
+If you are on a Unix-like system such as Linux, FreeBSD or Cygwin or have
+a package system like Fink, MacPorts or Homebrew, you can install its CMake
+package.
 
+CMake is a complex tool and this guide will only show a few of the possible ways
+to set up and compile GLFW.  The CMake project has their own much more detailed
+[CMake user guide](https://cmake.org/cmake/help/latest/guide/user-interaction/)
+that includes everything in this guide not specific to GLFW.  It may be a useful
+companion to this one.
 
-@subsubsection compile_deps_msvc Dependencies for Visual C++ on Windows
 
-The Windows SDK bundled with Visual C++ already contains all the necessary
-headers, link libraries and tools except for CMake.  Move on to @ref
-compile_generate.
+@subsection compile_deps Installing dependencies
 
+The C/C++ development environments in Visual Studio, Xcode and MinGW come with
+all necessary dependencies for compiling GLFW, but on Unix-like systems like
+Linux and FreeBSD you will need a few extra packages.
 
-@subsubsection compile_deps_mingw Dependencies for MinGW or MinGW-w64 on Windows
 
-Both the MinGW and the MinGW-w64 packages already contain all the necessary
-headers, link libraries and tools except for CMake.  Move on to @ref
-compile_generate.
+@subsubsection compile_deps_x11 Dependencies for X11 on Unix-like systems
 
+To compile GLFW for X11, you need to have the X11 development packages
+installed.  They are not needed to build or run programs that use GLFW.
 
-@subsubsection compile_deps_mingw_cross Dependencies for MinGW or MinGW-w64 cross-compilation
+On Debian and derivates like Ubuntu and Linux Mint the `xorg-dev` meta-package
+pulls in the development packages for all of X11.
 
-Both Cygwin and many Linux distributions have MinGW or MinGW-w64 packages.  For
-example, Cygwin has the `mingw64-i686-gcc` and `mingw64-x86_64-gcc` packages
-for 32- and 64-bit version of MinGW-w64, while Debian GNU/Linux and derivatives
-like Ubuntu have the `mingw-w64` package for both.
+@code{.sh}
+sudo apt install xorg-dev
+@endcode
 
-GLFW has CMake toolchain files in the `CMake/` directory that set up
-cross-compilation of Windows binaries.  To use these files you add an option
-when running `cmake` to generate the project files or makefiles:
+On Fedora and derivatives like Red Hat the X11 extension packages
+`libXcursor-devel`, `libXi-devel`, `libXinerama-devel` and `libXrandr-devel`
+required by GLFW pull in all its other dependencies.
 
 @code{.sh}
-cmake -DCMAKE_TOOLCHAIN_FILE=<toolchain-file> .
+sudo dnf install libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel
 @endcode
 
-The exact toolchain file to use depends on the prefix used by the MinGW or
-MinGW-w64 binaries on your system.  You can usually see this in the /usr
-directory.  For example, both the Debian/Ubuntu and Cygwin MinGW-w64 packages
-have `/usr/x86_64-w64-mingw32` for the 64-bit compilers, so the correct
-invocation would be:
+On FreeBSD the X11 headers are installed along the end-user X11 packages, so if
+you have an X server running you should have the headers as well.  If not,
+install the `xorgproto` package.
 
 @code{.sh}
-cmake -DCMAKE_TOOLCHAIN_FILE=CMake/x86_64-w64-mingw32.cmake .
+pkg install xorgproto
 @endcode
 
-For more details see the article
-[CMake Cross Compiling](https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/CrossCompiling) on
-the CMake wiki.
+On Cygwin the `libXcursor-devel`, `libXi-devel`, `libXinerama-devel`,
+`libXrandr-devel` and `libXrender-devel` packages in the Libs section of the GUI
+installer will install all the headers and other development related files GLFW
+requires for X11.
 
-Once you have this set up, move on to @ref compile_generate.
+Once you have the required depdendencies, move on to @ref compile_generate.
 
 
-@subsubsection compile_deps_xcode Dependencies for Xcode on macOS
+@subsubsection compile_deps_wayland Dependencies for Wayland on Unix-like systems
 
-Xcode comes with all necessary tools except for CMake.  The required headers
-and libraries are included in the core macOS frameworks.  Xcode can be
-downloaded from the Mac App Store or from the ADC Member Center.
+To compile GLFW for Wayland, you need to have the Wayland and xkbcommon
+development packages installed.  They are not needed to build or run programs
+that use GLFW.
 
-Once you have Xcode installed, move on to @ref compile_generate.
+On Debian and derivates like Ubuntu and Linux Mint you will need the `libwayland-dev`,
+`libxkbcommon-dev`, `wayland-protocols` and `extra-cmake-modules` packages.
 
+@code{.sh}
+sudo apt install libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules
+@endcode
 
-@subsubsection compile_deps_x11 Dependencies for Linux and X11
+On Fedora and derivatives like Red Hat you will need the `wayland-devel`,
+`libxkbcommon-devel`, `wayland-protocols-devel` and `extra-cmake-modules` packages.
 
-To compile GLFW for X11, you need to have the X11 packages installed, as well as
-the basic development tools like GCC and make.  For example, on Ubuntu and other
-distributions based on Debian GNU/Linux, you need to install the `xorg-dev`
-package, which pulls in all X.org header packages.
+@code{.sh}
+sudo dnf install wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules
+@endcode
+
+On FreeBSD you will need the `wayland`, `libxkbcommon`, `wayland-protocols` and
+`kf5-extra-cmake-modules` packages.
+
+@code{.sh}
+pkg install wayland libxkbcommon wayland-protocols kf5-extra-cmake-modules
+@endcode
 
-Once you have installed the necessary packages, move on to @ref
-compile_generate.
+Once you have the required depdendencies, move on to @ref compile_generate.
 
 
-@subsubsection compile_deps_wayland Dependencies for Linux and Wayland
+@subsection compile_generate Generating build files with CMake
 
-To compile GLFW for Wayland, you need to have the Wayland packages installed,
-as well as the basic development tools like GCC and make.  For example, on
-Ubuntu and other distributions based on Debian GNU/Linux, you need to install
-the `libwayland-dev` package, which contains all Wayland headers and pulls in
-wayland-scanner, as well as the `wayland-protocols` and `extra-cmake-modules`
-packages.
+Once you have all necessary dependencies it is time to generate the project
+files or makefiles for your development environment.  CMake needs two paths for
+this:
 
-Once you have installed the necessary packages, move on to @ref
-compile_generate.
+ - the path to the root directory of the GLFW source tree (not its `src`
+   subdirectory)
+ - the path to the directory where the generated build files and compiled
+   binaries will be placed
 
+If these are the same, it is called an in-tree build, otherwise it is called an
+out-of-tree build.
 
-@subsection compile_deps_osmesa Dependencies for Linux and OSMesa
+Out-of-tree builds are recommended as they avoid cluttering up the source tree.
+They also allow you to have several build directories for different
+configurations all using the same source tree.
 
-To compile GLFW for OSMesa, you need to install the OSMesa library and header
-packages.  For example, on Ubuntu and other distributions based on Debian
-GNU/Linux, you need to install the `libosmesa6-dev` package.  The OSMesa library
-is required at runtime for context creation and is loaded on demand.
+A common pattern when building a single configuration is to have a build
+directory named `build` in the root of the source tree.
 
-Once you have installed the necessary packages, move on to @ref
-compile_generate.
 
+@subsubsection compile_generate_gui Generating files with the CMake GUI
 
-@subsection compile_generate Generating build files with CMake
+Start the CMake GUI and set the paths to the source and build directories
+described above.  Then press _Configure_ and _Generate_.
 
-Once you have all necessary dependencies it is time to generate the project
-files or makefiles for your development environment.  CMake needs to know two
-paths for this: the path to the _root_ directory of the GLFW source tree (i.e.
-_not_ the `src` subdirectory) and the target path for the generated files and
-compiled binaries.  If these are the same, it is called an in-tree build,
-otherwise it is called an out-of-tree build.
+If you wish change any CMake variables in the list, press _Configure_ and then
+_Generate_ to have the new values take effect.  The variable list will be
+populated after the first configure step.
 
-One of several advantages of out-of-tree builds is that you can generate files
-and compile for different development environments using a single source tree.
+By default GLFW will use X11 on Linux and other Unix-like systems other
+than macOS.  To use Wayland instead, set the `GLFW_USE_WAYLAND` option in the
+GLFW section of the variable list, then apply the new value as described above.
 
-@note This section is about generating the project files or makefiles necessary
-to compile the GLFW library, not about compiling the actual library.
+Once you have generated the project files or makefiles for your chosen
+development environment, move on to @ref compile_compile.
 
 
 @subsubsection compile_generate_cli Generating files with the CMake command-line tool
 
-To make an in-tree build, enter the _root_ directory of the GLFW source tree
-(i.e. _not_ the `src` subdirectory) and run CMake.  The current directory is
-used as target path, while the path provided as an argument is used to find the
-source tree.
+To make a build directory, pass the source and build directories to the `cmake`
+command.  These can be relative or absolute paths.  The build directory is
+created if it doesn't already exist.
 
 @code{.sh}
-cd <glfw-root-dir>
-cmake .
+cmake -S path/to/glfw -B path/to/build
 @endcode
 
-To make an out-of-tree build, make a directory outside of the source tree, enter
-it and run CMake with the (relative or absolute) path to the root of the source
-tree as an argument.
+It is common to name the build directory `build` and place it in the root of the
+source tree when only planning to build a single configuration.
 
 @code{.sh}
-mkdir glfw-build
-cd glfw-build
-cmake <glfw-root-dir>
+cd path/to/glfw
+cmake -S . -B build
 @endcode
 
-Once you have generated the project files or makefiles for your chosen
-development environment, move on to @ref compile_compile.
+Without other flags these will generate Visual Studio project files on Windows
+and makefiles on other platforms.  You can choose other targets using the `-G`
+flag.
 
+@code{.sh}
+cmake -S path/to/glfw -B path/to/build -G Xcode
+@endcode
 
-@subsubsection compile_generate_gui Generating files with the CMake GUI
+By default GLFW will use X11 on Linux and other Unix-like systems other
+than macOS.  To use Wayland instead, set the `GLFW_USE_WAYLAND` CMake option.
 
-If you are using the GUI version, choose the root of the GLFW source tree as
-source location and the same directory or another, empty directory as the
-destination for binaries.  Choose _Configure_, change any options you wish to,
-_Configure_ again to let the changes take effect and then _Generate_.
+@code{.sh}
+cmake -S path/to/glfw -B path/to/build -D GLFW_USE_WAYLAND=1
+@endcode
 
 Once you have generated the project files or makefiles for your chosen
 development environment, move on to @ref compile_compile.
@@ -178,13 +186,39 @@ development environment, move on to @ref compile_compile.
 
 You should now have all required dependencies and the project files or makefiles
 necessary to compile GLFW.  Go ahead and compile the actual GLFW library with
-these files, as you would with any other project.
+these files as you would with any other project.
+
+With Visual Studio open `GLFW.sln` and use the Build menu.  With Xcode open
+`GLFW.xcodeproj` and use the Project menu.
+
+With Linux, macOS and other forms of Unix, run `make`.
+
+@code{.sh}
+cd path/to/build
+make
+@endcode
+
+With MinGW, it is `mingw32-make`.
+
+@code{.sh}
+cd path/to/build
+mingw32-make
+@endcode
+
+Any CMake build directory can also be built with the `cmake` command and the
+`--build` flag.
+
+@code{.sh}
+cmake --build path/to/build
+@endcode
+
+This will run the platform specific build tool the directory was generated for.
 
-Once the GLFW library is compiled, you are ready to build your applications,
+Once the GLFW library is compiled you are ready to build your application,
 linking it to the GLFW library.  See @ref build_guide for more information.
 
 
-@subsection compile_options CMake options
+@section compile_options CMake options
 
 The CMake files for GLFW provide a number of options, although not all are
 available on all supported platforms.  Some of these are de facto standards
@@ -200,15 +234,16 @@ Finally, if you don't want to use any GUI, you can set options from the `cmake`
 command-line with the `-D` flag.
 
 @code{.sh}
-cmake -DBUILD_SHARED_LIBS=ON .
+cmake -S path/to/glfw -B path/to/build -D BUILD_SHARED_LIBS=ON
 @endcode
 
 
-@subsubsection compile_options_shared Shared CMake options
+@subsection compile_options_shared Shared CMake options
 
 @anchor BUILD_SHARED_LIBS
 __BUILD_SHARED_LIBS__ determines whether GLFW is built as a static
-library or as a DLL / shared library / dynamic library.
+library or as a DLL / shared library / dynamic library.  This is disabled by
+default, producing a static GLFW library.
 
 @anchor GLFW_BUILD_EXAMPLES
 __GLFW_BUILD_EXAMPLES__ determines whether the GLFW examples are built
@@ -220,33 +255,80 @@ built along with the library.
 
 @anchor GLFW_BUILD_DOCS
 __GLFW_BUILD_DOCS__ determines whether the GLFW documentation is built along
-with the library.
+with the library.  This is enabled by default if
+[Doxygen](https://www.doxygen.nl/) is found by CMake during configuration.
 
 @anchor GLFW_VULKAN_STATIC
 __GLFW_VULKAN_STATIC__ determines whether to use the Vulkan loader linked
-directly with the application.
+directly with the application.  This is disabled by default.
 
 
-@subsubsection compile_options_win32 Windows specific CMake options
+@subsection compile_options_win32 Windows specific CMake options
 
 @anchor USE_MSVC_RUNTIME_LIBRARY_DLL
 __USE_MSVC_RUNTIME_LIBRARY_DLL__ determines whether to use the DLL version or the
-static library version of the Visual C++ runtime library.  If set to `ON`, the
-DLL version of the Visual C++ library is used.
+static library version of the Visual C++ runtime library.  When enabled, the
+DLL version of the Visual C++ library is used.  This is enabled by default.
+
+On CMake 3.15 and later you can set the standard CMake
+[CMAKE_MSVC_RUNTIME_LIBRARY](https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html)
+variable instead of this GLFW-specific option.
 
 @anchor GLFW_USE_HYBRID_HPG
 __GLFW_USE_HYBRID_HPG__ determines whether to export the `NvOptimusEnablement` and
 `AmdPowerXpressRequestHighPerformance` symbols, which force the use of the
 high-performance GPU on Nvidia Optimus and AMD PowerXpress systems.  These symbols
 need to be exported by the EXE to be detected by the driver, so the override
-will not work if GLFW is built as a DLL.
+will not work if GLFW is built as a DLL.  This is disabled by default, letting
+the operating system and driver decide.
+
+
+@subsection compile_options_wayland Wayland specific CMake options
+
+@anchor GLFW_USE_WAYLAND
+__GLFW_USE_WAYLAND__ determines whether to compile the library for Wayland.
+This option is only available on Linux and other Unix-like systems other than
+macOS.  This is disabled by default.
+
+
+@section compile_mingw_cross Cross-compilation with CMake and MinGW
+
+Both Cygwin and many Linux distributions have MinGW or MinGW-w64 packages.  For
+example, Cygwin has the `mingw64-i686-gcc` and `mingw64-x86_64-gcc` packages
+for 32- and 64-bit version of MinGW-w64, while Debian GNU/Linux and derivatives
+like Ubuntu have the `mingw-w64` package for both.
+
+GLFW has CMake toolchain files in the `CMake` subdirectory that set up
+cross-compilation of Windows binaries.  To use these files you set the
+`CMAKE_TOOLCHAIN_FILE` CMake variable with the `-D` flag add an option when
+configuring and generating the build files.
+
+@code{.sh}
+cmake -S path/to/glfw -B path/to/build -D CMAKE_TOOLCHAIN_FILE=path/to/file
+@endcode
+
+The exact toolchain file to use depends on the prefix used by the MinGW or
+MinGW-w64 binaries on your system.  You can usually see this in the /usr
+directory.  For example, both the Ubuntu and Cygwin MinGW-w64 packages have
+`/usr/x86_64-w64-mingw32` for the 64-bit compilers, so the correct invocation
+would be:
+
+@code{.sh}
+cmake -S path/to/glfw -B path/to/build -D CMAKE_TOOLCHAIN_FILE=CMake/x86_64-w64-mingw32.cmake
+@endcode
+
+The path to the toolchain file is relative to the path to the GLFW source tree
+passed to the `-S` flag, not to the current directory.
+
+For more details see the
+[CMake toolchain guide](https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html).
 
 
 @section compile_manual Compiling GLFW manually
 
 If you wish to compile GLFW without its CMake build environment then you will
 have to do at least some of the platform detection yourself.  GLFW needs
-a configuration macro to be defined in order to know what window system it's
+a configuration macro to be defined in order to know what window system it is
 being compiled for and also has optional, platform-specific ones for various
 features.
 
@@ -278,11 +360,6 @@ of @b _GLFW_VULKAN_LIBRARY, @b _GLFW_EGL_LIBRARY, @b _GLFW_GLX_LIBRARY, @b
 _GLFW_OSMESA_LIBRARY, @b _GLFW_OPENGL_LIBRARY, @b _GLFW_GLESV1_LIBRARY and @b
 _GLFW_GLESV2_LIBRARY.  Otherwise, GLFW will use the built-in default names.
 
-For the EGL context creation API, the following options are available:
-
- - @b _GLFW_USE_EGLPLATFORM_H to use an existing `EGL/eglplatform.h` header file
-   for native handle types (fallback)
-
 @note None of the @ref build_macros may be defined during the compilation of
 GLFW.  If you define any of these in your build files, make sure they are not
 applied to the GLFW sources.

+ 18 - 18
glfw.mod/glfw/docs/context.dox

@@ -142,9 +142,9 @@ as extensions until they become obsolete.
 
 An extension is defined by:
 
-- An extension name (e.g. `GL_ARB_debug_output`)
-- New OpenGL tokens (e.g. `GL_DEBUG_SEVERITY_HIGH_ARB`)
-- New OpenGL functions (e.g. `glGetDebugMessageLogARB`)
+- An extension name (e.g. `GL_ARB_gl_spirv`)
+- New OpenGL tokens (e.g. `GL_SPIR_V_BINARY_ARB`)
+- New OpenGL functions (e.g. `glSpecializeShaderARB`)
 
 Note the `ARB` affix, which stands for Architecture Review Board and is used
 for official extensions.  The extension above was created by the ARB, but there
@@ -229,9 +229,9 @@ To check whether a specific extension is supported, use the `GLAD_GL_xxx`
 booleans.
 
 @code
-if (GLAD_GL_ARB_debug_output)
+if (GLAD_GL_ARB_gl_spirv)
 {
-    // Use GL_ARB_debug_output
+    // Use GL_ARB_gl_spirv
 }
 @endcode
 
@@ -263,8 +263,8 @@ included in your development environment may be several years out of date and
 may not include the extensions you wish to use.
 
 The header defines function pointer types for all functions of all extensions it
-supports.  These have names like `PFNGLGETDEBUGMESSAGELOGARBPROC` (for
-`glGetDebugMessageLogARB`), i.e. the name is made uppercase and `PFN` (pointer
+supports.  These have names like `PFNGLSPECIALIZESHADERARBPROC` (for
+`glSpecializeShaderARB`), i.e. the name is made uppercase and `PFN` (pointer
 to function) and `PROC` (procedure) are added to the ends.
 
 To include the extension header, define @ref GLFW_INCLUDE_GLEXT before including
@@ -284,7 +284,7 @@ is necessary to check at run-time whether the context supports the extension.
 This is done with @ref glfwExtensionSupported.
 
 @code
-if (glfwExtensionSupported("GL_ARB_debug_output"))
+if (glfwExtensionSupported("GL_ARB_gl_spirv"))
 {
     // The extension is supported by the current context
 }
@@ -303,7 +303,7 @@ your operating system, making it necessary to fetch them at run time.  You can
 retrieve pointers to these functions with @ref glfwGetProcAddress.
 
 @code
-PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog = glfwGetProcAddress("glGetDebugMessageLogARB");
+PFNGLSPECIALIZESHADERARBPROC pfnSpecializeShaderARB = glfwGetProcAddress("glSpecializeShaderARB");
 @endcode
 
 In general, you should avoid giving the function pointer variables the (exact)
@@ -317,28 +317,28 @@ when used together.
 #define GLFW_INCLUDE_GLEXT
 #include <GLFW/glfw3.h>
 
-#define glGetDebugMessageLogARB pfnGetDebugMessageLog
-PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog;
+#define glSpecializeShaderARB pfnSpecializeShaderARB
+PFNGLSPECIALIZESHADERARBPROC pfnSpecializeShaderARB;
 
 // Flag indicating whether the extension is supported
-int has_ARB_debug_output = 0;
+int has_ARB_gl_spirv = 0;
 
 void load_extensions(void)
 {
-    if (glfwExtensionSupported("GL_ARB_debug_output"))
+    if (glfwExtensionSupported("GL_ARB_gl_spirv"))
     {
-        pfnGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGARBPROC)
-            glfwGetProcAddress("glGetDebugMessageLogARB");
-        has_ARB_debug_output = 1;
+        pfnSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)
+            glfwGetProcAddress("glSpecializeShaderARB");
+        has_ARB_gl_spirv = 1;
     }
 }
 
 void some_function(void)
 {
-    if (has_ARB_debug_output)
+    if (has_ARB_gl_spirv)
     {
         // Now the extension function can be called as usual
-        glGetDebugMessageLogARB(...);
+        glSpecializeShaderARB(...);
     }
 }
 @endcode

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
glfw.mod/glfw/docs/extra.css


+ 1 - 0
glfw.mod/glfw/docs/extra.css.map

@@ -0,0 +1 @@
+{"version":3,"sourceRoot":"","sources":["extra.scss"],"names":[],"mappings":"AA8EA,4GACI,gBACA,iBAGJ,yBACC,yDAGD,6HACC,sDAGD,yIACC,sDAGD,mBACI,WA9EuB,KA+EvB,iBAGJ,uBACC,MAzFoB,QA0FjB,iBAGJ,6UACC,gBAGD,mJACC,YAGD,yHACC,iBAGD,sBACC,gBAGD,4LACC,UAGD,yCACC,aAGD,kMACC,WAnHgC,QAsHjC,KACC,MA1HoB,QA6HrB,sDACC,MA/Ge,QAgHf,mBAGD,GACE,iBACA,eAGF,GACE,iBACA,gBACA,eAGF,GACE,iBACA,gBACA,eAGF,YACC,eACA,gBACA,gBACA,eACA,cAEA,aACA,mBACA,eACA,2BACA,mBACA,sBAGD,UACC,iBACA,mBACA,MA/J0B,KAgK1B,gBACA,qEAGD,YACC,qBACA,kBACA,YAGD,yBACC,WAGD,oCACC,iBACA,gBACA,cACA,MAlL0B,KAqL3B,YACC,eAGD,8CACC,qBAGD,mBACC,MA9L0B,KAiM3B,eACC,kBACA,YACA,eAGD,KACC,WAxM0B,KA2M3B,UACC,gBACA,cACA,eAGD,WACC,gBACA,cACA,eAGD,UACI,aAGJ,mBACI,iBACA,iBAGJ,WACC,gBACA,aACA,mBACA,eACA,2BACA,mBACA,sBAGD,mEACC,MA9OgC,QAiPjC,gCACC,MArPoB,QAwPrB,sCACC,MAjOoB,KAoOrB,yBACC,kBAGD,UACC,iBAGD,wBACC,gBACA,cACA,eACA,qBAGD,uDACC,gEACA,+BACA,+BACA,gBACA,MArPgB,KAwPjB,mBACC,MA5PoB,KA6PpB,aACA,kBACA,yBAGD,QACC,WACA,WAGD,WACC,iBAGD,WACC,mBAGD,WACC,cACA,eACA,qBAGD,oCACC,gEACA,kCACA,2BACA,MAlSe,QAmSf,yBACA,kBAGD,WACC,MA3QuB,QA8QxB,cACC,sBACA,2BACA,4BACA,mBAGD,cACC,sBACA,+BACA,8BACA,gBAGD,mCACC,wBACA,iBACA,sBACA,kBAGD,gIACC,MAxToB,KAyTpB,qBAGD,cACC,wBACA,iBACA,sBACA,kBAGD,iBACC,WACA,4EAGD,oCApSC,gEACA,kCACA,cACA,yBAqSD,wBAxSC,gEACA,kCACA,cACA,yBAySD,qBA5SC,gEACA,kCACA,cACA,yBA6SD,gBAhTC,gEACA,kCACA,cACA,yBAiTD,iGACC,kBACA,YACA,2BACA,aAGD,kRACC,cAGD,SACC,oBAGD,0BACC,mBACA,kBACA,YACA,YACA,cACA,2BACA,aAGD,+CACC,MA1YoB,QA6YrB,+BACC,cAGD,sBACC,cAGD,+CACC,cACA,iBAGD,mBACC,cAGD,KACC,aACA","file":"extra.css"}

+ 110 - 94
glfw.mod/glfw/docs/extra.less → glfw.mod/glfw/docs/extra.scss

@@ -1,106 +1,106 @@
 // NOTE: Please use this file to perform modifications on default style sheets.
 //
-// You need to install a few Ruby gems to generate extra.css from this file:
-// gem install less therubyracer
+// You need to install the official Sass CLI tool:
+// npm install -g sass
 //
 // Run this command to regenerate extra.css after you're finished with changes:
-// lessc --compress extra.less > extra.css
+// sass --style=compressed extra.scss extra.css
 //
 // Alternatively you can use online services to regenerate extra.css.
 
 
 // Default text color for page contents
-@default-text-color: hsl(0,0%,30%);
+$default-text-color: hsl(0,0%,30%);
 
 // Page header, footer, table rows, inline codes and definition lists
-@header-footer-background-color: hsl(0,0%,95%);
+$header-footer-background-color: hsl(0,0%,95%);
 
 // Page header, footer links and navigation bar background
-@header-footer-link-color: hsl(0,0%,40%);
+$header-footer-link-color: hsl(0,0%,40%);
 
 // Doxygen navigation bar links
-@navbar-link-color: @header-footer-background-color;
+$navbar-link-color: $header-footer-background-color;
 
 // Page content background color
-@content-background-color: hsl(0,0%,100%);
+$content-background-color: hsl(0,0%,100%);
 
 // Bold, italic, h1, h2, ... and table of contents
-@heading-color: hsl(0,0%,10%);
+$heading-color: hsl(0,0%,10%);
 
 // Function, enum and macro definition separator
-@def-separator-color: @header-footer-background-color;
+$def-separator-color: $header-footer-background-color;
 
 // Base color hue
-@base-hue: 24;
+$base-hue: 24;
 
 // Default color used for links
-@default-link-color: hsl(@base-hue,100%,50%);
+$default-link-color: hsl($base-hue,100%,50%);
 
 // Doxygen navigation bar active tab
-@tab-text-color: hsl(0,0%,100%);
-@tab-background-color1: @default-link-color;
-@tab-background-color2: lighten(spin(@tab-background-color1, 10), 10%);
+$tab-text-color: hsl(0,0%,100%);
+$tab-background-color1: $default-link-color;
+$tab-background-color2: lighten(adjust-hue($tab-background-color1, 10), 10%);
 
 // Table borders
-@default-border-color: @default-link-color;
+$default-border-color: $default-link-color;
 
 // Table header
-@table-text-color: @tab-text-color;
-@table-background-color1: @tab-background-color1;
-@table-background-color2: @tab-background-color2;
+$table-text-color: $tab-text-color;
+$table-background-color1: $tab-background-color1;
+$table-background-color2: $tab-background-color2;
 
 // Table of contents, data structure index and prototypes
-@toc-background-color1: hsl(0,0%,90%);
-@toc-background-color2: lighten(@toc-background-color1, 5%);
+$toc-background-color1: hsl(0,0%,90%);
+$toc-background-color2: lighten($toc-background-color1, 5%);
 
 // Function prototype parameters color
-@prototype-param-color: darken(@default-link-color, 25%);
+$prototype-param-color: darken($default-link-color, 25%);
 
 // Message box color: note, pre, post and invariant
-@box-note-color: hsl(103,80%,85%);
+$box-note-color: hsl(103,80%,85%);
 
 // Message box color: warning and attention
-@box-warning-color: hsl(34,80%,85%);
+$box-warning-color: hsl(34,80%,85%);
 
 // Message box color: deprecated and bug
-@box-bug-color: hsl(333,80%,85%);
+$box-bug-color: hsl(333,80%,85%);
 
 // Message box color: todo and test
-@box-todo-color: hsl(200,80%,85%);
+$box-todo-color: hsl(200,80%,85%);
 
 // Message box helper function
-.message-box(@base-color) {
-	background:linear-gradient(to bottom,lighten(@base-color, 5%) 0%,@base-color 100%);
-	box-shadow:inset 0 0 32px darken(@base-color, 5%);
-	color:darken(@base-color, 67%);
-	border:2px solid desaturate(darken(@base-color, 10%), 20%);
+@mixin message-box($base-color){
+	background:linear-gradient(to bottom,lighten($base-color, 5%) 0%,$base-color 100%);
+	box-shadow:inset 0 0 32px darken($base-color, 5%);
+	color:darken($base-color, 67%);
+	border:2px solid desaturate(darken($base-color, 10%), 20%);
 }
 
 .sm-dox,.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted,.sm-dox ul a:hover {
-    background:none;
-    text-shadow:none;
+	background:none;
+	text-shadow:none;
 }
 
 .sm-dox a span.sub-arrow {
-	border-color:@navbar-link-color transparent transparent transparent;
+	border-color:$navbar-link-color transparent transparent transparent;
 }
 
 .sm-dox a span.sub-arrow:active,.sm-dox a span.sub-arrow:focus,.sm-dox a span.sub-arrow:hover,.sm-dox a:hover span.sub-arrow {
-	border-color:@default-link-color transparent transparent transparent;
+	border-color:$default-link-color transparent transparent transparent;
 }
 
 .sm-dox ul a span.sub-arrow:active,.sm-dox ul a span.sub-arrow:focus,.sm-dox ul a span.sub-arrow:hover,.sm-dox ul a:hover span.sub-arrow {
-	border-color:transparent transparent transparent @default-link-color;
+	border-color:transparent transparent transparent $default-link-color;
 }
 
 .sm-dox ul a:hover {
-    background:@header-footer-link-color;
-    text-shadow:none;
+	background:$header-footer-link-color;
+	text-shadow:none;
 }
 
 .sm-dox ul.sm-nowrap a {
-	color:@default-text-color;
-    text-shadow:none;
+	color:$default-text-color;
+	text-shadow:none;
 }
 
 #main-nav,#main-menu,#main-menu a,#main-menu a:visited,#main-menu a:hover,#main-menu li,.memdoc,dl.reflist dd,div.toc li,.ah,span.lineno,span.lineno a,span.lineno a:hover,.note code,.pre code,.post code,.invariant code,.warning code,.attention code,.deprecated code,.bug code,.todo code,.test code,.doxtable code,.markdownTable code {
@@ -128,55 +128,61 @@ div.headertitle,.note code,.pre code,.post code,.invariant code,.warning code,.a
 }
 
 html,#titlearea,.footer,tr.even,.directory tr.even,.doxtable tr:nth-child(even),tr.markdownTableBody:nth-child(even),.mdescLeft,.mdescRight,.memItemLeft,.memItemRight,code,.markdownTableRowEven {
-	background:@header-footer-background-color;
+	background:$header-footer-background-color;
 }
 
 body {
-	color:@default-text-color;
+	color:$default-text-color;
 }
 
 h1,h2,h2.groupheader,h3,div.toc h3,h4,h5,h6,strong,em {
-	color:@heading-color;
+	color:$heading-color;
 	border-bottom:none;
 }
 
 h1 {
-  padding-top:0.5em;
-  font-size:180%;
+	padding-top:0.5em;
+	font-size:180%;
 }
 
 h2 {
-  padding-top:0.5em;
-  margin-bottom:0;
-  font-size:140%;
+	padding-top:0.5em;
+	margin-bottom:0;
+	font-size:140%;
 }
 
 h3 {
-  padding-top:0.5em;
-  margin-bottom:0;
-  font-size:110%;
+	padding-top:0.5em;
+	margin-bottom:0;
+	font-size:110%;
 }
 
 .glfwheader {
 	font-size:16px;
-	height:64px;
+	min-height:64px;
 	max-width:920px;
-	min-width:800px;
 	padding:0 32px;
 	margin:0 auto;
+
+	display: flex;
+	flex-direction: row;
+	flex-wrap: wrap;
+	justify-content: flex-start;
+	align-items: center;
+	align-content: stretch;
 }
 
 #glfwhome {
 	line-height:64px;
 	padding-right:48px;
-	color:@header-footer-link-color;
+	color:$header-footer-link-color;
 	font-size:2.5em;
 	background:url("https://www.glfw.org/css/arrow.png") no-repeat right;
 }
 
 .glfwnavbar {
 	list-style-type:none;
-	margin:0 auto;
+	margin:0 0 0 auto;
 	float:right;
 }
 
@@ -188,7 +194,11 @@ h3 {
 	line-height:64px;
 	margin-left:2em;
 	display:block;
-	color:@header-footer-link-color;
+	color:$header-footer-link-color;
+}
+
+.glfwnavbar {
+	padding-left: 0;
 }
 
 #glfwhome,.glfwnavbar a,.glfwnavbar a:visited {
@@ -196,7 +206,7 @@ h3 {
 }
 
 #titlearea,.footer {
-	color:@header-footer-link-color;
+	color:$header-footer-link-color;
 }
 
 address.footer {
@@ -206,48 +216,54 @@ address.footer {
 }
 
 #top {
-	background:@header-footer-link-color;
+	background:$header-footer-link-color;
 }
 
 #main-nav {
 	max-width:960px;
-	min-width:800px;
 	margin:0 auto;
 	font-size:13px;
 }
 
 #main-menu {
 	max-width:920px;
-	min-width:800px;
 	margin:0 auto;
 	font-size:13px;
 }
 
 .memtitle {
-    display:none;
+	display:none;
 }
 
 .memproto,.memname {
-    font-weight:bold;
-    text-shadow:none;
+	font-weight:bold;
+	text-shadow:none;
 }
 
 #main-menu {
-	height:36px;
-	display:block;
-	position:relative;
+	min-height:36px;
+	display: flex;
+	flex-direction: row;
+	flex-wrap: wrap;
+	justify-content: flex-start;
+	align-items: center;
+	align-content: stretch;
 }
 
 #main-menu a,#main-menu a:visited,#main-menu a:hover,#main-menu li {
-	color:@navbar-link-color;
+	color:$navbar-link-color;
 }
 
 #main-menu li ul.sm-nowrap li a {
-	color:@default-text-color;
+	color:$default-text-color;
 }
 
 #main-menu li ul.sm-nowrap li a:hover {
-	color:@default-link-color;
+	color:$default-link-color;
+}
+
+#main-menu > li:last-child {
+	margin: 0 0 0 auto;
 }
 
 .contents {
@@ -258,22 +274,22 @@ div.contents,div.header {
 	max-width:920px;
 	margin:0 auto;
 	padding:0 32px;
-	background:@content-background-color none;
+	background:$content-background-color none;
 }
 
 table.doxtable th,table.markdownTable th,dl.reflist dt {
-	background:linear-gradient(to bottom,@table-background-color2 0%,@table-background-color1 100%);
-	box-shadow:inset 0 0 32px @table-background-color1;
-	text-shadow:0 -1px 1px darken(@table-background-color1, 15%);
+	background:linear-gradient(to bottom,$table-background-color2 0%,$table-background-color1 100%);
+	box-shadow:inset 0 0 32px $table-background-color1;
+	text-shadow:0 -1px 1px darken($table-background-color1, 15%);
 	text-align:left;
-	color:@table-text-color;
+	color:$table-text-color;
 }
 
 dl.reflist dt a.el {
-	color:@default-link-color;
+	color:$default-link-color;
 	padding:.2em;
 	border-radius:4px;
-	background-color:lighten(@default-link-color, 40%);
+	background-color:lighten($default-link-color, 40%);
 }
 
 div.toc {
@@ -296,27 +312,27 @@ div.toc li {
 }
 
 div.toc,.memproto,div.qindex,div.ah {
-	background:linear-gradient(to bottom,@toc-background-color2 0%,@toc-background-color1 100%);
-	box-shadow:inset 0 0 32px @toc-background-color1;
-	text-shadow:0 1px 1px lighten(@toc-background-color2, 10%);
-	color:@heading-color;
-	border:2px solid @toc-background-color1;
+	background:linear-gradient(to bottom,$toc-background-color2 0%,$toc-background-color1 100%);
+	box-shadow:inset 0 0 32px $toc-background-color1;
+	text-shadow:0 1px 1px lighten($toc-background-color2, 10%);
+	color:$heading-color;
+	border:2px solid $toc-background-color1;
 	border-radius:4px;
 }
 
 .paramname {
-	color:@prototype-param-color;
+	color:$prototype-param-color;
 }
 
 dl.reflist dt {
-	border:2px solid @default-border-color;
+	border:2px solid $default-border-color;
 	border-top-left-radius:4px;
 	border-top-right-radius:4px;
 	border-bottom:none;
 }
 
 dl.reflist dd {
-	border:2px solid @default-border-color;
+	border:2px solid $default-border-color;
 	border-bottom-right-radius:4px;
 	border-bottom-left-radius:4px;
 	border-top:none;
@@ -325,41 +341,41 @@ dl.reflist dd {
 table.doxtable,table.markdownTable {
 	border-collapse:inherit;
 	border-spacing:0;
-	border:2px solid @default-border-color;
+	border:2px solid $default-border-color;
 	border-radius:4px;
 }
 
 a,a:hover,a:visited,a:visited:hover,.contents a:visited,.el,a.el:visited,#glfwhome:hover,#main-menu a:hover,span.lineno a:hover {
-	color:@default-link-color;
+	color:$default-link-color;
 	text-decoration:none;
 }
 
 div.directory {
 	border-collapse:inherit;
 	border-spacing:0;
-	border:2px solid @default-border-color;
+	border:2px solid $default-border-color;
 	border-radius:4px;
 }
 
 hr,.memSeparator {
 	height:2px;
-	background:linear-gradient(to right,@def-separator-color 0%,darken(@def-separator-color, 10%) 50%,@def-separator-color 100%);
+	background:linear-gradient(to right,$def-separator-color 0%,darken($def-separator-color, 10%) 50%,$def-separator-color 100%);
 }
 
 dl.note,dl.pre,dl.post,dl.invariant {
-	.message-box(@box-note-color);
+	@include message-box($box-note-color);
 }
 
 dl.warning,dl.attention {
-	.message-box(@box-warning-color);
+	@include message-box($box-warning-color);
 }
 
 dl.deprecated,dl.bug {
-	.message-box(@box-bug-color);
+	@include message-box($box-bug-color);
 }
 
 dl.todo,dl.test {
-	.message-box(@box-todo-color);
+	@include message-box($box-todo-color);
 }
 
 dl.note,dl.pre,dl.post,dl.invariant,dl.warning,dl.attention,dl.deprecated,dl.bug,dl.todo,dl.test {
@@ -388,7 +404,7 @@ div.fragment,pre.fragment {
 }
 
 .lineno a,.lineno a:visited,.line,pre.fragment {
-	color:@default-text-color;
+	color:$default-text-color;
 }
 
 span.preprocessor,span.comment {
@@ -400,7 +416,7 @@ a.code,a.code:visited {
 }
 
 span.keyword,span.keywordtype,span.keywordflow {
-	color:darken(@default-text-color, 5%);
+	color:darken($default-text-color, 5%);
 	font-weight:bold;
 }
 

+ 3 - 2
glfw.mod/glfw/docs/header.html

@@ -1,7 +1,8 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
 <meta name="generator" content="Doxygen $doxygenversion"/>
 <!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME-->

+ 0 - 78
glfw.mod/glfw/docs/html/bug.html

@@ -1,78 +0,0 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
-<meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<title>GLFW: Bug List</title>
-<link href="tabs.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="jquery.js"></script>
-<script type="text/javascript" src="dynsections.js"></script>
-<link href="search/search.css" rel="stylesheet" type="text/css"/>
-<script type="text/javascript" src="search/searchdata.js"></script>
-<script type="text/javascript" src="search/search.js"></script>
-<link href="doxygen.css" rel="stylesheet" type="text/css" />
-<link href="extra.css" rel="stylesheet" type="text/css"/>
-</head>
-<body>
-<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
-<div id="titlearea">
-	<div class="glfwheader">
-		<a href="https://www.glfw.org/" id="glfwhome">GLFW</a>
-		<ul class="glfwnavbar">
-			<li><a href="https://www.glfw.org/documentation.html">Documentation</a></li>
-			<li><a href="https://www.glfw.org/download.html">Download</a></li>
-			<li><a href="https://www.glfw.org/community.html">Community</a></li>
-		</ul>
-	</div>
-</div>
-<!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
-/* @license-end */
-</script>
-<script type="text/javascript" src="menudata.js"></script>
-<script type="text/javascript" src="menu.js"></script>
-<script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-$(function() {
-  initMenu('',true,false,'search.php','Search');
-  $(document).ready(function() { init_search(); });
-});
-/* @license-end */</script>
-<div id="main-nav"></div>
-<!-- window showing the filter options -->
-<div id="MSearchSelectWindow"
-     onmouseover="return searchBox.OnSearchSelectShow()"
-     onmouseout="return searchBox.OnSearchSelectHide()"
-     onkeydown="return searchBox.OnSearchSelectKey(event)">
-</div>
-
-<!-- iframe showing the search results (closed by default) -->
-<div id="MSearchResultsWindow">
-<iframe src="javascript:void(0)" frameborder="0" 
-        name="MSearchResults" id="MSearchResults">
-</iframe>
-</div>
-
-</div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Bug List </div>  </div>
-</div><!--header-->
-<div class="contents">
-<div class="textblock"><dl class="reflist">
-<dt>Page <a class="el" href="window_guide.html">Window guide</a>  </dt>
-<dd><a class="anchor" id="_bug000001"></a>On some Linux systems, creating contexts via both the native and EGL APIs in a single process will cause the application to segfault. Stick to one API or the other on Linux for now.</dd>
-</dl>
-</div></div><!-- contents -->
-</div><!-- PageDoc -->
-<address class="footer">
-<p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
-</p>
-</address>
-</body>
-</html>

+ 12 - 11
glfw.mod/glfw/docs/html/build_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: build.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">build.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">build.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 71 - 70
glfw.mod/glfw/docs/html/build_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Building applications</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Building applications </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Building applications </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -77,114 +78,114 @@ $(function() {
 </li>
 </ul>
 </div>
-<div class="textblock"><p>This is about compiling and linking applications that use GLFW. For information on how to write such applications, start with the <a class="el" href="quick_guide.html">introductory tutorial</a>. For information on how to compile the GLFW library itself, see <a class="el" href="compile_guide.html">Compiling GLFW</a>.</p>
-<p>This is not a tutorial on compilation or linking. It assumes basic understanding of how to compile and link a C program as well as how to use the specific compiler of your chosen development environment. The compilation and linking process should be explained in your C programming material and in the documentation for your development environment.</p>
+<div class="textblock"><p >This is about compiling and linking applications that use GLFW. For information on how to write such applications, start with the <a class="el" href="quick_guide.html">introductory tutorial</a>. For information on how to compile the GLFW library itself, see <a class="el" href="compile_guide.html">Compiling GLFW</a>.</p>
+<p >This is not a tutorial on compilation or linking. It assumes basic understanding of how to compile and link a C program as well as how to use the specific compiler of your chosen development environment. The compilation and linking process should be explained in your C programming material and in the documentation for your development environment.</p>
 <h1><a class="anchor" id="build_include"></a>
 Including the GLFW header file</h1>
-<p>You should include the GLFW header in the source files where you use OpenGL or GLFW.</p>
+<p >You should include the GLFW header in the source files where you use OpenGL or GLFW.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
-</div><!-- fragment --><p>This header declares the GLFW API and by default also includes the OpenGL header from your development environment. See below for how to control this.</p>
-<p>The GLFW header also defines any platform-specific macros needed by your OpenGL header, so it can be included without needing any window system headers.</p>
-<p>For example, under Windows you are normally required to include <code>windows.h</code> before the OpenGL header, which would bring in the whole Win32 API. The GLFW header duplicates the small number of macros needed.</p>
-<p>It does this only when needed, so if <code>windows.h</code> <em>is</em> included, the GLFW header does not try to redefine those symbols. The reverse is not true, i.e. <code>windows.h</code> cannot cope if any of its symbols have already been defined.</p>
-<p>In other words:</p>
+<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
+</div><!-- fragment --><p >This header defines all the constants and declares all the types and function prototypes of the GLFW API. By default it also includes the OpenGL header from your development environment. See <a class="el" href="build_guide.html#build_macros">option macros</a> below for how to select OpenGL ES headers and more.</p>
+<p >The GLFW header also defines any platform-specific macros needed by your OpenGL header, so that it can be included without needing any window system headers.</p>
+<p >It does this only when needed, so if window system headers are included, the GLFW header does not try to redefine those symbols. The reverse is not true, i.e. <code>windows.h</code> cannot cope if any Win32 symbols have already been defined.</p>
+<p >In other words:</p>
 <ul>
-<li>Do <em>not</em> include the OpenGL headers yourself, as GLFW does this for you</li>
-<li>Do <em>not</em> include <code>windows.h</code> or other platform-specific headers unless you plan on using those APIs directly</li>
-<li>If you <em>do</em> need to include such headers, do it <em>before</em> including the GLFW header and it will handle this</li>
+<li>Use the GLFW header to include OpenGL or OpenGL ES headers portably</li>
+<li>Do not include window system headers unless you will use those APIs directly</li>
+<li>If you do need such headers, include them before the GLFW header</li>
 </ul>
-<p>If you are using an OpenGL extension loading library such as <a href="https://github.com/Dav1dde/glad">glad</a>, the extension loader header should be included <em>before</em> the GLFW one.</p>
+<p >If you are using an OpenGL extension loading library such as <a href="https://github.com/Dav1dde/glad">glad</a>, the extension loader header should be included before the GLFW one. GLFW attempts to detect any OpenGL or OpenGL ES header or extension loader header included before it and will then disable the inclusion of the default OpenGL header. Most extension loaders also define macros that disable similar headers below it.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;glad/gl.h&gt;</span></div>
 <div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
-</div><!-- fragment --><p>Alternatively the <a class="el" href="build_guide.html#GLFW_INCLUDE_NONE">GLFW_INCLUDE_NONE</a> macro (described below) can be used to prevent the GLFW header from including the OpenGL header.</p>
+</div><!-- fragment --><p >Both of these mechanisms depend on the extension loader header defining a known macro. If yours doesn't or you don't know which one your users will pick, the <a class="el" href="build_guide.html#GLFW_INCLUDE_NONE">GLFW_INCLUDE_NONE</a> macro will explicitly prevent the GLFW header from including the OpenGL header. This will also allow you to include the two headers in any order.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_NONE</span></div>
 <div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
 <div class="line"><span class="preprocessor">#include &lt;glad/gl.h&gt;</span></div>
 </div><!-- fragment --><h2><a class="anchor" id="build_macros"></a>
 GLFW header option macros</h2>
-<p>These macros may be defined before the inclusion of the GLFW header and affect its behavior.</p>
-<p><a class="anchor" id="GLFW_DLL"></a><b>GLFW_DLL</b> is required on Windows when using the GLFW DLL, to tell the compiler that the GLFW functions are defined in a DLL.</p>
-<p>The following macros control which OpenGL or OpenGL ES API header is included. Only one of these may be defined at a time.</p>
+<p >These macros may be defined before the inclusion of the GLFW header and affect its behavior.</p>
+<p ><a class="anchor" id="GLFW_DLL"></a><b>GLFW_DLL</b> is required on Windows when using the GLFW DLL, to tell the compiler that the GLFW functions are defined in a DLL.</p>
+<p >The following macros control which OpenGL or OpenGL ES API header is included. Only one of these may be defined at a time.</p>
 <dl class="section note"><dt>Note</dt><dd>GLFW does not provide any of the API headers mentioned below. They are provided by your development environment or your OpenGL, OpenGL ES or Vulkan SDK, and most of them can be downloaded from the <a href="https://www.khronos.org/registry/">Khronos Registry</a>.</dd></dl>
 <p><a class="anchor" id="GLFW_INCLUDE_GLCOREARB"></a><b>GLFW_INCLUDE_GLCOREARB</b> makes the GLFW header include the modern <code>GL/glcorearb.h</code> header (<code>OpenGL/gl3.h</code> on macOS) instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_ES1"></a><b>GLFW_INCLUDE_ES1</b> makes the GLFW header include the OpenGL ES 1.x <code>GLES/gl.h</code> header instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_ES2"></a><b>GLFW_INCLUDE_ES2</b> makes the GLFW header include the OpenGL ES 2.0 <code>GLES2/gl2.h</code> header instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_ES3"></a><b>GLFW_INCLUDE_ES3</b> makes the GLFW header include the OpenGL ES 3.0 <code>GLES3/gl3.h</code> header instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_ES31"></a><b>GLFW_INCLUDE_ES31</b> makes the GLFW header include the OpenGL ES 3.1 <code>GLES3/gl31.h</code> header instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_ES32"></a><b>GLFW_INCLUDE_ES31</b> makes the GLFW header include the OpenGL ES 3.2 <code>GLES3/gl32.h</code> header instead of the regular OpenGL header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_NONE"></a><b>GLFW_INCLUDE_NONE</b> makes the GLFW header not include any OpenGL or OpenGL ES API header. This is useful in combination with an extension loading library.</p>
-<p>If none of the above inclusion macros are defined, the standard OpenGL <code>GL/gl.h</code> header (<code>OpenGL/gl.h</code> on macOS) is included.</p>
-<p>The following macros control the inclusion of additional API headers. Any number of these may be defined simultaneously, and/or together with one of the above macros.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_VULKAN"></a><b>GLFW_INCLUDE_VULKAN</b> makes the GLFW header include the Vulkan <code>vulkan/vulkan.h</code> header in addition to any selected OpenGL or OpenGL ES header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_GLEXT"></a><b>GLFW_INCLUDE_GLEXT</b> makes the GLFW header include the appropriate extension header for the OpenGL or OpenGL ES header selected above after and in addition to that header.</p>
-<p><a class="anchor" id="GLFW_INCLUDE_GLU"></a><b>GLFW_INCLUDE_GLU</b> makes the header include the GLU header in addition to the header selected above. This should only be used with the standard OpenGL header and only for compatibility with legacy code. GLU has been deprecated and should not be used in new code.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_ES1"></a><b>GLFW_INCLUDE_ES1</b> makes the GLFW header include the OpenGL ES 1.x <code>GLES/gl.h</code> header instead of the regular OpenGL header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_ES2"></a><b>GLFW_INCLUDE_ES2</b> makes the GLFW header include the OpenGL ES 2.0 <code>GLES2/gl2.h</code> header instead of the regular OpenGL header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_ES3"></a><b>GLFW_INCLUDE_ES3</b> makes the GLFW header include the OpenGL ES 3.0 <code>GLES3/gl3.h</code> header instead of the regular OpenGL header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_ES31"></a><b>GLFW_INCLUDE_ES31</b> makes the GLFW header include the OpenGL ES 3.1 <code>GLES3/gl31.h</code> header instead of the regular OpenGL header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_ES32"></a><b>GLFW_INCLUDE_ES32</b> makes the GLFW header include the OpenGL ES 3.2 <code>GLES3/gl32.h</code> header instead of the regular OpenGL header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_NONE"></a><b>GLFW_INCLUDE_NONE</b> makes the GLFW header not include any OpenGL or OpenGL ES API header. This is useful in combination with an extension loading library.</p>
+<p >If none of the above inclusion macros are defined, the standard OpenGL <code>GL/gl.h</code> header (<code>OpenGL/gl.h</code> on macOS) is included, unless GLFW detects the inclusion guards of any OpenGL, OpenGL ES or extension loader header it knows about.</p>
+<p >The following macros control the inclusion of additional API headers. Any number of these may be defined simultaneously, and/or together with one of the above macros.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_VULKAN"></a><b>GLFW_INCLUDE_VULKAN</b> makes the GLFW header include the Vulkan <code>vulkan/vulkan.h</code> header in addition to any selected OpenGL or OpenGL ES header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_GLEXT"></a><b>GLFW_INCLUDE_GLEXT</b> makes the GLFW header include the appropriate extension header for the OpenGL or OpenGL ES header selected above after and in addition to that header.</p>
+<p ><a class="anchor" id="GLFW_INCLUDE_GLU"></a><b>GLFW_INCLUDE_GLU</b> makes the header include the GLU header in addition to the header selected above. This should only be used with the standard OpenGL header and only for compatibility with legacy code. GLU has been deprecated and should not be used in new code.</p>
 <dl class="section note"><dt>Note</dt><dd>None of these macros may be defined during the compilation of GLFW itself. If your build includes GLFW and you define any these in your build files, make sure they are not applied to the GLFW sources.</dd></dl>
 <h1><a class="anchor" id="build_link"></a>
 Link with the right libraries</h1>
-<p>GLFW is essentially a wrapper of various platform-specific APIs and therefore needs to link against many different system libraries. If you are using GLFW as a shared library / dynamic library / DLL then it takes care of these links. However, if you are using GLFW as a static library then your executable will need to link against these libraries.</p>
-<p>On Windows and macOS, the list of system libraries is static and can be hard-coded into your build environment. See the section for your development environment below. On Linux and other Unix-like operating systems, the list varies but can be retrieved in various ways as described below.</p>
-<p>A good general introduction to linking is <a href="https://www.lurklurk.org/linkers/linkers.html">Beginner's Guide to Linkers</a> by David Drysdale.</p>
+<p >GLFW is essentially a wrapper of various platform-specific APIs and therefore needs to link against many different system libraries. If you are using GLFW as a shared library / dynamic library / DLL then it takes care of these links. However, if you are using GLFW as a static library then your executable will need to link against these libraries.</p>
+<p >On Windows and macOS, the list of system libraries is static and can be hard-coded into your build environment. See the section for your development environment below. On Linux and other Unix-like operating systems, the list varies but can be retrieved in various ways as described below.</p>
+<p >A good general introduction to linking is <a href="https://www.lurklurk.org/linkers/linkers.html">Beginner's Guide to Linkers</a> by David Drysdale.</p>
 <h2><a class="anchor" id="build_link_win32"></a>
 With MinGW or Visual C++ on Windows</h2>
-<p>The static version of the GLFW library is named <code>glfw3</code>. When using this version, it is also necessary to link with some libraries that GLFW uses.</p>
-<p>When using MinGW to link an application with the static version of GLFW, you must also explicitly link with <code>gdi32</code>. Other toolchains including MinGW-w64 include it in the set of default libraries along with other dependencies like <code>user32</code> and <code>kernel32</code>.</p>
-<p>The link library for the GLFW DLL is named <code>glfw3dll</code>. When compiling an application that uses the DLL version of GLFW, you need to define the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro <em>before</em> any inclusion of the GLFW header. This can be done either with a compiler switch or by defining it in your source code.</p>
+<p >The static version of the GLFW library is named <code>glfw3</code>. When using this version, it is also necessary to link with some libraries that GLFW uses.</p>
+<p >When using MinGW to link an application with the static version of GLFW, you must also explicitly link with <code>gdi32</code>. Other toolchains including MinGW-w64 include it in the set of default libraries along with other dependencies like <code>user32</code> and <code>kernel32</code>.</p>
+<p >The link library for the GLFW DLL is named <code>glfw3dll</code>. When compiling an application that uses the DLL version of GLFW, you need to define the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro <em>before</em> any inclusion of the GLFW header. This can be done either with a compiler switch or by defining it in your source code.</p>
 <h2><a class="anchor" id="build_link_cmake_source"></a>
 With CMake and GLFW source</h2>
-<p>This section is about using CMake to compile and link GLFW along with your application. If you want to use an installed binary instead, see <a class="el" href="build_guide.html#build_link_cmake_package">With CMake and installed GLFW binaries</a>.</p>
-<p>With a few changes to your <code>CMakeLists.txt</code> you can have the GLFW source tree built along with your application.</p>
-<p>When including GLFW as part of your build, you probably don't want to build the GLFW tests, examples and documentation. To disable these, set the corresponding cache variables before adding the GLFW source tree.</p>
+<p >This section is about using CMake to compile and link GLFW along with your application. If you want to use an installed binary instead, see <a class="el" href="build_guide.html#build_link_cmake_package">With CMake and installed GLFW binaries</a>.</p>
+<p >With a few changes to your <code>CMakeLists.txt</code> you can have the GLFW source tree built along with your application.</p>
+<p >When including GLFW as part of your build, you probably don't want to build the GLFW tests, examples and documentation. To disable these, set the corresponding cache variables before adding the GLFW source tree.</p>
 <div class="fragment"><div class="line">set(GLFW_BUILD_DOCS OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div>
 <div class="line">set(GLFW_BUILD_TESTS OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div>
 <div class="line">set(GLFW_BUILD_EXAMPLES OFF CACHE BOOL <span class="stringliteral">&quot;&quot;</span> FORCE)</div>
-</div><!-- fragment --><p>Add the root directory of the GLFW source tree to your project. This will add the <code>glfw</code> target to your project.</p>
+</div><!-- fragment --><p >Add the root directory of the GLFW source tree to your project. This will add the <code>glfw</code> target to your project.</p>
 <div class="fragment"><div class="line">add_subdirectory(path/to/glfw)</div>
-</div><!-- fragment --><p>Once GLFW has been added, link your application against the <code>glfw</code> target. This adds the GLFW library and its link-time dependencies as it is currently configured, the include directory for the GLFW header and, when applicable, the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro.</p>
+</div><!-- fragment --><p >Once GLFW has been added, link your application against the <code>glfw</code> target. This adds the GLFW library and its link-time dependencies as it is currently configured, the include directory for the GLFW header and, when applicable, the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro.</p>
 <div class="fragment"><div class="line">target_link_libraries(myapp glfw)</div>
-</div><!-- fragment --><p>Note that the <code>glfw</code> target does not depend on OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, use the OpenGL CMake package.</p>
+</div><!-- fragment --><p >Note that the <code>glfw</code> target does not depend on OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, use the OpenGL CMake package.</p>
 <div class="fragment"><div class="line">find_package(OpenGL REQUIRED)</div>
-</div><!-- fragment --><p>If OpenGL is found, the <code>OpenGL::GL</code> target is added to your project, containing library and include directory paths. Link against this like above.</p>
+</div><!-- fragment --><p >If OpenGL is found, the <code>OpenGL::GL</code> target is added to your project, containing library and include directory paths. Link against this like any other library.</p>
 <div class="fragment"><div class="line">target_link_libraries(myapp OpenGL::GL)</div>
-</div><!-- fragment --><h2><a class="anchor" id="build_link_cmake_package"></a>
+</div><!-- fragment --><p >For a minimal example of a program and GLFW sources built with CMake, see the <a href="https://github.com/juliettef/GLFW-CMake-starter">GLFW CMake Starter</a> on GitHub.</p>
+<h2><a class="anchor" id="build_link_cmake_package"></a>
 With CMake and installed GLFW binaries</h2>
-<p>This section is about using CMake to link GLFW after it has been built and installed. If you want to build it along with your application instead, see <a class="el" href="build_guide.html#build_link_cmake_source">With CMake and GLFW source</a>.</p>
-<p>With a few changes to your <code>CMakeLists.txt</code> you can locate the package and target files generated when GLFW is installed.</p>
+<p >This section is about using CMake to link GLFW after it has been built and installed. If you want to build it along with your application instead, see <a class="el" href="build_guide.html#build_link_cmake_source">With CMake and GLFW source</a>.</p>
+<p >With a few changes to your <code>CMakeLists.txt</code> you can locate the package and target files generated when GLFW is installed.</p>
 <div class="fragment"><div class="line">find_package(glfw3 3.3 REQUIRED)</div>
-</div><!-- fragment --><p>Once GLFW has been added to the project, link against it with the <code>glfw</code> target. This adds the GLFW library and its link-time dependencies, the include directory for the GLFW header and, when applicable, the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro.</p>
+</div><!-- fragment --><p >Once GLFW has been added to the project, link against it with the <code>glfw</code> target. This adds the GLFW library and its link-time dependencies, the include directory for the GLFW header and, when applicable, the <a class="el" href="build_guide.html#GLFW_DLL">GLFW_DLL</a> macro.</p>
 <div class="fragment"><div class="line">target_link_libraries(myapp glfw)</div>
-</div><!-- fragment --><p>Note that the <code>glfw</code> target does not depend on OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, use the OpenGL CMake package.</p>
+</div><!-- fragment --><p >Note that the <code>glfw</code> target does not depend on OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, use the OpenGL CMake package.</p>
 <div class="fragment"><div class="line">find_package(OpenGL REQUIRED)</div>
-</div><!-- fragment --><p>If OpenGL is found, the <code>OpenGL::GL</code> target is added to your project, containing library and include directory paths. Link against this like above.</p>
+</div><!-- fragment --><p >If OpenGL is found, the <code>OpenGL::GL</code> target is added to your project, containing library and include directory paths. Link against this like any other library.</p>
 <div class="fragment"><div class="line">target_link_libraries(myapp OpenGL::GL)</div>
 </div><!-- fragment --><h2><a class="anchor" id="build_link_pkgconfig"></a>
 With makefiles and pkg-config on Unix</h2>
-<p>GLFW supports <a href="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>, and the <code>glfw3.pc</code> pkg-config file is generated when the GLFW library is built and is installed along with it. A pkg-config file describes all necessary compile-time and link-time flags and dependencies needed to use a library. When they are updated or if they differ between systems, you will get the correct ones automatically.</p>
-<p>A typical compile and link command-line when using the static version of the GLFW library may look like this:</p>
+<p >GLFW supports <a href="https://www.freedesktop.org/wiki/Software/pkg-config/">pkg-config</a>, and the <code>glfw3.pc</code> pkg-config file is generated when the GLFW library is built and is installed along with it. A pkg-config file describes all necessary compile-time and link-time flags and dependencies needed to use a library. When they are updated or if they differ between systems, you will get the correct ones automatically.</p>
+<p >A typical compile and link command-line when using the static version of the GLFW library may look like this:</p>
 <div class="fragment"><div class="line">cc $(pkg-config --cflags glfw3) -o myprog myprog.c $(pkg-config --static --libs glfw3)</div>
-</div><!-- fragment --><p>If you are using the shared version of the GLFW library, omit the <code>--static</code> flag.</p>
+</div><!-- fragment --><p >If you are using the shared version of the GLFW library, omit the <code>--static</code> flag.</p>
 <div class="fragment"><div class="line">cc $(pkg-config --cflags glfw3) -o myprog myprog.c $(pkg-config --libs glfw3)</div>
-</div><!-- fragment --><p>You can also use the <code>glfw3.pc</code> file without installing it first, by using the <code>PKG_CONFIG_PATH</code> environment variable.</p>
+</div><!-- fragment --><p >You can also use the <code>glfw3.pc</code> file without installing it first, by using the <code>PKG_CONFIG_PATH</code> environment variable.</p>
 <div class="fragment"><div class="line">env PKG_CONFIG_PATH=path/to/glfw/src cc $(pkg-config --cflags glfw3) -o myprog myprog.c $(pkg-config --libs glfw3)</div>
-</div><!-- fragment --><p>The dependencies do not include OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, you should add the <code>gl</code> pkg-config package.</p>
+</div><!-- fragment --><p >The dependencies do not include OpenGL, as GLFW loads any OpenGL, OpenGL ES or Vulkan libraries it needs at runtime. If your application calls OpenGL directly, instead of using a modern <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a>, you should add the <code>gl</code> pkg-config package.</p>
 <div class="fragment"><div class="line">cc $(pkg-config --cflags glfw3 gl) -o myprog myprog.c $(pkg-config --libs glfw3 gl)</div>
 </div><!-- fragment --><h2><a class="anchor" id="build_link_xcode"></a>
 With Xcode on macOS</h2>
-<p>If you are using the dynamic library version of GLFW, add it to the project dependencies.</p>
-<p>If you are using the static library version of GLFW, add it and the Cocoa, OpenGL and IOKit frameworks to the project as dependencies. They can all be found in <code>/System/Library/Frameworks</code>.</p>
+<p >If you are using the dynamic library version of GLFW, add it to the project dependencies.</p>
+<p >If you are using the static library version of GLFW, add it and the Cocoa, OpenGL and IOKit frameworks to the project as dependencies. They can all be found in <code>/System/Library/Frameworks</code>.</p>
 <h2><a class="anchor" id="build_link_osx"></a>
 With command-line on macOS</h2>
-<p>It is recommended that you use <a class="el" href="build_guide.html#build_link_pkgconfig">pkg-config</a> when building from the command line on macOS. That way you will get any new dependencies added automatically. If you still wish to build manually, you need to add the required frameworks and libraries to your command-line yourself using the <code>-l</code> and <code>-framework</code> switches.</p>
-<p>If you are using the dynamic GLFW library, which is named <code>libglfw.3.dylib</code>, do:</p>
+<p >It is recommended that you use <a class="el" href="build_guide.html#build_link_pkgconfig">pkg-config</a> when building from the command line on macOS. That way you will get any new dependencies added automatically. If you still wish to build manually, you need to add the required frameworks and libraries to your command-line yourself using the <code>-l</code> and <code>-framework</code> switches.</p>
+<p >If you are using the dynamic GLFW library, which is named <code>libglfw.3.dylib</code>, do:</p>
 <div class="fragment"><div class="line">cc -o myprog myprog.c -lglfw -framework Cocoa -framework OpenGL -framework IOKit</div>
-</div><!-- fragment --><p>If you are using the static library, named <code>libglfw3.a</code>, substitute <code>-lglfw3</code> for <code>-lglfw</code>.</p>
-<p>Note that you do not add the <code>.framework</code> extension to a framework when linking against it from the command-line.</p>
+</div><!-- fragment --><p >If you are using the static library, named <code>libglfw3.a</code>, substitute <code>-lglfw3</code> for <code>-lglfw</code>.</p>
+<p >Note that you do not add the <code>.framework</code> extension to a framework when linking against it from the command-line.</p>
 <dl class="section note"><dt>Note</dt><dd>Your machine may have <code>libGL.*.dylib</code> style OpenGL library, but that is for the X Window System and will not work with the macOS native version of GLFW. </dd></dl>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/compat_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: compat.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">compat.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">compat.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 59 - 58
glfw.mod/glfw/docs/html/compat_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Standards conformance</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Standards conformance </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Standards conformance </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -73,71 +74,71 @@ $(function() {
 <li class="level1"><a href="#compat_wsi">Vulkan WSI extensions</a></li>
 </ul>
 </div>
-<div class="textblock"><p>This guide describes the various API extensions used by this version of GLFW. It lists what are essentially implementation details, but which are nonetheless vital knowledge for developers intending to deploy their applications on a wide range of machines.</p>
-<p>The information in this guide is not a part of GLFW API, but merely preconditions for some parts of the library to function on a given machine. Any part of this information may change in future versions of GLFW and that will not be considered a breaking API change.</p>
+<div class="textblock"><p >This guide describes the various API extensions used by this version of GLFW. It lists what are essentially implementation details, but which are nonetheless vital knowledge for developers intending to deploy their applications on a wide range of machines.</p>
+<p >The information in this guide is not a part of GLFW API, but merely preconditions for some parts of the library to function on a given machine. Any part of this information may change in future versions of GLFW and that will not be considered a breaking API change.</p>
 <h1><a class="anchor" id="compat_x11"></a>
 X11 extensions, protocols and IPC standards</h1>
-<p>As GLFW uses Xlib directly, without any intervening toolkit library, it has sole responsibility for interacting well with the many and varied window managers in use on Unix-like systems. In order for applications and window managers to work well together, a number of standards and conventions have been developed that regulate behavior outside the scope of the X11 API; most importantly the <a href="https://www.tronche.com/gui/x/icccm/">Inter-Client Communication Conventions Manual</a> (ICCCM) and <a href="https://standards.freedesktop.org/wm-spec/wm-spec-latest.html">Extended Window Manager Hints</a> (EWMH) standards.</p>
-<p>GLFW uses the <code>_MOTIF_WM_HINTS</code> window property to support borderless windows. If the running window manager does not support this property, the <code>GLFW_DECORATED</code> hint will have no effect.</p>
-<p>GLFW uses the ICCCM <code>WM_DELETE_WINDOW</code> protocol to intercept the user attempting to close the GLFW window. If the running window manager does not support this protocol, the close callback will never be called.</p>
-<p>GLFW uses the EWMH <code>_NET_WM_PING</code> protocol, allowing the window manager notify the user when the application has stopped responding, i.e. when it has ceased to process events. If the running window manager does not support this protocol, the user will not be notified if the application locks up.</p>
-<p>GLFW uses the EWMH <code>_NET_WM_STATE_FULLSCREEN</code> window state to tell the window manager to make the GLFW window full screen. If the running window manager does not support this state, full screen windows may not work properly. GLFW has a fallback code path in case this state is unavailable, but every window manager behaves slightly differently in this regard.</p>
-<p>GLFW uses the EWMH <code>_NET_WM_BYPASS_COMPOSITOR</code> window property to tell a compositing window manager to un-redirect full screen GLFW windows. If the running window manager uses compositing but does not support this property then additional copying may be performed for each buffer swap of full screen windows.</p>
-<p>GLFW uses the <a href="https://www.freedesktop.org/wiki/ClipboardManager/">clipboard manager protocol</a> to push a clipboard string (i.e. selection) owned by a GLFW window about to be destroyed to the clipboard manager. If there is no running clipboard manager, the clipboard string will be unavailable once the window has been destroyed.</p>
-<p>GLFW uses the <a href="https://www.freedesktop.org/wiki/Specifications/XDND/">X drag-and-drop protocol</a> to provide file drop events. If the application originating the drag does not support this protocol, drag and drop will not work.</p>
-<p>GLFW uses the XRandR 1.3 extension to provide multi-monitor support. If the running X server does not support this version of this extension, multi-monitor support will not function and only a single, desktop-spanning monitor will be reported.</p>
-<p>GLFW uses the XRandR 1.3 and Xf86vidmode extensions to provide gamma ramp support. If the running X server does not support either or both of these extensions, gamma ramp support will not function.</p>
-<p>GLFW uses the Xkb extension and detectable auto-repeat to provide keyboard input. If the running X server does not support this extension, a non-Xkb fallback path is used.</p>
-<p>GLFW uses the XInput2 extension to provide raw, non-accelerated mouse motion when the cursor is disabled. If the running X server does not support this extension, regular accelerated mouse motion will be used.</p>
-<p>GLFW uses both the XRender extension and the compositing manager to support transparent window framebuffers. If the running X server does not support this extension or there is no running compositing manager, the <code>GLFW_TRANSPARENT_FRAMEBUFFER</code> framebuffer hint will have no effect.</p>
+<p >As GLFW uses Xlib directly, without any intervening toolkit library, it has sole responsibility for interacting well with the many and varied window managers in use on Unix-like systems. In order for applications and window managers to work well together, a number of standards and conventions have been developed that regulate behavior outside the scope of the X11 API; most importantly the <a href="https://www.tronche.com/gui/x/icccm/">Inter-Client Communication Conventions Manual</a> (ICCCM) and <a href="https://standards.freedesktop.org/wm-spec/wm-spec-latest.html">Extended Window Manager Hints</a> (EWMH) standards.</p>
+<p >GLFW uses the <code>_MOTIF_WM_HINTS</code> window property to support borderless windows. If the running window manager does not support this property, the <code>GLFW_DECORATED</code> hint will have no effect.</p>
+<p >GLFW uses the ICCCM <code>WM_DELETE_WINDOW</code> protocol to intercept the user attempting to close the GLFW window. If the running window manager does not support this protocol, the close callback will never be called.</p>
+<p >GLFW uses the EWMH <code>_NET_WM_PING</code> protocol, allowing the window manager notify the user when the application has stopped responding, i.e. when it has ceased to process events. If the running window manager does not support this protocol, the user will not be notified if the application locks up.</p>
+<p >GLFW uses the EWMH <code>_NET_WM_STATE_FULLSCREEN</code> window state to tell the window manager to make the GLFW window full screen. If the running window manager does not support this state, full screen windows may not work properly. GLFW has a fallback code path in case this state is unavailable, but every window manager behaves slightly differently in this regard.</p>
+<p >GLFW uses the EWMH <code>_NET_WM_BYPASS_COMPOSITOR</code> window property to tell a compositing window manager to un-redirect full screen GLFW windows. If the running window manager uses compositing but does not support this property then additional copying may be performed for each buffer swap of full screen windows.</p>
+<p >GLFW uses the <a href="https://www.freedesktop.org/wiki/ClipboardManager/">clipboard manager protocol</a> to push a clipboard string (i.e. selection) owned by a GLFW window about to be destroyed to the clipboard manager. If there is no running clipboard manager, the clipboard string will be unavailable once the window has been destroyed.</p>
+<p >GLFW uses the <a href="https://www.freedesktop.org/wiki/Specifications/XDND/">X drag-and-drop protocol</a> to provide file drop events. If the application originating the drag does not support this protocol, drag and drop will not work.</p>
+<p >GLFW uses the XRandR 1.3 extension to provide multi-monitor support. If the running X server does not support this version of this extension, multi-monitor support will not function and only a single, desktop-spanning monitor will be reported.</p>
+<p >GLFW uses the XRandR 1.3 and Xf86vidmode extensions to provide gamma ramp support. If the running X server does not support either or both of these extensions, gamma ramp support will not function.</p>
+<p >GLFW uses the Xkb extension and detectable auto-repeat to provide keyboard input. If the running X server does not support this extension, a non-Xkb fallback path is used.</p>
+<p >GLFW uses the XInput2 extension to provide raw, non-accelerated mouse motion when the cursor is disabled. If the running X server does not support this extension, regular accelerated mouse motion will be used.</p>
+<p >GLFW uses both the XRender extension and the compositing manager to support transparent window framebuffers. If the running X server does not support this extension or there is no running compositing manager, the <code>GLFW_TRANSPARENT_FRAMEBUFFER</code> framebuffer hint will have no effect.</p>
 <h1><a class="anchor" id="compat_wayland"></a>
 Wayland protocols and IPC standards</h1>
-<p>As GLFW uses libwayland directly, without any intervening toolkit library, it has sole responsibility for interacting well with every compositor in use on Unix-like systems. Most of the features are provided by the core protocol, while cursor support is provided by the libwayland-cursor helper library, EGL integration by libwayland-egl, and keyboard handling by <a href="https://xkbcommon.org/">libxkbcommon</a>. In addition, GLFW uses some protocols from wayland-protocols to provide additional features if the compositor supports them.</p>
-<p>GLFW uses xkbcommon 0.5.0 to provide compose key support. When it has been built against an older xkbcommon, the compose key will be disabled even if it has been configured in the compositor.</p>
-<p>GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml">xdg-shell protocol</a> to provide better window management. This protocol is part of wayland-protocols 1.12, and mandatory at build time. If the running compositor does not support this protocol, the older <a href="https://cgit.freedesktop.org/wayland/wayland/tree/protocol/wayland.xml#n972">wl_shell interface</a> will be used instead. This will result in a worse integration with the desktop, especially on tiling compositors.</p>
-<p>GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/relative-pointer/relative-pointer-unstable-v1.xml">relative pointer protocol</a> alongside the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml">pointer constraints protocol</a> to implement disabled cursor. These two protocols are part of wayland-protocols 1.1, and mandatory at build time. If the running compositor does not support both of these protocols, disabling the cursor will have no effect.</p>
-<p>GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml">idle inhibit protocol</a> to prohibit the screensaver from starting. This protocol is part of wayland-protocols 1.6, and mandatory at build time. If the running compositor does not support this protocol, the screensaver may start even for full screen windows.</p>
-<p>GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml">xdg-decoration protocol</a> to request decorations to be drawn around its windows. This protocol is part of wayland-protocols 1.15, and mandatory at build time. If the running compositor does not support this protocol, a very simple frame will be drawn by GLFW itself, using the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/viewporter/viewporter.xml">viewporter protocol</a> alongside <a href="https://cgit.freedesktop.org/wayland/wayland/tree/protocol/wayland.xml#n2598">subsurfaces</a>. This protocol is part of wayland-protocols 1.4, and mandatory at build time. If the running compositor does not support this protocol either, no decorations will be drawn around windows.</p>
+<p >As GLFW uses libwayland directly, without any intervening toolkit library, it has sole responsibility for interacting well with every compositor in use on Unix-like systems. Most of the features are provided by the core protocol, while cursor support is provided by the libwayland-cursor helper library, EGL integration by libwayland-egl, and keyboard handling by <a href="https://xkbcommon.org/">libxkbcommon</a>. In addition, GLFW uses some protocols from wayland-protocols to provide additional features if the compositor supports them.</p>
+<p >GLFW uses xkbcommon 0.5.0 to provide compose key support. When it has been built against an older xkbcommon, the compose key will be disabled even if it has been configured in the compositor.</p>
+<p >GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml">xdg-shell protocol</a> to provide better window management. This protocol is part of wayland-protocols 1.12, and mandatory at build time.</p>
+<p >GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/relative-pointer/relative-pointer-unstable-v1.xml">relative pointer protocol</a> alongside the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/pointer-constraints/pointer-constraints-unstable-v1.xml">pointer constraints protocol</a> to implement disabled cursor. These two protocols are part of wayland-protocols 1.1, and mandatory at build time. If the running compositor does not support both of these protocols, disabling the cursor will have no effect.</p>
+<p >GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/idle-inhibit/idle-inhibit-unstable-v1.xml">idle inhibit protocol</a> to prohibit the screensaver from starting. This protocol is part of wayland-protocols 1.6, and mandatory at build time. If the running compositor does not support this protocol, the screensaver may start even for full screen windows.</p>
+<p >GLFW uses the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/unstable/xdg-decoration/xdg-decoration-unstable-v1.xml">xdg-decoration protocol</a> to request decorations to be drawn around its windows. This protocol is part of wayland-protocols 1.15, and mandatory at build time. If the running compositor does not support this protocol, a very simple frame will be drawn by GLFW itself, using the <a href="https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/viewporter/viewporter.xml">viewporter protocol</a> alongside <a href="https://cgit.freedesktop.org/wayland/wayland/tree/protocol/wayland.xml#n2598">subsurfaces</a>. This protocol is part of wayland-protocols 1.4, and mandatory at build time. If the running compositor does not support this protocol either, no decorations will be drawn around windows.</p>
 <h1><a class="anchor" id="compat_glx"></a>
 GLX extensions</h1>
-<p>The GLX API is the default API used to create OpenGL contexts on Unix-like systems using the X Window System.</p>
-<p>GLFW uses the GLX 1.3 <code>GLXFBConfig</code> functions to enumerate and select framebuffer pixel formats. If GLX 1.3 is not supported, <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> will fail.</p>
-<p>GLFW uses the <code>GLX_MESA_swap_control,</code> <code>GLX_EXT_swap_control</code> and <code>GLX_SGI_swap_control</code> extensions to provide vertical retrace synchronization (or <em>vsync</em>), in that order of preference. Where none of these extension are available, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
-<p>GLFW uses the <code>GLX_ARB_multisample</code> extension to create contexts with multisampling anti-aliasing. Where this extension is unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
-<p>GLFW uses the <code>GLX_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
-<p>GLFW uses the <code>GLX_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code>, or setting <code>GLFW_CLIENT_API</code> to anything but <code>GLFW_OPENGL_API</code> or <code>GLFW_NO_API</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
-<p>GLFW uses the <code>GLX_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
-<p>GLFW uses the <code>GLX_ARB_framebuffer_sRGB</code> and <code>GLX_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extensions are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
+<p >The GLX API is the default API used to create OpenGL contexts on Unix-like systems using the X Window System.</p>
+<p >GLFW uses the GLX 1.3 <code>GLXFBConfig</code> functions to enumerate and select framebuffer pixel formats. If GLX 1.3 is not supported, <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> will fail.</p>
+<p >GLFW uses the <code>GLX_MESA_swap_control,</code> <code>GLX_EXT_swap_control</code> and <code>GLX_SGI_swap_control</code> extensions to provide vertical retrace synchronization (or <em>vsync</em>), in that order of preference. Where none of these extension are available, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
+<p >GLFW uses the <code>GLX_ARB_multisample</code> extension to create contexts with multisampling anti-aliasing. Where this extension is unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
+<p >GLFW uses the <code>GLX_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail.</p>
+<p >GLFW uses the <code>GLX_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code>, or setting <code>GLFW_CLIENT_API</code> to anything but <code>GLFW_OPENGL_API</code> or <code>GLFW_NO_API</code> will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail.</p>
+<p >GLFW uses the <code>GLX_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
+<p >GLFW uses the <code>GLX_ARB_framebuffer_sRGB</code> and <code>GLX_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extensions are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
 <h1><a class="anchor" id="compat_wgl"></a>
 WGL extensions</h1>
-<p>The WGL API is used to create OpenGL contexts on Microsoft Windows and other implementations of the Win32 API, such as Wine.</p>
-<p>GLFW uses either the <code>WGL_EXT_extension_string</code> or the <code>WGL_ARB_extension_string</code> extension to check for the presence of all other WGL extensions listed below. If both are available, the EXT one is preferred. If neither is available, no other extensions are used and many GLFW features related to context creation will have no effect or cause errors when used.</p>
-<p>GLFW uses the <code>WGL_EXT_swap_control</code> extension to provide vertical retrace synchronization (or <em>vsync</em>). Where this extension is unavailable, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
-<p>GLFW uses the <code>WGL_ARB_pixel_format</code> and <code>WGL_ARB_multisample</code> extensions to create contexts with multisampling anti-aliasing. Where these extensions are unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
-<p>GLFW uses the <code>WGL_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
-<p>GLFW uses the <code>WGL_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code> will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail.</p>
-<p>GLFW uses the <code>WGL_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
-<p>GLFW uses the <code>WGL_ARB_framebuffer_sRGB</code> and <code>WGL_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extension are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
+<p >The WGL API is used to create OpenGL contexts on Microsoft Windows and other implementations of the Win32 API, such as Wine.</p>
+<p >GLFW uses either the <code>WGL_EXT_extension_string</code> or the <code>WGL_ARB_extension_string</code> extension to check for the presence of all other WGL extensions listed below. If both are available, the EXT one is preferred. If neither is available, no other extensions are used and many GLFW features related to context creation will have no effect or cause errors when used.</p>
+<p >GLFW uses the <code>WGL_EXT_swap_control</code> extension to provide vertical retrace synchronization (or <em>vsync</em>). Where this extension is unavailable, calling <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> will have no effect.</p>
+<p >GLFW uses the <code>WGL_ARB_pixel_format</code> and <code>WGL_ARB_multisample</code> extensions to create contexts with multisampling anti-aliasing. Where these extensions are unavailable, the <code>GLFW_SAMPLES</code> hint will have no effect.</p>
+<p >GLFW uses the <code>WGL_ARB_create_context</code> extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will only be partially supported, the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint will have no effect, and setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to <code>GLFW_TRUE</code> will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail.</p>
+<p >GLFW uses the <code>WGL_ARB_create_context_profile</code> extension to provide support for context profiles. Where this extension is unavailable, setting the <code>GLFW_OPENGL_PROFILE</code> hint to anything but <code>GLFW_OPENGL_ANY_PROFILE</code> will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail.</p>
+<p >GLFW uses the <code>WGL_ARB_context_flush_control</code> extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the <code>GLFW_CONTEXT_RELEASE_BEHAVIOR</code> hint will have no effect and the context will always be flushed when released.</p>
+<p >GLFW uses the <code>WGL_ARB_framebuffer_sRGB</code> and <code>WGL_EXT_framebuffer_sRGB</code> extensions to provide support for sRGB framebuffers. Where both of these extension are unavailable, the <code>GLFW_SRGB_CAPABLE</code> hint will have no effect.</p>
 <h1><a class="anchor" id="compat_osx"></a>
 OpenGL on macOS</h1>
-<p>Support for OpenGL 3.2 and above was introduced with OS X 10.7 and even then only forward-compatible, core profile contexts are supported. Support for OpenGL 4.1 was introduced with OS X 10.9, also limited to forward-compatible, core profile contexts. There is also still no mechanism for requesting debug contexts or no-error contexts. Versions of Mac OS X earlier than 10.7 support at most OpenGL version 2.1.</p>
-<p>Because of this, on OS X 10.7 and later, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail if given version 3.0 or 3.1. The <code>GLFW_OPENGL_FORWARD_COMPAT</code> hint must be set to <code>GLFW_TRUE</code> and the <code>GLFW_OPENGL_PROFILE</code> hint must be set to <code>GLFW_OPENGL_CORE_PROFILE</code> when creating OpenGL 3.2 and later contexts. The <code>GLFW_OPENGL_DEBUG_CONTEXT</code> and <code>GLFW_CONTEXT_NO_ERROR</code> hints are ignored.</p>
-<p>Also, on Mac OS X 10.6 and below, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will fail if given a version above 2.1, setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to a non-default value will cause <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> to fail and the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint is ignored.</p>
+<p >Support for OpenGL 3.2 and above was introduced with OS X 10.7 and even then only forward-compatible, core profile contexts are supported. Support for OpenGL 4.1 was introduced with OS X 10.9, also limited to forward-compatible, core profile contexts. There is also still no mechanism for requesting debug contexts or no-error contexts. Versions of Mac OS X earlier than 10.7 support at most OpenGL version 2.1.</p>
+<p >Because of this, on OS X 10.7 and later, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail if given version 3.0 or 3.1. The <code>GLFW_OPENGL_FORWARD_COMPAT</code> hint must be set to <code>GLFW_TRUE</code> and the <code>GLFW_OPENGL_PROFILE</code> hint must be set to <code>GLFW_OPENGL_CORE_PROFILE</code> when creating OpenGL 3.2 and later contexts. The <code>GLFW_OPENGL_DEBUG_CONTEXT</code> and <code>GLFW_CONTEXT_NO_ERROR</code> hints are ignored.</p>
+<p >Also, on Mac OS X 10.6 and below, the <code>GLFW_CONTEXT_VERSION_MAJOR</code> and <code>GLFW_CONTEXT_VERSION_MINOR</code> hints will fail if given a version above 2.1, setting the <code>GLFW_OPENGL_PROFILE</code> or <code>GLFW_OPENGL_FORWARD_COMPAT</code> hints to a non-default value will cause <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> to fail and the <code>GLFW_OPENGL_DEBUG_CONTEXT</code> hint is ignored.</p>
 <h1><a class="anchor" id="compat_vulkan"></a>
 Vulkan loader and API</h1>
-<p>By default, GLFW uses the standard system-wide Vulkan loader to access the Vulkan API on all platforms except macOS. This is installed by both graphics drivers and Vulkan SDKs. If either the loader or at least one minimally functional ICD is missing, <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> will return <code>GLFW_FALSE</code> and all other Vulkan-related functions will fail with an <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error.</p>
+<p >By default, GLFW uses the standard system-wide Vulkan loader to access the Vulkan API on all platforms except macOS. This is installed by both graphics drivers and Vulkan SDKs. If either the loader or at least one minimally functional ICD is missing, <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> will return <code>GLFW_FALSE</code> and all other Vulkan-related functions will fail with an <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error.</p>
 <h1><a class="anchor" id="compat_wsi"></a>
 Vulkan WSI extensions</h1>
-<p>The Vulkan WSI extensions are used to create Vulkan surfaces for GLFW windows on all supported platforms.</p>
-<p>GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_win32_surface</code> extensions to create surfaces on Microsoft Windows. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
-<p>GLFW uses the <code>VK_KHR_surface</code> and either the <code>VK_MVK_macos_surface</code> or <code>VK_EXT_metal_surface</code> extensions to create surfaces on macOS. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
-<p>GLFW uses the <code>VK_KHR_surface</code> and either the <code>VK_KHR_xlib_surface</code> or <code>VK_KHR_xcb_surface</code> extensions to create surfaces on X11. If <code>VK_KHR_surface</code> or both <code>VK_KHR_xlib_surface</code> and <code>VK_KHR_xcb_surface</code> are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
-<p>GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_wayland_surface</code> extensions to create surfaces on Wayland. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail. </p>
+<p >The Vulkan WSI extensions are used to create Vulkan surfaces for GLFW windows on all supported platforms.</p>
+<p >GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_win32_surface</code> extensions to create surfaces on Microsoft Windows. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
+<p >GLFW uses the <code>VK_KHR_surface</code> and either the <code>VK_MVK_macos_surface</code> or <code>VK_EXT_metal_surface</code> extensions to create surfaces on macOS. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
+<p >GLFW uses the <code>VK_KHR_surface</code> and either the <code>VK_KHR_xlib_surface</code> or <code>VK_KHR_xcb_surface</code> extensions to create surfaces on X11. If <code>VK_KHR_surface</code> or both <code>VK_KHR_xlib_surface</code> and <code>VK_KHR_xcb_surface</code> are not available, <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail.</p>
+<p >GLFW uses the <code>VK_KHR_surface</code> and <code>VK_KHR_wayland_surface</code> extensions to create surfaces on Wayland. If any of these extensions are not available, <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> will return an empty list and window surface creation will fail. </p>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/compile_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: compile.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">compile.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">compile.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 120 - 101
glfw.mod/glfw/docs/html/compile_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Compiling GLFW</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,119 +60,140 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Compiling GLFW </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Compiling GLFW </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
-<ul><li class="level1"><a href="#compile_cmake">Using CMake</a><ul><li class="level2"><a href="#compile_deps">Dependencies</a><ul><li class="level3"><a href="#compile_deps_msvc">Dependencies for Visual C++ on Windows</a></li>
-<li class="level3"><a href="#compile_deps_mingw">Dependencies for MinGW or MinGW-w64 on Windows</a></li>
-<li class="level3"><a href="#compile_deps_mingw_cross">Dependencies for MinGW or MinGW-w64 cross-compilation</a></li>
-<li class="level3"><a href="#compile_deps_xcode">Dependencies for Xcode on macOS</a></li>
-<li class="level3"><a href="#compile_deps_x11">Dependencies for Linux and X11</a></li>
-<li class="level3"><a href="#compile_deps_wayland">Dependencies for Linux and Wayland</a></li>
+<ul><li class="level1"><a href="#compile_cmake">Using CMake</a><ul><li class="level2"><a href="#compile_deps">Installing dependencies</a><ul><li class="level3"><a href="#compile_deps_x11">Dependencies for X11 on Unix-like systems</a></li>
+<li class="level3"><a href="#compile_deps_wayland">Dependencies for Wayland on Unix-like systems</a></li>
 </ul>
 </li>
-<li class="level2"><a href="#compile_deps_osmesa">Dependencies for Linux and OSMesa</a></li>
-<li class="level2"><a href="#compile_generate">Generating build files with CMake</a><ul><li class="level3"><a href="#compile_generate_cli">Generating files with the CMake command-line tool</a></li>
-<li class="level3"><a href="#compile_generate_gui">Generating files with the CMake GUI</a></li>
+<li class="level2"><a href="#compile_generate">Generating build files with CMake</a><ul><li class="level3"><a href="#compile_generate_gui">Generating files with the CMake GUI</a></li>
+<li class="level3"><a href="#compile_generate_cli">Generating files with the CMake command-line tool</a></li>
 </ul>
 </li>
 <li class="level2"><a href="#compile_compile">Compiling the library</a></li>
-<li class="level2"><a href="#compile_options">CMake options</a><ul><li class="level3"><a href="#compile_options_shared">Shared CMake options</a></li>
-<li class="level3"><a href="#compile_options_win32">Windows specific CMake options</a></li>
 </ul>
 </li>
+<li class="level1"><a href="#compile_options">CMake options</a><ul><li class="level2"><a href="#compile_options_shared">Shared CMake options</a></li>
+<li class="level2"><a href="#compile_options_win32">Windows specific CMake options</a></li>
+<li class="level2"><a href="#compile_options_wayland">Wayland specific CMake options</a></li>
 </ul>
 </li>
+<li class="level1"><a href="#compile_mingw_cross">Cross-compilation with CMake and MinGW</a></li>
 <li class="level1"><a href="#compile_manual">Compiling GLFW manually</a></li>
 </ul>
 </div>
-<div class="textblock"><p>This is about compiling the GLFW library itself. For information on how to build applications that use GLFW, see <a class="el" href="build_guide.html">Building applications</a>.</p>
+<div class="textblock"><p >This is about compiling the GLFW library itself. For information on how to build applications that use GLFW, see <a class="el" href="build_guide.html">Building applications</a>.</p>
 <h1><a class="anchor" id="compile_cmake"></a>
 Using CMake</h1>
-<p>GLFW uses <a href="https://cmake.org/">CMake</a> to generate project files or makefiles for a particular development environment. If you are on a Unix-like system such as Linux or FreeBSD or have a package system like Fink, MacPorts, Cygwin or Homebrew, you can install its CMake package. If not, you can download installers for Windows and macOS from the <a href="https://cmake.org/">CMake website</a>.</p>
-<dl class="section note"><dt>Note</dt><dd>CMake only generates project files or makefiles. It does not compile the actual GLFW library. To compile GLFW, first generate these files for your chosen development environment and then use them to compile the actual GLFW library.</dd></dl>
+<dl class="section note"><dt>Note</dt><dd>GLFW behaves like most other libraries that use CMake so this guide mostly describes the basic configure/generate/compile sequence. If you are already familiar with this from other projects, you may want to focus on the <a class="el" href="compile_guide.html#compile_deps">Installing dependencies</a> and <a class="el" href="compile_guide.html#compile_options">CMake options</a> sections for GLFW-specific information.</dd></dl>
+<p>GLFW uses <a href="https://cmake.org/">CMake</a> to generate project files or makefiles for your chosen development environment. To compile GLFW, first generate these files with CMake and then use them to compile the GLFW library.</p>
+<p >If you are on Windows and macOS you can <a href="https://cmake.org/download/">download CMake</a> from their site.</p>
+<p >If you are on a Unix-like system such as Linux, FreeBSD or Cygwin or have a package system like Fink, MacPorts or Homebrew, you can install its CMake package.</p>
+<p >CMake is a complex tool and this guide will only show a few of the possible ways to set up and compile GLFW. The CMake project has their own much more detailed <a href="https://cmake.org/cmake/help/latest/guide/user-interaction/">CMake user guide</a> that includes everything in this guide not specific to GLFW. It may be a useful companion to this one.</p>
 <h2><a class="anchor" id="compile_deps"></a>
-Dependencies</h2>
-<p>Once you have installed CMake, make sure that all other dependencies are available. On some platforms, GLFW needs a few additional packages to be installed. See the section for your chosen platform and development environment below.</p>
-<h3><a class="anchor" id="compile_deps_msvc"></a>
-Dependencies for Visual C++ on Windows</h3>
-<p>The Windows SDK bundled with Visual C++ already contains all the necessary headers, link libraries and tools except for CMake. Move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
-<h3><a class="anchor" id="compile_deps_mingw"></a>
-Dependencies for MinGW or MinGW-w64 on Windows</h3>
-<p>Both the MinGW and the MinGW-w64 packages already contain all the necessary headers, link libraries and tools except for CMake. Move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
-<h3><a class="anchor" id="compile_deps_mingw_cross"></a>
-Dependencies for MinGW or MinGW-w64 cross-compilation</h3>
-<p>Both Cygwin and many Linux distributions have MinGW or MinGW-w64 packages. For example, Cygwin has the <code>mingw64-i686-gcc</code> and <code>mingw64-x86_64-gcc</code> packages for 32- and 64-bit version of MinGW-w64, while Debian GNU/Linux and derivatives like Ubuntu have the <code>mingw-w64</code> package for both.</p>
-<p>GLFW has CMake toolchain files in the <code>CMake/</code> directory that set up cross-compilation of Windows binaries. To use these files you add an option when running <code>cmake</code> to generate the project files or makefiles:</p>
-<div class="fragment"><div class="line">cmake -DCMAKE_TOOLCHAIN_FILE=&lt;toolchain-file&gt; .</div>
-</div><!-- fragment --><p>The exact toolchain file to use depends on the prefix used by the MinGW or MinGW-w64 binaries on your system. You can usually see this in the /usr directory. For example, both the Debian/Ubuntu and Cygwin MinGW-w64 packages have <code>/usr/x86_64-w64-mingw32</code> for the 64-bit compilers, so the correct invocation would be:</p>
-<div class="fragment"><div class="line">cmake -DCMAKE_TOOLCHAIN_FILE=CMake/x86_64-w64-mingw32.cmake .</div>
-</div><!-- fragment --><p>For more details see the article <a href="https://gitlab.kitware.com/cmake/community/wikis/doc/cmake/CrossCompiling">CMake Cross Compiling</a> on the CMake wiki.</p>
-<p>Once you have this set up, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
-<h3><a class="anchor" id="compile_deps_xcode"></a>
-Dependencies for Xcode on macOS</h3>
-<p>Xcode comes with all necessary tools except for CMake. The required headers and libraries are included in the core macOS frameworks. Xcode can be downloaded from the Mac App Store or from the ADC Member Center.</p>
-<p>Once you have Xcode installed, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
+Installing dependencies</h2>
+<p >The C/C++ development environments in Visual Studio, Xcode and MinGW come with all necessary dependencies for compiling GLFW, but on Unix-like systems like Linux and FreeBSD you will need a few extra packages.</p>
 <h3><a class="anchor" id="compile_deps_x11"></a>
-Dependencies for Linux and X11</h3>
-<p>To compile GLFW for X11, you need to have the X11 packages installed, as well as the basic development tools like GCC and make. For example, on Ubuntu and other distributions based on Debian GNU/Linux, you need to install the <code>xorg-dev</code> package, which pulls in all X.org header packages.</p>
-<p>Once you have installed the necessary packages, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
+Dependencies for X11 on Unix-like systems</h3>
+<p >To compile GLFW for X11, you need to have the X11 development packages installed. They are not needed to build or run programs that use GLFW.</p>
+<p >On Debian and derivates like Ubuntu and Linux Mint the <code>xorg-dev</code> meta-package pulls in the development packages for all of X11.</p>
+<div class="fragment"><div class="line">sudo apt install xorg-dev</div>
+</div><!-- fragment --><p >On Fedora and derivatives like Red Hat the X11 extension packages <code>libXcursor-devel</code>, <code>libXi-devel</code>, <code>libXinerama-devel</code> and <code>libXrandr-devel</code> required by GLFW pull in all its other dependencies.</p>
+<div class="fragment"><div class="line">sudo dnf install libXcursor-devel libXi-devel libXinerama-devel libXrandr-devel</div>
+</div><!-- fragment --><p >On FreeBSD the X11 headers are installed along the end-user X11 packages, so if you have an X server running you should have the headers as well. If not, install the <code>xorgproto</code> package.</p>
+<div class="fragment"><div class="line">pkg install xorgproto</div>
+</div><!-- fragment --><p >On Cygwin the <code>libXcursor-devel</code>, <code>libXi-devel</code>, <code>libXinerama-devel</code>, <code>libXrandr-devel</code> and <code>libXrender-devel</code> packages in the Libs section of the GUI installer will install all the headers and other development related files GLFW requires for X11.</p>
+<p >Once you have the required depdendencies, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
 <h3><a class="anchor" id="compile_deps_wayland"></a>
-Dependencies for Linux and Wayland</h3>
-<p>To compile GLFW for Wayland, you need to have the Wayland packages installed, as well as the basic development tools like GCC and make. For example, on Ubuntu and other distributions based on Debian GNU/Linux, you need to install the <code>libwayland-dev</code> package, which contains all Wayland headers and pulls in wayland-scanner, as well as the <code>wayland-protocols</code> and <code>extra-cmake-modules</code> packages.</p>
-<p>Once you have installed the necessary packages, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
-<h2><a class="anchor" id="compile_deps_osmesa"></a>
-Dependencies for Linux and OSMesa</h2>
-<p>To compile GLFW for OSMesa, you need to install the OSMesa library and header packages. For example, on Ubuntu and other distributions based on Debian GNU/Linux, you need to install the <code>libosmesa6-dev</code> package. The OSMesa library is required at runtime for context creation and is loaded on demand.</p>
-<p>Once you have installed the necessary packages, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
+Dependencies for Wayland on Unix-like systems</h3>
+<p >To compile GLFW for Wayland, you need to have the Wayland and xkbcommon development packages installed. They are not needed to build or run programs that use GLFW.</p>
+<p >On Debian and derivates like Ubuntu and Linux Mint you will need the <code>libwayland-dev</code>, <code>libxkbcommon-dev</code>, <code>wayland-protocols</code> and <code>extra-cmake-modules</code> packages.</p>
+<div class="fragment"><div class="line">sudo apt install libwayland-dev libxkbcommon-dev wayland-protocols extra-cmake-modules</div>
+</div><!-- fragment --><p >On Fedora and derivatives like Red Hat you will need the <code>wayland-devel</code>, <code>libxkbcommon-devel</code>, <code>wayland-protocols-devel</code> and <code>extra-cmake-modules</code> packages.</p>
+<div class="fragment"><div class="line">sudo dnf install wayland-devel libxkbcommon-devel wayland-protocols-devel extra-cmake-modules</div>
+</div><!-- fragment --><p >On FreeBSD you will need the <code>wayland</code>, <code>libxkbcommon</code>, <code>wayland-protocols</code> and <code>kf5-extra-cmake-modules</code> packages.</p>
+<div class="fragment"><div class="line">pkg install wayland libxkbcommon wayland-protocols kf5-extra-cmake-modules</div>
+</div><!-- fragment --><p >Once you have the required depdendencies, move on to <a class="el" href="compile_guide.html#compile_generate">Generating build files with CMake</a>.</p>
 <h2><a class="anchor" id="compile_generate"></a>
 Generating build files with CMake</h2>
-<p>Once you have all necessary dependencies it is time to generate the project files or makefiles for your development environment. CMake needs to know two paths for this: the path to the <em>root</em> directory of the GLFW source tree (i.e. <em>not</em> the <code>src</code> subdirectory) and the target path for the generated files and compiled binaries. If these are the same, it is called an in-tree build, otherwise it is called an out-of-tree build.</p>
-<p>One of several advantages of out-of-tree builds is that you can generate files and compile for different development environments using a single source tree.</p>
-<dl class="section note"><dt>Note</dt><dd>This section is about generating the project files or makefiles necessary to compile the GLFW library, not about compiling the actual library.</dd></dl>
-<h3><a class="anchor" id="compile_generate_cli"></a>
-Generating files with the CMake command-line tool</h3>
-<p>To make an in-tree build, enter the <em>root</em> directory of the GLFW source tree (i.e. <em>not</em> the <code>src</code> subdirectory) and run CMake. The current directory is used as target path, while the path provided as an argument is used to find the source tree.</p>
-<div class="fragment"><div class="line">cd &lt;glfw-root-dir&gt;</div>
-<div class="line">cmake .</div>
-</div><!-- fragment --><p>To make an out-of-tree build, make a directory outside of the source tree, enter it and run CMake with the (relative or absolute) path to the root of the source tree as an argument.</p>
-<div class="fragment"><div class="line">mkdir glfw-build</div>
-<div class="line">cd glfw-build</div>
-<div class="line">cmake &lt;glfw-root-dir&gt;</div>
-</div><!-- fragment --><p>Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
+<p >Once you have all necessary dependencies it is time to generate the project files or makefiles for your development environment. CMake needs two paths for this:</p>
+<ul>
+<li>the path to the root directory of the GLFW source tree (not its <code>src</code> subdirectory)</li>
+<li>the path to the directory where the generated build files and compiled binaries will be placed</li>
+</ul>
+<p >If these are the same, it is called an in-tree build, otherwise it is called an out-of-tree build.</p>
+<p >Out-of-tree builds are recommended as they avoid cluttering up the source tree. They also allow you to have several build directories for different configurations all using the same source tree.</p>
+<p >A common pattern when building a single configuration is to have a build directory named <code>build</code> in the root of the source tree.</p>
 <h3><a class="anchor" id="compile_generate_gui"></a>
 Generating files with the CMake GUI</h3>
-<p>If you are using the GUI version, choose the root of the GLFW source tree as source location and the same directory or another, empty directory as the destination for binaries. Choose <em>Configure</em>, change any options you wish to, <em>Configure</em> again to let the changes take effect and then <em>Generate</em>.</p>
-<p>Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
+<p >Start the CMake GUI and set the paths to the source and build directories described above. Then press <em>Configure</em> and <em>Generate</em>.</p>
+<p >If you wish change any CMake variables in the list, press <em>Configure</em> and then <em>Generate</em> to have the new values take effect. The variable list will be populated after the first configure step.</p>
+<p >By default GLFW will use X11 on Linux and other Unix-like systems other than macOS. To use Wayland instead, set the <code>GLFW_USE_WAYLAND</code> option in the GLFW section of the variable list, then apply the new value as described above.</p>
+<p >Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
+<h3><a class="anchor" id="compile_generate_cli"></a>
+Generating files with the CMake command-line tool</h3>
+<p >To make a build directory, pass the source and build directories to the <code>cmake</code> command. These can be relative or absolute paths. The build directory is created if it doesn't already exist.</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build</div>
+</div><!-- fragment --><p >It is common to name the build directory <code>build</code> and place it in the root of the source tree when only planning to build a single configuration.</p>
+<div class="fragment"><div class="line">cd path/to/glfw</div>
+<div class="line">cmake -S . -B build</div>
+</div><!-- fragment --><p >Without other flags these will generate Visual Studio project files on Windows and makefiles on other platforms. You can choose other targets using the <code>-G</code> flag.</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build -G Xcode</div>
+</div><!-- fragment --><p >By default GLFW will use X11 on Linux and other Unix-like systems other than macOS. To use Wayland instead, set the <code>GLFW_USE_WAYLAND</code> CMake option.</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build -D GLFW_USE_WAYLAND=1</div>
+</div><!-- fragment --><p >Once you have generated the project files or makefiles for your chosen development environment, move on to <a class="el" href="compile_guide.html#compile_compile">Compiling the library</a>.</p>
 <h2><a class="anchor" id="compile_compile"></a>
 Compiling the library</h2>
-<p>You should now have all required dependencies and the project files or makefiles necessary to compile GLFW. Go ahead and compile the actual GLFW library with these files, as you would with any other project.</p>
-<p>Once the GLFW library is compiled, you are ready to build your applications, linking it to the GLFW library. See <a class="el" href="build_guide.html">Building applications</a> for more information.</p>
-<h2><a class="anchor" id="compile_options"></a>
-CMake options</h2>
-<p>The CMake files for GLFW provide a number of options, although not all are available on all supported platforms. Some of these are de facto standards among projects using CMake and so have no <code>GLFW_</code> prefix.</p>
-<p>If you are using the GUI version of CMake, these are listed and can be changed from there. If you are using the command-line version of CMake you can use the <code>ccmake</code> ncurses GUI to set options. Some package systems like Ubuntu and other distributions based on Debian GNU/Linux have this tool in a separate <code>cmake-curses-gui</code> package.</p>
-<p>Finally, if you don't want to use any GUI, you can set options from the <code>cmake</code> command-line with the <code>-D</code> flag.</p>
-<div class="fragment"><div class="line">cmake -DBUILD_SHARED_LIBS=ON .</div>
-</div><!-- fragment --><h3><a class="anchor" id="compile_options_shared"></a>
-Shared CMake options</h3>
-<p><a class="anchor" id="BUILD_SHARED_LIBS"></a><b>BUILD_SHARED_LIBS</b> determines whether GLFW is built as a static library or as a DLL / shared library / dynamic library.</p>
-<p><a class="anchor" id="GLFW_BUILD_EXAMPLES"></a><b>GLFW_BUILD_EXAMPLES</b> determines whether the GLFW examples are built along with the library.</p>
-<p><a class="anchor" id="GLFW_BUILD_TESTS"></a><b>GLFW_BUILD_TESTS</b> determines whether the GLFW test programs are built along with the library.</p>
-<p><a class="anchor" id="GLFW_BUILD_DOCS"></a><b>GLFW_BUILD_DOCS</b> determines whether the GLFW documentation is built along with the library.</p>
-<p><a class="anchor" id="GLFW_VULKAN_STATIC"></a><b>GLFW_VULKAN_STATIC</b> determines whether to use the Vulkan loader linked directly with the application.</p>
-<h3><a class="anchor" id="compile_options_win32"></a>
-Windows specific CMake options</h3>
-<p><a class="anchor" id="USE_MSVC_RUNTIME_LIBRARY_DLL"></a><b>USE_MSVC_RUNTIME_LIBRARY_DLL</b> determines whether to use the DLL version or the static library version of the Visual C++ runtime library. If set to <code>ON</code>, the DLL version of the Visual C++ library is used.</p>
-<p><a class="anchor" id="GLFW_USE_HYBRID_HPG"></a><b>GLFW_USE_HYBRID_HPG</b> determines whether to export the <code>NvOptimusEnablement</code> and <code>AmdPowerXpressRequestHighPerformance</code> symbols, which force the use of the high-performance GPU on Nvidia Optimus and AMD PowerXpress systems. These symbols need to be exported by the EXE to be detected by the driver, so the override will not work if GLFW is built as a DLL.</p>
+<p >You should now have all required dependencies and the project files or makefiles necessary to compile GLFW. Go ahead and compile the actual GLFW library with these files as you would with any other project.</p>
+<p >With Visual Studio open <code>GLFW.sln</code> and use the Build menu. With Xcode open <code>GLFW.xcodeproj</code> and use the Project menu.</p>
+<p >With Linux, macOS and other forms of Unix, run <code>make</code>.</p>
+<div class="fragment"><div class="line">cd path/to/build</div>
+<div class="line">make</div>
+</div><!-- fragment --><p >With MinGW, it is <code>mingw32-make</code>.</p>
+<div class="fragment"><div class="line">cd path/to/build</div>
+<div class="line">mingw32-make</div>
+</div><!-- fragment --><p >Any CMake build directory can also be built with the <code>cmake</code> command and the <code>--build</code> flag.</p>
+<div class="fragment"><div class="line">cmake --build path/to/build</div>
+</div><!-- fragment --><p >This will run the platform specific build tool the directory was generated for.</p>
+<p >Once the GLFW library is compiled you are ready to build your application, linking it to the GLFW library. See <a class="el" href="build_guide.html">Building applications</a> for more information.</p>
+<h1><a class="anchor" id="compile_options"></a>
+CMake options</h1>
+<p >The CMake files for GLFW provide a number of options, although not all are available on all supported platforms. Some of these are de facto standards among projects using CMake and so have no <code>GLFW_</code> prefix.</p>
+<p >If you are using the GUI version of CMake, these are listed and can be changed from there. If you are using the command-line version of CMake you can use the <code>ccmake</code> ncurses GUI to set options. Some package systems like Ubuntu and other distributions based on Debian GNU/Linux have this tool in a separate <code>cmake-curses-gui</code> package.</p>
+<p >Finally, if you don't want to use any GUI, you can set options from the <code>cmake</code> command-line with the <code>-D</code> flag.</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build -D BUILD_SHARED_LIBS=ON</div>
+</div><!-- fragment --><h2><a class="anchor" id="compile_options_shared"></a>
+Shared CMake options</h2>
+<p ><a class="anchor" id="BUILD_SHARED_LIBS"></a><b>BUILD_SHARED_LIBS</b> determines whether GLFW is built as a static library or as a DLL / shared library / dynamic library. This is disabled by default, producing a static GLFW library.</p>
+<p ><a class="anchor" id="GLFW_BUILD_EXAMPLES"></a><b>GLFW_BUILD_EXAMPLES</b> determines whether the GLFW examples are built along with the library.</p>
+<p ><a class="anchor" id="GLFW_BUILD_TESTS"></a><b>GLFW_BUILD_TESTS</b> determines whether the GLFW test programs are built along with the library.</p>
+<p ><a class="anchor" id="GLFW_BUILD_DOCS"></a><b>GLFW_BUILD_DOCS</b> determines whether the GLFW documentation is built along with the library. This is enabled by default if <a href="https://www.doxygen.nl/">Doxygen</a> is found by CMake during configuration.</p>
+<p ><a class="anchor" id="GLFW_VULKAN_STATIC"></a><b>GLFW_VULKAN_STATIC</b> determines whether to use the Vulkan loader linked directly with the application. This is disabled by default.</p>
+<h2><a class="anchor" id="compile_options_win32"></a>
+Windows specific CMake options</h2>
+<p ><a class="anchor" id="USE_MSVC_RUNTIME_LIBRARY_DLL"></a><b>USE_MSVC_RUNTIME_LIBRARY_DLL</b> determines whether to use the DLL version or the static library version of the Visual C++ runtime library. When enabled, the DLL version of the Visual C++ library is used. This is enabled by default.</p>
+<p >On CMake 3.15 and later you can set the standard CMake <a href="https://cmake.org/cmake/help/latest/variable/CMAKE_MSVC_RUNTIME_LIBRARY.html">CMAKE_MSVC_RUNTIME_LIBRARY</a> variable instead of this GLFW-specific option.</p>
+<p ><a class="anchor" id="GLFW_USE_HYBRID_HPG"></a><b>GLFW_USE_HYBRID_HPG</b> determines whether to export the <code>NvOptimusEnablement</code> and <code>AmdPowerXpressRequestHighPerformance</code> symbols, which force the use of the high-performance GPU on Nvidia Optimus and AMD PowerXpress systems. These symbols need to be exported by the EXE to be detected by the driver, so the override will not work if GLFW is built as a DLL. This is disabled by default, letting the operating system and driver decide.</p>
+<h2><a class="anchor" id="compile_options_wayland"></a>
+Wayland specific CMake options</h2>
+<p ><a class="anchor" id="GLFW_USE_WAYLAND"></a><b>GLFW_USE_WAYLAND</b> determines whether to compile the library for Wayland. This option is only available on Linux and other Unix-like systems other than macOS. This is disabled by default.</p>
+<h1><a class="anchor" id="compile_mingw_cross"></a>
+Cross-compilation with CMake and MinGW</h1>
+<p >Both Cygwin and many Linux distributions have MinGW or MinGW-w64 packages. For example, Cygwin has the <code>mingw64-i686-gcc</code> and <code>mingw64-x86_64-gcc</code> packages for 32- and 64-bit version of MinGW-w64, while Debian GNU/Linux and derivatives like Ubuntu have the <code>mingw-w64</code> package for both.</p>
+<p >GLFW has CMake toolchain files in the <code>CMake</code> subdirectory that set up cross-compilation of Windows binaries. To use these files you set the <code>CMAKE_TOOLCHAIN_FILE</code> CMake variable with the <code>-D</code> flag add an option when configuring and generating the build files.</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build -D CMAKE_TOOLCHAIN_FILE=path/to/file</div>
+</div><!-- fragment --><p >The exact toolchain file to use depends on the prefix used by the MinGW or MinGW-w64 binaries on your system. You can usually see this in the /usr directory. For example, both the Ubuntu and Cygwin MinGW-w64 packages have <code>/usr/x86_64-w64-mingw32</code> for the 64-bit compilers, so the correct invocation would be:</p>
+<div class="fragment"><div class="line">cmake -S path/to/glfw -B path/to/build -D CMAKE_TOOLCHAIN_FILE=CMake/x86_64-w64-mingw32.cmake</div>
+</div><!-- fragment --><p >The path to the toolchain file is relative to the path to the GLFW source tree passed to the <code>-S</code> flag, not to the current directory.</p>
+<p >For more details see the <a href="https://cmake.org/cmake/help/latest/manual/cmake-toolchains.7.html">CMake toolchain guide</a>.</p>
 <h1><a class="anchor" id="compile_manual"></a>
 Compiling GLFW manually</h1>
-<p>If you wish to compile GLFW without its CMake build environment then you will have to do at least some of the platform detection yourself. GLFW needs a configuration macro to be defined in order to know what window system it's being compiled for and also has optional, platform-specific ones for various features.</p>
-<p>When building with CMake, the <code>glfw_config.h</code> configuration header is generated based on the current platform and CMake options. The GLFW CMake environment defines <b>GLFW_USE_CONFIG_H</b>, which causes this header to be included by <code>internal.h</code>. Without this macro, GLFW will expect the necessary configuration macros to be defined on the command-line.</p>
-<p>The window creation API is used to create windows, handle input, monitors, gamma ramps and clipboard. The options are:</p>
+<p >If you wish to compile GLFW without its CMake build environment then you will have to do at least some of the platform detection yourself. GLFW needs a configuration macro to be defined in order to know what window system it is being compiled for and also has optional, platform-specific ones for various features.</p>
+<p >When building with CMake, the <code>glfw_config.h</code> configuration header is generated based on the current platform and CMake options. The GLFW CMake environment defines <b>GLFW_USE_CONFIG_H</b>, which causes this header to be included by <code>internal.h</code>. Without this macro, GLFW will expect the necessary configuration macros to be defined on the command-line.</p>
+<p >The window creation API is used to create windows, handle input, monitors, gamma ramps and clipboard. The options are:</p>
 <ul>
 <li><b>_GLFW_COCOA</b> to use the Cocoa frameworks</li>
 <li><b>_GLFW_WIN32</b> to use the Win32 API</li>
@@ -178,19 +201,15 @@ Compiling GLFW manually</h1>
 <li><b>_GLFW_WAYLAND</b> to use the Wayland API (experimental and incomplete)</li>
 <li><b>_GLFW_OSMESA</b> to use the OSMesa API (headless and non-interactive)</li>
 </ul>
-<p>If you are building GLFW as a shared library / dynamic library / DLL then you must also define <b>_GLFW_BUILD_DLL</b>. Otherwise, you must not define it.</p>
-<p>If you are linking the Vulkan loader directly with your application then you must also define <b>_GLFW_VULKAN_STATIC</b>. Otherwise, GLFW will attempt to use the external version.</p>
-<p>If you are using a custom name for the Vulkan, EGL, GLX, OSMesa, OpenGL, GLESv1 or GLESv2 library, you can override the default names by defining those you need of <b>_GLFW_VULKAN_LIBRARY</b>, <b>_GLFW_EGL_LIBRARY</b>, <b>_GLFW_GLX_LIBRARY</b>, <b>_GLFW_OSMESA_LIBRARY</b>, <b>_GLFW_OPENGL_LIBRARY</b>, <b>_GLFW_GLESV1_LIBRARY</b> and <b>_GLFW_GLESV2_LIBRARY</b>. Otherwise, GLFW will use the built-in default names.</p>
-<p>For the EGL context creation API, the following options are available:</p>
-<ul>
-<li><b>_GLFW_USE_EGLPLATFORM_H</b> to use an existing <code>EGL/eglplatform.h</code> header file for native handle types (fallback)</li>
-</ul>
+<p >If you are building GLFW as a shared library / dynamic library / DLL then you must also define <b>_GLFW_BUILD_DLL</b>. Otherwise, you must not define it.</p>
+<p >If you are linking the Vulkan loader directly with your application then you must also define <b>_GLFW_VULKAN_STATIC</b>. Otherwise, GLFW will attempt to use the external version.</p>
+<p >If you are using a custom name for the Vulkan, EGL, GLX, OSMesa, OpenGL, GLESv1 or GLESv2 library, you can override the default names by defining those you need of <b>_GLFW_VULKAN_LIBRARY</b>, <b>_GLFW_EGL_LIBRARY</b>, <b>_GLFW_GLX_LIBRARY</b>, <b>_GLFW_OSMESA_LIBRARY</b>, <b>_GLFW_OPENGL_LIBRARY</b>, <b>_GLFW_GLESV1_LIBRARY</b> and <b>_GLFW_GLESV2_LIBRARY</b>. Otherwise, GLFW will use the built-in default names.</p>
 <dl class="section note"><dt>Note</dt><dd>None of the <a class="el" href="build_guide.html#build_macros">GLFW header option macros</a> may be defined during the compilation of GLFW. If you define any of these in your build files, make sure they are not applied to the GLFW sources. </dd></dl>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/context_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: context.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">context.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">context.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 91 - 90
glfw.mod/glfw/docs/html/context_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Context guide</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Context guide </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Context guide </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -82,7 +83,7 @@ $(function() {
 </li>
 </ul>
 </div>
-<div class="textblock"><p>This guide introduces the OpenGL and OpenGL ES context related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__context.html">Context reference</a>. There are also guides for the other areas of the GLFW API.</p>
+<div class="textblock"><p >This guide introduces the OpenGL and OpenGL ES context related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__context.html">Context reference</a>. There are also guides for the other areas of the GLFW API.</p>
 <ul>
 <li><a class="el" href="intro_guide.html">Introduction to the API</a></li>
 <li><a class="el" href="window_guide.html">Window guide</a></li>
@@ -92,41 +93,48 @@ $(function() {
 </ul>
 <h1><a class="anchor" id="context_object"></a>
 Context objects</h1>
-<p>A window object encapsulates both a top-level window and an OpenGL or OpenGL ES context. It is created with <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> and destroyed with <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>. See <a class="el" href="window_guide.html#window_creation">Window creation</a> for more information.</p>
-<p>As the window and context are inseparably linked, the window object also serves as the context handle.</p>
-<p>To test the creation of various kinds of contexts and see their properties, run the <code>glfwinfo</code> test program.</p>
+<p >A window object encapsulates both a top-level window and an OpenGL or OpenGL ES context. It is created with <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> and destroyed with <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>. See <a class="el" href="window_guide.html#window_creation">Window creation</a> for more information.</p>
+<p >As the window and context are inseparably linked, the window object also serves as the context handle.</p>
+<p >To test the creation of various kinds of contexts and see their properties, run the <code>glfwinfo</code> test program.</p>
 <dl class="section note"><dt>Note</dt><dd>Vulkan does not have a context and the Vulkan instance is created via the Vulkan API itself. If you will be using Vulkan to render to a window, disable context creation by setting the <a class="el" href="window_guide.html#GLFW_CLIENT_API_hint">GLFW_CLIENT_API</a> hint to <code>GLFW_NO_API</code>. For more information, see the <a class="el" href="vulkan_guide.html">Vulkan guide</a>.</dd></dl>
 <h2><a class="anchor" id="context_hints"></a>
 Context creation hints</h2>
-<p>There are a number of hints, specified using <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>, related to what kind of context is created. See <a class="el" href="window_guide.html#window_hints_ctx">context related hints</a> in the window guide.</p>
+<p >There are a number of hints, specified using <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>, related to what kind of context is created. See <a class="el" href="window_guide.html#window_hints_ctx">context related hints</a> in the window guide.</p>
 <h2><a class="anchor" id="context_sharing"></a>
 Context object sharing</h2>
-<p>When creating a window and its OpenGL or OpenGL ES context with <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>, you can specify another window whose context the new one should share its objects (textures, vertex and element buffers, etc.) with.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* second_window = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;Second Window&quot;</span>, NULL, first_window);</div>
-</div><!-- fragment --><p>Object sharing is implemented by the operating system and graphics driver. On platforms where it is possible to choose which types of objects are shared, GLFW requests that all types are shared.</p>
-<p>See the relevant chapter of the <a href="https://www.opengl.org/registry/">OpenGL</a> or <a href="https://www.khronos.org/opengles/">OpenGL ES</a> reference documents for more information. The name and number of this chapter unfortunately varies between versions and APIs, but has at times been named <em>Shared Objects and Multiple Contexts</em>.</p>
-<p>GLFW comes with a barebones object sharing example program called <code>sharing</code>.</p>
+<p >When creating a window and its OpenGL or OpenGL ES context with <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>, you can specify another window whose context the new one should share its objects (textures, vertex and element buffers, etc.) with.</p>
+<div class="fragment"><div class="line"><a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* second_window = <a class="code hl_function" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;Second Window&quot;</span>, NULL, first_window);</div>
+<div class="ttc" id="agroup__window_html_ga3555a418df92ad53f917597fe2f64aeb"><div class="ttname"><a href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
+<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1185</div></div>
+</div><!-- fragment --><p >Object sharing is implemented by the operating system and graphics driver. On platforms where it is possible to choose which types of objects are shared, GLFW requests that all types are shared.</p>
+<p >See the relevant chapter of the <a href="https://www.opengl.org/registry/">OpenGL</a> or <a href="https://www.khronos.org/opengles/">OpenGL ES</a> reference documents for more information. The name and number of this chapter unfortunately varies between versions and APIs, but has at times been named <em>Shared Objects and Multiple Contexts</em>.</p>
+<p >GLFW comes with a barebones object sharing example program called <code>sharing</code>.</p>
 <h2><a class="anchor" id="context_offscreen"></a>
 Offscreen contexts</h2>
-<p>GLFW doesn't support creating contexts without an associated window. However, contexts with hidden windows can be created with the <a class="el" href="window_guide.html#GLFW_VISIBLE_hint">GLFW_VISIBLE</a> window hint.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>(<a class="code" href="group__window.html#gafb3cdc45297e06d8f1eb13adc69ca6c4">GLFW_VISIBLE</a>, <a class="code" href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a>);</div>
+<p >GLFW doesn't support creating contexts without an associated window. However, contexts with hidden windows can be created with the <a class="el" href="window_guide.html#GLFW_VISIBLE_hint">GLFW_VISIBLE</a> window hint.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>(<a class="code hl_define" href="group__window.html#gafb3cdc45297e06d8f1eb13adc69ca6c4">GLFW_VISIBLE</a>, <a class="code hl_define" href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a>);</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* offscreen_context = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;&quot;</span>, NULL, NULL);</div>
-</div><!-- fragment --><p>The window never needs to be shown and its context can be used as a plain offscreen context. Depending on the window manager, the size of a hidden window's framebuffer may not be usable or modifiable, so framebuffer objects are recommended for rendering with such contexts.</p>
-<p>You should still <a class="el" href="input_guide.html#events">process events</a> as long as you have at least one window, even if none of them are visible.</p>
-<p><b>macOS:</b> The first time a window is created the menu bar is created. This is not desirable for example when writing a command-line only application. Menu bar creation can be disabled with the <a class="el" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">GLFW_COCOA_MENUBAR</a> init hint.</p>
+<div class="line"><a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* offscreen_context = <a class="code hl_function" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;&quot;</span>, NULL, NULL);</div>
+<div class="ttc" id="agroup__init_html_gac877fe3b627d21ef3a0a23e0a73ba8c5"><div class="ttname"><a href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a></div><div class="ttdeci">#define GLFW_FALSE</div><div class="ttdoc">Zero.</div><div class="ttdef"><b>Definition:</b> glfw3.h:321</div></div>
+<div class="ttc" id="agroup__window_html_ga7d9c8c62384b1e2821c4dc48952d2033"><div class="ttname"><a href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a></div><div class="ttdeci">void glfwWindowHint(int hint, int value)</div><div class="ttdoc">Sets the specified window hint to the desired value.</div></div>
+<div class="ttc" id="agroup__window_html_gafb3cdc45297e06d8f1eb13adc69ca6c4"><div class="ttname"><a href="group__window.html#gafb3cdc45297e06d8f1eb13adc69ca6c4">GLFW_VISIBLE</a></div><div class="ttdeci">#define GLFW_VISIBLE</div><div class="ttdoc">Window visibility window hint and attribute.</div><div class="ttdef"><b>Definition:</b> glfw3.h:814</div></div>
+</div><!-- fragment --><p >The window never needs to be shown and its context can be used as a plain offscreen context. Depending on the window manager, the size of a hidden window's framebuffer may not be usable or modifiable, so framebuffer objects are recommended for rendering with such contexts.</p>
+<p >You should still <a class="el" href="input_guide.html#events">process events</a> as long as you have at least one window, even if none of them are visible.</p>
+<p ><b>macOS:</b> The first time a window is created the menu bar is created. This is not desirable for example when writing a command-line only application. Menu bar creation can be disabled with the <a class="el" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">GLFW_COCOA_MENUBAR</a> init hint.</p>
 <h2><a class="anchor" id="context_less"></a>
 Windows without contexts</h2>
-<p>You can disable context creation by setting the <a class="el" href="window_guide.html#GLFW_CLIENT_API_hint">GLFW_CLIENT_API</a> hint to <code>GLFW_NO_API</code>. Windows without contexts must not be passed to <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> or <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>.</p>
+<p >You can disable context creation by setting the <a class="el" href="window_guide.html#GLFW_CLIENT_API_hint">GLFW_CLIENT_API</a> hint to <code>GLFW_NO_API</code>. Windows without contexts must not be passed to <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> or <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>.</p>
 <h1><a class="anchor" id="context_current"></a>
 Current context</h1>
-<p>Before you can make OpenGL or OpenGL ES calls, you need to have a current context of the correct type. A context can only be current for a single thread at a time, and a thread can only have a single context current at a time.</p>
-<p>When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.</p>
-<p>The context of a window is made current with <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div>
-</div><!-- fragment --><p>The window of the current context is returned by <a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window = <a class="code" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a>();</div>
-</div><!-- fragment --><p>The following GLFW functions require a context to be current. Calling any these functions without a current context will generate a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
+<p >Before you can make OpenGL or OpenGL ES calls, you need to have a current context of the correct type. A context can only be current for a single thread at a time, and a thread can only have a single context current at a time.</p>
+<p >When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.</p>
+<p >The context of a window is made current with <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div>
+<div class="ttc" id="agroup__context_html_ga1c04dc242268f827290fe40aa1c91157"><div class="ttname"><a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a></div><div class="ttdeci">void glfwMakeContextCurrent(GLFWwindow *window)</div><div class="ttdoc">Makes the context of the specified window current for the calling thread.</div></div>
+</div><!-- fragment --><p >The window of the current context is returned by <a class="el" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window = <a class="code hl_function" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a>();</div>
+<div class="ttc" id="agroup__context_html_gad94e80185397a6cf5fe2ab30567af71c"><div class="ttname"><a href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a></div><div class="ttdeci">GLFWwindow * glfwGetCurrentContext(void)</div><div class="ttdoc">Returns the window whose context is current on the calling thread.</div></div>
+</div><!-- fragment --><p >The following GLFW functions require a context to be current. Calling any these functions without a current context will generate a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
 <ul>
 <li><a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a></li>
 <li><a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></li>
@@ -134,116 +142,109 @@ Current context</h1>
 </ul>
 <h1><a class="anchor" id="context_swap"></a>
 Buffer swapping</h1>
-<p>See <a class="el" href="window_guide.html#buffer_swap">Buffer swapping</a> in the window guide.</p>
+<p >See <a class="el" href="window_guide.html#buffer_swap">Buffer swapping</a> in the window guide.</p>
 <h1><a class="anchor" id="context_glext"></a>
 OpenGL and OpenGL ES extensions</h1>
-<p>One of the benefits of OpenGL and OpenGL ES is their extensibility. Hardware vendors may include extensions in their implementations that extend the API before that functionality is included in a new version of the OpenGL or OpenGL ES specification, and some extensions are never included and remain as extensions until they become obsolete.</p>
-<p>An extension is defined by:</p>
+<p >One of the benefits of OpenGL and OpenGL ES is their extensibility. Hardware vendors may include extensions in their implementations that extend the API before that functionality is included in a new version of the OpenGL or OpenGL ES specification, and some extensions are never included and remain as extensions until they become obsolete.</p>
+<p >An extension is defined by:</p>
 <ul>
-<li>An extension name (e.g. <code>GL_ARB_debug_output</code>)</li>
-<li>New OpenGL tokens (e.g. <code>GL_DEBUG_SEVERITY_HIGH_ARB</code>)</li>
-<li>New OpenGL functions (e.g. <code>glGetDebugMessageLogARB</code>)</li>
+<li>An extension name (e.g. <code>GL_ARB_gl_spirv</code>)</li>
+<li>New OpenGL tokens (e.g. <code>GL_SPIR_V_BINARY_ARB</code>)</li>
+<li>New OpenGL functions (e.g. <code>glSpecializeShaderARB</code>)</li>
 </ul>
-<p>Note the <code>ARB</code> affix, which stands for Architecture Review Board and is used for official extensions. The extension above was created by the ARB, but there are many different affixes, like <code>NV</code> for Nvidia and <code>AMD</code> for, well, AMD. Any group may also use the generic <code>EXT</code> affix. Lists of extensions, together with their specifications, can be found at the <a href="https://www.opengl.org/registry/">OpenGL Registry</a> and <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>.</p>
+<p >Note the <code>ARB</code> affix, which stands for Architecture Review Board and is used for official extensions. The extension above was created by the ARB, but there are many different affixes, like <code>NV</code> for Nvidia and <code>AMD</code> for, well, AMD. Any group may also use the generic <code>EXT</code> affix. Lists of extensions, together with their specifications, can be found at the <a href="https://www.opengl.org/registry/">OpenGL Registry</a> and <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>.</p>
 <h2><a class="anchor" id="context_glext_auto"></a>
 Loading extension with a loader library</h2>
-<p>An extension loader library is the easiest and best way to access both OpenGL and OpenGL ES extensions and modern versions of the core OpenGL or OpenGL ES APIs. They will take care of all the details of declaring and loading everything you need. One such library is <a href="https://github.com/Dav1dde/glad">glad</a> and there are several others.</p>
-<p>The following example will use glad but all extension loader libraries work similarly.</p>
-<p>First you need to generate the source files using the glad Python script. This example generates a loader for any version of OpenGL, which is the default for both GLFW and glad, but loaders for OpenGL ES, as well as loaders for specific API versions and extension sets can be generated. The generated files are written to the <code>output</code> directory.</p>
+<p >An extension loader library is the easiest and best way to access both OpenGL and OpenGL ES extensions and modern versions of the core OpenGL or OpenGL ES APIs. They will take care of all the details of declaring and loading everything you need. One such library is <a href="https://github.com/Dav1dde/glad">glad</a> and there are several others.</p>
+<p >The following example will use glad but all extension loader libraries work similarly.</p>
+<p >First you need to generate the source files using the glad Python script. This example generates a loader for any version of OpenGL, which is the default for both GLFW and glad, but loaders for OpenGL ES, as well as loaders for specific API versions and extension sets can be generated. The generated files are written to the <code>output</code> directory.</p>
 <div class="fragment"><div class="line">python main.py --generator c --no-loader --out-path output</div>
-</div><!-- fragment --><p>The <code>--no-loader</code> option is added because GLFW already provides a function for loading OpenGL and OpenGL ES function pointers, one that automatically uses the selected context creation API, and glad can call this instead of having to implement its own. There are several other command-line options as well. See the glad documentation for details.</p>
-<p>Add the generated <code>output/src/glad.c</code>, <code>output/include/glad/glad.h</code> and <code>output/include/KHR/khrplatform.h</code> files to your build. Then you need to include the glad header file, which will replace the OpenGL header of your development environment. By including the glad header before the GLFW header, it suppresses the development environment's OpenGL or OpenGL ES header.</p>
+</div><!-- fragment --><p >The <code>--no-loader</code> option is added because GLFW already provides a function for loading OpenGL and OpenGL ES function pointers, one that automatically uses the selected context creation API, and glad can call this instead of having to implement its own. There are several other command-line options as well. See the glad documentation for details.</p>
+<p >Add the generated <code>output/src/glad.c</code>, <code>output/include/glad/glad.h</code> and <code>output/include/KHR/khrplatform.h</code> files to your build. Then you need to include the glad header file, which will replace the OpenGL header of your development environment. By including the glad header before the GLFW header, it suppresses the development environment's OpenGL or OpenGL ES header.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#include &lt;glad/glad.h&gt;</span></div>
 <div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
-</div><!-- fragment --><p>Finally you need to initialize glad once you have a suitable current context.</p>
-<div class="fragment"><div class="line">window = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;My Window&quot;</span>, NULL, NULL);</div>
+<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
+</div><!-- fragment --><p >Finally you need to initialize glad once you have a suitable current context.</p>
+<div class="fragment"><div class="line">window = <a class="code hl_function" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;My Window&quot;</span>, NULL, NULL);</div>
 <div class="line"><span class="keywordflow">if</span> (!window)</div>
 <div class="line">{</div>
 <div class="line">    ...</div>
 <div class="line">}</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div>
+<div class="line"><a class="code hl_function" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(window);</div>
 <div class="line"> </div>
-<div class="line">gladLoadGLLoader((GLADloadproc) <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>);</div>
-</div><!-- fragment --><p>Once glad has been loaded, you have access to all OpenGL core and extension functions supported by both the context you created and the glad loader you generated and you are ready to start rendering.</p>
-<p>You can specify a minimum required OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_hints_ctx">context hints</a>. If your needs are more complex, you can check the actual OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_attribs_ctx">context attributes</a>, or you can check whether a specific version is supported by the current context with the <code>GLAD_GL_VERSION_x_x</code> booleans.</p>
+<div class="line">gladLoadGLLoader((GLADloadproc) <a class="code hl_function" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>);</div>
+<div class="ttc" id="agroup__context_html_ga35f1837e6f666781842483937612f163"><div class="ttname"><a href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></div><div class="ttdeci">GLFWglproc glfwGetProcAddress(const char *procname)</div><div class="ttdoc">Returns the address of the specified function for the current context.</div></div>
+</div><!-- fragment --><p >Once glad has been loaded, you have access to all OpenGL core and extension functions supported by both the context you created and the glad loader you generated and you are ready to start rendering.</p>
+<p >You can specify a minimum required OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_hints_ctx">context hints</a>. If your needs are more complex, you can check the actual OpenGL or OpenGL ES version with <a class="el" href="window_guide.html#window_attribs_ctx">context attributes</a>, or you can check whether a specific version is supported by the current context with the <code>GLAD_GL_VERSION_x_x</code> booleans.</p>
 <div class="fragment"><div class="line"><span class="keywordflow">if</span> (GLAD_GL_VERSION_3_2)</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Call OpenGL 3.2+ specific code</span></div>
 <div class="line">}</div>
-</div><!-- fragment --><p>To check whether a specific extension is supported, use the <code>GLAD_GL_xxx</code> booleans.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (GLAD_GL_ARB_debug_output)</div>
+</div><!-- fragment --><p >To check whether a specific extension is supported, use the <code>GLAD_GL_xxx</code> booleans.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (GLAD_GL_ARB_gl_spirv)</div>
 <div class="line">{</div>
-<div class="line">    <span class="comment">// Use GL_ARB_debug_output</span></div>
+<div class="line">    <span class="comment">// Use GL_ARB_gl_spirv</span></div>
 <div class="line">}</div>
 </div><!-- fragment --><h2><a class="anchor" id="context_glext_manual"></a>
 Loading extensions manually</h2>
-<p><b>Do not use this technique</b> unless it is absolutely necessary. An <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a> will save you a ton of tedious, repetitive, error prone work.</p>
-<p>To use a certain extension, you must first check whether the context supports that extension and then, if it introduces new functions, retrieve the pointers to those functions. GLFW provides <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> and <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a> for manual loading of extensions and new API functions.</p>
-<p>This section will demonstrate manual loading of OpenGL extensions. The loading of OpenGL ES extensions is identical except for the name of the extension header.</p>
+<p ><b>Do not use this technique</b> unless it is absolutely necessary. An <a class="el" href="context_guide.html#context_glext_auto">extension loader library</a> will save you a ton of tedious, repetitive, error prone work.</p>
+<p >To use a certain extension, you must first check whether the context supports that extension and then, if it introduces new functions, retrieve the pointers to those functions. GLFW provides <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> and <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a> for manual loading of extensions and new API functions.</p>
+<p >This section will demonstrate manual loading of OpenGL extensions. The loading of OpenGL ES extensions is identical except for the name of the extension header.</p>
 <h3><a class="anchor" id="context_glext_header"></a>
 The glext.h header</h3>
-<p>The <code>glext.h</code> extension header is a continually updated file that defines the interfaces for all OpenGL extensions. The latest version of this can always be found at the <a href="https://www.opengl.org/registry/">OpenGL Registry</a>. There are also extension headers for the various versions of OpenGL ES at the <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>. It it strongly recommended that you use your own copy of the extension header, as the one included in your development environment may be several years out of date and may not include the extensions you wish to use.</p>
-<p>The header defines function pointer types for all functions of all extensions it supports. These have names like <code>PFNGLGETDEBUGMESSAGELOGARBPROC</code> (for <code>glGetDebugMessageLogARB</code>), i.e. the name is made uppercase and <code>PFN</code> (pointer to function) and <code>PROC</code> (procedure) are added to the ends.</p>
-<p>To include the extension header, define <a class="el" href="build_guide.html#GLFW_INCLUDE_GLEXT">GLFW_INCLUDE_GLEXT</a> before including the GLFW header.</p>
+<p >The <code>glext.h</code> extension header is a continually updated file that defines the interfaces for all OpenGL extensions. The latest version of this can always be found at the <a href="https://www.opengl.org/registry/">OpenGL Registry</a>. There are also extension headers for the various versions of OpenGL ES at the <a href="https://www.khronos.org/registry/gles/">OpenGL ES Registry</a>. It it strongly recommended that you use your own copy of the extension header, as the one included in your development environment may be several years out of date and may not include the extensions you wish to use.</p>
+<p >The header defines function pointer types for all functions of all extensions it supports. These have names like <code>PFNGLSPECIALIZESHADERARBPROC</code> (for <code>glSpecializeShaderARB</code>), i.e. the name is made uppercase and <code>PFN</code> (pointer to function) and <code>PROC</code> (procedure) are added to the ends.</p>
+<p >To include the extension header, define <a class="el" href="build_guide.html#GLFW_INCLUDE_GLEXT">GLFW_INCLUDE_GLEXT</a> before including the GLFW header.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_GLEXT</span></div>
-<div class="line"><span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
 </div><!-- fragment --><h3><a class="anchor" id="context_glext_string"></a>
 Checking for extensions</h3>
-<p>A given machine may not actually support the extension (it may have older drivers or a graphics card that lacks the necessary hardware features), so it is necessary to check at run-time whether the context supports the extension. This is done with <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_debug_output&quot;</span>))</div>
+<p >A given machine may not actually support the extension (it may have older drivers or a graphics card that lacks the necessary hardware features), so it is necessary to check at run-time whether the context supports the extension. This is done with <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_gl_spirv&quot;</span>))</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// The extension is supported by the current context</span></div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The argument is a null terminated ASCII string with the extension name. If the extension is supported, <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> returns <code>GLFW_TRUE</code>, otherwise it returns <code>GLFW_FALSE</code>.</p>
+<div class="ttc" id="agroup__context_html_ga87425065c011cef1ebd6aac75e059dfa"><div class="ttname"><a href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></div><div class="ttdeci">int glfwExtensionSupported(const char *extension)</div><div class="ttdoc">Returns whether the specified extension is available.</div></div>
+</div><!-- fragment --><p >The argument is a null terminated ASCII string with the extension name. If the extension is supported, <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a> returns <code>GLFW_TRUE</code>, otherwise it returns <code>GLFW_FALSE</code>.</p>
 <h3><a class="anchor" id="context_glext_proc"></a>
 Fetching function pointers</h3>
-<p>Many extensions, though not all, require the use of new OpenGL functions. These functions often do not have entry points in the client API libraries of your operating system, making it necessary to fetch them at run time. You can retrieve pointers to these functions with <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>.</p>
-<div class="fragment"><div class="line">PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog = <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glGetDebugMessageLogARB&quot;</span>);</div>
-</div><!-- fragment --><p>In general, you should avoid giving the function pointer variables the (exact) same name as the function, as this may confuse your linker. Instead, you can use a different prefix, like above, or some other naming scheme.</p>
-<p>Now that all the pieces have been introduced, here is what they might look like when used together.</p>
+<p >Many extensions, though not all, require the use of new OpenGL functions. These functions often do not have entry points in the client API libraries of your operating system, making it necessary to fetch them at run time. You can retrieve pointers to these functions with <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>.</p>
+<div class="fragment"><div class="line">PFNGLSPECIALIZESHADERARBPROC pfnSpecializeShaderARB = <a class="code hl_function" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glSpecializeShaderARB&quot;</span>);</div>
+</div><!-- fragment --><p >In general, you should avoid giving the function pointer variables the (exact) same name as the function, as this may confuse your linker. Instead, you can use a different prefix, like above, or some other naming scheme.</p>
+<p >Now that all the pieces have been introduced, here is what they might look like when used together.</p>
 <div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_GLEXT</span></div>
 <div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
 <div class="line"> </div>
-<div class="line"><span class="preprocessor">#define glGetDebugMessageLogARB pfnGetDebugMessageLog</span></div>
-<div class="line">PFNGLGETDEBUGMESSAGELOGARBPROC pfnGetDebugMessageLog;</div>
+<div class="line"><span class="preprocessor">#define glSpecializeShaderARB pfnSpecializeShaderARB</span></div>
+<div class="line">PFNGLSPECIALIZESHADERARBPROC pfnSpecializeShaderARB;</div>
 <div class="line"> </div>
 <div class="line"><span class="comment">// Flag indicating whether the extension is supported</span></div>
-<div class="line"><span class="keywordtype">int</span> has_ARB_debug_output = 0;</div>
+<div class="line"><span class="keywordtype">int</span> has_ARB_gl_spirv = 0;</div>
 <div class="line"> </div>
 <div class="line"><span class="keywordtype">void</span> load_extensions(<span class="keywordtype">void</span>)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (<a class="code" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_debug_output&quot;</span>))</div>
+<div class="line">    <span class="keywordflow">if</span> (<a class="code hl_function" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="stringliteral">&quot;GL_ARB_gl_spirv&quot;</span>))</div>
 <div class="line">    {</div>
-<div class="line">        pfnGetDebugMessageLog = (PFNGLGETDEBUGMESSAGELOGARBPROC)</div>
-<div class="line">            <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glGetDebugMessageLogARB&quot;</span>);</div>
-<div class="line">        has_ARB_debug_output = 1;</div>
+<div class="line">        pfnSpecializeShaderARB = (PFNGLSPECIALIZESHADERARBPROC)</div>
+<div class="line">            <a class="code hl_function" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="stringliteral">&quot;glSpecializeShaderARB&quot;</span>);</div>
+<div class="line">        has_ARB_gl_spirv = 1;</div>
 <div class="line">    }</div>
 <div class="line">}</div>
 <div class="line"> </div>
 <div class="line"><span class="keywordtype">void</span> some_function(<span class="keywordtype">void</span>)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (has_ARB_debug_output)</div>
+<div class="line">    <span class="keywordflow">if</span> (has_ARB_gl_spirv)</div>
 <div class="line">    {</div>
 <div class="line">        <span class="comment">// Now the extension function can be called as usual</span></div>
-<div class="line">        glGetDebugMessageLogARB(...);</div>
+<div class="line">        glSpecializeShaderARB(...);</div>
 <div class="line">    }</div>
 <div class="line">}</div>
 </div><!-- fragment --> </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
-<div class="ttc" id="agroup__context_html_gac84759b1f6c2d271a4fea8ae89ec980d"><div class="ttname"><a href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a></div><div class="ttdeci">GLFWwindow * glfwGetCurrentContext(void)</div><div class="ttdoc">Returns the window whose context is current on the calling thread.</div></div>
-<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1152</div></div>
-<div class="ttc" id="agroup__context_html_ga87425065c011cef1ebd6aac75e059dfa"><div class="ttname"><a href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></div><div class="ttdeci">int glfwExtensionSupported(const char *extension)</div><div class="ttdoc">Returns whether the specified extension is available.</div></div>
-<div class="ttc" id="agroup__context_html_ga1c04dc242268f827290fe40aa1c91157"><div class="ttname"><a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a></div><div class="ttdeci">void glfwMakeContextCurrent(GLFWwindow *window)</div><div class="ttdoc">Makes the context of the specified window current for the calling thread.</div></div>
-<div class="ttc" id="agroup__init_html_gac877fe3b627d21ef3a0a23e0a73ba8c5"><div class="ttname"><a href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a></div><div class="ttdeci">#define GLFW_FALSE</div><div class="ttdoc">Zero.</div><div class="ttdef"><b>Definition:</b> glfw3.h:289</div></div>
-<div class="ttc" id="agroup__window_html_ga5c336fddf2cbb5b92f65f10fb6043344"><div class="ttname"><a href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
-<div class="ttc" id="agroup__context_html_ga35f1837e6f666781842483937612f163"><div class="ttname"><a href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></div><div class="ttdeci">GLFWglproc glfwGetProcAddress(const char *procname)</div><div class="ttdoc">Returns the address of the specified function for the current context.</div></div>
-<div class="ttc" id="agroup__window_html_ga7d9c8c62384b1e2821c4dc48952d2033"><div class="ttname"><a href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a></div><div class="ttdeci">void glfwWindowHint(int hint, int value)</div><div class="ttdoc">Sets the specified window hint to the desired value.</div></div>
-<div class="ttc" id="agroup__window_html_gafb3cdc45297e06d8f1eb13adc69ca6c4"><div class="ttname"><a href="group__window.html#gafb3cdc45297e06d8f1eb13adc69ca6c4">GLFW_VISIBLE</a></div><div class="ttdeci">#define GLFW_VISIBLE</div><div class="ttdoc">Window visibility window hint and attribute.</div><div class="ttdef"><b>Definition:</b> glfw3.h:782</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 14 - 13
glfw.mod/glfw/docs/html/deprecated.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Deprecated List</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,13 +60,12 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Deprecated List </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Deprecated List </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock"><dl class="reflist">
-<dt>Global <a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>  )(GLFWwindow *, unsigned int, int)</dt>
+<dt>Global <a class="el" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a>  )(GLFWwindow *window, unsigned int codepoint, int mods)</dt>
 <dd><a class="anchor" id="_deprecated000001"></a>Scheduled for removal in version 4.0. </dd>
 <dt>Global <a class="el" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a>  (GLFWwindow *window, GLFWcharmodsfun callback)</dt>
 <dd><a class="anchor" id="_deprecated000002"></a>Scheduled for removal in version 4.0.</dd>
@@ -73,7 +74,7 @@ $(function() {
 </div><!-- PageDoc -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 16 - 15
glfw.mod/glfw/docs/html/dir_15a5176d7c9cc5c407ed4f611edf0684.html → glfw.mod/glfw/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: GLFW Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,28 +61,27 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li><li class="navelem"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li><li class="navelem"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">GLFW Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">GLFW Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="files" name="files"></a>
 Files</h2></td></tr>
-<tr class="memitem:glfw3_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html">glfw3.h</a> <a href="glfw3_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html">glfw3.h</a> <a href="glfw3_8h_source.html">[code]</a></td></tr>
 <tr class="memdesc:glfw3_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header of the GLFW 3 API. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:glfw3native_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3native_8h.html">glfw3native.h</a> <a href="glfw3native_8h_source.html">[code]</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3native_8h.html">glfw3native.h</a> <a href="glfw3native_8h_source.html">[code]</a></td></tr>
 <tr class="memdesc:glfw3native_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">The header of the native access functions. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 17 - 16
glfw.mod/glfw/docs/html/dir_bc6505cac00d7a6291dbfd9af70666b7.html → glfw.mod/glfw/docs/html/dir_4351554941a2744586042c1cf3cf139a.html

@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<title>GLFW: glfw-3.3.2 Directory Reference</title>
+<meta name="generator" content="Doxygen 1.9.4"/>
+<title>GLFW: glfw-3.3.8 Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,26 +61,25 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">glfw-3.3.2 Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">glfw-3.3.8 Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_abae1f34c5d965773b98e3c915cdaeb5"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_abae1f34c5d965773b98e3c915cdaeb5.html">docs</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_fda32cf7bec00275262cb8799a618f76.html">docs</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:dir_a58ef735c5cc5a9a31d321e1abe7c42e"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 15 - 14
glfw.mod/glfw/docs/html/dir_a58ef735c5cc5a9a31d321e1abe7c42e.html → glfw.mod/glfw/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: include Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,24 +61,23 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">include Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">include Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="subdirs" name="subdirs"></a>
 Directories</h2></td></tr>
-<tr class="memitem:dir_15a5176d7c9cc5c407ed4f611edf0684"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 13 - 12
glfw.mod/glfw/docs/html/dir_abae1f34c5d965773b98e3c915cdaeb5.html → glfw.mod/glfw/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: docs Directory Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,18 +61,17 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_abae1f34c5d965773b98e3c915cdaeb5.html">docs</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_fda32cf7bec00275262cb8799a618f76.html">docs</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">docs Directory Reference</div>  </div>
+  <div class="headertitle"><div class="title">docs Directory Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 145 - 70
glfw.mod/glfw/docs/html/doxygen.css

@@ -1,4 +1,4 @@
-/* The standard CSS for doxygen 1.8.16 */
+/* The standard CSS for doxygen 1.9.4 */
 
 body, table, div, p, dl {
 	font: 400 14px/22px Roboto,sans-serif;
@@ -66,6 +66,11 @@ p.startli, p.startdd {
 	margin-top: 2px;
 }
 
+th p.starttd, th p.intertd, th p.endtd {
+        font-size: 100%;
+        font-weight: 700;
+}
+
 p.starttd {
 	margin-top: 0px;
 }
@@ -98,30 +103,96 @@ caption {
 }
 
 span.legend {
-        font-size: 70%;
-        text-align: center;
+	font-size: 70%;
+	text-align: center;
 }
 
 h3.version {
-        font-size: 90%;
-        text-align: center;
+	font-size: 90%;
+	text-align: center;
 }
 
-div.qindex, div.navtab{
-	background-color: #EBEFF6;
-	border: 1px solid #A3B4D7;
-	text-align: center;
+div.navtab {
+	border-right: 1px solid #A3B4D7;
+	padding-right: 15px;
+	text-align: right;
+	line-height: 110%;
+}
+
+div.navtab table {
+	border-spacing: 0;
+}
+
+td.navtab {
+	padding-right: 6px;
+	padding-left: 6px;
+}
+td.navtabHL {
+	background-image: url('tab_a.png');
+	background-repeat:repeat-x;
+	padding-right: 6px;
+	padding-left: 6px;
+}
+
+td.navtabHL a, td.navtabHL a:visited {
+	color: #fff;
+	text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+a.navtab {
+	font-weight: bold;
 }
 
-div.qindex, div.navpath {
+div.qindex{
+	text-align: center;
 	width: 100%;
 	line-height: 140%;
+	font-size: 130%;
+	color: #A0A0A0;
 }
 
-div.navtab {
-	margin-right: 15px;
+dt.alphachar{
+	font-size: 180%;
+	font-weight: bold;
+}
+
+.alphachar a{
+	color: black;
+}
+
+.alphachar a:hover, .alphachar a:visited{
+	text-decoration: none;
+}
+
+.classindex dl {
+	padding: 25px;
+	column-count:1
+}
+
+.classindex dd {
+	display:inline-block;
+	margin-left: 50px;
+	width: 90%;
+	line-height: 1.15em;
+}
+
+.classindex dl.odd {
+	background-color: #F8F9FC;
+}
+
+@media(min-width: 1120px) {
+	.classindex dl {
+		column-count:2
+	}
+}
+
+@media(min-width: 1320px) {
+	.classindex dl {
+		column-count:3
+	}
 }
 
+
 /* @group Link Styling */
 
 a {
@@ -138,17 +209,6 @@ a:hover {
 	text-decoration: underline;
 }
 
-a.qindex {
-	font-weight: bold;
-}
-
-a.qindexHL {
-	font-weight: bold;
-	background-color: #9CAFD4;
-	color: #FFFFFF;
-	border: 1px double #869DCA;
-}
-
 .contents a.qindexHL:visited {
         color: #FFFFFF;
 }
@@ -168,6 +228,33 @@ a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
 	color: #4665A2; 
 }
 
+a.code.hl_class { /* style for links to class names in code snippets */ }
+a.code.hl_struct { /* style for links to struct names in code snippets */ }
+a.code.hl_union { /* style for links to union names in code snippets */ }
+a.code.hl_interface { /* style for links to interface names in code snippets */ }
+a.code.hl_protocol { /* style for links to protocol names in code snippets */ }
+a.code.hl_category { /* style for links to category names in code snippets */ }
+a.code.hl_exception { /* style for links to exception names in code snippets */ }
+a.code.hl_service { /* style for links to service names in code snippets */ }
+a.code.hl_singleton { /* style for links to singleton names in code snippets */ }
+a.code.hl_concept { /* style for links to concept names in code snippets */ }
+a.code.hl_namespace { /* style for links to namespace names in code snippets */ }
+a.code.hl_package { /* style for links to package names in code snippets */ }
+a.code.hl_define { /* style for links to macro names in code snippets */ }
+a.code.hl_function { /* style for links to function names in code snippets */ }
+a.code.hl_variable { /* style for links to variable names in code snippets */ }
+a.code.hl_typedef { /* style for links to typedef names in code snippets */ }
+a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ }
+a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ }
+a.code.hl_signal { /* style for links to Qt signal names in code snippets */ }
+a.code.hl_slot { /* style for links to Qt slot names in code snippets */ }
+a.code.hl_friend { /* style for links to friend names in code snippets */ }
+a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ }
+a.code.hl_property { /* style for links to property names in code snippets */ }
+a.code.hl_event { /* style for links to event names in code snippets */ }
+a.code.hl_sequence { /* style for links to sequence names in code snippets */ }
+a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ }
+
 /* @end */
 
 dl.el {
@@ -175,7 +262,7 @@ dl.el {
 }
 
 ul {
-  overflow: hidden; /*Fixed: list item bullets overlap floating elements*/
+  overflow: visible;
 }
 
 #side-nav ul {
@@ -253,6 +340,7 @@ div.line.glow {
 
 span.lineno {
 	padding-right: 4px;
+        margin-right: 9px;
 	text-align: right;
 	border-right: 2px solid #0F0;
 	background-color: #E8E8E8;
@@ -379,6 +467,12 @@ img.footer {
 	vertical-align: middle;
 }
 
+.compoundTemplParams {
+	color: #4665A2;
+	font-size: 80%;
+	line-height: 120%;
+}
+
 /* @group Code Colorization */
 
 span.keyword {
@@ -535,7 +629,7 @@ table.memberdecls {
         white-space: nowrap;
 }
 
-.memItemRight {
+.memItemRight, .memTemplItemRight {
 	width: 100%;
 }
 
@@ -1262,6 +1356,11 @@ dl.section dd {
 }
 
 
+#projectrow
+{
+	height: 56px;
+}
+
 #projectlogo
 {
 	text-align: center;
@@ -1277,18 +1376,19 @@ dl.section dd {
 #projectalign
 {
         vertical-align: middle;
+        padding-left: 0.5em;
 }
 
 #projectname
 {
-	font: 300% Tahoma, Arial,sans-serif;
+	font: 200% Tahoma, Arial,sans-serif;
 	margin: 0px;
 	padding: 2px 0px;
 }
     
 #projectbrief
 {
-	font: 120% Tahoma, Arial,sans-serif;
+	font: 90% Tahoma, Arial,sans-serif;
 	margin: 0px;
 	padding: 0px;
 }
@@ -1353,10 +1453,12 @@ dl.citelist dt {
         font-weight:bold;
         margin-right:10px;
         padding:5px;
+        text-align:right;
+        width:52px;
 }
 
 dl.citelist dd {
-        margin:2px 0;
+        margin:2px 0 2px 72px;
         padding:5px 0;
 }
 
@@ -1419,6 +1521,16 @@ div.toc li.level4 {
         margin-left: 45px;
 }
 
+span.emoji {
+        /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html
+         * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort;
+         */
+}
+
+span.obfuscator {
+  display: none;
+}
+
 .PageDocRTL-title div.toc li.level1 {
   margin-left: 0 !important;
   margin-right: 0;
@@ -1473,7 +1585,7 @@ tr.heading h2 {
 
 #powerTip {
 	cursor: default;
-	white-space: nowrap;
+	/*white-space: nowrap;*/
 	background-color: white;
 	border: 1px solid gray;
 	border-radius: 4px 4px 4px 4px;
@@ -1656,47 +1768,6 @@ tr.heading h2 {
 
 /* @group Markdown */
 
-/*
-table.markdownTable {
-	border-collapse:collapse;
-        margin-top: 4px;
-        margin-bottom: 4px;
-}
-
-table.markdownTable td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-table.markdownTableHead tr {
-}
-
-table.markdownTableBodyLeft td, table.markdownTable th {
-	border: 1px solid #2D4068;
-	padding: 3px 7px 2px;
-}
-
-th.markdownTableHeadLeft th.markdownTableHeadRight th.markdownTableHeadCenter th.markdownTableHeadNone {
-	background-color: #374F7F;
-	color: #FFFFFF;
-	font-size: 110%;
-	padding-bottom: 4px;
-	padding-top: 5px;
-}
-
-th.markdownTableHeadLeft {
-	text-align: left
-}
-
-th.markdownTableHeadRight {
-	text-align: right
-}
-
-th.markdownTableHeadCenter {
-	text-align: center
-}
-*/
-
 table.markdownTable {
 	border-collapse:collapse;
         margin-top: 4px;
@@ -1753,6 +1824,10 @@ table.DocNodeLTR {
    margin-left: 0;
 }
 
+code.JavaDocCode {
+  direction:ltr;
+}
+
 tt, code, kbd, samp
 {
   display: inline-block;

BIN
glfw.mod/glfw/docs/html/doxygen.png


Filskillnaden har hållts tillbaka eftersom den är för stor
+ 19 - 0
glfw.mod/glfw/docs/html/doxygen.svg


+ 17 - 16
glfw.mod/glfw/docs/html/dynsections.js

@@ -1,25 +1,26 @@
 /*
- @licstart  The following is the entire license notice for the
- JavaScript code in this file.
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
 
- Copyright (C) 1997-2017 by Dimitri van Heesch
+ The MIT License (MIT)
 
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+ Copyright (C) 1997-2020 by Dimitri van Heesch
 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
 
- @licend  The above is the entire license notice
- for the JavaScript code in this file
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
  */
 function toggleVisibility(linkObj)
 {

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 0
glfw.mod/glfw/docs/html/extra.css


+ 19 - 14
glfw.mod/glfw/docs/html/files.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Files</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -59,20 +61,23 @@ $(function() {
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">Files</div>  </div>
+  <div class="headertitle"><div class="title">Files</div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
-<table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="glfw3_8h_source.html"><span class="icondoc"></span></a><a class="el" href="glfw3_8h.html" target="_self">glfw3.h</a></td><td class="desc">The header of the GLFW 3 API </td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a href="glfw3native_8h_source.html"><span class="icondoc"></span></a><a class="el" href="glfw3native_8h.html" target="_self">glfw3native.h</a></td><td class="desc">The header of the native access functions </td></tr>
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9660;</span><span id="img_0_" class="iconfopen" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html" target="_self">glfw-3.3.8</a></td><td class="desc"></td></tr>
+<tr id="row_0_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="iconfclosed"></span><a class="el" href="dir_fda32cf7bec00275262cb8799a618f76.html" target="_self">docs</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_0_1_" class="arrow" onclick="toggleFolder('0_1_')">&#9660;</span><span id="img_0_1_" class="iconfopen" onclick="toggleFolder('0_1_')">&#160;</span><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html" target="_self">include</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_0_1_0_" class="arrow" onclick="toggleFolder('0_1_0_')">&#9660;</span><span id="img_0_1_0_" class="iconfopen" onclick="toggleFolder('0_1_0_')">&#160;</span><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html" target="_self">GLFW</a></td><td class="desc"></td></tr>
+<tr id="row_0_1_0_0_" class="even"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="glfw3_8h_source.html"><span class="icondoc"></span></a><a class="el" href="glfw3_8h.html" target="_self">glfw3.h</a></td><td class="desc">The header of the GLFW 3 API </td></tr>
+<tr id="row_0_1_0_1_"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><a href="glfw3native_8h_source.html"><span class="icondoc"></span></a><a class="el" href="glfw3native_8h.html" target="_self">glfw3native.h</a></td><td class="desc">The header of the native access functions </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 232 - 215
glfw.mod/glfw/docs/html/glfw3_8h.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: glfw3.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,7 +61,7 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li><li class="navelem"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li><li class="navelem"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
@@ -67,17 +69,16 @@ $(function() {
 <a href="#define-members">Macros</a> &#124;
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">glfw3.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">glfw3.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<div class="textblock"><p>This is the header file of the GLFW 3 API. It defines all its types and declares all its functions.</p>
-<p>For more information about how to use this file, see <a class="el" href="build_guide.html#build_include">Including the GLFW header file</a>. </p>
+<div class="textblock"><p >This is the header file of the GLFW 3 API. It defines all its types and declares all its functions.</p>
+<p >For more information about how to use this file, see <a class="el" href="build_guide.html#build_include">Including the GLFW header file</a>. </p>
 </div>
 <p><a href="glfw3_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:a8a8538c5500308b4211844f2fb26c7b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html#a8a8538c5500308b4211844f2fb26c7b9">GLFW_APIENTRY_DEFINED</a></td></tr>
 <tr class="separator:a8a8538c5500308b4211844f2fb26c7b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -606,7 +607,7 @@ Macros</h2></td></tr>
 <tr class="memdesc:ga31aca791e4b538c4e4a771eb95cc2d07"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context client API minor version hint and attribute.  <a href="group__window.html#ga31aca791e4b538c4e4a771eb95cc2d07">More...</a><br /></td></tr>
 <tr class="separator:ga31aca791e4b538c4e4a771eb95cc2d07"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafb9475071aa77c6fb05ca5a5c8678a08"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gafb9475071aa77c6fb05ca5a5c8678a08">GLFW_CONTEXT_REVISION</a>&#160;&#160;&#160;0x00022004</td></tr>
-<tr class="memdesc:gafb9475071aa77c6fb05ca5a5c8678a08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context client API revision number hint and attribute.  <a href="group__window.html#gafb9475071aa77c6fb05ca5a5c8678a08">More...</a><br /></td></tr>
+<tr class="memdesc:gafb9475071aa77c6fb05ca5a5c8678a08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context client API revision number attribute.  <a href="group__window.html#gafb9475071aa77c6fb05ca5a5c8678a08">More...</a><br /></td></tr>
 <tr class="separator:gafb9475071aa77c6fb05ca5a5c8678a08"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gade3593916b4c507900aa2d6844810e00"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gade3593916b4c507900aa2d6844810e00">GLFW_CONTEXT_ROBUSTNESS</a>&#160;&#160;&#160;0x00022005</td></tr>
 <tr class="memdesc:gade3593916b4c507900aa2d6844810e00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Context robustness hint and attribute.  <a href="group__window.html#gade3593916b4c507900aa2d6844810e00">More...</a><br /></td></tr>
@@ -615,7 +616,7 @@ Macros</h2></td></tr>
 <tr class="memdesc:ga13d24b12465da8b28985f46c8557925b"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL forward-compatibility hint and attribute.  <a href="group__window.html#ga13d24b12465da8b28985f46c8557925b">More...</a><br /></td></tr>
 <tr class="separator:ga13d24b12465da8b28985f46c8557925b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga87ec2df0b915201e950ca42d5d0831e1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga87ec2df0b915201e950ca42d5d0831e1">GLFW_OPENGL_DEBUG_CONTEXT</a>&#160;&#160;&#160;0x00022007</td></tr>
-<tr class="memdesc:ga87ec2df0b915201e950ca42d5d0831e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL debug context hint and attribute.  <a href="group__window.html#ga87ec2df0b915201e950ca42d5d0831e1">More...</a><br /></td></tr>
+<tr class="memdesc:ga87ec2df0b915201e950ca42d5d0831e1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Debug mode context hint and attribute.  <a href="group__window.html#ga87ec2df0b915201e950ca42d5d0831e1">More...</a><br /></td></tr>
 <tr class="separator:ga87ec2df0b915201e950ca42d5d0831e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga44f3a6b4261fbe351e0b950b0f372e12"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga44f3a6b4261fbe351e0b950b0f372e12">GLFW_OPENGL_PROFILE</a>&#160;&#160;&#160;0x00022008</td></tr>
 <tr class="memdesc:ga44f3a6b4261fbe351e0b950b0f372e12"><td class="mdescLeft">&#160;</td><td class="mdescRight">OpenGL profile hint and attribute.  <a href="group__window.html#ga44f3a6b4261fbe351e0b950b0f372e12">More...</a><br /></td></tr>
@@ -728,15 +729,17 @@ Macros</h2></td></tr>
 <tr class="separator:a7a2edf2c18446833d27d07f1b7f3d571"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:aa97755eb47e4bf2727ad45d610e18206"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html#aa97755eb47e4bf2727ad45d610e18206">GLAPIENTRY</a>&#160;&#160;&#160;APIENTRY</td></tr>
 <tr class="separator:aa97755eb47e4bf2727ad45d610e18206"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3b526ac796be993406ea2f1642c25fc3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="glfw3_8h.html#a3b526ac796be993406ea2f1642c25fc3">GLFW_GLAPIENTRY_DEFINED</a></td></tr>
+<tr class="separator:a3b526ac796be993406ea2f1642c25fc3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">GLFW version macros</div></td></tr>
 <tr class="memitem:ga6337d9ea43b22fc529b2bba066b4a576"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a>&#160;&#160;&#160;3</td></tr>
-<tr class="memdesc:ga6337d9ea43b22fc529b2bba066b4a576"><td class="mdescLeft">&#160;</td><td class="mdescRight">The major version number of the GLFW library.  <a href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">More...</a><br /></td></tr>
+<tr class="memdesc:ga6337d9ea43b22fc529b2bba066b4a576"><td class="mdescLeft">&#160;</td><td class="mdescRight">The major version number of the GLFW header.  <a href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">More...</a><br /></td></tr>
 <tr class="separator:ga6337d9ea43b22fc529b2bba066b4a576"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a>&#160;&#160;&#160;3</td></tr>
-<tr class="memdesc:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minor version number of the GLFW library.  <a href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">More...</a><br /></td></tr>
+<tr class="memdesc:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minor version number of the GLFW header.  <a href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">More...</a><br /></td></tr>
 <tr class="separator:gaf80d40f0aea7088ff337606e9c48f7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab72ae2e2035d9ea461abc3495eac0502"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a>&#160;&#160;&#160;2</td></tr>
-<tr class="memdesc:gab72ae2e2035d9ea461abc3495eac0502"><td class="mdescLeft">&#160;</td><td class="mdescRight">The revision number of the GLFW library.  <a href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">More...</a><br /></td></tr>
+<tr class="memitem:gab72ae2e2035d9ea461abc3495eac0502"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a>&#160;&#160;&#160;8</td></tr>
+<tr class="memdesc:gab72ae2e2035d9ea461abc3495eac0502"><td class="mdescLeft">&#160;</td><td class="mdescRight">The revision number of the GLFW header.  <a href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">More...</a><br /></td></tr>
 <tr class="separator:gab72ae2e2035d9ea461abc3495eac0502"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr><td colspan="2"><div class="groupHeader">Key and button actions</div></td></tr>
 <tr class="memitem:gada11d965c4da13090ad336e030e4d11f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gada11d965c4da13090ad336e030e4d11f">GLFW_RELEASE</a>&#160;&#160;&#160;0</td></tr>
@@ -749,7 +752,7 @@ Macros</h2></td></tr>
 <tr class="memdesc:gac96fd3b9fc66c6f0eebaf6532595338f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The key was held down until it repeated.  <a href="group__input.html#gac96fd3b9fc66c6f0eebaf6532595338f">More...</a><br /></td></tr>
 <tr class="separator:gac96fd3b9fc66c6f0eebaf6532595338f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr class="memitem:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>) (void)</td></tr>
 <tr class="memdesc:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Client API function pointer type.  <a href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">More...</a><br /></td></tr>
@@ -766,80 +769,80 @@ Typedefs</h2></td></tr>
 <tr class="memitem:ga89261ae18c75e863aaf2656ecdd238f4"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a></td></tr>
 <tr class="memdesc:ga89261ae18c75e863aaf2656ecdd238f4"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque cursor object.  <a href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">More...</a><br /></td></tr>
 <tr class="separator:ga89261ae18c75e863aaf2656ecdd238f4"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>) (int, const char *)</td></tr>
-<tr class="memdesc:ga6b8a2639706d5c409fc1287e8f55e928"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for error callbacks.  <a href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">More...</a><br /></td></tr>
-<tr class="separator:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd8db81fdb0e850549dc6bace5ed697a"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
-<tr class="memdesc:gafd8db81fdb0e850549dc6bace5ed697a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window position callbacks.  <a href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">More...</a><br /></td></tr>
-<tr class="separator:gafd8db81fdb0e850549dc6bace5ed697a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae49ee6ebc03fa2da024b89943a331355"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
-<tr class="memdesc:gae49ee6ebc03fa2da024b89943a331355"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window size callbacks.  <a href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">More...</a><br /></td></tr>
-<tr class="separator:gae49ee6ebc03fa2da024b89943a331355"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td></tr>
-<tr class="memdesc:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window close callbacks.  <a href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">More...</a><br /></td></tr>
-<tr class="separator:ga93e7c2555bd837f4ed8b20f76cada72e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7a56f9e0227e2cd9470d80d919032e08"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *)</td></tr>
-<tr class="memdesc:ga7a56f9e0227e2cd9470d80d919032e08"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window content refresh callbacks.  <a href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">More...</a><br /></td></tr>
-<tr class="separator:ga7a56f9e0227e2cd9470d80d919032e08"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga58be2061828dd35080bb438405d3a7e2"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
-<tr class="memdesc:ga58be2061828dd35080bb438405d3a7e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window focus callbacks.  <a href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">More...</a><br /></td></tr>
-<tr class="separator:ga58be2061828dd35080bb438405d3a7e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad2d4e4c3d28b1242e742e8268b9528af"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
-<tr class="memdesc:gad2d4e4c3d28b1242e742e8268b9528af"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window iconify callbacks.  <a href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">More...</a><br /></td></tr>
-<tr class="separator:gad2d4e4c3d28b1242e742e8268b9528af"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga7269a3d1cb100c0081f95fc09afa4949"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
-<tr class="memdesc:ga7269a3d1cb100c0081f95fc09afa4949"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window maximize callbacks.  <a href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">More...</a><br /></td></tr>
-<tr class="separator:ga7269a3d1cb100c0081f95fc09afa4949"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3e218ef9ff826129c55a7d5f6971a285"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int)</td></tr>
-<tr class="memdesc:ga3e218ef9ff826129c55a7d5f6971a285"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for framebuffer size callbacks.  <a href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">More...</a><br /></td></tr>
-<tr class="separator:ga3e218ef9ff826129c55a7d5f6971a285"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1da46b65eafcc1a7ff0adb8f4a7b72fd"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, float, float)</td></tr>
-<tr class="memdesc:ga1da46b65eafcc1a7ff0adb8f4a7b72fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window content scale callbacks.  <a href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">More...</a><br /></td></tr>
-<tr class="separator:ga1da46b65eafcc1a7ff0adb8f4a7b72fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga39893a4a7e7c3239c98d29c9e084350c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int)</td></tr>
-<tr class="memdesc:ga39893a4a7e7c3239c98d29c9e084350c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for mouse button callbacks.  <a href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">More...</a><br /></td></tr>
-<tr class="separator:ga39893a4a7e7c3239c98d29c9e084350c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4cfad918fa836f09541e7b9acd36686c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td></tr>
-<tr class="memdesc:ga4cfad918fa836f09541e7b9acd36686c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for cursor position callbacks.  <a href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">More...</a><br /></td></tr>
-<tr class="separator:ga4cfad918fa836f09541e7b9acd36686c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int)</td></tr>
-<tr class="memdesc:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for cursor enter/leave callbacks.  <a href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">More...</a><br /></td></tr>
-<tr class="separator:ga51ab436c41eeaed6db5a0c9403b1c840"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, double, double)</td></tr>
-<tr class="memdesc:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for scroll callbacks.  <a href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">More...</a><br /></td></tr>
-<tr class="separator:ga4687e2199c60a18a8dd1da532e6d75c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0192a232a41e4e82948217c8ba94fdfd"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, int, int, int)</td></tr>
-<tr class="memdesc:ga0192a232a41e4e82948217c8ba94fdfd"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for keyboard key callbacks.  <a href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">More...</a><br /></td></tr>
-<tr class="separator:ga0192a232a41e4e82948217c8ba94fdfd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int)</td></tr>
-<tr class="memdesc:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for Unicode character callbacks.  <a href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">More...</a><br /></td></tr>
-<tr class="separator:gabf24451c7ceb1952bc02b17a0d5c3e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae36fb6897d2b7df9b128900c8ce9c507"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, unsigned int, int)</td></tr>
-<tr class="memdesc:gae36fb6897d2b7df9b128900c8ce9c507"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for Unicode character with modifiers callbacks.  <a href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">More...</a><br /></td></tr>
-<tr class="separator:gae36fb6897d2b7df9b128900c8ce9c507"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafd0493dc32cd5ca5810e6148c0c026ea"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *, int, const char *[])</td></tr>
-<tr class="memdesc:gafd0493dc32cd5ca5810e6148c0c026ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for path drop callbacks.  <a href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">More...</a><br /></td></tr>
-<tr class="separator:gafd0493dc32cd5ca5810e6148c0c026ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a7ee579a66720f24d656526f3e44c63"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *, int)</td></tr>
-<tr class="memdesc:ga8a7ee579a66720f24d656526f3e44c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for monitor configuration callbacks.  <a href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">More...</a><br /></td></tr>
-<tr class="separator:ga8a7ee579a66720f24d656526f3e44c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa67aa597e974298c748bfe4fb17d406d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>) (int, int)</td></tr>
-<tr class="memdesc:gaa67aa597e974298c748bfe4fb17d406d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for joystick configuration callbacks.  <a href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">More...</a><br /></td></tr>
-<tr class="separator:gaa67aa597e974298c748bfe4fb17d406d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">GLFWvidmode</a></td></tr>
-<tr class="memdesc:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type.  <a href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">More...</a><br /></td></tr>
-<tr class="separator:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec0bd37af673be8813592849f13e02f0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">GLFWgammaramp</a></td></tr>
-<tr class="memdesc:gaec0bd37af673be8813592849f13e02f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp.  <a href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">More...</a><br /></td></tr>
-<tr class="separator:gaec0bd37af673be8813592849f13e02f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac81c32f4437de7b3aa58ab62c3d9e5b1"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWimage.html">GLFWimage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac81c32f4437de7b3aa58ab62c3d9e5b1">GLFWimage</a></td></tr>
-<tr class="memdesc:gac81c32f4437de7b3aa58ab62c3d9e5b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Image data.  <a href="group__window.html#gac81c32f4437de7b3aa58ab62c3d9e5b1">More...</a><br /></td></tr>
-<tr class="separator:gac81c32f4437de7b3aa58ab62c3d9e5b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b86867abb735af3b959f61c44b1d029"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgamepadstate.html">GLFWgamepadstate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0b86867abb735af3b959f61c44b1d029">GLFWgamepadstate</a></td></tr>
-<tr class="memdesc:ga0b86867abb735af3b959f61c44b1d029"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamepad input state.  <a href="group__input.html#ga0b86867abb735af3b959f61c44b1d029">More...</a><br /></td></tr>
-<tr class="separator:ga0b86867abb735af3b959f61c44b1d029"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8184701785c096b3862a75cda1bf44a3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>) (int error_code, const char *description)</td></tr>
+<tr class="memdesc:ga8184701785c096b3862a75cda1bf44a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for error callbacks.  <a href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">More...</a><br /></td></tr>
+<tr class="separator:ga8184701785c096b3862a75cda1bf44a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabe287973a21a8f927cde4db06b8dcbe9"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int xpos, int ypos)</td></tr>
+<tr class="memdesc:gabe287973a21a8f927cde4db06b8dcbe9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window position callbacks.  <a href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">More...</a><br /></td></tr>
+<tr class="separator:gabe287973a21a8f927cde4db06b8dcbe9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaec0282944bb810f6f3163ec02da90350"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int width, int height)</td></tr>
+<tr class="memdesc:gaec0282944bb810f6f3163ec02da90350"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window size callbacks.  <a href="group__window.html#gaec0282944bb810f6f3163ec02da90350">More...</a><br /></td></tr>
+<tr class="separator:gaec0282944bb810f6f3163ec02da90350"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabf859b936d80961b7d39013a9694cc3e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:gabf859b936d80961b7d39013a9694cc3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window close callbacks.  <a href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">More...</a><br /></td></tr>
+<tr class="separator:gabf859b936d80961b7d39013a9694cc3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga431663a1427d2eb3a273bc398b6737b5"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:ga431663a1427d2eb3a273bc398b6737b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window content refresh callbacks.  <a href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">More...</a><br /></td></tr>
+<tr class="separator:ga431663a1427d2eb3a273bc398b6737b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabc58c47e9d93f6eb1862d615c3680f46"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int focused)</td></tr>
+<tr class="memdesc:gabc58c47e9d93f6eb1862d615c3680f46"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window focus callbacks.  <a href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">More...</a><br /></td></tr>
+<tr class="separator:gabc58c47e9d93f6eb1862d615c3680f46"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga35c658cccba236f26e7adee0e25f6a4f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int iconified)</td></tr>
+<tr class="memdesc:ga35c658cccba236f26e7adee0e25f6a4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window iconify callbacks.  <a href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">More...</a><br /></td></tr>
+<tr class="separator:ga35c658cccba236f26e7adee0e25f6a4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3017196fdaec33ac3e095765176c2a90"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int maximized)</td></tr>
+<tr class="memdesc:ga3017196fdaec33ac3e095765176c2a90"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window maximize callbacks.  <a href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">More...</a><br /></td></tr>
+<tr class="separator:ga3017196fdaec33ac3e095765176c2a90"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae18026e294dde685ed2e5f759533144d"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int width, int height)</td></tr>
+<tr class="memdesc:gae18026e294dde685ed2e5f759533144d"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for framebuffer size callbacks.  <a href="group__window.html#gae18026e294dde685ed2e5f759533144d">More...</a><br /></td></tr>
+<tr class="separator:gae18026e294dde685ed2e5f759533144d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga77f288a2d04bb3c77c7d9615d08cf70e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, float xscale, float yscale)</td></tr>
+<tr class="memdesc:ga77f288a2d04bb3c77c7d9615d08cf70e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for window content scale callbacks.  <a href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">More...</a><br /></td></tr>
+<tr class="separator:ga77f288a2d04bb3c77c7d9615d08cf70e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0184dcb59f6d85d735503dcaae809727"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int button, int action, int mods)</td></tr>
+<tr class="memdesc:ga0184dcb59f6d85d735503dcaae809727"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for mouse button callbacks.  <a href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">More...</a><br /></td></tr>
+<tr class="separator:ga0184dcb59f6d85d735503dcaae809727"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad6fae41b3ac2e4209aaa87b596c57f68"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, double xpos, double ypos)</td></tr>
+<tr class="memdesc:gad6fae41b3ac2e4209aaa87b596c57f68"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for cursor position callbacks.  <a href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">More...</a><br /></td></tr>
+<tr class="separator:gad6fae41b3ac2e4209aaa87b596c57f68"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa93dc4818ac9ab32532909d53a337cbe"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int entered)</td></tr>
+<tr class="memdesc:gaa93dc4818ac9ab32532909d53a337cbe"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for cursor enter/leave callbacks.  <a href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">More...</a><br /></td></tr>
+<tr class="separator:gaa93dc4818ac9ab32532909d53a337cbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf656112c33de3efdb227fa58f0134cf5"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, double xoffset, double yoffset)</td></tr>
+<tr class="memdesc:gaf656112c33de3efdb227fa58f0134cf5"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for scroll callbacks.  <a href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">More...</a><br /></td></tr>
+<tr class="separator:gaf656112c33de3efdb227fa58f0134cf5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5bd751b27b90f865d2ea613533f0453c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int key, int scancode, int action, int mods)</td></tr>
+<tr class="memdesc:ga5bd751b27b90f865d2ea613533f0453c"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for keyboard key callbacks.  <a href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">More...</a><br /></td></tr>
+<tr class="separator:ga5bd751b27b90f865d2ea613533f0453c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1ab90a55cf3f58639b893c0f4118cb6e"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, unsigned int codepoint)</td></tr>
+<tr class="memdesc:ga1ab90a55cf3f58639b893c0f4118cb6e"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for Unicode character callbacks.  <a href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">More...</a><br /></td></tr>
+<tr class="separator:ga1ab90a55cf3f58639b893c0f4118cb6e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3cf64f90b6219c05ac7b7822d5a4b8f"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, unsigned int codepoint, int mods)</td></tr>
+<tr class="memdesc:gac3cf64f90b6219c05ac7b7822d5a4b8f"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for Unicode character with modifiers callbacks.  <a href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">More...</a><br /></td></tr>
+<tr class="separator:gac3cf64f90b6219c05ac7b7822d5a4b8f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaaba73c3274062c18723b7f05862d94b2"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a>) (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, int path_count, const char *paths[])</td></tr>
+<tr class="memdesc:gaaba73c3274062c18723b7f05862d94b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for path drop callbacks.  <a href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">More...</a><br /></td></tr>
+<tr class="separator:gaaba73c3274062c18723b7f05862d94b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabe16caca8dea952504dfdebdf4cd249"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int event)</td></tr>
+<tr class="memdesc:gaabe16caca8dea952504dfdebdf4cd249"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for monitor configuration callbacks.  <a href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">More...</a><br /></td></tr>
+<tr class="separator:gaabe16caca8dea952504dfdebdf4cd249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa21ad5986ae9a26077a40142efb56243"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a>) (int jid, int event)</td></tr>
+<tr class="memdesc:gaa21ad5986ae9a26077a40142efb56243"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for joystick configuration callbacks.  <a href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">More...</a><br /></td></tr>
+<tr class="separator:gaa21ad5986ae9a26077a40142efb56243"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga902c2816ac9b34b757282daab59b2565"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">GLFWvidmode</a></td></tr>
+<tr class="memdesc:ga902c2816ac9b34b757282daab59b2565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type.  <a href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">More...</a><br /></td></tr>
+<tr class="separator:ga902c2816ac9b34b757282daab59b2565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga939cf093cb0af0498b7b54dc2e181404"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">GLFWgammaramp</a></td></tr>
+<tr class="memdesc:ga939cf093cb0af0498b7b54dc2e181404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp.  <a href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">More...</a><br /></td></tr>
+<tr class="separator:ga939cf093cb0af0498b7b54dc2e181404"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7cc0a09de172fa7250872046f8c4d2ca"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWimage.html">GLFWimage</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga7cc0a09de172fa7250872046f8c4d2ca">GLFWimage</a></td></tr>
+<tr class="memdesc:ga7cc0a09de172fa7250872046f8c4d2ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Image data.  <a href="group__window.html#ga7cc0a09de172fa7250872046f8c4d2ca">More...</a><br /></td></tr>
+<tr class="separator:ga7cc0a09de172fa7250872046f8c4d2ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga61acfb1f28f751438dd221225c5e725d"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgamepadstate.html">GLFWgamepadstate</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga61acfb1f28f751438dd221225c5e725d">GLFWgamepadstate</a></td></tr>
+<tr class="memdesc:ga61acfb1f28f751438dd221225c5e725d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamepad input state.  <a href="group__input.html#ga61acfb1f28f751438dd221225c5e725d">More...</a><br /></td></tr>
+<tr class="separator:ga61acfb1f28f751438dd221225c5e725d"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:ga317aac130a235ab08c6db0834907d85e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> (void)</td></tr>
 <tr class="memdesc:ga317aac130a235ab08c6db0834907d85e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the GLFW library.  <a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">More...</a><br /></td></tr>
@@ -853,21 +856,21 @@ Functions</h2></td></tr>
 <tr class="memitem:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> (int *major, int *minor, int *rev)</td></tr>
 <tr class="memdesc:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the version of the GLFW library.  <a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">More...</a><br /></td></tr>
 <tr class="separator:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga23d47dc013fce2bf58036da66079a657"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a> (void)</td></tr>
-<tr class="memdesc:ga23d47dc013fce2bf58036da66079a657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string describing the compile-time configuration.  <a href="group__init.html#ga23d47dc013fce2bf58036da66079a657">More...</a><br /></td></tr>
-<tr class="separator:ga23d47dc013fce2bf58036da66079a657"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga026abd003c8e6501981ab1662062f1c0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a> (void)</td></tr>
+<tr class="memdesc:ga026abd003c8e6501981ab1662062f1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string describing the compile-time configuration.  <a href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">More...</a><br /></td></tr>
+<tr class="separator:ga026abd003c8e6501981ab1662062f1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga944986b4ec0b928d488141f92982aa18"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> (const char **description)</td></tr>
 <tr class="memdesc:ga944986b4ec0b928d488141f92982aa18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns and clears the last error for the calling thread.  <a href="group__init.html#ga944986b4ec0b928d488141f92982aa18">More...</a><br /></td></tr>
 <tr class="separator:ga944986b4ec0b928d488141f92982aa18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff45816610d53f0b83656092a4034f40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a> (<a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> callback)</td></tr>
+<tr class="memitem:gaff45816610d53f0b83656092a4034f40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a> (<a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a> callback)</td></tr>
 <tr class="memdesc:gaff45816610d53f0b83656092a4034f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the error callback.  <a href="group__init.html#gaff45816610d53f0b83656092a4034f40">More...</a><br /></td></tr>
 <tr class="separator:gaff45816610d53f0b83656092a4034f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a> (int *count)</td></tr>
-<tr class="memdesc:ga3fba51c8bd36491d4712aa5bd074a537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently connected monitors.  <a href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">More...</a><br /></td></tr>
-<tr class="separator:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a> (void)</td></tr>
-<tr class="memdesc:ga721867d84c6d18d6790d64d2847ca0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the primary monitor.  <a href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">More...</a><br /></td></tr>
-<tr class="separator:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70b1156d5d24e9928f145d6c864369d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a> (int *count)</td></tr>
+<tr class="memdesc:ga70b1156d5d24e9928f145d6c864369d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently connected monitors.  <a href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">More...</a><br /></td></tr>
+<tr class="separator:ga70b1156d5d24e9928f145d6c864369d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3adb24947eb709e1874028272e5dfc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a> (void)</td></tr>
+<tr class="memdesc:gac3adb24947eb709e1874028272e5dfc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the primary monitor.  <a href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">More...</a><br /></td></tr>
+<tr class="separator:gac3adb24947eb709e1874028272e5dfc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga102f54e7acc9149edbcf0997152df8c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *xpos, int *ypos)</td></tr>
 <tr class="memdesc:ga102f54e7acc9149edbcf0997152df8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of the monitor's viewport on the virtual screen.  <a href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">More...</a><br /></td></tr>
 <tr class="separator:ga102f54e7acc9149edbcf0997152df8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -880,30 +883,30 @@ Functions</h2></td></tr>
 <tr class="memitem:gad3152e84465fa620b601265ebfcdb21b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, float *xscale, float *yscale)</td></tr>
 <tr class="memdesc:gad3152e84465fa620b601265ebfcdb21b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the content scale for the specified monitor.  <a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">More...</a><br /></td></tr>
 <tr class="separator:gad3152e84465fa620b601265ebfcdb21b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga79a34ee22ff080ca954a9663e4679daf"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:ga79a34ee22ff080ca954a9663e4679daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified monitor.  <a href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">More...</a><br /></td></tr>
-<tr class="separator:ga79a34ee22ff080ca954a9663e4679daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7af83e13489d90379588fb331b9e4b68"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga7af83e13489d90379588fb331b9e4b68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified monitor.  <a href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">More...</a><br /></td></tr>
+<tr class="separator:ga7af83e13489d90379588fb331b9e4b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga702750e24313a686d3637297b6e85fda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, void *pointer)</td></tr>
 <tr class="memdesc:ga702750e24313a686d3637297b6e85fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the user pointer of the specified monitor.  <a href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">More...</a><br /></td></tr>
 <tr class="separator:ga702750e24313a686d3637297b6e85fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2d4209016b049222877f620010ed0d8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac2d4209016b049222877f620010ed0d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified monitor.  <a href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">More...</a><br /></td></tr>
-<tr class="separator:gac2d4209016b049222877f620010ed0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab39df645587c8518192aa746c2fb06c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a> (<a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> callback)</td></tr>
+<tr class="memitem:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified monitor.  <a href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">More...</a><br /></td></tr>
+<tr class="separator:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab39df645587c8518192aa746c2fb06c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a> (<a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a> callback)</td></tr>
 <tr class="memdesc:gab39df645587c8518192aa746c2fb06c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the monitor configuration callback.  <a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">More...</a><br /></td></tr>
 <tr class="separator:gab39df645587c8518192aa746c2fb06c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *count)</td></tr>
-<tr class="memdesc:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the available video modes for the specified monitor.  <a href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">More...</a><br /></td></tr>
-<tr class="separator:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current mode of the specified monitor.  <a href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">More...</a><br /></td></tr>
-<tr class="separator:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *count)</td></tr>
+<tr class="memdesc:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the available video modes for the specified monitor.  <a href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">More...</a><br /></td></tr>
+<tr class="separator:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba376fa7e76634b4788bddc505d6c9d5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gaba376fa7e76634b4788bddc505d6c9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current mode of the specified monitor.  <a href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">More...</a><br /></td></tr>
+<tr class="separator:gaba376fa7e76634b4788bddc505d6c9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6ac582625c990220785ddd34efa3169a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, float gamma)</td></tr>
 <tr class="memdesc:ga6ac582625c990220785ddd34efa3169a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a gamma ramp and sets it for the specified monitor.  <a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">More...</a><br /></td></tr>
 <tr class="separator:ga6ac582625c990220785ddd34efa3169a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current gamma ramp for the specified monitor.  <a href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">More...</a><br /></td></tr>
-<tr class="separator:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76ba90debcf0062b5c4b73052b24f96f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga76ba90debcf0062b5c4b73052b24f96f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current gamma ramp for the specified monitor.  <a href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">More...</a><br /></td></tr>
+<tr class="separator:ga76ba90debcf0062b5c4b73052b24f96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *ramp)</td></tr>
 <tr class="memdesc:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current gamma ramp for the specified monitor.  <a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">More...</a><br /></td></tr>
 <tr class="separator:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -916,9 +919,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga8cb2782861c9d997bcf2dea97f363e5f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f">glfwWindowHintString</a> (int hint, const char *value)</td></tr>
 <tr class="memdesc:ga8cb2782861c9d997bcf2dea97f363e5f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the specified window hint to the desired value.  <a href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f">More...</a><br /></td></tr>
 <tr class="separator:ga8cb2782861c9d997bcf2dea97f363e5f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> (int width, int height, const char *title, <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *share)</td></tr>
-<tr class="memdesc:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a window and its associated context.  <a href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">More...</a><br /></td></tr>
-<tr class="separator:ga5c336fddf2cbb5b92f65f10fb6043344"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3555a418df92ad53f917597fe2f64aeb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> (int width, int height, const char *title, <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *share)</td></tr>
+<tr class="memdesc:ga3555a418df92ad53f917597fe2f64aeb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a window and its associated context.  <a href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">More...</a><br /></td></tr>
+<tr class="separator:ga3555a418df92ad53f917597fe2f64aeb"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gacdf43e51376051d2c091662e9fe3d7b2"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:gacdf43e51376051d2c091662e9fe3d7b2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys the specified window and its context.  <a href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">More...</a><br /></td></tr>
 <tr class="separator:gacdf43e51376051d2c091662e9fe3d7b2"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -988,9 +991,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga2f8d59323fc4692c1d54ba08c863a703"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">glfwRequestWindowAttention</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga2f8d59323fc4692c1d54ba08c863a703"><td class="mdescLeft">&#160;</td><td class="mdescRight">Requests user attention to the specified window.  <a href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">More...</a><br /></td></tr>
 <tr class="separator:ga2f8d59323fc4692c1d54ba08c863a703"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaeac25e64789974ccbe0811766bd91a16"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaeac25e64789974ccbe0811766bd91a16">glfwGetWindowMonitor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
-<tr class="memdesc:gaeac25e64789974ccbe0811766bd91a16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the monitor that the window uses for full screen mode.  <a href="group__window.html#gaeac25e64789974ccbe0811766bd91a16">More...</a><br /></td></tr>
-<tr class="separator:gaeac25e64789974ccbe0811766bd91a16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4d766499ac02c60f02221a9dfab87299"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga4d766499ac02c60f02221a9dfab87299">glfwGetWindowMonitor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:ga4d766499ac02c60f02221a9dfab87299"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the monitor that the window uses for full screen mode.  <a href="group__window.html#ga4d766499ac02c60f02221a9dfab87299">More...</a><br /></td></tr>
+<tr class="separator:ga4d766499ac02c60f02221a9dfab87299"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int xpos, int ypos, int width, int height, int refreshRate)</td></tr>
 <tr class="memdesc:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the mode, monitor, video mode and placement of a window.  <a href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">More...</a><br /></td></tr>
 <tr class="separator:ga81c76c418af80a1cce7055bccb0ae0a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1003,34 +1006,34 @@ Functions</h2></td></tr>
 <tr class="memitem:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, void *pointer)</td></tr>
 <tr class="memdesc:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the user pointer of the specified window.  <a href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">More...</a><br /></td></tr>
 <tr class="separator:ga3d2fc6026e690ab31a13f78bc9fd3651"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">glfwGetWindowUserPointer</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
-<tr class="memdesc:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified window.  <a href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">More...</a><br /></td></tr>
-<tr class="separator:ga17807ce0f45ac3f8bb50d6dcc59a4e06"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga08bdfbba88934f9c4f92fd757979ac74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a> callback)</td></tr>
+<tr class="memitem:gae77a4add0d2023ca21ff1443ced01653"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gae77a4add0d2023ca21ff1443ced01653">glfwGetWindowUserPointer</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:gae77a4add0d2023ca21ff1443ced01653"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified window.  <a href="group__window.html#gae77a4add0d2023ca21ff1443ced01653">More...</a><br /></td></tr>
+<tr class="separator:gae77a4add0d2023ca21ff1443ced01653"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga08bdfbba88934f9c4f92fd757979ac74"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a> callback)</td></tr>
 <tr class="memdesc:ga08bdfbba88934f9c4f92fd757979ac74"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position callback for the specified window.  <a href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">More...</a><br /></td></tr>
 <tr class="separator:ga08bdfbba88934f9c4f92fd757979ac74"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad91b8b047a0c4c6033c38853864c34f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a> callback)</td></tr>
+<tr class="memitem:gad91b8b047a0c4c6033c38853864c34f8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a> callback)</td></tr>
 <tr class="memdesc:gad91b8b047a0c4c6033c38853864c34f8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size callback for the specified window.  <a href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">More...</a><br /></td></tr>
 <tr class="separator:gad91b8b047a0c4c6033c38853864c34f8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gada646d775a7776a95ac000cfc1885331"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a> callback)</td></tr>
+<tr class="memitem:gada646d775a7776a95ac000cfc1885331"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a> callback)</td></tr>
 <tr class="memdesc:gada646d775a7776a95ac000cfc1885331"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the close callback for the specified window.  <a href="group__window.html#gada646d775a7776a95ac000cfc1885331">More...</a><br /></td></tr>
 <tr class="separator:gada646d775a7776a95ac000cfc1885331"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1c5c7eb889c33c7f4d10dd35b327654e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a> callback)</td></tr>
+<tr class="memitem:ga1c5c7eb889c33c7f4d10dd35b327654e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a> callback)</td></tr>
 <tr class="memdesc:ga1c5c7eb889c33c7f4d10dd35b327654e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the refresh callback for the specified window.  <a href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">More...</a><br /></td></tr>
 <tr class="separator:ga1c5c7eb889c33c7f4d10dd35b327654e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2d83c4a10f071baf841f6730528e66c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a> callback)</td></tr>
+<tr class="memitem:gac2d83c4a10f071baf841f6730528e66c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a> callback)</td></tr>
 <tr class="memdesc:gac2d83c4a10f071baf841f6730528e66c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the focus callback for the specified window.  <a href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">More...</a><br /></td></tr>
 <tr class="separator:gac2d83c4a10f071baf841f6730528e66c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac793e9efd255567b5fb8b445052cfd3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">glfwSetWindowIconifyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a> callback)</td></tr>
+<tr class="memitem:gac793e9efd255567b5fb8b445052cfd3e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">glfwSetWindowIconifyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a> callback)</td></tr>
 <tr class="memdesc:gac793e9efd255567b5fb8b445052cfd3e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the iconify callback for the specified window.  <a href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">More...</a><br /></td></tr>
 <tr class="separator:gac793e9efd255567b5fb8b445052cfd3e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gacbe64c339fbd94885e62145563b6dc93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a> callback)</td></tr>
+<tr class="memitem:gacbe64c339fbd94885e62145563b6dc93"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a> callback)</td></tr>
 <tr class="memdesc:gacbe64c339fbd94885e62145563b6dc93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the maximize callback for the specified window.  <a href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">More...</a><br /></td></tr>
 <tr class="separator:gacbe64c339fbd94885e62145563b6dc93"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab3fb7c3366577daef18c0023e2a8591f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a> callback)</td></tr>
+<tr class="memitem:gab3fb7c3366577daef18c0023e2a8591f"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a> callback)</td></tr>
 <tr class="memdesc:gab3fb7c3366577daef18c0023e2a8591f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the framebuffer resize callback for the specified window.  <a href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">More...</a><br /></td></tr>
 <tr class="separator:gab3fb7c3366577daef18c0023e2a8591f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaf2832ebb5aa6c252a2d261de002c92d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a> callback)</td></tr>
+<tr class="memitem:gaf2832ebb5aa6c252a2d261de002c92d6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a> callback)</td></tr>
 <tr class="memdesc:gaf2832ebb5aa6c252a2d261de002c92d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the window content scale callback for the specified window.  <a href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">More...</a><br /></td></tr>
 <tr class="separator:gaf2832ebb5aa6c252a2d261de002c92d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga37bd57223967b4211d60ca1a0bf3c832"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a> (void)</td></tr>
@@ -1054,9 +1057,9 @@ Functions</h2></td></tr>
 <tr class="memitem:gae4ee0dbd0d256183e1ea4026d897e1c2"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a> (void)</td></tr>
 <tr class="memdesc:gae4ee0dbd0d256183e1ea4026d897e1c2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether raw mouse motion is supported.  <a href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">More...</a><br /></td></tr>
 <tr class="separator:gae4ee0dbd0d256183e1ea4026d897e1c2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a> (int key, int scancode)</td></tr>
-<tr class="memdesc:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the layout-specific name of the specified printable key.  <a href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">More...</a><br /></td></tr>
-<tr class="separator:ga237a182e5ec0b21ce64543f3b5e7e2be"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeaed62e69c3bd62b7ff8f7b19913ce4f"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a> (int key, int scancode)</td></tr>
+<tr class="memdesc:gaeaed62e69c3bd62b7ff8f7b19913ce4f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the layout-specific name of the specified printable key.  <a href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">More...</a><br /></td></tr>
+<tr class="separator:gaeaed62e69c3bd62b7ff8f7b19913ce4f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga67ddd1b7dcbbaff03e4a76c0ea67103a"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a> (int key)</td></tr>
 <tr class="memdesc:ga67ddd1b7dcbbaff03e4a76c0ea67103a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the platform-specific scancode of the specified key.  <a href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">More...</a><br /></td></tr>
 <tr class="separator:ga67ddd1b7dcbbaff03e4a76c0ea67103a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1072,87 +1075,87 @@ Functions</h2></td></tr>
 <tr class="memitem:ga04b03af936d906ca123c8f4ee08b39e7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, double xpos, double ypos)</td></tr>
 <tr class="memdesc:ga04b03af936d906ca123c8f4ee08b39e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the position of the cursor, relative to the content area of the window.  <a href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">More...</a><br /></td></tr>
 <tr class="separator:ga04b03af936d906ca123c8f4ee08b39e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafca356935e10135016aa49ffa464c355"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a> (const <a class="el" href="structGLFWimage.html">GLFWimage</a> *image, int xhot, int yhot)</td></tr>
-<tr class="memdesc:gafca356935e10135016aa49ffa464c355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a custom cursor.  <a href="group__input.html#gafca356935e10135016aa49ffa464c355">More...</a><br /></td></tr>
-<tr class="separator:gafca356935e10135016aa49ffa464c355"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a> (int shape)</td></tr>
-<tr class="memdesc:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a cursor with a standard shape.  <a href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">More...</a><br /></td></tr>
-<tr class="separator:gaa65f416d03ebbbb5b8db71a489fcb894"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga556f604f73af156c0db0e97c081373c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a> (const <a class="el" href="structGLFWimage.html">GLFWimage</a> *image, int xhot, int yhot)</td></tr>
+<tr class="memdesc:ga556f604f73af156c0db0e97c081373c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a custom cursor.  <a href="group__input.html#ga556f604f73af156c0db0e97c081373c3">More...</a><br /></td></tr>
+<tr class="separator:ga556f604f73af156c0db0e97c081373c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf2fb2eb2c9dd842d1cef8a34e3c6403e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a> (int shape)</td></tr>
+<tr class="memdesc:gaf2fb2eb2c9dd842d1cef8a34e3c6403e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Creates a cursor with a standard shape.  <a href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">More...</a><br /></td></tr>
+<tr class="separator:gaf2fb2eb2c9dd842d1cef8a34e3c6403e"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a> (<a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *cursor)</td></tr>
 <tr class="memdesc:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destroys a cursor.  <a href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">More...</a><br /></td></tr>
 <tr class="separator:ga81b952cd1764274d0db7fb3c5a79ba6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> *cursor)</td></tr>
 <tr class="memdesc:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor for the window.  <a href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">More...</a><br /></td></tr>
 <tr class="separator:gad3b4f38c8d5dae036bc8fa959e18343e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1caf18159767e761185e49a3be019f8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a> callback)</td></tr>
+<tr class="memitem:ga1caf18159767e761185e49a3be019f8d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a> callback)</td></tr>
 <tr class="memdesc:ga1caf18159767e761185e49a3be019f8d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the key callback.  <a href="group__input.html#ga1caf18159767e761185e49a3be019f8d">More...</a><br /></td></tr>
 <tr class="separator:ga1caf18159767e761185e49a3be019f8d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab25c4a220fd8f5717718dbc487828996"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a> callback)</td></tr>
+<tr class="memitem:gab25c4a220fd8f5717718dbc487828996"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a> callback)</td></tr>
 <tr class="memdesc:gab25c4a220fd8f5717718dbc487828996"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Unicode character callback.  <a href="group__input.html#gab25c4a220fd8f5717718dbc487828996">More...</a><br /></td></tr>
 <tr class="separator:gab25c4a220fd8f5717718dbc487828996"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a> callback)</td></tr>
+<tr class="memitem:ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a> callback)</td></tr>
 <tr class="memdesc:ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the Unicode character with modifiers callback.  <a href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">More...</a><br /></td></tr>
 <tr class="separator:ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga6ab84420974d812bee700e45284a723c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a> callback)</td></tr>
+<tr class="memitem:ga6ab84420974d812bee700e45284a723c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a> callback)</td></tr>
 <tr class="memdesc:ga6ab84420974d812bee700e45284a723c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the mouse button callback.  <a href="group__input.html#ga6ab84420974d812bee700e45284a723c">More...</a><br /></td></tr>
 <tr class="separator:ga6ab84420974d812bee700e45284a723c"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac1f879ab7435d54d4d79bb469fe225d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a> callback)</td></tr>
+<tr class="memitem:gac1f879ab7435d54d4d79bb469fe225d7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a> callback)</td></tr>
 <tr class="memdesc:gac1f879ab7435d54d4d79bb469fe225d7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor position callback.  <a href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">More...</a><br /></td></tr>
 <tr class="separator:gac1f879ab7435d54d4d79bb469fe225d7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gad27f8ad0142c038a281466c0966817d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a> callback)</td></tr>
+<tr class="memitem:gad27f8ad0142c038a281466c0966817d8"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a> callback)</td></tr>
 <tr class="memdesc:gad27f8ad0142c038a281466c0966817d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the cursor enter/leave callback.  <a href="group__input.html#gad27f8ad0142c038a281466c0966817d8">More...</a><br /></td></tr>
 <tr class="separator:gad27f8ad0142c038a281466c0966817d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga571e45a030ae4061f746ed56cb76aede"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a> callback)</td></tr>
+<tr class="memitem:ga571e45a030ae4061f746ed56cb76aede"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a> callback)</td></tr>
 <tr class="memdesc:ga571e45a030ae4061f746ed56cb76aede"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the scroll callback.  <a href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">More...</a><br /></td></tr>
 <tr class="separator:ga571e45a030ae4061f746ed56cb76aede"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab773f0ee0a07cff77a210cea40bc1f6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a> callback)</td></tr>
+<tr class="memitem:gab773f0ee0a07cff77a210cea40bc1f6b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, <a class="el" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a> callback)</td></tr>
 <tr class="memdesc:gab773f0ee0a07cff77a210cea40bc1f6b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the path drop callback.  <a href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">More...</a><br /></td></tr>
 <tr class="separator:gab773f0ee0a07cff77a210cea40bc1f6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaed0966cee139d815317f9ffcba64c9f1"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a> (int jid)</td></tr>
 <tr class="memdesc:gaed0966cee139d815317f9ffcba64c9f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the specified joystick is present.  <a href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">More...</a><br /></td></tr>
 <tr class="separator:gaed0966cee139d815317f9ffcba64c9f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaa8806536731e92c061bc70bcff6edbd0"><td class="memItemLeft" align="right" valign="top">const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a> (int jid, int *count)</td></tr>
-<tr class="memdesc:gaa8806536731e92c061bc70bcff6edbd0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the values of all axes of the specified joystick.  <a href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">More...</a><br /></td></tr>
-<tr class="separator:gaa8806536731e92c061bc70bcff6edbd0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gadb3cbf44af90a1536f519659a53bddd6"><td class="memItemLeft" align="right" valign="top">const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a> (int jid, int *count)</td></tr>
-<tr class="memdesc:gadb3cbf44af90a1536f519659a53bddd6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of all buttons of the specified joystick.  <a href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">More...</a><br /></td></tr>
-<tr class="separator:gadb3cbf44af90a1536f519659a53bddd6"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2d8d0634bb81c180899aeb07477a67ea"><td class="memItemLeft" align="right" valign="top">const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a> (int jid, int *count)</td></tr>
-<tr class="memdesc:ga2d8d0634bb81c180899aeb07477a67ea"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of all hats of the specified joystick.  <a href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">More...</a><br /></td></tr>
-<tr class="separator:ga2d8d0634bb81c180899aeb07477a67ea"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafbe3e51f670320908cfe4e20d3e5559e"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a> (int jid)</td></tr>
-<tr class="memdesc:gafbe3e51f670320908cfe4e20d3e5559e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified joystick.  <a href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">More...</a><br /></td></tr>
-<tr class="separator:gafbe3e51f670320908cfe4e20d3e5559e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae168c2c0b8cf2a1cb67c6b3c00bdd543"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gae168c2c0b8cf2a1cb67c6b3c00bdd543">glfwGetJoystickGUID</a> (int jid)</td></tr>
-<tr class="memdesc:gae168c2c0b8cf2a1cb67c6b3c00bdd543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the SDL compatible GUID of the specified joystick.  <a href="group__input.html#gae168c2c0b8cf2a1cb67c6b3c00bdd543">More...</a><br /></td></tr>
-<tr class="separator:gae168c2c0b8cf2a1cb67c6b3c00bdd543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaeb1c0191d3140a233a682987c61eb408"><td class="memItemLeft" align="right" valign="top">const float *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a> (int jid, int *count)</td></tr>
+<tr class="memdesc:gaeb1c0191d3140a233a682987c61eb408"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the values of all axes of the specified joystick.  <a href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">More...</a><br /></td></tr>
+<tr class="separator:gaeb1c0191d3140a233a682987c61eb408"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5ffe34739d3dc97efe432ed2d81d9938"><td class="memItemLeft" align="right" valign="top">const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a> (int jid, int *count)</td></tr>
+<tr class="memdesc:ga5ffe34739d3dc97efe432ed2d81d9938"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of all buttons of the specified joystick.  <a href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">More...</a><br /></td></tr>
+<tr class="separator:ga5ffe34739d3dc97efe432ed2d81d9938"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga06e660841b3e79c54da4f54a932c5a2c"><td class="memItemLeft" align="right" valign="top">const unsigned char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a> (int jid, int *count)</td></tr>
+<tr class="memdesc:ga06e660841b3e79c54da4f54a932c5a2c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the state of all hats of the specified joystick.  <a href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">More...</a><br /></td></tr>
+<tr class="separator:ga06e660841b3e79c54da4f54a932c5a2c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6a8e769e18e0bcfa9097793fc2c3978"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a> (int jid)</td></tr>
+<tr class="memdesc:gac6a8e769e18e0bcfa9097793fc2c3978"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified joystick.  <a href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">More...</a><br /></td></tr>
+<tr class="separator:gac6a8e769e18e0bcfa9097793fc2c3978"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6659411aec3c7fcef27780e2cb2d9600"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga6659411aec3c7fcef27780e2cb2d9600">glfwGetJoystickGUID</a> (int jid)</td></tr>
+<tr class="memdesc:ga6659411aec3c7fcef27780e2cb2d9600"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the SDL compatible GUID of the specified joystick.  <a href="group__input.html#ga6659411aec3c7fcef27780e2cb2d9600">More...</a><br /></td></tr>
+<tr class="separator:ga6659411aec3c7fcef27780e2cb2d9600"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6b2f72d64d636b48a727b437cbb7489e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a> (int jid, void *pointer)</td></tr>
 <tr class="memdesc:ga6b2f72d64d636b48a727b437cbb7489e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the user pointer of the specified joystick.  <a href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">More...</a><br /></td></tr>
 <tr class="separator:ga6b2f72d64d636b48a727b437cbb7489e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga06290acb7ed23895bf26b8e981827ebd"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">glfwGetJoystickUserPointer</a> (int jid)</td></tr>
-<tr class="memdesc:ga06290acb7ed23895bf26b8e981827ebd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified joystick.  <a href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">More...</a><br /></td></tr>
-<tr class="separator:ga06290acb7ed23895bf26b8e981827ebd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga18cefd7265d1fa04f3fd38a6746db5f3"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">glfwGetJoystickUserPointer</a> (int jid)</td></tr>
+<tr class="memdesc:ga18cefd7265d1fa04f3fd38a6746db5f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified joystick.  <a href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">More...</a><br /></td></tr>
+<tr class="separator:ga18cefd7265d1fa04f3fd38a6746db5f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gad0f676860f329d80f7e47e9f06a96f00"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a> (int jid)</td></tr>
 <tr class="memdesc:gad0f676860f329d80f7e47e9f06a96f00"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the specified joystick has a gamepad mapping.  <a href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">More...</a><br /></td></tr>
 <tr class="separator:gad0f676860f329d80f7e47e9f06a96f00"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a> (<a class="el" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a> callback)</td></tr>
+<tr class="memitem:ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a> (<a class="el" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a> callback)</td></tr>
 <tr class="memdesc:ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the joystick configuration callback.  <a href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">More...</a><br /></td></tr>
 <tr class="separator:ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaed5104612f2fa8e66aa6e846652ad00f"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a> (const char *string)</td></tr>
 <tr class="memdesc:gaed5104612f2fa8e66aa6e846652ad00f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Adds the specified SDL_GameControllerDB gamepad mappings.  <a href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">More...</a><br /></td></tr>
 <tr class="separator:gaed5104612f2fa8e66aa6e846652ad00f"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5c71e3533b2d384db9317fcd7661b210"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a> (int jid)</td></tr>
-<tr class="memdesc:ga5c71e3533b2d384db9317fcd7661b210"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the human-readable gamepad name for the specified joystick.  <a href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">More...</a><br /></td></tr>
-<tr class="separator:ga5c71e3533b2d384db9317fcd7661b210"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8aea73a1a25cc6c0486a617019f56728"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a> (int jid)</td></tr>
+<tr class="memdesc:ga8aea73a1a25cc6c0486a617019f56728"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the human-readable gamepad name for the specified joystick.  <a href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">More...</a><br /></td></tr>
+<tr class="separator:ga8aea73a1a25cc6c0486a617019f56728"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gadccddea8bce6113fa459de379ddaf051"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a> (int jid, <a class="el" href="structGLFWgamepadstate.html">GLFWgamepadstate</a> *state)</td></tr>
 <tr class="memdesc:gadccddea8bce6113fa459de379ddaf051"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the state of the specified joystick remapped as a gamepad.  <a href="group__input.html#gadccddea8bce6113fa459de379ddaf051">More...</a><br /></td></tr>
 <tr class="separator:gadccddea8bce6113fa459de379ddaf051"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window, const char *string)</td></tr>
 <tr class="memdesc:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the clipboard to the specified string.  <a href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">More...</a><br /></td></tr>
 <tr class="separator:gaba1f022c5eb07dfac421df34cdcd31dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
-<tr class="memdesc:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the clipboard as a string.  <a href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">More...</a><br /></td></tr>
-<tr class="separator:ga5aba1d704d9ab539282b1fbe9f18bb94"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga71a5b20808ea92193d65c21b82580355"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:ga71a5b20808ea92193d65c21b82580355"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the clipboard as a string.  <a href="group__input.html#ga71a5b20808ea92193d65c21b82580355">More...</a><br /></td></tr>
+<tr class="separator:ga71a5b20808ea92193d65c21b82580355"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a> (void)</td></tr>
 <tr class="memdesc:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the GLFW time.  <a href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">More...</a><br /></td></tr>
 <tr class="separator:gaa6cf4e7a77158a3b8fd00328b1720a4a"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1168,9 +1171,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga1c04dc242268f827290fe40aa1c91157"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga1c04dc242268f827290fe40aa1c91157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the context of the specified window current for the calling thread.  <a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">More...</a><br /></td></tr>
 <tr class="separator:ga1c04dc242268f827290fe40aa1c91157"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a> (void)</td></tr>
-<tr class="memdesc:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the window whose context is current on the calling thread.  <a href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">More...</a><br /></td></tr>
-<tr class="separator:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad94e80185397a6cf5fe2ab30567af71c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a> (void)</td></tr>
+<tr class="memdesc:gad94e80185397a6cf5fe2ab30567af71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the window whose context is current on the calling thread.  <a href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">More...</a><br /></td></tr>
+<tr class="separator:gad94e80185397a6cf5fe2ab30567af71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="mdescLeft">&#160;</td><td class="mdescRight">Swaps the front and back buffers of the specified window.  <a href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">More...</a><br /></td></tr>
 <tr class="separator:ga15a5a1ee5b3c2ca6b15ca209a12efd14"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1186,9 +1189,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> (void)</td></tr>
 <tr class="memdesc:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the Vulkan loader and an ICD have been found.  <a href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">More...</a><br /></td></tr>
 <tr class="separator:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1abcbe61033958f22f63ef82008874b1"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> (uint32_t *count)</td></tr>
-<tr class="memdesc:ga1abcbe61033958f22f63ef82008874b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Vulkan instance extensions required by GLFW.  <a href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">More...</a><br /></td></tr>
-<tr class="separator:ga1abcbe61033958f22f63ef82008874b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> (uint32_t *count)</td></tr>
+<tr class="memdesc:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Vulkan instance extensions required by GLFW.  <a href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">More...</a><br /></td></tr>
+<tr class="separator:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a> (VkInstance instance, const char *procname)</td></tr>
 <tr class="memdesc:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the specified Vulkan instance function.  <a href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">More...</a><br /></td></tr>
 <tr class="separator:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -1200,7 +1203,7 @@ Functions</h2></td></tr>
 <tr class="separator:ga1a24536bec3f80b08ead18e28e6ae965"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="a8a8538c5500308b4211844f2fb26c7b9"></a>
+<a id="a8a8538c5500308b4211844f2fb26c7b9" name="a8a8538c5500308b4211844f2fb26c7b9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a8a8538c5500308b4211844f2fb26c7b9">&#9670;&nbsp;</a></span>GLFW_APIENTRY_DEFINED</h2>
 
 <div class="memitem">
@@ -1214,7 +1217,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a8f6dcdc968d214ff14779564f1389264"></a>
+<a id="a8f6dcdc968d214ff14779564f1389264" name="a8f6dcdc968d214ff14779564f1389264"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a8f6dcdc968d214ff14779564f1389264">&#9670;&nbsp;</a></span>GLFW_NO_API</h2>
 
 <div class="memitem">
@@ -1228,7 +1231,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a01b3f66db266341425e9abee6b257db2"></a>
+<a id="a01b3f66db266341425e9abee6b257db2" name="a01b3f66db266341425e9abee6b257db2"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a01b3f66db266341425e9abee6b257db2">&#9670;&nbsp;</a></span>GLFW_OPENGL_API</h2>
 
 <div class="memitem">
@@ -1242,7 +1245,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a28d9b3bc6c2a522d815c8e146595051f"></a>
+<a id="a28d9b3bc6c2a522d815c8e146595051f" name="a28d9b3bc6c2a522d815c8e146595051f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a28d9b3bc6c2a522d815c8e146595051f">&#9670;&nbsp;</a></span>GLFW_OPENGL_ES_API</h2>
 
 <div class="memitem">
@@ -1256,7 +1259,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a8b306cb27f5bb0d6d67c7356a0e0fc34"></a>
+<a id="a8b306cb27f5bb0d6d67c7356a0e0fc34" name="a8b306cb27f5bb0d6d67c7356a0e0fc34"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a8b306cb27f5bb0d6d67c7356a0e0fc34">&#9670;&nbsp;</a></span>GLFW_NO_ROBUSTNESS</h2>
 
 <div class="memitem">
@@ -1270,7 +1273,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aee84a679230d205005e22487ff678a85"></a>
+<a id="aee84a679230d205005e22487ff678a85" name="aee84a679230d205005e22487ff678a85"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aee84a679230d205005e22487ff678a85">&#9670;&nbsp;</a></span>GLFW_NO_RESET_NOTIFICATION</h2>
 
 <div class="memitem">
@@ -1284,7 +1287,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aec1132f245143fc915b2f0995228564c"></a>
+<a id="aec1132f245143fc915b2f0995228564c" name="aec1132f245143fc915b2f0995228564c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aec1132f245143fc915b2f0995228564c">&#9670;&nbsp;</a></span>GLFW_LOSE_CONTEXT_ON_RESET</h2>
 
 <div class="memitem">
@@ -1298,7 +1301,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ad6f2335d6f21cc9bab96633b1c111d5f"></a>
+<a id="ad6f2335d6f21cc9bab96633b1c111d5f" name="ad6f2335d6f21cc9bab96633b1c111d5f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ad6f2335d6f21cc9bab96633b1c111d5f">&#9670;&nbsp;</a></span>GLFW_OPENGL_ANY_PROFILE</h2>
 
 <div class="memitem">
@@ -1312,7 +1315,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="af094bb16da76f66ebceb19ee213b3de8"></a>
+<a id="af094bb16da76f66ebceb19ee213b3de8" name="af094bb16da76f66ebceb19ee213b3de8"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#af094bb16da76f66ebceb19ee213b3de8">&#9670;&nbsp;</a></span>GLFW_OPENGL_CORE_PROFILE</h2>
 
 <div class="memitem">
@@ -1326,7 +1329,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ac06b663d79c8fcf04669cc8fcc0b7670"></a>
+<a id="ac06b663d79c8fcf04669cc8fcc0b7670" name="ac06b663d79c8fcf04669cc8fcc0b7670"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ac06b663d79c8fcf04669cc8fcc0b7670">&#9670;&nbsp;</a></span>GLFW_OPENGL_COMPAT_PROFILE</h2>
 
 <div class="memitem">
@@ -1340,7 +1343,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aade31da5b884a84a7625c6b059b9132c"></a>
+<a id="aade31da5b884a84a7625c6b059b9132c" name="aade31da5b884a84a7625c6b059b9132c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aade31da5b884a84a7625c6b059b9132c">&#9670;&nbsp;</a></span>GLFW_CURSOR</h2>
 
 <div class="memitem">
@@ -1354,7 +1357,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ae3bbe2315b7691ab088159eb6c9110fc"></a>
+<a id="ae3bbe2315b7691ab088159eb6c9110fc" name="ae3bbe2315b7691ab088159eb6c9110fc"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ae3bbe2315b7691ab088159eb6c9110fc">&#9670;&nbsp;</a></span>GLFW_STICKY_KEYS</h2>
 
 <div class="memitem">
@@ -1368,7 +1371,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a4d7ce8ce71030c3b04e2b78145bc59d1"></a>
+<a id="a4d7ce8ce71030c3b04e2b78145bc59d1" name="a4d7ce8ce71030c3b04e2b78145bc59d1"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a4d7ce8ce71030c3b04e2b78145bc59d1">&#9670;&nbsp;</a></span>GLFW_STICKY_MOUSE_BUTTONS</h2>
 
 <div class="memitem">
@@ -1382,7 +1385,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a07b84de0b52143e1958f88a7d9105947"></a>
+<a id="a07b84de0b52143e1958f88a7d9105947" name="a07b84de0b52143e1958f88a7d9105947"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a07b84de0b52143e1958f88a7d9105947">&#9670;&nbsp;</a></span>GLFW_LOCK_KEY_MODS</h2>
 
 <div class="memitem">
@@ -1396,7 +1399,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aeeda1be76a44a1fc97c1282e06281fbb"></a>
+<a id="aeeda1be76a44a1fc97c1282e06281fbb" name="aeeda1be76a44a1fc97c1282e06281fbb"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aeeda1be76a44a1fc97c1282e06281fbb">&#9670;&nbsp;</a></span>GLFW_RAW_MOUSE_MOTION</h2>
 
 <div class="memitem">
@@ -1410,7 +1413,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ae04dd25c8577e19fa8c97368561f6c68"></a>
+<a id="ae04dd25c8577e19fa8c97368561f6c68" name="ae04dd25c8577e19fa8c97368561f6c68"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ae04dd25c8577e19fa8c97368561f6c68">&#9670;&nbsp;</a></span>GLFW_CURSOR_NORMAL</h2>
 
 <div class="memitem">
@@ -1424,7 +1427,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ac4d5cb9d78de8573349c58763d53bf11"></a>
+<a id="ac4d5cb9d78de8573349c58763d53bf11" name="ac4d5cb9d78de8573349c58763d53bf11"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ac4d5cb9d78de8573349c58763d53bf11">&#9670;&nbsp;</a></span>GLFW_CURSOR_HIDDEN</h2>
 
 <div class="memitem">
@@ -1438,7 +1441,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a2315b99a329ce53e6a13a9d46fd5ca88"></a>
+<a id="a2315b99a329ce53e6a13a9d46fd5ca88" name="a2315b99a329ce53e6a13a9d46fd5ca88"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a2315b99a329ce53e6a13a9d46fd5ca88">&#9670;&nbsp;</a></span>GLFW_CURSOR_DISABLED</h2>
 
 <div class="memitem">
@@ -1452,7 +1455,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a6b47d806f285efe9bfd7aeec667297ee"></a>
+<a id="a6b47d806f285efe9bfd7aeec667297ee" name="a6b47d806f285efe9bfd7aeec667297ee"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a6b47d806f285efe9bfd7aeec667297ee">&#9670;&nbsp;</a></span>GLFW_ANY_RELEASE_BEHAVIOR</h2>
 
 <div class="memitem">
@@ -1466,7 +1469,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a999961d391db49cb4f949c1dece0e13b"></a>
+<a id="a999961d391db49cb4f949c1dece0e13b" name="a999961d391db49cb4f949c1dece0e13b"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a999961d391db49cb4f949c1dece0e13b">&#9670;&nbsp;</a></span>GLFW_RELEASE_BEHAVIOR_FLUSH</h2>
 
 <div class="memitem">
@@ -1480,7 +1483,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="afca09088eccacdce4b59036cfae349c5"></a>
+<a id="afca09088eccacdce4b59036cfae349c5" name="afca09088eccacdce4b59036cfae349c5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#afca09088eccacdce4b59036cfae349c5">&#9670;&nbsp;</a></span>GLFW_RELEASE_BEHAVIOR_NONE</h2>
 
 <div class="memitem">
@@ -1494,7 +1497,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a0494c9bfd3f584ab41e6dbeeaa0e6a19"></a>
+<a id="a0494c9bfd3f584ab41e6dbeeaa0e6a19" name="a0494c9bfd3f584ab41e6dbeeaa0e6a19"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a0494c9bfd3f584ab41e6dbeeaa0e6a19">&#9670;&nbsp;</a></span>GLFW_NATIVE_CONTEXT_API</h2>
 
 <div class="memitem">
@@ -1508,7 +1511,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a03cf65c9ab01fc8b872ba58842c531c9"></a>
+<a id="a03cf65c9ab01fc8b872ba58842c531c9" name="a03cf65c9ab01fc8b872ba58842c531c9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a03cf65c9ab01fc8b872ba58842c531c9">&#9670;&nbsp;</a></span>GLFW_EGL_CONTEXT_API</h2>
 
 <div class="memitem">
@@ -1522,7 +1525,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="afd34a473af9fa81f317910ea371b19e3"></a>
+<a id="afd34a473af9fa81f317910ea371b19e3" name="afd34a473af9fa81f317910ea371b19e3"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#afd34a473af9fa81f317910ea371b19e3">&#9670;&nbsp;</a></span>GLFW_OSMESA_CONTEXT_API</h2>
 
 <div class="memitem">
@@ -1536,7 +1539,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="abe11513fd1ffbee5bb9b173f06028b9e"></a>
+<a id="abe11513fd1ffbee5bb9b173f06028b9e" name="abe11513fd1ffbee5bb9b173f06028b9e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#abe11513fd1ffbee5bb9b173f06028b9e">&#9670;&nbsp;</a></span>GLFW_CONNECTED</h2>
 
 <div class="memitem">
@@ -1550,7 +1553,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aab64b25921ef21d89252d6f0a71bfc32"></a>
+<a id="aab64b25921ef21d89252d6f0a71bfc32" name="aab64b25921ef21d89252d6f0a71bfc32"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aab64b25921ef21d89252d6f0a71bfc32">&#9670;&nbsp;</a></span>GLFW_DISCONNECTED</h2>
 
 <div class="memitem">
@@ -1564,7 +1567,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="a7a2edf2c18446833d27d07f1b7f3d571"></a>
+<a id="a7a2edf2c18446833d27d07f1b7f3d571" name="a7a2edf2c18446833d27d07f1b7f3d571"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a7a2edf2c18446833d27d07f1b7f3d571">&#9670;&nbsp;</a></span>GLFW_DONT_CARE</h2>
 
 <div class="memitem">
@@ -1578,7 +1581,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="aa97755eb47e4bf2727ad45d610e18206"></a>
+<a id="aa97755eb47e4bf2727ad45d610e18206" name="aa97755eb47e4bf2727ad45d610e18206"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#aa97755eb47e4bf2727ad45d610e18206">&#9670;&nbsp;</a></span>GLAPIENTRY</h2>
 
 <div class="memitem">
@@ -1590,12 +1593,26 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 
+</div>
+</div>
+<a id="a3b526ac796be993406ea2f1642c25fc3" name="a3b526ac796be993406ea2f1642c25fc3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3b526ac796be993406ea2f1642c25fc3">&#9670;&nbsp;</a></span>GLFW_GLAPIENTRY_DEFINED</h2>
+
+<div class="memitem">
+<div class="memproto">
+      <table class="memname">
+        <tr>
+          <td class="memname">#define GLFW_GLAPIENTRY_DEFINED</td>
+        </tr>
+      </table>
+</div><div class="memdoc">
+
 </div>
 </div>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 1073 - 1124
glfw.mod/glfw/docs/html/glfw3_8h_source.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: glfw3.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,1147 +61,1094 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li><li class="navelem"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li><li class="navelem"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">glfw3.h</div>  </div>
+  <div class="headertitle"><div class="title">glfw3.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="glfw3_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * GLFW 3.3 - www.glfw.org</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * A library for OpenGL, window and input</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Copyright (c) 2002-2006 Marcus Geelnard</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Copyright (c) 2006-2019 Camilla Löwy &lt;[email protected]&gt;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * This software is provided &#39;as-is&#39;, without any express or implied</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * warranty. In no event will the authors be held liable for any damages</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * arising from the use of this software.</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * including commercial applications, and to alter it and redistribute it</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * freely, subject to the following restrictions:</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * 1. The origin of this software must not be misrepresented; you must not</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *    claim that you wrote the original software. If you use this software</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> *    in a product, an acknowledgment in the product documentation would</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *    be appreciated but is not required.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * 2. Altered source versions must be plainly marked as such, and must not</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *    be misrepresented as being the original software.</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * 3. This notice may not be removed or altered from any source</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> *    distribution.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifndef _glfw3_h_</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define _glfw3_h_</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"> * Doxygen documentation</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="comment"> * Compiler- and platform-specific preprocessor work</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="comment">/* If we are we on Windows, we want a single define for it.</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">#if !defined(_WIN32) &amp;&amp; (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor"> #define _WIN32</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="comment">/* Include because most Windows GLU headers need wchar_t and</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="comment"> * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="comment"> * Include it unconditionally to avoid surprising side-effects.</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="comment">/* Include because it is needed by Vulkan and related functions.</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="comment"> * Include it unconditionally to avoid surprising side-effects.</span></div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;<span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#if defined(GLFW_INCLUDE_VULKAN)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;<span class="preprocessor">  #include &lt;vulkan/vulkan.h&gt;</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* Vulkan header */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">/* The Vulkan header may have indirectly included windows.h (because of</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="comment"> * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="comment">/* It is customary to use APIENTRY for OpenGL function pointer declarations on</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="comment"> * all platforms.  Additionally, the Windows OpenGL header needs APIENTRY.</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#if !defined(APIENTRY)</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;<span class="preprocessor"> #if defined(_WIN32)</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;<span class="preprocessor">  #define APIENTRY __stdcall</span></div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a8a8538c5500308b4211844f2fb26c7b9">  124</a></span>&#160;<span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">  #define APIENTRY</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;<span class="preprocessor"> #define GLFW_APIENTRY_DEFINED</span></div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* APIENTRY */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;<span class="comment">/* Some Windows OpenGL headers need this.</span></div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;<span class="preprocessor">#if !defined(WINGDIAPI) &amp;&amp; defined(_WIN32)</span></div>
-<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;<span class="preprocessor"> #define WINGDIAPI __declspec(dllimport)</span></div>
-<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;<span class="preprocessor"> #define GLFW_WINGDIAPI_DEFINED</span></div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* WINGDIAPI */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;<span class="comment">/* Some Windows GLU headers need this.</span></div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;<span class="preprocessor">#if !defined(CALLBACK) &amp;&amp; defined(_WIN32)</span></div>
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;<span class="preprocessor"> #define CALLBACK __stdcall</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;<span class="preprocessor"> #define GLFW_CALLBACK_DEFINED</span></div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* CALLBACK */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;<span class="comment">/* Include the chosen OpenGL or OpenGL ES headers.</span></div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;<span class="preprocessor">#if defined(GLFW_INCLUDE_ES1)</span></div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;<span class="preprocessor"> #include &lt;GLES/gl.h&gt;</span></div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;<span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;<span class="preprocessor">  #include &lt;GLES/glext.h&gt;</span></div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160; </div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;<span class="preprocessor">#elif defined(GLFW_INCLUDE_ES2)</span></div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;<span class="preprocessor"> #include &lt;GLES2/gl2.h&gt;</span></div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;<span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;<span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;<span class="preprocessor">#elif defined(GLFW_INCLUDE_ES3)</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;<span class="preprocessor"> #include &lt;GLES3/gl3.h&gt;</span></div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;<span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;<span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;<span class="preprocessor">#elif defined(GLFW_INCLUDE_ES31)</span></div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;<span class="preprocessor"> #include &lt;GLES3/gl31.h&gt;</span></div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;<span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;<span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">#elif defined(GLFW_INCLUDE_ES32)</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;<span class="preprocessor"> #include &lt;GLES3/gl32.h&gt;</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;<span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;<span class="preprocessor">#elif defined(GLFW_INCLUDE_GLCOREARB)</span></div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;<span class="preprocessor"> #if defined(__APPLE__)</span></div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;<span class="preprocessor">  #include &lt;OpenGL/gl3.h&gt;</span></div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;<span class="preprocessor">  #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;<span class="preprocessor">   #include &lt;OpenGL/gl3ext.h&gt;</span></div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">  #endif </span><span class="comment">/*GLFW_INCLUDE_GLEXT*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor"> #else </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;<span class="preprocessor">  #include &lt;GL/glcorearb.h&gt;</span></div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
-<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160;<span class="preprocessor"> #endif </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160; </div>
-<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="preprocessor">#elif !defined(GLFW_INCLUDE_NONE)</span></div>
-<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160; </div>
-<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;<span class="preprocessor"> #if defined(__APPLE__)</span></div>
-<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160; </div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="preprocessor">  #if !defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;<span class="preprocessor">   #define GL_GLEXT_LEGACY</span></div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;<span class="preprocessor">  #include &lt;OpenGL/gl.h&gt;</span></div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;<span class="preprocessor">  #if defined(GLFW_INCLUDE_GLU)</span></div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;<span class="preprocessor">   #include &lt;OpenGL/glu.h&gt;</span></div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;<span class="preprocessor"> #else </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;<span class="preprocessor">  #include &lt;GL/gl.h&gt;</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;<span class="preprocessor">  #if defined(GLFW_INCLUDE_GLEXT)</span></div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;<span class="preprocessor">   #include &lt;GL/glext.h&gt;</span></div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;<span class="preprocessor">  #if defined(GLFW_INCLUDE_GLU)</span></div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;<span class="preprocessor">   #include &lt;GL/glu.h&gt;</span></div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;<span class="preprocessor">  #endif</span></div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor"> #endif </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* OpenGL and OpenGL ES headers */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;<span class="preprocessor">#if defined(GLFW_DLL) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; <span class="comment">/* GLFW_DLL must be defined by applications that are linking against the DLL</span></div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;<span class="comment">  * version of the GLFW library.  _GLFW_BUILD_DLL is defined by the GLFW</span></div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;<span class="comment">  * configuration header when compiling the DLL version of the library.</span></div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;<span class="comment">  */</span></div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;<span class="preprocessor"> #error &quot;You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined&quot;</span></div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;<span class="comment">/* GLFWAPI is used to declare public API functions for export</span></div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;<span class="comment"> * from the DLL / shared library / dynamic library.</span></div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;<span class="preprocessor">#if defined(_WIN32) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; <span class="comment">/* We are building GLFW as a Win32 DLL */</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="preprocessor"> #define GLFWAPI __declspec(dllexport)</span></div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#elif defined(_WIN32) &amp;&amp; defined(GLFW_DLL)</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; <span class="comment">/* We are calling GLFW as a Win32 DLL */</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;<span class="preprocessor"> #define GLFWAPI __declspec(dllimport)</span></div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;<span class="preprocessor">#elif defined(__GNUC__) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; <span class="comment">/* We are building GLFW as a shared / dynamic library */</span></div>
-<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;<span class="preprocessor"> #define GLFWAPI __attribute__((visibility(&quot;default&quot;)))</span></div>
-<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;<span class="preprocessor">#else</span></div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160; <span class="comment">/* We are building or calling GLFW as a static library */</span></div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;<span class="preprocessor"> #define GLFWAPI</span></div>
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160; </div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;<span class="comment"> * GLFW API tokens</span></div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="preprocessor">#define GLFW_VERSION_MAJOR          3</span></div>
-<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160; </div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;<span class="preprocessor">#define GLFW_VERSION_MINOR          3</span></div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;<span class="preprocessor">#define GLFW_VERSION_REVISION       2</span></div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;<span class="preprocessor">#define GLFW_TRUE                   1</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160; </div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;<span class="preprocessor">#define GLFW_FALSE                  0</span></div>
-<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160; </div>
-<div class="line"><a name="l00303"></a><span class="lineno">  303</span>&#160;<span class="preprocessor">#define GLFW_RELEASE                0</span></div>
-<div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160; </div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">#define GLFW_PRESS                  1</span></div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="preprocessor">#define GLFW_REPEAT                 2</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160; </div>
-<div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="group__hat__state.html#gac775f4b3154fdf5db93eb432ba546dff">  327</a></span>&#160;<span class="preprocessor">#define GLFW_HAT_CENTERED           0</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga94aea0ae241a8b902883536c592ee693">  328</a></span>&#160;<span class="preprocessor">#define GLFW_HAT_UP                 1</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="group__hat__state.html#gad7f0e4f52fd68d734863aaeadab3a3f5">  329</a></span>&#160;<span class="preprocessor">#define GLFW_HAT_RIGHT              2</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga638f0e20dc5de90de21a33564e8ce129">  330</a></span>&#160;<span class="preprocessor">#define GLFW_HAT_DOWN               4</span></div>
-<div class="line"><a name="l00331"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga76c02baf1ea345fcbe3e8ff176a73e19">  331</a></span>&#160;<span class="preprocessor">#define GLFW_HAT_LEFT               8</span></div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="preprocessor">#define GLFW_HAT_RIGHT_UP           (GLFW_HAT_RIGHT | GLFW_HAT_UP)</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="preprocessor">#define GLFW_HAT_RIGHT_DOWN         (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="preprocessor">#define GLFW_HAT_LEFT_UP            (GLFW_HAT_LEFT  | GLFW_HAT_UP)</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="preprocessor">#define GLFW_HAT_LEFT_DOWN          (GLFW_HAT_LEFT  | GLFW_HAT_DOWN)</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="group__keys.html#gaddb2c23772b97fd7e26e8ee66f1ad014">  362</a></span>&#160;<span class="comment">/* The unknown key */</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="group__keys.html#ga6059b0b048ba6980b6107fffbd3b4b24">  363</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_UNKNOWN            -1</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno"><a class="line" href="group__keys.html#gab3d5d72e59d3055f494627b0a524926c">  364</a></span>&#160; </div>
-<div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="group__keys.html#gac556b360f7f6fca4b70ba0aecf313fd4">  365</a></span>&#160;<span class="comment">/* Printable keys */</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="group__keys.html#ga37e296b650eab419fc474ff69033d927">  366</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_SPACE              32</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="group__keys.html#gadf3d753b2d479148d711de34b83fd0db">  367</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_APOSTROPHE         39  </span><span class="comment">/* &#39; */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="group__keys.html#ga50391730e9d7112ad4fd42d0bd1597c1">  368</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_COMMA              44  </span><span class="comment">/* , */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="group__keys.html#ga05e4cae9ddb8d40cf6d82c8f11f2502f">  369</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_MINUS              45  </span><span class="comment">/* - */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="group__keys.html#gadc8e66b3a4c4b5c39ad1305cf852863c">  370</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_PERIOD             46  </span><span class="comment">/* . */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00371"></a><span class="lineno"><a class="line" href="group__keys.html#ga812f0273fe1a981e1fa002ae73e92271">  371</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_SLASH              47  </span><span class="comment">/* / */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="group__keys.html#ga9e14b6975a9cc8f66cdd5cb3d3861356">  372</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_0                  48</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno"><a class="line" href="group__keys.html#ga4d74ddaa5d4c609993b4d4a15736c924">  373</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_1                  49</span></div>
-<div class="line"><a name="l00374"></a><span class="lineno"><a class="line" href="group__keys.html#ga9ea4ab80c313a227b14d0a7c6f810b5d">  374</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_2                  50</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno"><a class="line" href="group__keys.html#gab79b1cfae7bd630cfc4604c1f263c666">  375</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_3                  51</span></div>
-<div class="line"><a name="l00376"></a><span class="lineno"><a class="line" href="group__keys.html#gadeaa109a0f9f5afc94fe4a108e686f6f">  376</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_4                  52</span></div>
-<div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="group__keys.html#ga2924cb5349ebbf97c8987f3521c44f39">  377</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_5                  53</span></div>
-<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="group__keys.html#ga84233de9ee5bb3e8788a5aa07d80af7d">  378</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_6                  54</span></div>
-<div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="group__keys.html#gae1a2de47240d6664423c204bdd91bd17">  379</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_7                  55</span></div>
-<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="group__keys.html#ga03e842608e1ea323370889d33b8f70ff">  380</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_8                  56</span></div>
-<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="group__keys.html#ga8e3fb647ff3aca9e8dbf14fe66332941">  381</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_9                  57</span></div>
-<div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="group__keys.html#ga00ccf3475d9ee2e679480d540d554669">  382</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_SEMICOLON          59  </span><span class="comment">/* ; */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="group__keys.html#ga011f7cdc9a654da984a2506479606933">  383</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_EQUAL              61  </span><span class="comment">/* = */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">  384</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_A                  65</span></div>
-<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="group__keys.html#ga5df402e02aca08444240058fd9b42a55">  385</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_B                  66</span></div>
-<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="group__keys.html#gae74ecddf7cc96104ab23989b1cdab536">  386</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_C                  67</span></div>
-<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="group__keys.html#gad4cc98fc8f35f015d9e2fb94bf136076">  387</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_D                  68</span></div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="group__keys.html#ga274655c8bfe39742684ca393cf8ed093">  388</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_E                  69</span></div>
-<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="group__keys.html#ga65ff2aedb129a3149ad9cb3e4159a75f">  389</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F                  70</span></div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="group__keys.html#ga4ae8debadf6d2a691badae0b53ea3ba0">  390</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_G                  71</span></div>
-<div class="line"><a name="l00391"></a><span class="lineno"><a class="line" href="group__keys.html#gaaa8b54a13f6b1eed85ac86f82d550db2">  391</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_H                  72</span></div>
-<div class="line"><a name="l00392"></a><span class="lineno"><a class="line" href="group__keys.html#ga4d7f0260c82e4ea3d6ebc7a21d6e3716">  392</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_I                  73</span></div>
-<div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="group__keys.html#gae00856dfeb5d13aafebf59d44de5cdda">  393</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_J                  74</span></div>
-<div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="group__keys.html#gaecbbb79130df419d58dd7f09a169efe9">  394</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_K                  75</span></div>
-<div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="group__keys.html#ga8fc15819c1094fb2afa01d84546b33e1">  395</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_L                  76</span></div>
-<div class="line"><a name="l00396"></a><span class="lineno"><a class="line" href="group__keys.html#gafdd01e38b120d67cf51e348bb47f3964">  396</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_M                  77</span></div>
-<div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="group__keys.html#ga4ce6c70a0c98c50b3fe4ab9a728d4d36">  397</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_N                  78</span></div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="group__keys.html#ga1570e2ccaab036ea82bed66fc1dab2a9">  398</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_O                  79</span></div>
-<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="group__keys.html#ga90e0560422ec7a30e7f3f375bc9f37f9">  399</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_P                  80</span></div>
-<div class="line"><a name="l00400"></a><span class="lineno"><a class="line" href="group__keys.html#gacad52f3bf7d378fc0ffa72a76769256d">  400</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_Q                  81</span></div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="group__keys.html#ga22c7763899ecf7788862e5f90eacce6b">  401</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_R                  82</span></div>
-<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">  402</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_S                  83</span></div>
-<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">  403</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_T                  84</span></div>
-<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="group__keys.html#gafd9f115a549effdf8e372a787c360313">  404</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_U                  85</span></div>
-<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="group__keys.html#gac489e208c26afda8d4938ed88718760a">  405</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_V                  86</span></div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="group__keys.html#gad1c8d9adac53925276ecb1d592511d8a">  406</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_W                  87</span></div>
-<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="group__keys.html#gab8155ea99d1ab27ff56f24f8dc73f8d1">  407</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_X                  88</span></div>
-<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="group__keys.html#ga86ef225fd6a66404caae71044cdd58d8">  408</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_Y                  89</span></div>
-<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="group__keys.html#ga7a3701fb4e2a0b136ff4b568c3c8d668">  409</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_Z                  90</span></div>
-<div class="line"><a name="l00410"></a><span class="lineno"><a class="line" href="group__keys.html#gadc78dad3dab76bcd4b5c20114052577a">  410</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT_BRACKET       91  </span><span class="comment">/* [ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="group__keys.html#ga20494bfebf0bb4fc9503afca18ab2c5e">  411</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_BACKSLASH          92  </span><span class="comment">/* \ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT_BRACKET      93  </span><span class="comment">/* ] */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="preprocessor">#define GLFW_KEY_GRAVE_ACCENT       96  </span><span class="comment">/* ` */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00414"></a><span class="lineno"><a class="line" href="group__keys.html#gaac6596c350b635c245113b81c2123b93">  414</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_WORLD_1            161 </span><span class="comment">/* non-US #1 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="group__keys.html#ga9555a92ecbecdbc1f3435219c571d667">  415</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_WORLD_2            162 </span><span class="comment">/* non-US #2 */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="group__keys.html#ga6908a4bda9950a3e2b73f794bbe985df">  416</a></span>&#160; </div>
-<div class="line"><a name="l00417"></a><span class="lineno"><a class="line" href="group__keys.html#ga6c0df1fe2f156bbd5a98c66d76ff3635">  417</a></span>&#160;<span class="comment">/* Function keys */</span></div>
-<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="group__keys.html#ga373ac7365435d6b0eb1068f470e34f47">  418</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_ESCAPE             256</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno"><a class="line" href="group__keys.html#gadb111e4df74b8a715f2c05dad58d2682">  419</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_ENTER              257</span></div>
-<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="group__keys.html#ga06ba07662e8c291a4a84535379ffc7ac">  420</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_TAB                258</span></div>
-<div class="line"><a name="l00421"></a><span class="lineno"><a class="line" href="group__keys.html#gae12a010d33c309a67ab9460c51eb2462">  421</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_BACKSPACE          259</span></div>
-<div class="line"><a name="l00422"></a><span class="lineno"><a class="line" href="group__keys.html#gae2e3958c71595607416aa7bf082be2f9">  422</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_INSERT             260</span></div>
-<div class="line"><a name="l00423"></a><span class="lineno"><a class="line" href="group__keys.html#ga2f3342b194020d3544c67e3506b6f144">  423</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_DELETE             261</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"><a class="line" href="group__keys.html#ga3ab731f9622f0db280178a5f3cc6d586">  424</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT              262</span></div>
-<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="group__keys.html#gaee0a8fa442001cc2147812f84b59041c">  425</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT               263</span></div>
-<div class="line"><a name="l00426"></a><span class="lineno"><a class="line" href="group__keys.html#ga41452c7287195d481e43207318c126a7">  426</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_DOWN               264</span></div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="group__keys.html#ga86587ea1df19a65978d3e3b8439bedd9">  427</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_UP                 265</span></div>
-<div class="line"><a name="l00428"></a><span class="lineno"><a class="line" href="group__keys.html#ga92c1d2c9d63485f3d70f94f688d48672">  428</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_PAGE_UP            266</span></div>
-<div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="group__keys.html#gaf622b63b9537f7084c2ab649b8365630">  429</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_PAGE_DOWN          267</span></div>
-<div class="line"><a name="l00430"></a><span class="lineno"><a class="line" href="group__keys.html#ga3946edc362aeff213b2be6304296cf43">  430</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_HOME               268</span></div>
-<div class="line"><a name="l00431"></a><span class="lineno"><a class="line" href="group__keys.html#gaf964c2e65e97d0cf785a5636ee8df642">  431</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_END                269</span></div>
-<div class="line"><a name="l00432"></a><span class="lineno"><a class="line" href="group__keys.html#ga8116b9692d87382afb5849b6d8907f18">  432</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_CAPS_LOCK          280</span></div>
-<div class="line"><a name="l00433"></a><span class="lineno"><a class="line" href="group__keys.html#gafb8d66c573acf22e364049477dcbea30">  433</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_SCROLL_LOCK        281</span></div>
-<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="group__keys.html#ga0900750aff94889b940f5e428c07daee">  434</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_NUM_LOCK           282</span></div>
-<div class="line"><a name="l00435"></a><span class="lineno"><a class="line" href="group__keys.html#gaed7cd729c0147a551bb8b7bb36c17015">  435</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_PRINT_SCREEN       283</span></div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="group__keys.html#ga9b61ebd0c63b44b7332fda2c9763eaa6">  436</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_PAUSE              284</span></div>
-<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="group__keys.html#gaf258dda9947daa428377938ed577c8c2">  437</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F1                 290</span></div>
-<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="group__keys.html#ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d">  438</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F2                 291</span></div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="group__keys.html#gacca6ef8a2162c52a0ac1d881e8d9c38a">  439</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F3                 292</span></div>
-<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="group__keys.html#gac9d39390336ae14e4a93e295de43c7e8">  440</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F4                 293</span></div>
-<div class="line"><a name="l00441"></a><span class="lineno"><a class="line" href="group__keys.html#gae40de0de1c9f21cd26c9afa3d7050851">  441</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F5                 294</span></div>
-<div class="line"><a name="l00442"></a><span class="lineno"><a class="line" href="group__keys.html#ga718d11d2f7d57471a2f6a894235995b1">  442</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F6                 295</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"><a class="line" href="group__keys.html#ga0bc04b11627e7d69339151e7306b2832">  443</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F7                 296</span></div>
-<div class="line"><a name="l00444"></a><span class="lineno"><a class="line" href="group__keys.html#gaf5908fa9b0a906ae03fc2c61ac7aa3e2">  444</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F8                 297</span></div>
-<div class="line"><a name="l00445"></a><span class="lineno"><a class="line" href="group__keys.html#gad637f4308655e1001bd6ad942bc0fd4b">  445</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F9                 298</span></div>
-<div class="line"><a name="l00446"></a><span class="lineno"><a class="line" href="group__keys.html#gaf14c66cff3396e5bd46e803c035e6c1f">  446</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F10                299</span></div>
-<div class="line"><a name="l00447"></a><span class="lineno"><a class="line" href="group__keys.html#ga7f70970db6e8be1794da8516a6d14058">  447</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F11                300</span></div>
-<div class="line"><a name="l00448"></a><span class="lineno"><a class="line" href="group__keys.html#gaa582dbb1d2ba2050aa1dca0838095b27">  448</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F12                301</span></div>
-<div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="group__keys.html#ga972ce5c365e2394b36104b0e3125c748">  449</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F13                302</span></div>
-<div class="line"><a name="l00450"></a><span class="lineno"><a class="line" href="group__keys.html#gaebf6391058d5566601e357edc5ea737c">  450</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F14                303</span></div>
-<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="group__keys.html#gaec011d9ba044058cb54529da710e9791">  451</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F15                304</span></div>
-<div class="line"><a name="l00452"></a><span class="lineno"><a class="line" href="group__keys.html#ga82b9c721ada04cd5ca8de767da38022f">  452</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F16                305</span></div>
-<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="group__keys.html#ga356afb14d3440ff2bb378f74f7ebc60f">  453</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F17                306</span></div>
-<div class="line"><a name="l00454"></a><span class="lineno"><a class="line" href="group__keys.html#ga90960bd2a155f2b09675324d3dff1565">  454</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F18                307</span></div>
-<div class="line"><a name="l00455"></a><span class="lineno"><a class="line" href="group__keys.html#ga43c21099aac10952d1be909a8ddee4d5">  455</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F19                308</span></div>
-<div class="line"><a name="l00456"></a><span class="lineno"><a class="line" href="group__keys.html#ga8150374677b5bed3043408732152dea2">  456</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F20                309</span></div>
-<div class="line"><a name="l00457"></a><span class="lineno"><a class="line" href="group__keys.html#gaa4bbd93ed73bb4c6ae7d83df880b7199">  457</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F21                310</span></div>
-<div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="group__keys.html#ga10515dafc55b71e7683f5b4fedd1c70d">  458</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F22                311</span></div>
-<div class="line"><a name="l00459"></a><span class="lineno"><a class="line" href="group__keys.html#gaf3a29a334402c5eaf0b3439edf5587c3">  459</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F23                312</span></div>
-<div class="line"><a name="l00460"></a><span class="lineno"><a class="line" href="group__keys.html#gaf82d5a802ab8213c72653d7480c16f13">  460</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F24                313</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno"><a class="line" href="group__keys.html#ga7e25ff30d56cd512828c1d4ae8d54ef2">  461</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_F25                314</span></div>
-<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="group__keys.html#gada7ec86778b85e0b4de0beea72234aea">  462</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_0               320</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno"><a class="line" href="group__keys.html#ga9a5be274434866c51738cafbb6d26b45">  463</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_1               321</span></div>
-<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="group__keys.html#gafc141b0f8450519084c01092a3157faa">  464</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_2               322</span></div>
-<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="group__keys.html#ga8882f411f05d04ec77a9563974bbfa53">  465</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_3               323</span></div>
-<div class="line"><a name="l00466"></a><span class="lineno"><a class="line" href="group__keys.html#gab2ea2e6a12f89d315045af520ac78cec">  466</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_4               324</span></div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="group__keys.html#gafb21426b630ed4fcc084868699ba74c1">  467</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_5               325</span></div>
-<div class="line"><a name="l00468"></a><span class="lineno"><a class="line" href="group__keys.html#ga4e231d968796331a9ea0dbfb98d4005b">  468</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_6               326</span></div>
-<div class="line"><a name="l00469"></a><span class="lineno"><a class="line" href="group__keys.html#gabca1733780a273d549129ad0f250d1e5">  469</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_7               327</span></div>
-<div class="line"><a name="l00470"></a><span class="lineno"><a class="line" href="group__keys.html#ga9ada267eb0e78ed2ada8701dd24a56ef">  470</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_8               328</span></div>
-<div class="line"><a name="l00471"></a><span class="lineno"><a class="line" href="group__keys.html#gaa3dbd60782ff93d6082a124bce1fa236">  471</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_9               329</span></div>
-<div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="group__keys.html#gad09c7c98acc79e89aa6a0a91275becac">  472</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_DECIMAL         330</span></div>
-<div class="line"><a name="l00473"></a><span class="lineno"><a class="line" href="group__keys.html#ga4f728f8738f2986bd63eedd3d412e8cf">  473</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_DIVIDE          331</span></div>
-<div class="line"><a name="l00474"></a><span class="lineno"><a class="line" href="group__keys.html#gaebdc76d4a808191e6d21b7e4ad2acd97">  474</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_MULTIPLY        332</span></div>
-<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="group__keys.html#ga8a530a28a65c44ab5d00b759b756d3f6">  475</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_SUBTRACT        333</span></div>
-<div class="line"><a name="l00476"></a><span class="lineno"><a class="line" href="group__keys.html#ga9f97b743e81460ac4b2deddecd10a464">  476</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_ADD             334</span></div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="group__keys.html#ga7f27dabf63a7789daa31e1c96790219b">  477</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_ENTER           335</span></div>
-<div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="group__keys.html#gafb1207c91997fc295afd1835fbc5641a">  478</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_KP_EQUAL           336</span></div>
-<div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="group__keys.html#gaffca36b99c9dce1a19cb9befbadce691">  479</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT_SHIFT         340</span></div>
-<div class="line"><a name="l00480"></a><span class="lineno"><a class="line" href="group__keys.html#gad1ca2094b2694e7251d0ab1fd34f8519">  480</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT_CONTROL       341</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"><a class="line" href="group__keys.html#ga687b38009131cfdd07a8d05fff8fa446">  481</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT_ALT           342</span></div>
-<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="group__keys.html#gad4547a3e8e247594acb60423fe6502db">  482</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_LEFT_SUPER         343</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"><a class="line" href="group__keys.html#ga9845be48a745fc232045c9ec174d8820">  483</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT_SHIFT        344</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT_CONTROL      345</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"><a class="line" href="group__keys.html#ga442cbaef7bfb9a4ba13594dd7fbf2789">  485</a></span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT_ALT          346</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="preprocessor">#define GLFW_KEY_RIGHT_SUPER        347</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="preprocessor">#define GLFW_KEY_MENU               348</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160; </div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="preprocessor">#define GLFW_KEY_LAST               GLFW_KEY_MENU</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160; </div>
-<div class="line"><a name="l00505"></a><span class="lineno">  505</span>&#160;<span class="preprocessor">#define GLFW_MOD_SHIFT           0x0001</span></div>
-<div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="group__mods.html#ga6ed94871c3208eefd85713fa929d45aa">  506</a></span>&#160; </div>
-<div class="line"><a name="l00510"></a><span class="lineno">  510</span>&#160;<span class="preprocessor">#define GLFW_MOD_CONTROL         0x0002</span></div>
-<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="group__mods.html#gad2acd5633463c29e07008687ea73c0f4">  511</a></span>&#160; </div>
-<div class="line"><a name="l00515"></a><span class="lineno">  515</span>&#160;<span class="preprocessor">#define GLFW_MOD_ALT             0x0004</span></div>
-<div class="line"><a name="l00516"></a><span class="lineno"><a class="line" href="group__mods.html#ga6b64ba10ea0227cf6f42efd0a220aba1">  516</a></span>&#160; </div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#define GLFW_MOD_SUPER           0x0008</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; </div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;<span class="preprocessor">#define GLFW_MOD_CAPS_LOCK       0x0010</span></div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160; </div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160;<span class="preprocessor">#define GLFW_MOD_NUM_LOCK        0x0020</span></div>
-<div class="line"><a name="l00533"></a><span class="lineno">  533</span>&#160; </div>
-<div class="line"><a name="l00543"></a><span class="lineno"><a class="line" href="group__buttons.html#gaf08c4ddecb051d3d9667db1d5e417c9c">  543</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_1         0</span></div>
-<div class="line"><a name="l00544"></a><span class="lineno"><a class="line" href="group__buttons.html#gae8513e06aab8aa393b595f22c6d8257a">  544</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_2         1</span></div>
-<div class="line"><a name="l00545"></a><span class="lineno"><a class="line" href="group__buttons.html#ga8b02a1ab55dde45b3a3883d54ffd7dc7">  545</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_3         2</span></div>
-<div class="line"><a name="l00546"></a><span class="lineno"><a class="line" href="group__buttons.html#ga35d5c4263e0dc0d0a4731ca6c562f32c">  546</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_4         3</span></div>
-<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="group__buttons.html#gab1fd86a4518a9141ec7bcde2e15a2fdf">  547</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_5         4</span></div>
-<div class="line"><a name="l00548"></a><span class="lineno"><a class="line" href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">  548</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_6         5</span></div>
-<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">  549</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_7         6</span></div>
-<div class="line"><a name="l00550"></a><span class="lineno"><a class="line" href="group__buttons.html#ga34a4d2a701434f763fd93a2ff842b95a">  550</a></span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_8         7</span></div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_LAST      GLFW_MOUSE_BUTTON_8</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_LEFT      GLFW_MOUSE_BUTTON_1</span></div>
-<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_RIGHT     GLFW_MOUSE_BUTTON_2</span></div>
-<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;<span class="preprocessor">#define GLFW_MOUSE_BUTTON_MIDDLE    GLFW_MOUSE_BUTTON_3</span></div>
-<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160; </div>
-<div class="line"><a name="l00564"></a><span class="lineno"><a class="line" href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">  564</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_1             0</span></div>
-<div class="line"><a name="l00565"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga74771620aa53bd68a487186dea66fd77">  565</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_2             1</span></div>
-<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">  566</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_3             2</span></div>
-<div class="line"><a name="l00567"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga21a934c940bcf25db0e4c8fe9b364bdb">  567</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_4             3</span></div>
-<div class="line"><a name="l00568"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga87689d47df0ba6f9f5fcbbcaf7b3cecf">  568</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_5             4</span></div>
-<div class="line"><a name="l00569"></a><span class="lineno"><a class="line" href="group__joysticks.html#gaef55389ee605d6dfc31aef6fe98c54ec">  569</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_6             5</span></div>
-<div class="line"><a name="l00570"></a><span class="lineno"><a class="line" href="group__joysticks.html#gae7d26e3df447c2c14a569fcc18516af4">  570</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_7             6</span></div>
-<div class="line"><a name="l00571"></a><span class="lineno"><a class="line" href="group__joysticks.html#gab91bbf5b7ca6be8d3ac5c4d89ff48ac7">  571</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_8             7</span></div>
-<div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga5c84fb4e49bf661d7d7c78eb4018c508">  572</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_9             8</span></div>
-<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga89540873278ae5a42b3e70d64164dc74">  573</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_10            9</span></div>
-<div class="line"><a name="l00574"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga7b02ab70daf7a78bcc942d5d4cc1dcf9">  574</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_11            10</span></div>
-<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga453edeeabf350827646b6857df4f80ce">  575</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_12            11</span></div>
-<div class="line"><a name="l00576"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga9ca13ebf24c331dd98df17d84a4b72c9">  576</a></span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_13            12</span></div>
-<div class="line"><a name="l00577"></a><span class="lineno">  577</span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_14            13</span></div>
-<div class="line"><a name="l00578"></a><span class="lineno">  578</span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_15            14</span></div>
-<div class="line"><a name="l00579"></a><span class="lineno">  579</span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_16            15</span></div>
-<div class="line"><a name="l00580"></a><span class="lineno">  580</span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_LAST          GLFW_JOYSTICK_16</span></div>
-<div class="line"><a name="l00581"></a><span class="lineno">  581</span>&#160; </div>
-<div class="line"><a name="l00590"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga17d67b4f39a39d6b813bd1567a3507c3">  590</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_A               0</span></div>
-<div class="line"><a name="l00591"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gadfbc9ea9bf3aae896b79fa49fdc85c7f">  591</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_B               1</span></div>
-<div class="line"><a name="l00592"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gabc7c0264ce778835b516a472b47f6caf">  592</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_X               2</span></div>
-<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga04606949dd9139434b8a1bedf4ac1021">  593</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_Y               3</span></div>
-<div class="line"><a name="l00594"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga7fa48c32e5b2f5db2f080aa0b8b573dc">  594</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER     4</span></div>
-<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga3e089787327454f7bfca7364d6ca206a">  595</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER    5</span></div>
-<div class="line"><a name="l00596"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga1c003f52b5aebb45272475b48953b21a">  596</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_BACK            6</span></div>
-<div class="line"><a name="l00597"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga4f1ed6f974a47bc8930d4874a283476a">  597</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_START           7</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gae2a780d2a8c79e0b77c0b7b601ca57c6">  598</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_GUIDE           8</span></div>
-<div class="line"><a name="l00599"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga8f2b731b97d80f90f11967a83207665c">  599</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB      9</span></div>
-<div class="line"><a name="l00600"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaf0697e0e8607b2ebe1c93b0c6befe301">  600</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB     10</span></div>
-<div class="line"><a name="l00601"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga5cc98882f4f81dacf761639a567f61eb">  601</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_UP         11</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno">  602</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT      12</span></div>
-<div class="line"><a name="l00603"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaf08d0df26527c9305253422bd98ed63a">  603</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN       13</span></div>
-<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaaef094b3dacbf15f272b274516839b82">  604</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT       14</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gafc7821e87d77d41ed2cd3e1f726ec35f">  605</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LAST            GLFW_GAMEPAD_BUTTON_DPAD_LEFT</span></div>
-<div class="line"><a name="l00606"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga3a7ef6bcb768a08cd3bf142f7f09f802">  606</a></span>&#160; </div>
-<div class="line"><a name="l00607"></a><span class="lineno">  607</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_CROSS       GLFW_GAMEPAD_BUTTON_A</span></div>
-<div class="line"><a name="l00608"></a><span class="lineno">  608</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_CIRCLE      GLFW_GAMEPAD_BUTTON_B</span></div>
-<div class="line"><a name="l00609"></a><span class="lineno">  609</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_SQUARE      GLFW_GAMEPAD_BUTTON_X</span></div>
-<div class="line"><a name="l00610"></a><span class="lineno">  610</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_TRIANGLE    GLFW_GAMEPAD_BUTTON_Y</span></div>
-<div class="line"><a name="l00611"></a><span class="lineno">  611</span>&#160; </div>
-<div class="line"><a name="l00620"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga6d79561dd8907c37354426242901b86e">  620</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_X        0</span></div>
-<div class="line"><a name="l00621"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">  621</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_Y        1</span></div>
-<div class="line"><a name="l00622"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga0818fd9433e1359692b7443293e5ac86">  622</a></span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_X       2</span></div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_Y       3</span></div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER  4</span></div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5</span></div>
-<div class="line"><a name="l00626"></a><span class="lineno">  626</span>&#160;<span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LAST          GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</span></div>
-<div class="line"><a name="l00627"></a><span class="lineno">  627</span>&#160; </div>
-<div class="line"><a name="l00642"></a><span class="lineno">  642</span>&#160;<span class="preprocessor">#define GLFW_NO_ERROR               0</span></div>
-<div class="line"><a name="l00643"></a><span class="lineno">  643</span>&#160; </div>
-<div class="line"><a name="l00651"></a><span class="lineno">  651</span>&#160;<span class="preprocessor">#define GLFW_NOT_INITIALIZED        0x00010001</span></div>
-<div class="line"><a name="l00652"></a><span class="lineno">  652</span>&#160; </div>
-<div class="line"><a name="l00661"></a><span class="lineno">  661</span>&#160;<span class="preprocessor">#define GLFW_NO_CURRENT_CONTEXT     0x00010002</span></div>
-<div class="line"><a name="l00662"></a><span class="lineno">  662</span>&#160; </div>
-<div class="line"><a name="l00669"></a><span class="lineno">  669</span>&#160;<span class="preprocessor">#define GLFW_INVALID_ENUM           0x00010003</span></div>
-<div class="line"><a name="l00670"></a><span class="lineno">  670</span>&#160; </div>
-<div class="line"><a name="l00680"></a><span class="lineno">  680</span>&#160;<span class="preprocessor">#define GLFW_INVALID_VALUE          0x00010004</span></div>
-<div class="line"><a name="l00681"></a><span class="lineno">  681</span>&#160; </div>
-<div class="line"><a name="l00688"></a><span class="lineno">  688</span>&#160;<span class="preprocessor">#define GLFW_OUT_OF_MEMORY          0x00010005</span></div>
-<div class="line"><a name="l00689"></a><span class="lineno">  689</span>&#160; </div>
-<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;<span class="preprocessor">#define GLFW_API_UNAVAILABLE        0x00010006</span></div>
-<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; </div>
-<div class="line"><a name="l00721"></a><span class="lineno">  721</span>&#160;<span class="preprocessor">#define GLFW_VERSION_UNAVAILABLE    0x00010007</span></div>
-<div class="line"><a name="l00722"></a><span class="lineno">  722</span>&#160; </div>
-<div class="line"><a name="l00732"></a><span class="lineno">  732</span>&#160;<span class="preprocessor">#define GLFW_PLATFORM_ERROR         0x00010008</span></div>
-<div class="line"><a name="l00733"></a><span class="lineno">  733</span>&#160; </div>
-<div class="line"><a name="l00751"></a><span class="lineno">  751</span>&#160;<span class="preprocessor">#define GLFW_FORMAT_UNAVAILABLE     0x00010009</span></div>
-<div class="line"><a name="l00752"></a><span class="lineno">  752</span>&#160; </div>
-<div class="line"><a name="l00759"></a><span class="lineno">  759</span>&#160;<span class="preprocessor">#define GLFW_NO_WINDOW_CONTEXT      0x0001000A</span></div>
-<div class="line"><a name="l00760"></a><span class="lineno">  760</span>&#160; </div>
-<div class="line"><a name="l00769"></a><span class="lineno">  769</span>&#160;<span class="preprocessor">#define GLFW_FOCUSED                0x00020001</span></div>
-<div class="line"><a name="l00770"></a><span class="lineno"><a class="line" href="group__window.html#ga39d44b7c056e55e581355a92d240b58a">  770</a></span>&#160; </div>
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160;<span class="preprocessor">#define GLFW_ICONIFIED              0x00020002</span></div>
-<div class="line"><a name="l00775"></a><span class="lineno">  775</span>&#160; </div>
-<div class="line"><a name="l00780"></a><span class="lineno">  780</span>&#160;<span class="preprocessor">#define GLFW_RESIZABLE              0x00020003</span></div>
-<div class="line"><a name="l00781"></a><span class="lineno">  781</span>&#160; </div>
-<div class="line"><a name="l00786"></a><span class="lineno">  786</span>&#160;<span class="preprocessor">#define GLFW_VISIBLE                0x00020004</span></div>
-<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160; </div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;<span class="preprocessor">#define GLFW_DECORATED              0x00020005</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160; </div>
-<div class="line"><a name="l00798"></a><span class="lineno">  798</span>&#160;<span class="preprocessor">#define GLFW_AUTO_ICONIFY           0x00020006</span></div>
-<div class="line"><a name="l00799"></a><span class="lineno">  799</span>&#160; </div>
-<div class="line"><a name="l00804"></a><span class="lineno">  804</span>&#160;<span class="preprocessor">#define GLFW_FLOATING               0x00020007</span></div>
-<div class="line"><a name="l00805"></a><span class="lineno">  805</span>&#160; </div>
-<div class="line"><a name="l00810"></a><span class="lineno">  810</span>&#160;<span class="preprocessor">#define GLFW_MAXIMIZED              0x00020008</span></div>
-<div class="line"><a name="l00811"></a><span class="lineno"><a class="line" href="group__window.html#ga5ac0847c0aa0b3619f2855707b8a7a77">  811</a></span>&#160; </div>
-<div class="line"><a name="l00815"></a><span class="lineno">  815</span>&#160;<span class="preprocessor">#define GLFW_CENTER_CURSOR          0x00020009</span></div>
-<div class="line"><a name="l00816"></a><span class="lineno">  816</span>&#160; </div>
-<div class="line"><a name="l00822"></a><span class="lineno">  822</span>&#160;<span class="preprocessor">#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A</span></div>
-<div class="line"><a name="l00823"></a><span class="lineno"><a class="line" href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">  823</a></span>&#160; </div>
-<div class="line"><a name="l00827"></a><span class="lineno">  827</span>&#160;<span class="preprocessor">#define GLFW_HOVERED                0x0002000B</span></div>
-<div class="line"><a name="l00828"></a><span class="lineno">  828</span>&#160; </div>
-<div class="line"><a name="l00833"></a><span class="lineno">  833</span>&#160;<span class="preprocessor">#define GLFW_FOCUS_ON_SHOW          0x0002000C</span></div>
-<div class="line"><a name="l00834"></a><span class="lineno">  834</span>&#160; </div>
-<div class="line"><a name="l00839"></a><span class="lineno">  839</span>&#160;<span class="preprocessor">#define GLFW_RED_BITS               0x00021001</span></div>
-<div class="line"><a name="l00840"></a><span class="lineno"><a class="line" href="group__window.html#gafba3b72638c914e5fb8a237dd4c50d4d">  840</a></span>&#160; </div>
-<div class="line"><a name="l00844"></a><span class="lineno">  844</span>&#160;<span class="preprocessor">#define GLFW_GREEN_BITS             0x00021002</span></div>
-<div class="line"><a name="l00845"></a><span class="lineno"><a class="line" href="group__window.html#gab292ea403db6d514537b515311bf9ae3">  845</a></span>&#160; </div>
-<div class="line"><a name="l00849"></a><span class="lineno">  849</span>&#160;<span class="preprocessor">#define GLFW_BLUE_BITS              0x00021003</span></div>
-<div class="line"><a name="l00850"></a><span class="lineno"><a class="line" href="group__window.html#gafed79a3f468997877da86c449bd43e8c">  850</a></span>&#160; </div>
-<div class="line"><a name="l00854"></a><span class="lineno">  854</span>&#160;<span class="preprocessor">#define GLFW_ALPHA_BITS             0x00021004</span></div>
-<div class="line"><a name="l00855"></a><span class="lineno"><a class="line" href="group__window.html#ga318a55eac1fee57dfe593b6d38149d07">  855</a></span>&#160; </div>
-<div class="line"><a name="l00859"></a><span class="lineno">  859</span>&#160;<span class="preprocessor">#define GLFW_DEPTH_BITS             0x00021005</span></div>
-<div class="line"><a name="l00860"></a><span class="lineno"><a class="line" href="group__window.html#ga5339890a45a1fb38e93cb9fcc5fd069d">  860</a></span>&#160; </div>
-<div class="line"><a name="l00864"></a><span class="lineno">  864</span>&#160;<span class="preprocessor">#define GLFW_STENCIL_BITS           0x00021006</span></div>
-<div class="line"><a name="l00865"></a><span class="lineno"><a class="line" href="group__window.html#gaead34a9a683b2bc20eecf30ba738bfc6">  865</a></span>&#160; </div>
-<div class="line"><a name="l00869"></a><span class="lineno">  869</span>&#160;<span class="preprocessor">#define GLFW_ACCUM_RED_BITS         0x00021007</span></div>
-<div class="line"><a name="l00870"></a><span class="lineno"><a class="line" href="group__window.html#ga65713cee1326f8e9d806fdf93187b471">  870</a></span>&#160; </div>
-<div class="line"><a name="l00874"></a><span class="lineno">  874</span>&#160;<span class="preprocessor">#define GLFW_ACCUM_GREEN_BITS       0x00021008</span></div>
-<div class="line"><a name="l00875"></a><span class="lineno"><a class="line" href="group__window.html#ga22bbe9104a8ce1f8b88fb4f186aa36ce">  875</a></span>&#160; </div>
-<div class="line"><a name="l00879"></a><span class="lineno">  879</span>&#160;<span class="preprocessor">#define GLFW_ACCUM_BLUE_BITS        0x00021009</span></div>
-<div class="line"><a name="l00880"></a><span class="lineno"><a class="line" href="group__window.html#gae829b55591c18169a40ab4067a041b1f">  880</a></span>&#160; </div>
-<div class="line"><a name="l00884"></a><span class="lineno">  884</span>&#160;<span class="preprocessor">#define GLFW_ACCUM_ALPHA_BITS       0x0002100A</span></div>
-<div class="line"><a name="l00885"></a><span class="lineno"><a class="line" href="group__window.html#gab05108c5029443b371112b031d1fa174">  885</a></span>&#160; </div>
-<div class="line"><a name="l00889"></a><span class="lineno">  889</span>&#160;<span class="preprocessor">#define GLFW_AUX_BUFFERS            0x0002100B</span></div>
-<div class="line"><a name="l00890"></a><span class="lineno"><a class="line" href="group__window.html#ga83d991efca02537e2d69969135b77b03">  890</a></span>&#160; </div>
-<div class="line"><a name="l00894"></a><span class="lineno">  894</span>&#160;<span class="preprocessor">#define GLFW_STEREO                 0x0002100C</span></div>
-<div class="line"><a name="l00895"></a><span class="lineno"><a class="line" href="group__window.html#ga2cdf86fdcb7722fb8829c4e201607535">  895</a></span>&#160; </div>
-<div class="line"><a name="l00899"></a><span class="lineno">  899</span>&#160;<span class="preprocessor">#define GLFW_SAMPLES                0x0002100D</span></div>
-<div class="line"><a name="l00900"></a><span class="lineno"><a class="line" href="group__window.html#ga444a8f00414a63220591f9fdb7b5642b">  900</a></span>&#160; </div>
-<div class="line"><a name="l00904"></a><span class="lineno">  904</span>&#160;<span class="preprocessor">#define GLFW_SRGB_CAPABLE           0x0002100E</span></div>
-<div class="line"><a name="l00905"></a><span class="lineno"><a class="line" href="group__window.html#ga0f20825e6e47ee8ba389024519682212">  905</a></span>&#160; </div>
-<div class="line"><a name="l00909"></a><span class="lineno">  909</span>&#160;<span class="preprocessor">#define GLFW_REFRESH_RATE           0x0002100F</span></div>
-<div class="line"><a name="l00910"></a><span class="lineno"><a class="line" href="group__window.html#ga714a5d569e8a274ea58fdfa020955339">  910</a></span>&#160; </div>
-<div class="line"><a name="l00914"></a><span class="lineno">  914</span>&#160;<span class="preprocessor">#define GLFW_DOUBLEBUFFER           0x00021010</span></div>
-<div class="line"><a name="l00915"></a><span class="lineno">  915</span>&#160; </div>
-<div class="line"><a name="l00921"></a><span class="lineno">  921</span>&#160;<span class="preprocessor">#define GLFW_CLIENT_API             0x00022001</span></div>
-<div class="line"><a name="l00922"></a><span class="lineno">  922</span>&#160; </div>
-<div class="line"><a name="l00927"></a><span class="lineno">  927</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_VERSION_MAJOR  0x00022002</span></div>
-<div class="line"><a name="l00928"></a><span class="lineno">  928</span>&#160; </div>
-<div class="line"><a name="l00933"></a><span class="lineno">  933</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_VERSION_MINOR  0x00022003</span></div>
-<div class="line"><a name="l00934"></a><span class="lineno">  934</span>&#160; </div>
-<div class="line"><a name="l00939"></a><span class="lineno">  939</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_REVISION       0x00022004</span></div>
-<div class="line"><a name="l00940"></a><span class="lineno">  940</span>&#160; </div>
-<div class="line"><a name="l00945"></a><span class="lineno">  945</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_ROBUSTNESS     0x00022005</span></div>
-<div class="line"><a name="l00946"></a><span class="lineno">  946</span>&#160; </div>
-<div class="line"><a name="l00951"></a><span class="lineno">  951</span>&#160;<span class="preprocessor">#define GLFW_OPENGL_FORWARD_COMPAT  0x00022006</span></div>
-<div class="line"><a name="l00952"></a><span class="lineno">  952</span>&#160; </div>
-<div class="line"><a name="l00957"></a><span class="lineno">  957</span>&#160;<span class="preprocessor">#define GLFW_OPENGL_DEBUG_CONTEXT   0x00022007</span></div>
-<div class="line"><a name="l00958"></a><span class="lineno">  958</span>&#160; </div>
-<div class="line"><a name="l00963"></a><span class="lineno">  963</span>&#160;<span class="preprocessor">#define GLFW_OPENGL_PROFILE         0x00022008</span></div>
-<div class="line"><a name="l00964"></a><span class="lineno">  964</span>&#160; </div>
-<div class="line"><a name="l00969"></a><span class="lineno">  969</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009</span></div>
-<div class="line"><a name="l00970"></a><span class="lineno">  970</span>&#160; </div>
-<div class="line"><a name="l00975"></a><span class="lineno">  975</span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_NO_ERROR       0x0002200A</span></div>
-<div class="line"><a name="l00976"></a><span class="lineno">  976</span>&#160; </div>
-<div class="line"><a name="l00981"></a><span class="lineno"><a class="line" href="group__window.html#ga620bc4280c7eab81ac9f02204500ed47">  981</a></span>&#160;<span class="preprocessor">#define GLFW_CONTEXT_CREATION_API   0x0002200B</span></div>
-<div class="line"><a name="l00982"></a><span class="lineno">  982</span>&#160; </div>
-<div class="line"><a name="l00985"></a><span class="lineno"><a class="line" href="group__window.html#gab6ef2d02eb55800d249ccf1af253c35e">  985</a></span>&#160;<span class="preprocessor">#define GLFW_SCALE_TO_MONITOR       0x0002200C</span></div>
-<div class="line"><a name="l00986"></a><span class="lineno">  986</span>&#160; </div>
-<div class="line"><a name="l00989"></a><span class="lineno"><a class="line" href="group__window.html#ga70fa0fbc745de6aa824df79a580e84b5">  989</a></span>&#160;<span class="preprocessor">#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001</span></div>
-<div class="line"><a name="l00990"></a><span class="lineno">  990</span>&#160; </div>
-<div class="line"><a name="l00993"></a><span class="lineno"><a class="line" href="group__window.html#ga53c84ed2ddd94e15bbd44b1f6f7feafc">  993</a></span>&#160;<span class="preprocessor">#define GLFW_COCOA_FRAME_NAME         0x00023002</span></div>
-<div class="line"><a name="l00994"></a><span class="lineno">  994</span>&#160; </div>
-<div class="line"><a name="l00997"></a><span class="lineno"><a class="line" href="group__window.html#gae5a9ea2fccccd92edbd343fc56461114">  997</a></span>&#160;<span class="preprocessor">#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003</span></div>
-<div class="line"><a name="l00998"></a><span class="lineno">  998</span>&#160; </div>
-<div class="line"><a name="l01001"></a><span class="lineno"><a class="line" href="group__window.html#ga494c3c0d911e4b860b946530a3e389e8"> 1001</a></span>&#160;<span class="preprocessor">#define GLFW_X11_CLASS_NAME         0x00024001</span></div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; </div>
-<div class="line"><a name="l01005"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a01b3f66db266341425e9abee6b257db2"> 1005</a></span>&#160;<span class="preprocessor">#define GLFW_X11_INSTANCE_NAME      0x00024002</span></div>
-<div class="line"><a name="l01006"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a28d9b3bc6c2a522d815c8e146595051f"> 1006</a></span>&#160; </div>
-<div class="line"><a name="l01008"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a8b306cb27f5bb0d6d67c7356a0e0fc34"> 1008</a></span>&#160;<span class="preprocessor">#define GLFW_NO_API                          0</span></div>
-<div class="line"><a name="l01009"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aee84a679230d205005e22487ff678a85"> 1009</a></span>&#160;<span class="preprocessor">#define GLFW_OPENGL_API             0x00030001</span></div>
-<div class="line"><a name="l01010"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aec1132f245143fc915b2f0995228564c"> 1010</a></span>&#160;<span class="preprocessor">#define GLFW_OPENGL_ES_API          0x00030002</span></div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; </div>
-<div class="line"><a name="l01012"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ad6f2335d6f21cc9bab96633b1c111d5f"> 1012</a></span>&#160;<span class="preprocessor">#define GLFW_NO_ROBUSTNESS                   0</span></div>
-<div class="line"><a name="l01013"></a><span class="lineno"><a class="line" href="glfw3_8h.html#af094bb16da76f66ebceb19ee213b3de8"> 1013</a></span>&#160;<span class="preprocessor">#define GLFW_NO_RESET_NOTIFICATION  0x00031001</span></div>
-<div class="line"><a name="l01014"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ac06b663d79c8fcf04669cc8fcc0b7670"> 1014</a></span>&#160;<span class="preprocessor">#define GLFW_LOSE_CONTEXT_ON_RESET  0x00031002</span></div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; </div>
-<div class="line"><a name="l01016"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c"> 1016</a></span>&#160;<span class="preprocessor">#define GLFW_OPENGL_ANY_PROFILE              0</span></div>
-<div class="line"><a name="l01017"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc"> 1017</a></span>&#160;<span class="preprocessor">#define GLFW_OPENGL_CORE_PROFILE    0x00032001</span></div>
-<div class="line"><a name="l01018"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1"> 1018</a></span>&#160;<span class="preprocessor">#define GLFW_OPENGL_COMPAT_PROFILE  0x00032002</span></div>
-<div class="line"><a name="l01019"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947"> 1019</a></span>&#160; </div>
-<div class="line"><a name="l01020"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb"> 1020</a></span>&#160;<span class="preprocessor">#define GLFW_CURSOR                 0x00033001</span></div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="preprocessor">#define GLFW_STICKY_KEYS            0x00033002</span></div>
-<div class="line"><a name="l01022"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68"> 1022</a></span>&#160;<span class="preprocessor">#define GLFW_STICKY_MOUSE_BUTTONS   0x00033003</span></div>
-<div class="line"><a name="l01023"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11"> 1023</a></span>&#160;<span class="preprocessor">#define GLFW_LOCK_KEY_MODS          0x00033004</span></div>
-<div class="line"><a name="l01024"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88"> 1024</a></span>&#160;<span class="preprocessor">#define GLFW_RAW_MOUSE_MOTION       0x00033005</span></div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; </div>
-<div class="line"><a name="l01026"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a6b47d806f285efe9bfd7aeec667297ee"> 1026</a></span>&#160;<span class="preprocessor">#define GLFW_CURSOR_NORMAL          0x00034001</span></div>
-<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a999961d391db49cb4f949c1dece0e13b"> 1027</a></span>&#160;<span class="preprocessor">#define GLFW_CURSOR_HIDDEN          0x00034002</span></div>
-<div class="line"><a name="l01028"></a><span class="lineno"><a class="line" href="glfw3_8h.html#afca09088eccacdce4b59036cfae349c5"> 1028</a></span>&#160;<span class="preprocessor">#define GLFW_CURSOR_DISABLED        0x00034003</span></div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; </div>
-<div class="line"><a name="l01030"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a0494c9bfd3f584ab41e6dbeeaa0e6a19"> 1030</a></span>&#160;<span class="preprocessor">#define GLFW_ANY_RELEASE_BEHAVIOR            0</span></div>
-<div class="line"><a name="l01031"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a03cf65c9ab01fc8b872ba58842c531c9"> 1031</a></span>&#160;<span class="preprocessor">#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001</span></div>
-<div class="line"><a name="l01032"></a><span class="lineno"><a class="line" href="glfw3_8h.html#afd34a473af9fa81f317910ea371b19e3"> 1032</a></span>&#160;<span class="preprocessor">#define GLFW_RELEASE_BEHAVIOR_NONE  0x00035002</span></div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; </div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;<span class="preprocessor">#define GLFW_NATIVE_CONTEXT_API     0x00036001</span></div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160;<span class="preprocessor">#define GLFW_EGL_CONTEXT_API        0x00036002</span></div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;<span class="preprocessor">#define GLFW_OSMESA_CONTEXT_API     0x00036003</span></div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; </div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;<span class="preprocessor">#define GLFW_ARROW_CURSOR           0x00036001</span></div>
-<div class="line"><a name="l01051"></a><span class="lineno"><a class="line" href="group__shapes.html#ga36185f4375eaada1b04e431244774c86"> 1051</a></span>&#160; </div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;<span class="preprocessor">#define GLFW_IBEAM_CURSOR           0x00036002</span></div>
-<div class="line"><a name="l01056"></a><span class="lineno"><a class="line" href="group__shapes.html#ga8af88c0ea05ab9e8f9ac1530e8873c22"> 1056</a></span>&#160; </div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;<span class="preprocessor">#define GLFW_CROSSHAIR_CURSOR       0x00036003</span></div>
-<div class="line"><a name="l01061"></a><span class="lineno"><a class="line" href="group__shapes.html#ga1db35e20849e0837c82e3dc1fd797263"> 1061</a></span>&#160; </div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;<span class="preprocessor">#define GLFW_HAND_CURSOR            0x00036004</span></div>
-<div class="line"><a name="l01066"></a><span class="lineno"><a class="line" href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962"> 1066</a></span>&#160; </div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;<span class="preprocessor">#define GLFW_HRESIZE_CURSOR         0x00036005</span></div>
-<div class="line"><a name="l01071"></a><span class="lineno"><a class="line" href="group__shapes.html#gaf024f0e1ff8366fb2b5c260509a1fce5"> 1071</a></span>&#160; </div>
-<div class="line"><a name="l01075"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32"> 1075</a></span>&#160;<span class="preprocessor">#define GLFW_VRESIZE_CURSOR         0x00036006</span></div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; </div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160;<span class="preprocessor">#define GLFW_CONNECTED              0x00040001</span></div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;<span class="preprocessor">#define GLFW_DISCONNECTED           0x00040002</span></div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; </div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;<span class="preprocessor">#define GLFW_JOYSTICK_HAT_BUTTONS   0x00050001</span></div>
-<div class="line"><a name="l01088"></a><span class="lineno"><a class="line" href="group__init.html#gab937983147a3158d45f88fad7129d9f2"> 1088</a></span>&#160; </div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160;<span class="preprocessor">#define GLFW_COCOA_CHDIR_RESOURCES  0x00051001</span></div>
-<div class="line"><a name="l01093"></a><span class="lineno"><a class="line" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf"> 1093</a></span>&#160; </div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160;<span class="preprocessor">#define GLFW_COCOA_MENUBAR          0x00051002</span></div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; </div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;<span class="preprocessor">#define GLFW_DONT_CARE              -1</span></div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; </div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; </div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="comment"> * GLFW API types</span></div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; </div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>)(void);</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; </div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;<span class="keyword">typedef</span> void (*<a class="code" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>)(void);</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; </div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>;</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; </div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> <a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>;</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; </div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> <a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>;</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; </div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>)(int,<span class="keyword">const</span> <span class="keywordtype">char</span>*);</div>
-<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; </div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,int);</div>
-<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; </div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,int);</div>
-<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; </div>
-<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*);</div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; </div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*);</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; </div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int);</div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; </div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int);</div>
-<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; </div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int);</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; </div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,int);</div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; </div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,float,float);</div>
-<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; </div>
-<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,int,int);</div>
-<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; </div>
-<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,double,double);</div>
-<div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; </div>
-<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int);</div>
-<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; </div>
-<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,double,double);</div>
-<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; </div>
-<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,int,int,int);</div>
-<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; </div>
-<div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,<span class="keywordtype">unsigned</span> int);</div>
-<div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; </div>
-<div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,<span class="keywordtype">unsigned</span> int,int);</div>
-<div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; </div>
-<div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a>)(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>*,int,<span class="keyword">const</span> <span class="keywordtype">char</span>*[]);</div>
-<div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; </div>
-<div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>)(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>*,int);</div>
-<div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; </div>
-<div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160;<span class="keyword">typedef</span> void (* <a class="code" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a>)(int,int);</div>
-<div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; </div>
-<div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structGLFWvidmode.html">GLFWvidmode</a></div>
-<div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;{</div>
-<div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d">width</a>;</div>
-<div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c">height</a>;</div>
-<div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b">redBits</a>;</div>
-<div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa">greenBits</a>;</div>
-<div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047">blueBits</a>;</div>
-<div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649">refreshRate</a>;</div>
-<div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;} <a class="code" href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">GLFWvidmode</a>;</div>
-<div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; </div>
-<div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structGLFWgammaramp.html">GLFWgammaramp</a></div>
-<div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160;{</div>
-<div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code" href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">red</a>;</div>
-<div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code" href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">green</a>;</div>
-<div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code" href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">blue</a>;</div>
-<div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a>;</div>
-<div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160;} <a class="code" href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">GLFWgammaramp</a>;</div>
-<div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; </div>
-<div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structGLFWimage.html">GLFWimage</a></div>
-<div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160;{</div>
-<div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">width</a>;</div>
-<div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160;    <span class="keywordtype">int</span> <a class="code" href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">height</a>;</div>
-<div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">pixels</a>;</div>
-<div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160;} <a class="code" href="group__window.html#gac81c32f4437de7b3aa58ab62c3d9e5b1">GLFWimage</a>;</div>
-<div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; </div>
-<div class="line"><a name="l01716"></a><span class="lineno"><a class="line" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a"> 1716</a></span>&#160;<span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code" href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div>
-<div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160;{</div>
-<div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">buttons</a>[15];</div>
-<div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;    <span class="keywordtype">float</span> <a class="code" href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">axes</a>[6];</div>
-<div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160;} <a class="code" href="group__input.html#ga0b86867abb735af3b959f61c44b1d029">GLFWgamepadstate</a>;</div>
-<div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; </div>
-<div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; </div>
-<div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="comment"> * GLFW API functions</span></div>
-<div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; </div>
-<div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160; </div>
-<div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; </div>
-<div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>(<span class="keywordtype">int</span> hint, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; </div>
-<div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>(<span class="keywordtype">int</span>* major, <span class="keywordtype">int</span>* minor, <span class="keywordtype">int</span>* rev);</div>
-<div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; </div>
-<div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; </div>
-<div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>** description);</div>
-<div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; </div>
-<div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;GLFWAPI <a class="code" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> <a class="code" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>(<a class="code" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> callback);</div>
-<div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; </div>
-<div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160;GLFWAPI <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** <a class="code" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a>(<span class="keywordtype">int</span>* count);</div>
-<div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; </div>
-<div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160;GLFWAPI <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* <a class="code" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; </div>
-<div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos);</div>
-<div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; </div>
-<div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
-<div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; </div>
-<div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* widthMM, <span class="keywordtype">int</span>* heightMM);</div>
-<div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; </div>
-<div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">float</span>* xscale, <span class="keywordtype">float</span>* yscale);</div>
-<div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; </div>
-<div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; </div>
-<div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">void</span>* pointer);</div>
-<div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; </div>
-<div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160;GLFWAPI <span class="keywordtype">void</span>* <a class="code" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160; </div>
-<div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160;GLFWAPI <a class="code" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> <a class="code" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a>(<a class="code" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> callback);</div>
-<div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; </div>
-<div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160;GLFWAPI <span class="keyword">const</span> <a class="code" href="structGLFWvidmode.html">GLFWvidmode</a>* <a class="code" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* count);</div>
-<div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; </div>
-<div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160;GLFWAPI <span class="keyword">const</span> <a class="code" href="structGLFWvidmode.html">GLFWvidmode</a>* <a class="code" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; </div>
-<div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">float</span> gamma);</div>
-<div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; </div>
-<div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160;GLFWAPI <span class="keyword">const</span> <a class="code" href="structGLFWgammaramp.html">GLFWgammaramp</a>* <a class="code" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; </div>
-<div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keyword">const</span> <a class="code" href="structGLFWgammaramp.html">GLFWgammaramp</a>* ramp);</div>
-<div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; </div>
-<div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; </div>
-<div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>(<span class="keywordtype">int</span> hint, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; </div>
-<div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f">glfwWindowHintString</a>(<span class="keywordtype">int</span> hint, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
-<div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; </div>
-<div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keyword">const</span> <span class="keywordtype">char</span>* title, <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* share);</div>
-<div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; </div>
-<div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; </div>
-<div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; </div>
-<div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160; </div>
-<div class="line"><a name="l02752"></a><span class="lineno"> 2752</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> <span class="keywordtype">char</span>* title);</div>
-<div class="line"><a name="l02753"></a><span class="lineno"> 2753</span>&#160; </div>
-<div class="line"><a name="l02799"></a><span class="lineno"> 2799</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> count, <span class="keyword">const</span> <a class="code" href="structGLFWimage.html">GLFWimage</a>* images);</div>
-<div class="line"><a name="l02800"></a><span class="lineno"> 2800</span>&#160; </div>
-<div class="line"><a name="l02831"></a><span class="lineno"> 2831</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga73cb526c000876fd8ddf571570fdb634">glfwGetWindowPos</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos);</div>
-<div class="line"><a name="l02832"></a><span class="lineno"> 2832</span>&#160; </div>
-<div class="line"><a name="l02866"></a><span class="lineno"> 2866</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfwSetWindowPos</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos);</div>
-<div class="line"><a name="l02867"></a><span class="lineno"> 2867</span>&#160; </div>
-<div class="line"><a name="l02896"></a><span class="lineno"> 2896</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
-<div class="line"><a name="l02897"></a><span class="lineno"> 2897</span>&#160; </div>
-<div class="line"><a name="l02939"></a><span class="lineno"> 2939</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfwSetWindowSizeLimits</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> minwidth, <span class="keywordtype">int</span> minheight, <span class="keywordtype">int</span> maxwidth, <span class="keywordtype">int</span> maxheight);</div>
-<div class="line"><a name="l02940"></a><span class="lineno"> 2940</span>&#160; </div>
-<div class="line"><a name="l02982"></a><span class="lineno"> 2982</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfwSetWindowAspectRatio</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> numer, <span class="keywordtype">int</span> denom);</div>
-<div class="line"><a name="l02983"></a><span class="lineno"> 2983</span>&#160; </div>
-<div class="line"><a name="l03023"></a><span class="lineno"> 3023</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
-<div class="line"><a name="l03024"></a><span class="lineno"> 3024</span>&#160; </div>
-<div class="line"><a name="l03052"></a><span class="lineno"> 3052</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
-<div class="line"><a name="l03053"></a><span class="lineno"> 3053</span>&#160; </div>
-<div class="line"><a name="l03089"></a><span class="lineno"> 3089</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1">glfwGetWindowFrameSize</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* left, <span class="keywordtype">int</span>* top, <span class="keywordtype">int</span>* right, <span class="keywordtype">int</span>* bottom);</div>
-<div class="line"><a name="l03090"></a><span class="lineno"> 3090</span>&#160; </div>
-<div class="line"><a name="l03122"></a><span class="lineno"> 3122</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gaf5d31de9c19c4f994facea64d2b3106c">glfwGetWindowContentScale</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">float</span>* xscale, <span class="keywordtype">float</span>* yscale);</div>
-<div class="line"><a name="l03123"></a><span class="lineno"> 3123</span>&#160; </div>
-<div class="line"><a name="l03149"></a><span class="lineno"> 3149</span>&#160;GLFWAPI <span class="keywordtype">float</span> <a class="code" href="group__window.html#gad09f0bd7a6307c4533b7061828480a84">glfwGetWindowOpacity</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03150"></a><span class="lineno"> 3150</span>&#160; </div>
-<div class="line"><a name="l03178"></a><span class="lineno"> 3178</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gac31caeb3d1088831b13d2c8a156802e9">glfwSetWindowOpacity</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">float</span> opacity);</div>
-<div class="line"><a name="l03179"></a><span class="lineno"> 3179</span>&#160; </div>
-<div class="line"><a name="l03209"></a><span class="lineno"> 3209</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4">glfwIconifyWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03210"></a><span class="lineno"> 3210</span>&#160; </div>
-<div class="line"><a name="l03236"></a><span class="lineno"> 3236</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfwRestoreWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03237"></a><span class="lineno"> 3237</span>&#160; </div>
-<div class="line"><a name="l03261"></a><span class="lineno"> 3261</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga3f541387449d911274324ae7f17ec56b">glfwMaximizeWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03262"></a><span class="lineno"> 3262</span>&#160; </div>
-<div class="line"><a name="l03288"></a><span class="lineno"> 3288</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga61be47917b72536a148300f46494fc66">glfwShowWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03289"></a><span class="lineno"> 3289</span>&#160; </div>
-<div class="line"><a name="l03310"></a><span class="lineno"> 3310</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga49401f82a1ba5f15db5590728314d47c">glfwHideWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03311"></a><span class="lineno"> 3311</span>&#160; </div>
-<div class="line"><a name="l03349"></a><span class="lineno"> 3349</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga873780357abd3f3a081d71a40aae45a1">glfwFocusWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03350"></a><span class="lineno"> 3350</span>&#160; </div>
-<div class="line"><a name="l03376"></a><span class="lineno"> 3376</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">glfwRequestWindowAttention</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03377"></a><span class="lineno"> 3377</span>&#160; </div>
-<div class="line"><a name="l03398"></a><span class="lineno"> 3398</span>&#160;GLFWAPI <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* <a class="code" href="group__window.html#gaeac25e64789974ccbe0811766bd91a16">glfwGetWindowMonitor</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03399"></a><span class="lineno"> 3399</span>&#160; </div>
-<div class="line"><a name="l03457"></a><span class="lineno"> 3457</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> refreshRate);</div>
-<div class="line"><a name="l03458"></a><span class="lineno"> 3458</span>&#160; </div>
-<div class="line"><a name="l03491"></a><span class="lineno"> 3491</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> attrib);</div>
-<div class="line"><a name="l03492"></a><span class="lineno"> 3492</span>&#160; </div>
-<div class="line"><a name="l03528"></a><span class="lineno"> 3528</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gace2afda29b4116ec012e410a6819033e">glfwSetWindowAttrib</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> attrib, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l03529"></a><span class="lineno"> 3529</span>&#160; </div>
-<div class="line"><a name="l03551"></a><span class="lineno"> 3551</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">void</span>* pointer);</div>
-<div class="line"><a name="l03552"></a><span class="lineno"> 3552</span>&#160; </div>
-<div class="line"><a name="l03572"></a><span class="lineno"> 3572</span>&#160;GLFWAPI <span class="keywordtype">void</span>* <a class="code" href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">glfwGetWindowUserPointer</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l03573"></a><span class="lineno"> 3573</span>&#160; </div>
-<div class="line"><a name="l03607"></a><span class="lineno"> 3607</span>&#160;GLFWAPI <a class="code" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a> <a class="code" href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a> callback);</div>
-<div class="line"><a name="l03608"></a><span class="lineno"> 3608</span>&#160; </div>
-<div class="line"><a name="l03639"></a><span class="lineno"> 3639</span>&#160;GLFWAPI <a class="code" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a> <a class="code" href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a> callback);</div>
-<div class="line"><a name="l03640"></a><span class="lineno"> 3640</span>&#160; </div>
-<div class="line"><a name="l03679"></a><span class="lineno"> 3679</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a> <a class="code" href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a> callback);</div>
-<div class="line"><a name="l03680"></a><span class="lineno"> 3680</span>&#160; </div>
-<div class="line"><a name="l03715"></a><span class="lineno"> 3715</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a> <a class="code" href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a> callback);</div>
-<div class="line"><a name="l03716"></a><span class="lineno"> 3716</span>&#160; </div>
-<div class="line"><a name="l03750"></a><span class="lineno"> 3750</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a> <a class="code" href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a> callback);</div>
-<div class="line"><a name="l03751"></a><span class="lineno"> 3751</span>&#160; </div>
-<div class="line"><a name="l03783"></a><span class="lineno"> 3783</span>&#160;GLFWAPI <a class="code" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a> <a class="code" href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">glfwSetWindowIconifyCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a> callback);</div>
-<div class="line"><a name="l03784"></a><span class="lineno"> 3784</span>&#160; </div>
-<div class="line"><a name="l03813"></a><span class="lineno"> 3813</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a> <a class="code" href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a> callback);</div>
-<div class="line"><a name="l03814"></a><span class="lineno"> 3814</span>&#160; </div>
-<div class="line"><a name="l03843"></a><span class="lineno"> 3843</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a> <a class="code" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a> callback);</div>
-<div class="line"><a name="l03844"></a><span class="lineno"> 3844</span>&#160; </div>
-<div class="line"><a name="l03874"></a><span class="lineno"> 3874</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a> <a class="code" href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a> callback);</div>
-<div class="line"><a name="l03875"></a><span class="lineno"> 3875</span>&#160; </div>
-<div class="line"><a name="l03912"></a><span class="lineno"> 3912</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l03913"></a><span class="lineno"> 3913</span>&#160; </div>
-<div class="line"><a name="l03957"></a><span class="lineno"> 3957</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l03958"></a><span class="lineno"> 3958</span>&#160; </div>
-<div class="line"><a name="l04006"></a><span class="lineno"> 4006</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a>(<span class="keywordtype">double</span> timeout);</div>
-<div class="line"><a name="l04007"></a><span class="lineno"> 4007</span>&#160; </div>
-<div class="line"><a name="l04026"></a><span class="lineno"> 4026</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l04027"></a><span class="lineno"> 4027</span>&#160; </div>
-<div class="line"><a name="l04051"></a><span class="lineno"> 4051</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4">glfwGetInputMode</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> mode);</div>
-<div class="line"><a name="l04052"></a><span class="lineno"> 4052</span>&#160; </div>
-<div class="line"><a name="l04113"></a><span class="lineno"> 4113</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> mode, <span class="keywordtype">int</span> value);</div>
-<div class="line"><a name="l04114"></a><span class="lineno"> 4114</span>&#160; </div>
-<div class="line"><a name="l04142"></a><span class="lineno"> 4142</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l04143"></a><span class="lineno"> 4143</span>&#160; </div>
-<div class="line"><a name="l04210"></a><span class="lineno"> 4210</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode);</div>
-<div class="line"><a name="l04211"></a><span class="lineno"> 4211</span>&#160; </div>
-<div class="line"><a name="l04234"></a><span class="lineno"> 4234</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>(<span class="keywordtype">int</span> key);</div>
-<div class="line"><a name="l04235"></a><span class="lineno"> 4235</span>&#160; </div>
-<div class="line"><a name="l04274"></a><span class="lineno"> 4274</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> key);</div>
-<div class="line"><a name="l04275"></a><span class="lineno"> 4275</span>&#160; </div>
-<div class="line"><a name="l04303"></a><span class="lineno"> 4303</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> button);</div>
-<div class="line"><a name="l04304"></a><span class="lineno"> 4304</span>&#160; </div>
-<div class="line"><a name="l04341"></a><span class="lineno"> 4341</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span>* xpos, <span class="keywordtype">double</span>* ypos);</div>
-<div class="line"><a name="l04342"></a><span class="lineno"> 4342</span>&#160; </div>
-<div class="line"><a name="l04381"></a><span class="lineno"> 4381</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xpos, <span class="keywordtype">double</span> ypos);</div>
-<div class="line"><a name="l04382"></a><span class="lineno"> 4382</span>&#160; </div>
-<div class="line"><a name="l04419"></a><span class="lineno"> 4419</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* <a class="code" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a>(<span class="keyword">const</span> <a class="code" href="structGLFWimage.html">GLFWimage</a>* image, <span class="keywordtype">int</span> xhot, <span class="keywordtype">int</span> yhot);</div>
-<div class="line"><a name="l04420"></a><span class="lineno"> 4420</span>&#160; </div>
-<div class="line"><a name="l04442"></a><span class="lineno"> 4442</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* <a class="code" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a>(<span class="keywordtype">int</span> shape);</div>
-<div class="line"><a name="l04443"></a><span class="lineno"> 4443</span>&#160; </div>
-<div class="line"><a name="l04469"></a><span class="lineno"> 4469</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>(<a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor);</div>
-<div class="line"><a name="l04470"></a><span class="lineno"> 4470</span>&#160; </div>
-<div class="line"><a name="l04496"></a><span class="lineno"> 4496</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor);</div>
-<div class="line"><a name="l04497"></a><span class="lineno"> 4497</span>&#160; </div>
-<div class="line"><a name="l04546"></a><span class="lineno"> 4546</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a> <a class="code" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a> callback);</div>
-<div class="line"><a name="l04547"></a><span class="lineno"> 4547</span>&#160; </div>
-<div class="line"><a name="l04589"></a><span class="lineno"> 4589</span>&#160;GLFWAPI <a class="code" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a> <a class="code" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a> callback);</div>
-<div class="line"><a name="l04590"></a><span class="lineno"> 4590</span>&#160; </div>
-<div class="line"><a name="l04631"></a><span class="lineno"> 4631</span>&#160;GLFWAPI <a class="code" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a> <a class="code" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a> callback);</div>
-<div class="line"><a name="l04632"></a><span class="lineno"> 4632</span>&#160; </div>
-<div class="line"><a name="l04668"></a><span class="lineno"> 4668</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a> <a class="code" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a> callback);</div>
-<div class="line"><a name="l04669"></a><span class="lineno"> 4669</span>&#160; </div>
-<div class="line"><a name="l04700"></a><span class="lineno"> 4700</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a> <a class="code" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a> callback);</div>
-<div class="line"><a name="l04701"></a><span class="lineno"> 4701</span>&#160; </div>
-<div class="line"><a name="l04731"></a><span class="lineno"> 4731</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a> <a class="code" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a> callback);</div>
-<div class="line"><a name="l04732"></a><span class="lineno"> 4732</span>&#160; </div>
-<div class="line"><a name="l04765"></a><span class="lineno"> 4765</span>&#160;GLFWAPI <a class="code" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a> <a class="code" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a> callback);</div>
-<div class="line"><a name="l04766"></a><span class="lineno"> 4766</span>&#160; </div>
-<div class="line"><a name="l04802"></a><span class="lineno"> 4802</span>&#160;GLFWAPI <a class="code" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a> <a class="code" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code" href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a> callback);</div>
-<div class="line"><a name="l04803"></a><span class="lineno"> 4803</span>&#160; </div>
-<div class="line"><a name="l04826"></a><span class="lineno"> 4826</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l04827"></a><span class="lineno"> 4827</span>&#160; </div>
-<div class="line"><a name="l04859"></a><span class="lineno"> 4859</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
-<div class="line"><a name="l04860"></a><span class="lineno"> 4860</span>&#160; </div>
-<div class="line"><a name="l04900"></a><span class="lineno"> 4900</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
-<div class="line"><a name="l04901"></a><span class="lineno"> 4901</span>&#160; </div>
-<div class="line"><a name="l04957"></a><span class="lineno"> 4957</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
-<div class="line"><a name="l04958"></a><span class="lineno"> 4958</span>&#160; </div>
-<div class="line"><a name="l04988"></a><span class="lineno"> 4988</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l04989"></a><span class="lineno"> 4989</span>&#160; </div>
-<div class="line"><a name="l05029"></a><span class="lineno"> 5029</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#gae168c2c0b8cf2a1cb67c6b3c00bdd543">glfwGetJoystickGUID</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l05030"></a><span class="lineno"> 5030</span>&#160; </div>
-<div class="line"><a name="l05055"></a><span class="lineno"> 5055</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">void</span>* pointer);</div>
-<div class="line"><a name="l05056"></a><span class="lineno"> 5056</span>&#160; </div>
-<div class="line"><a name="l05079"></a><span class="lineno"> 5079</span>&#160;GLFWAPI <span class="keywordtype">void</span>* <a class="code" href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">glfwGetJoystickUserPointer</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l05080"></a><span class="lineno"> 5080</span>&#160; </div>
-<div class="line"><a name="l05107"></a><span class="lineno"> 5107</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l05108"></a><span class="lineno"> 5108</span>&#160; </div>
-<div class="line"><a name="l05143"></a><span class="lineno"> 5143</span>&#160;GLFWAPI <a class="code" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a> <a class="code" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a>(<a class="code" href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a> callback);</div>
-<div class="line"><a name="l05144"></a><span class="lineno"> 5144</span>&#160; </div>
-<div class="line"><a name="l05177"></a><span class="lineno"> 5177</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
-<div class="line"><a name="l05178"></a><span class="lineno"> 5178</span>&#160; </div>
-<div class="line"><a name="l05207"></a><span class="lineno"> 5207</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a>(<span class="keywordtype">int</span> jid);</div>
-<div class="line"><a name="l05208"></a><span class="lineno"> 5208</span>&#160; </div>
-<div class="line"><a name="l05245"></a><span class="lineno"> 5245</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>(<span class="keywordtype">int</span> jid, <a class="code" href="structGLFWgamepadstate.html">GLFWgamepadstate</a>* state);</div>
-<div class="line"><a name="l05246"></a><span class="lineno"> 5246</span>&#160; </div>
-<div class="line"><a name="l05270"></a><span class="lineno"> 5270</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
-<div class="line"><a name="l05271"></a><span class="lineno"> 5271</span>&#160; </div>
-<div class="line"><a name="l05300"></a><span class="lineno"> 5300</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l05301"></a><span class="lineno"> 5301</span>&#160; </div>
-<div class="line"><a name="l05330"></a><span class="lineno"> 5330</span>&#160;GLFWAPI <span class="keywordtype">double</span> <a class="code" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l05331"></a><span class="lineno"> 5331</span>&#160; </div>
-<div class="line"><a name="l05360"></a><span class="lineno"> 5360</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>(<span class="keywordtype">double</span> time);</div>
-<div class="line"><a name="l05361"></a><span class="lineno"> 5361</span>&#160; </div>
-<div class="line"><a name="l05382"></a><span class="lineno"> 5382</span>&#160;GLFWAPI uint64_t <a class="code" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l05383"></a><span class="lineno"> 5383</span>&#160; </div>
-<div class="line"><a name="l05402"></a><span class="lineno"> 5402</span>&#160;GLFWAPI uint64_t <a class="code" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l05403"></a><span class="lineno"> 5403</span>&#160; </div>
-<div class="line"><a name="l05440"></a><span class="lineno"> 5440</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l05441"></a><span class="lineno"> 5441</span>&#160; </div>
-<div class="line"><a name="l05461"></a><span class="lineno"> 5461</span>&#160;GLFWAPI <a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* <a class="code" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l05462"></a><span class="lineno"> 5462</span>&#160; </div>
-<div class="line"><a name="l05495"></a><span class="lineno"> 5495</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l05496"></a><span class="lineno"> 5496</span>&#160; </div>
-<div class="line"><a name="l05541"></a><span class="lineno"> 5541</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a>(<span class="keywordtype">int</span> interval);</div>
-<div class="line"><a name="l05542"></a><span class="lineno"> 5542</span>&#160; </div>
-<div class="line"><a name="l05579"></a><span class="lineno"> 5579</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* extension);</div>
-<div class="line"><a name="l05580"></a><span class="lineno"> 5580</span>&#160; </div>
-<div class="line"><a name="l05621"></a><span class="lineno"> 5621</span>&#160;GLFWAPI <a class="code" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a> <a class="code" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* procname);</div>
-<div class="line"><a name="l05622"></a><span class="lineno"> 5622</span>&#160; </div>
-<div class="line"><a name="l05649"></a><span class="lineno"> 5649</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l05650"></a><span class="lineno"> 5650</span>&#160; </div>
-<div class="line"><a name="l05697"></a><span class="lineno"> 5697</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a>(uint32_t* count);</div>
-<div class="line"><a name="l05698"></a><span class="lineno"> 5698</span>&#160; </div>
-<div class="line"><a name="l05699"></a><span class="lineno"> 5699</span>&#160;<span class="preprocessor">#if defined(VK_VERSION_1_0)</span></div>
-<div class="line"><a name="l05700"></a><span class="lineno"> 5700</span>&#160; </div>
-<div class="line"><a name="l05740"></a><span class="lineno"> 5740</span>&#160;GLFWAPI <a class="code" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a> <a class="code" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a>(VkInstance instance, <span class="keyword">const</span> <span class="keywordtype">char</span>* procname);</div>
-<div class="line"><a name="l05741"></a><span class="lineno"> 5741</span>&#160; </div>
-<div class="line"><a name="l05777"></a><span class="lineno"> 5777</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a>(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);</div>
-<div class="line"><a name="l05778"></a><span class="lineno"> 5778</span>&#160; </div>
-<div class="line"><a name="l05838"></a><span class="lineno"> 5838</span>&#160;GLFWAPI VkResult <a class="code" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965">glfwCreateWindowSurface</a>(VkInstance instance, <a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);</div>
-<div class="line"><a name="l05839"></a><span class="lineno"> 5839</span>&#160; </div>
-<div class="line"><a name="l05840"></a><span class="lineno"> 5840</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/*VK_VERSION_1_0*/</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l05841"></a><span class="lineno"> 5841</span>&#160; </div>
-<div class="line"><a name="l05842"></a><span class="lineno"> 5842</span>&#160; </div>
-<div class="line"><a name="l05843"></a><span class="lineno"> 5843</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l05844"></a><span class="lineno"> 5844</span>&#160;<span class="comment"> * Global definition cleanup</span></div>
-<div class="line"><a name="l05845"></a><span class="lineno"> 5845</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l05846"></a><span class="lineno"> 5846</span>&#160; </div>
-<div class="line"><a name="l05847"></a><span class="lineno"> 5847</span>&#160;<span class="comment">/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */</span></div>
-<div class="line"><a name="l05848"></a><span class="lineno"> 5848</span>&#160; </div>
-<div class="line"><a name="l05849"></a><span class="lineno"> 5849</span>&#160;<span class="preprocessor">#ifdef GLFW_WINGDIAPI_DEFINED</span></div>
-<div class="line"><a name="l05850"></a><span class="lineno"> 5850</span>&#160;<span class="preprocessor"> #undef WINGDIAPI</span></div>
-<div class="line"><a name="l05851"></a><span class="lineno"> 5851</span>&#160;<span class="preprocessor"> #undef GLFW_WINGDIAPI_DEFINED</span></div>
-<div class="line"><a name="l05852"></a><span class="lineno"> 5852</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05853"></a><span class="lineno"> 5853</span>&#160; </div>
-<div class="line"><a name="l05854"></a><span class="lineno"> 5854</span>&#160;<span class="preprocessor">#ifdef GLFW_CALLBACK_DEFINED</span></div>
-<div class="line"><a name="l05855"></a><span class="lineno"> 5855</span>&#160;<span class="preprocessor"> #undef CALLBACK</span></div>
-<div class="line"><a name="l05856"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aa97755eb47e4bf2727ad45d610e18206"> 5856</a></span>&#160;<span class="preprocessor"> #undef GLFW_CALLBACK_DEFINED</span></div>
-<div class="line"><a name="l05857"></a><span class="lineno"> 5857</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05858"></a><span class="lineno"> 5858</span>&#160; </div>
-<div class="line"><a name="l05859"></a><span class="lineno"> 5859</span>&#160;<span class="comment">/* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally</span></div>
-<div class="line"><a name="l05860"></a><span class="lineno"> 5860</span>&#160;<span class="comment"> * defined by some gl.h variants (OpenBSD) so define it after if needed.</span></div>
-<div class="line"><a name="l05861"></a><span class="lineno"> 5861</span>&#160;<span class="comment"> */</span></div>
-<div class="line"><a name="l05862"></a><span class="lineno"> 5862</span>&#160;<span class="preprocessor">#ifndef GLAPIENTRY</span></div>
-<div class="line"><a name="l05863"></a><span class="lineno"> 5863</span>&#160;<span class="preprocessor"> #define GLAPIENTRY APIENTRY</span></div>
-<div class="line"><a name="l05864"></a><span class="lineno"> 5864</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05865"></a><span class="lineno"> 5865</span>&#160; </div>
-<div class="line"><a name="l05866"></a><span class="lineno"> 5866</span>&#160;<span class="comment">/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */</span></div>
-<div class="line"><a name="l05867"></a><span class="lineno"> 5867</span>&#160; </div>
-<div class="line"><a name="l05868"></a><span class="lineno"> 5868</span>&#160; </div>
-<div class="line"><a name="l05869"></a><span class="lineno"> 5869</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l05870"></a><span class="lineno"> 5870</span>&#160;}</div>
-<div class="line"><a name="l05871"></a><span class="lineno"> 5871</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l05872"></a><span class="lineno"> 5872</span>&#160; </div>
-<div class="line"><a name="l05873"></a><span class="lineno"> 5873</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* _glfw3_h_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l05874"></a><span class="lineno"> 5874</span>&#160; </div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="agroup__input_html_ga06290acb7ed23895bf26b8e981827ebd"><div class="ttname"><a href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">glfwGetJoystickUserPointer</a></div><div class="ttdeci">void * glfwGetJoystickUserPointer(int jid)</div><div class="ttdoc">Returns the user pointer of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_gadccddea8bce6113fa459de379ddaf051"><div class="ttname"><a href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a></div><div class="ttdeci">int glfwGetGamepadState(int jid, GLFWgamepadstate *state)</div><div class="ttdoc">Retrieves the state of the specified joystick remapped as a gamepad.</div></div>
+<a href="glfw3_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * GLFW 3.3 - www.glfw.org</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> * A library for OpenGL, window and input</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> *------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> * Copyright (c) 2002-2006 Marcus Geelnard</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment"> * Copyright (c) 2006-2019 Camilla Löwy &lt;[email protected]&gt;</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"> * This software is provided &#39;as-is&#39;, without any express or implied</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment"> * warranty. In no event will the authors be held liable for any damages</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment"> * arising from the use of this software.</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="comment"> * including commercial applications, and to alter it and redistribute it</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="comment"> * freely, subject to the following restrictions:</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment"> * 1. The origin of this software must not be misrepresented; you must not</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="comment"> *    claim that you wrote the original software. If you use this software</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="comment"> *    in a product, an acknowledgment in the product documentation would</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="comment"> *    be appreciated but is not required.</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="comment"> * 2. Altered source versions must be plainly marked as such, and must not</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="comment"> *    be misrepresented as being the original software.</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="comment"> * 3. This notice may not be removed or altered from any source</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="comment"> *    distribution.</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#ifndef _glfw3_h_</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#define _glfw3_h_</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="comment"> * Doxygen documentation</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00089" name="l00089"></a><span class="lineno">   89</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="comment"> * Compiler- and platform-specific preprocessor work</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span> </div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span><span class="comment">/* If we are we on Windows, we want a single define for it.</span></div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span><span class="preprocessor">#if !defined(_WIN32) &amp;&amp; (defined(__WIN32__) || defined(WIN32) || defined(__MINGW32__))</span></div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span><span class="preprocessor"> #define _WIN32</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span><span class="preprocessor">#endif </span><span class="comment">/* _WIN32 */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span> </div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span><span class="comment">/* Include because most Windows GLU headers need wchar_t and</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="comment"> * the macOS OpenGL header blocks the definition of ptrdiff_t by glext.h.</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span><span class="comment"> * Include it unconditionally to avoid surprising side-effects.</span></div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span> </div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span><span class="comment">/* Include because it is needed by Vulkan and related functions.</span></div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span><span class="comment"> * Include it unconditionally to avoid surprising side-effects.</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span> </div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span><span class="preprocessor">#if defined(GLFW_INCLUDE_VULKAN)</span></div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span><span class="preprocessor">  #include &lt;vulkan/vulkan.h&gt;</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span><span class="preprocessor">#endif </span><span class="comment">/* Vulkan header */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span> </div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span><span class="comment">/* The Vulkan header may have indirectly included windows.h (because of</span></div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span><span class="comment"> * VK_USE_PLATFORM_WIN32_KHR) so we offer our replacement symbols after it.</span></div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span> </div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span><span class="comment">/* It is customary to use APIENTRY for OpenGL function pointer declarations on</span></div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span><span class="comment"> * all platforms.  Additionally, the Windows OpenGL header needs APIENTRY.</span></div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span><span class="preprocessor">#if !defined(APIENTRY)</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span><span class="preprocessor"> #if defined(_WIN32)</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span><span class="preprocessor">  #define APIENTRY __stdcall</span></div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span><span class="preprocessor"> #else</span></div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span><span class="preprocessor">  #define APIENTRY</span></div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a8a8538c5500308b4211844f2fb26c7b9">  127</a></span><span class="preprocessor"> #define GLFW_APIENTRY_DEFINED</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span><span class="preprocessor">#endif </span><span class="comment">/* APIENTRY */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span> </div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span><span class="comment">/* Some Windows OpenGL headers need this.</span></div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span><span class="preprocessor">#if !defined(WINGDIAPI) &amp;&amp; defined(_WIN32)</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span><span class="preprocessor"> #define WINGDIAPI __declspec(dllimport)</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span><span class="preprocessor"> #define GLFW_WINGDIAPI_DEFINED</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span><span class="preprocessor">#endif </span><span class="comment">/* WINGDIAPI */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span> </div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span><span class="comment">/* Some Windows GLU headers need this.</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span><span class="preprocessor">#if !defined(CALLBACK) &amp;&amp; defined(_WIN32)</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span><span class="preprocessor"> #define CALLBACK __stdcall</span></div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span><span class="preprocessor"> #define GLFW_CALLBACK_DEFINED</span></div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span><span class="preprocessor">#endif </span><span class="comment">/* CALLBACK */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span> </div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span><span class="comment">/* Include the chosen OpenGL or OpenGL ES headers.</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span><span class="preprocessor">#if defined(GLFW_INCLUDE_ES1)</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span> </div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span><span class="preprocessor"> #include &lt;GLES/gl.h&gt;</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span><span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span><span class="preprocessor">  #include &lt;GLES/glext.h&gt;</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span> </div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_ES2)</span></div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span><span class="preprocessor"> #include &lt;GLES2/gl2.h&gt;</span></div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span><span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span><span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span> </div>
+<div class="line"><a id="l00160" name="l00160"></a><span class="lineno">  160</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_ES3)</span></div>
+<div class="line"><a id="l00161" name="l00161"></a><span class="lineno">  161</span> </div>
+<div class="line"><a id="l00162" name="l00162"></a><span class="lineno">  162</span><span class="preprocessor"> #include &lt;GLES3/gl3.h&gt;</span></div>
+<div class="line"><a id="l00163" name="l00163"></a><span class="lineno">  163</span><span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00164" name="l00164"></a><span class="lineno">  164</span><span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
+<div class="line"><a id="l00165" name="l00165"></a><span class="lineno">  165</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00166" name="l00166"></a><span class="lineno">  166</span> </div>
+<div class="line"><a id="l00167" name="l00167"></a><span class="lineno">  167</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_ES31)</span></div>
+<div class="line"><a id="l00168" name="l00168"></a><span class="lineno">  168</span> </div>
+<div class="line"><a id="l00169" name="l00169"></a><span class="lineno">  169</span><span class="preprocessor"> #include &lt;GLES3/gl31.h&gt;</span></div>
+<div class="line"><a id="l00170" name="l00170"></a><span class="lineno">  170</span><span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00171" name="l00171"></a><span class="lineno">  171</span><span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
+<div class="line"><a id="l00172" name="l00172"></a><span class="lineno">  172</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00173" name="l00173"></a><span class="lineno">  173</span> </div>
+<div class="line"><a id="l00174" name="l00174"></a><span class="lineno">  174</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_ES32)</span></div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno">  175</span> </div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span><span class="preprocessor"> #include &lt;GLES3/gl32.h&gt;</span></div>
+<div class="line"><a id="l00177" name="l00177"></a><span class="lineno">  177</span><span class="preprocessor"> #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00178" name="l00178"></a><span class="lineno">  178</span><span class="preprocessor">  #include &lt;GLES2/gl2ext.h&gt;</span></div>
+<div class="line"><a id="l00179" name="l00179"></a><span class="lineno">  179</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00180" name="l00180"></a><span class="lineno">  180</span> </div>
+<div class="line"><a id="l00181" name="l00181"></a><span class="lineno">  181</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_GLCOREARB)</span></div>
+<div class="line"><a id="l00182" name="l00182"></a><span class="lineno">  182</span> </div>
+<div class="line"><a id="l00183" name="l00183"></a><span class="lineno">  183</span><span class="preprocessor"> #if defined(__APPLE__)</span></div>
+<div class="line"><a id="l00184" name="l00184"></a><span class="lineno">  184</span> </div>
+<div class="line"><a id="l00185" name="l00185"></a><span class="lineno">  185</span><span class="preprocessor">  #include &lt;OpenGL/gl3.h&gt;</span></div>
+<div class="line"><a id="l00186" name="l00186"></a><span class="lineno">  186</span><span class="preprocessor">  #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00187" name="l00187"></a><span class="lineno">  187</span><span class="preprocessor">   #include &lt;OpenGL/gl3ext.h&gt;</span></div>
+<div class="line"><a id="l00188" name="l00188"></a><span class="lineno">  188</span><span class="preprocessor">  #endif </span><span class="comment">/*GLFW_INCLUDE_GLEXT*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00189" name="l00189"></a><span class="lineno">  189</span> </div>
+<div class="line"><a id="l00190" name="l00190"></a><span class="lineno">  190</span><span class="preprocessor"> #else </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00191" name="l00191"></a><span class="lineno">  191</span> </div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno">  192</span><span class="preprocessor">  #include &lt;GL/glcorearb.h&gt;</span></div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span><span class="preprocessor">  #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00194" name="l00194"></a><span class="lineno">  194</span><span class="preprocessor">   #include &lt;GL/glext.h&gt;</span></div>
+<div class="line"><a id="l00195" name="l00195"></a><span class="lineno">  195</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00196" name="l00196"></a><span class="lineno">  196</span> </div>
+<div class="line"><a id="l00197" name="l00197"></a><span class="lineno">  197</span><span class="preprocessor"> #endif </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00198" name="l00198"></a><span class="lineno">  198</span> </div>
+<div class="line"><a id="l00199" name="l00199"></a><span class="lineno">  199</span><span class="preprocessor">#elif defined(GLFW_INCLUDE_GLU)</span></div>
+<div class="line"><a id="l00200" name="l00200"></a><span class="lineno">  200</span> </div>
+<div class="line"><a id="l00201" name="l00201"></a><span class="lineno">  201</span><span class="preprocessor"> #if defined(__APPLE__)</span></div>
+<div class="line"><a id="l00202" name="l00202"></a><span class="lineno">  202</span> </div>
+<div class="line"><a id="l00203" name="l00203"></a><span class="lineno">  203</span><span class="preprocessor">  #if defined(GLFW_INCLUDE_GLU)</span></div>
+<div class="line"><a id="l00204" name="l00204"></a><span class="lineno">  204</span><span class="preprocessor">   #include &lt;OpenGL/glu.h&gt;</span></div>
+<div class="line"><a id="l00205" name="l00205"></a><span class="lineno">  205</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00206" name="l00206"></a><span class="lineno">  206</span> </div>
+<div class="line"><a id="l00207" name="l00207"></a><span class="lineno">  207</span><span class="preprocessor"> #else </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00208" name="l00208"></a><span class="lineno">  208</span> </div>
+<div class="line"><a id="l00209" name="l00209"></a><span class="lineno">  209</span><span class="preprocessor">  #if defined(GLFW_INCLUDE_GLU)</span></div>
+<div class="line"><a id="l00210" name="l00210"></a><span class="lineno">  210</span><span class="preprocessor">   #include &lt;GL/glu.h&gt;</span></div>
+<div class="line"><a id="l00211" name="l00211"></a><span class="lineno">  211</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00212" name="l00212"></a><span class="lineno">  212</span> </div>
+<div class="line"><a id="l00213" name="l00213"></a><span class="lineno">  213</span><span class="preprocessor"> #endif </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00214" name="l00214"></a><span class="lineno">  214</span> </div>
+<div class="line"><a id="l00215" name="l00215"></a><span class="lineno">  215</span><span class="preprocessor">#elif !defined(GLFW_INCLUDE_NONE) &amp;&amp; \</span></div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno">  216</span><span class="preprocessor">      !defined(__gl_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span><span class="preprocessor">      !defined(__gles1_gl_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span><span class="preprocessor">      !defined(__gles2_gl2_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span><span class="preprocessor">      !defined(__gles2_gl3_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00220" name="l00220"></a><span class="lineno">  220</span><span class="preprocessor">      !defined(__gles2_gl31_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00221" name="l00221"></a><span class="lineno">  221</span><span class="preprocessor">      !defined(__gles2_gl32_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00222" name="l00222"></a><span class="lineno">  222</span><span class="preprocessor">      !defined(__gl_glcorearb_h_) &amp;&amp; \</span></div>
+<div class="line"><a id="l00223" name="l00223"></a><span class="lineno">  223</span><span class="preprocessor">      !defined(__gl2_h_) </span><span class="comment">/*legacy*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00224" name="l00224"></a><span class="lineno">  224</span><span class="preprocessor">      !defined(__gl3_h_) </span><span class="comment">/*legacy*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00225" name="l00225"></a><span class="lineno">  225</span><span class="preprocessor">      !defined(__gl31_h_) </span><span class="comment">/*legacy*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00226" name="l00226"></a><span class="lineno">  226</span><span class="preprocessor">      !defined(__gl32_h_) </span><span class="comment">/*legacy*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00227" name="l00227"></a><span class="lineno">  227</span><span class="preprocessor">      !defined(__glcorearb_h_) </span><span class="comment">/*legacy*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00228" name="l00228"></a><span class="lineno">  228</span><span class="preprocessor">      !defined(__GL_H__) </span><span class="comment">/*non-standard*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00229" name="l00229"></a><span class="lineno">  229</span><span class="preprocessor">      !defined(__gltypes_h_) </span><span class="comment">/*non-standard*/</span><span class="preprocessor"> &amp;&amp; \</span></div>
+<div class="line"><a id="l00230" name="l00230"></a><span class="lineno">  230</span><span class="preprocessor">      !defined(__glee_h_) </span><span class="comment">/*non-standard*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00231" name="l00231"></a><span class="lineno">  231</span> </div>
+<div class="line"><a id="l00232" name="l00232"></a><span class="lineno">  232</span><span class="preprocessor"> #if defined(__APPLE__)</span></div>
+<div class="line"><a id="l00233" name="l00233"></a><span class="lineno">  233</span> </div>
+<div class="line"><a id="l00234" name="l00234"></a><span class="lineno">  234</span><span class="preprocessor">  #if !defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00235" name="l00235"></a><span class="lineno">  235</span><span class="preprocessor">   #define GL_GLEXT_LEGACY</span></div>
+<div class="line"><a id="l00236" name="l00236"></a><span class="lineno">  236</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00237" name="l00237"></a><span class="lineno">  237</span><span class="preprocessor">  #include &lt;OpenGL/gl.h&gt;</span></div>
+<div class="line"><a id="l00238" name="l00238"></a><span class="lineno">  238</span> </div>
+<div class="line"><a id="l00239" name="l00239"></a><span class="lineno">  239</span><span class="preprocessor"> #else </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00240" name="l00240"></a><span class="lineno">  240</span> </div>
+<div class="line"><a id="l00241" name="l00241"></a><span class="lineno">  241</span><span class="preprocessor">  #include &lt;GL/gl.h&gt;</span></div>
+<div class="line"><a id="l00242" name="l00242"></a><span class="lineno">  242</span><span class="preprocessor">  #if defined(GLFW_INCLUDE_GLEXT)</span></div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno">  243</span><span class="preprocessor">   #include &lt;GL/glext.h&gt;</span></div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span><span class="preprocessor"> #endif </span><span class="comment">/*__APPLE__*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00247" name="l00247"></a><span class="lineno">  247</span> </div>
+<div class="line"><a id="l00248" name="l00248"></a><span class="lineno">  248</span><span class="preprocessor">#endif </span><span class="comment">/* OpenGL and OpenGL ES headers */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00249" name="l00249"></a><span class="lineno">  249</span> </div>
+<div class="line"><a id="l00250" name="l00250"></a><span class="lineno">  250</span><span class="preprocessor">#if defined(GLFW_DLL) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
+<div class="line"><a id="l00251" name="l00251"></a><span class="lineno">  251</span> <span class="comment">/* GLFW_DLL must be defined by applications that are linking against the DLL</span></div>
+<div class="line"><a id="l00252" name="l00252"></a><span class="lineno">  252</span><span class="comment">  * version of the GLFW library.  _GLFW_BUILD_DLL is defined by the GLFW</span></div>
+<div class="line"><a id="l00253" name="l00253"></a><span class="lineno">  253</span><span class="comment">  * configuration header when compiling the DLL version of the library.</span></div>
+<div class="line"><a id="l00254" name="l00254"></a><span class="lineno">  254</span><span class="comment">  */</span></div>
+<div class="line"><a id="l00255" name="l00255"></a><span class="lineno">  255</span><span class="preprocessor"> #error &quot;You must not have both GLFW_DLL and _GLFW_BUILD_DLL defined&quot;</span></div>
+<div class="line"><a id="l00256" name="l00256"></a><span class="lineno">  256</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00257" name="l00257"></a><span class="lineno">  257</span> </div>
+<div class="line"><a id="l00258" name="l00258"></a><span class="lineno">  258</span><span class="comment">/* GLFWAPI is used to declare public API functions for export</span></div>
+<div class="line"><a id="l00259" name="l00259"></a><span class="lineno">  259</span><span class="comment"> * from the DLL / shared library / dynamic library.</span></div>
+<div class="line"><a id="l00260" name="l00260"></a><span class="lineno">  260</span><span class="comment"> */</span></div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno">  261</span><span class="preprocessor">#if defined(_WIN32) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span> <span class="comment">/* We are building GLFW as a Win32 DLL */</span></div>
+<div class="line"><a id="l00263" name="l00263"></a><span class="lineno">  263</span><span class="preprocessor"> #define GLFWAPI __declspec(dllexport)</span></div>
+<div class="line"><a id="l00264" name="l00264"></a><span class="lineno">  264</span><span class="preprocessor">#elif defined(_WIN32) &amp;&amp; defined(GLFW_DLL)</span></div>
+<div class="line"><a id="l00265" name="l00265"></a><span class="lineno">  265</span> <span class="comment">/* We are calling a GLFW Win32 DLL */</span></div>
+<div class="line"><a id="l00266" name="l00266"></a><span class="lineno">  266</span><span class="preprocessor"> #define GLFWAPI __declspec(dllimport)</span></div>
+<div class="line"><a id="l00267" name="l00267"></a><span class="lineno">  267</span><span class="preprocessor">#elif defined(__GNUC__) &amp;&amp; defined(_GLFW_BUILD_DLL)</span></div>
+<div class="line"><a id="l00268" name="l00268"></a><span class="lineno">  268</span> <span class="comment">/* We are building GLFW as a Unix shared library */</span></div>
+<div class="line"><a id="l00269" name="l00269"></a><span class="lineno">  269</span><span class="preprocessor"> #define GLFWAPI __attribute__((visibility(&quot;default&quot;</span>)))</div>
+<div class="line"><a id="l00270" name="l00270"></a><span class="lineno">  270</span><span class="preprocessor">#else</span></div>
+<div class="line"><a id="l00271" name="l00271"></a><span class="lineno">  271</span><span class="preprocessor"> #define GLFWAPI</span></div>
+<div class="line"><a id="l00272" name="l00272"></a><span class="lineno">  272</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00273" name="l00273"></a><span class="lineno">  273</span> </div>
+<div class="line"><a id="l00274" name="l00274"></a><span class="lineno">  274</span> </div>
+<div class="line"><a id="l00275" name="l00275"></a><span class="lineno">  275</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00276" name="l00276"></a><span class="lineno">  276</span><span class="comment"> * GLFW API tokens</span></div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno">  277</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span> </div>
+<div class="line"><a id="l00287" name="l00287"></a><span class="lineno"><a class="line" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">  287</a></span><span class="preprocessor">#define GLFW_VERSION_MAJOR          3</span></div>
+<div class="line"><a id="l00294" name="l00294"></a><span class="lineno"><a class="line" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">  294</a></span><span class="preprocessor">#define GLFW_VERSION_MINOR          3</span></div>
+<div class="line"><a id="l00301" name="l00301"></a><span class="lineno"><a class="line" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">  301</a></span><span class="preprocessor">#define GLFW_VERSION_REVISION       8</span></div>
+<div class="line"><a id="l00312" name="l00312"></a><span class="lineno"><a class="line" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">  312</a></span><span class="preprocessor">#define GLFW_TRUE                   1</span></div>
+<div class="line"><a id="l00321" name="l00321"></a><span class="lineno"><a class="line" href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">  321</a></span><span class="preprocessor">#define GLFW_FALSE                  0</span></div>
+<div class="line"><a id="l00322" name="l00322"></a><span class="lineno">  322</span> </div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno"><a class="line" href="group__input.html#gada11d965c4da13090ad336e030e4d11f">  331</a></span><span class="preprocessor">#define GLFW_RELEASE                0</span></div>
+<div class="line"><a id="l00338" name="l00338"></a><span class="lineno"><a class="line" href="group__input.html#ga2485743d0b59df3791c45951c4195265">  338</a></span><span class="preprocessor">#define GLFW_PRESS                  1</span></div>
+<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"><a class="line" href="group__input.html#gac96fd3b9fc66c6f0eebaf6532595338f">  345</a></span><span class="preprocessor">#define GLFW_REPEAT                 2</span></div>
+<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="group__hat__state.html#gae2c0bcb7aec609e4736437554f6638fd">  355</a></span><span class="preprocessor">#define GLFW_HAT_CENTERED           0</span></div>
+<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga8c9720c76cd1b912738159ed74c85b36">  356</a></span><span class="preprocessor">#define GLFW_HAT_UP                 1</span></div>
+<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga252586e3bbde75f4b0e07ad3124867f5">  357</a></span><span class="preprocessor">#define GLFW_HAT_RIGHT              2</span></div>
+<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"><a class="line" href="group__hat__state.html#gad60d1fd0dc85c18f2642cbae96d3deff">  358</a></span><span class="preprocessor">#define GLFW_HAT_DOWN               4</span></div>
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="group__hat__state.html#gac775f4b3154fdf5db93eb432ba546dff">  359</a></span><span class="preprocessor">#define GLFW_HAT_LEFT               8</span></div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga94aea0ae241a8b902883536c592ee693">  360</a></span><span class="preprocessor">#define GLFW_HAT_RIGHT_UP           (GLFW_HAT_RIGHT | GLFW_HAT_UP)</span></div>
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="group__hat__state.html#gad7f0e4f52fd68d734863aaeadab3a3f5">  361</a></span><span class="preprocessor">#define GLFW_HAT_RIGHT_DOWN         (GLFW_HAT_RIGHT | GLFW_HAT_DOWN)</span></div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga638f0e20dc5de90de21a33564e8ce129">  362</a></span><span class="preprocessor">#define GLFW_HAT_LEFT_UP            (GLFW_HAT_LEFT  | GLFW_HAT_UP)</span></div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="group__hat__state.html#ga76c02baf1ea345fcbe3e8ff176a73e19">  363</a></span><span class="preprocessor">#define GLFW_HAT_LEFT_DOWN          (GLFW_HAT_LEFT  | GLFW_HAT_DOWN)</span></div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno">  390</span><span class="comment">/* The unknown key */</span></div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="group__keys.html#ga99aacc875b6b27a072552631e13775c7">  391</a></span><span class="preprocessor">#define GLFW_KEY_UNKNOWN            -1</span></div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno">  392</span> </div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno">  393</span><span class="comment">/* Printable keys */</span></div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"><a class="line" href="group__keys.html#gaddb2c23772b97fd7e26e8ee66f1ad014">  394</a></span><span class="preprocessor">#define GLFW_KEY_SPACE              32</span></div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"><a class="line" href="group__keys.html#ga6059b0b048ba6980b6107fffbd3b4b24">  395</a></span><span class="preprocessor">#define GLFW_KEY_APOSTROPHE         39  </span><span class="comment">/* &#39; */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"><a class="line" href="group__keys.html#gab3d5d72e59d3055f494627b0a524926c">  396</a></span><span class="preprocessor">#define GLFW_KEY_COMMA              44  </span><span class="comment">/* , */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"><a class="line" href="group__keys.html#gac556b360f7f6fca4b70ba0aecf313fd4">  397</a></span><span class="preprocessor">#define GLFW_KEY_MINUS              45  </span><span class="comment">/* - */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"><a class="line" href="group__keys.html#ga37e296b650eab419fc474ff69033d927">  398</a></span><span class="preprocessor">#define GLFW_KEY_PERIOD             46  </span><span class="comment">/* . */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="group__keys.html#gadf3d753b2d479148d711de34b83fd0db">  399</a></span><span class="preprocessor">#define GLFW_KEY_SLASH              47  </span><span class="comment">/* / */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="group__keys.html#ga50391730e9d7112ad4fd42d0bd1597c1">  400</a></span><span class="preprocessor">#define GLFW_KEY_0                  48</span></div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"><a class="line" href="group__keys.html#ga05e4cae9ddb8d40cf6d82c8f11f2502f">  401</a></span><span class="preprocessor">#define GLFW_KEY_1                  49</span></div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"><a class="line" href="group__keys.html#gadc8e66b3a4c4b5c39ad1305cf852863c">  402</a></span><span class="preprocessor">#define GLFW_KEY_2                  50</span></div>
+<div class="line"><a id="l00403" name="l00403"></a><span class="lineno"><a class="line" href="group__keys.html#ga812f0273fe1a981e1fa002ae73e92271">  403</a></span><span class="preprocessor">#define GLFW_KEY_3                  51</span></div>
+<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="group__keys.html#ga9e14b6975a9cc8f66cdd5cb3d3861356">  404</a></span><span class="preprocessor">#define GLFW_KEY_4                  52</span></div>
+<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"><a class="line" href="group__keys.html#ga4d74ddaa5d4c609993b4d4a15736c924">  405</a></span><span class="preprocessor">#define GLFW_KEY_5                  53</span></div>
+<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"><a class="line" href="group__keys.html#ga9ea4ab80c313a227b14d0a7c6f810b5d">  406</a></span><span class="preprocessor">#define GLFW_KEY_6                  54</span></div>
+<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"><a class="line" href="group__keys.html#gab79b1cfae7bd630cfc4604c1f263c666">  407</a></span><span class="preprocessor">#define GLFW_KEY_7                  55</span></div>
+<div class="line"><a id="l00408" name="l00408"></a><span class="lineno"><a class="line" href="group__keys.html#gadeaa109a0f9f5afc94fe4a108e686f6f">  408</a></span><span class="preprocessor">#define GLFW_KEY_8                  56</span></div>
+<div class="line"><a id="l00409" name="l00409"></a><span class="lineno"><a class="line" href="group__keys.html#ga2924cb5349ebbf97c8987f3521c44f39">  409</a></span><span class="preprocessor">#define GLFW_KEY_9                  57</span></div>
+<div class="line"><a id="l00410" name="l00410"></a><span class="lineno"><a class="line" href="group__keys.html#ga84233de9ee5bb3e8788a5aa07d80af7d">  410</a></span><span class="preprocessor">#define GLFW_KEY_SEMICOLON          59  </span><span class="comment">/* ; */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00411" name="l00411"></a><span class="lineno"><a class="line" href="group__keys.html#gae1a2de47240d6664423c204bdd91bd17">  411</a></span><span class="preprocessor">#define GLFW_KEY_EQUAL              61  </span><span class="comment">/* = */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"><a class="line" href="group__keys.html#ga03e842608e1ea323370889d33b8f70ff">  412</a></span><span class="preprocessor">#define GLFW_KEY_A                  65</span></div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="group__keys.html#ga8e3fb647ff3aca9e8dbf14fe66332941">  413</a></span><span class="preprocessor">#define GLFW_KEY_B                  66</span></div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"><a class="line" href="group__keys.html#ga00ccf3475d9ee2e679480d540d554669">  414</a></span><span class="preprocessor">#define GLFW_KEY_C                  67</span></div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"><a class="line" href="group__keys.html#ga011f7cdc9a654da984a2506479606933">  415</a></span><span class="preprocessor">#define GLFW_KEY_D                  68</span></div>
+<div class="line"><a id="l00416" name="l00416"></a><span class="lineno"><a class="line" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">  416</a></span><span class="preprocessor">#define GLFW_KEY_E                  69</span></div>
+<div class="line"><a id="l00417" name="l00417"></a><span class="lineno"><a class="line" href="group__keys.html#ga5df402e02aca08444240058fd9b42a55">  417</a></span><span class="preprocessor">#define GLFW_KEY_F                  70</span></div>
+<div class="line"><a id="l00418" name="l00418"></a><span class="lineno"><a class="line" href="group__keys.html#gae74ecddf7cc96104ab23989b1cdab536">  418</a></span><span class="preprocessor">#define GLFW_KEY_G                  71</span></div>
+<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="group__keys.html#gad4cc98fc8f35f015d9e2fb94bf136076">  419</a></span><span class="preprocessor">#define GLFW_KEY_H                  72</span></div>
+<div class="line"><a id="l00420" name="l00420"></a><span class="lineno"><a class="line" href="group__keys.html#ga274655c8bfe39742684ca393cf8ed093">  420</a></span><span class="preprocessor">#define GLFW_KEY_I                  73</span></div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="group__keys.html#ga65ff2aedb129a3149ad9cb3e4159a75f">  421</a></span><span class="preprocessor">#define GLFW_KEY_J                  74</span></div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"><a class="line" href="group__keys.html#ga4ae8debadf6d2a691badae0b53ea3ba0">  422</a></span><span class="preprocessor">#define GLFW_KEY_K                  75</span></div>
+<div class="line"><a id="l00423" name="l00423"></a><span class="lineno"><a class="line" href="group__keys.html#gaaa8b54a13f6b1eed85ac86f82d550db2">  423</a></span><span class="preprocessor">#define GLFW_KEY_L                  76</span></div>
+<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"><a class="line" href="group__keys.html#ga4d7f0260c82e4ea3d6ebc7a21d6e3716">  424</a></span><span class="preprocessor">#define GLFW_KEY_M                  77</span></div>
+<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"><a class="line" href="group__keys.html#gae00856dfeb5d13aafebf59d44de5cdda">  425</a></span><span class="preprocessor">#define GLFW_KEY_N                  78</span></div>
+<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="group__keys.html#gaecbbb79130df419d58dd7f09a169efe9">  426</a></span><span class="preprocessor">#define GLFW_KEY_O                  79</span></div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="group__keys.html#ga8fc15819c1094fb2afa01d84546b33e1">  427</a></span><span class="preprocessor">#define GLFW_KEY_P                  80</span></div>
+<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"><a class="line" href="group__keys.html#gafdd01e38b120d67cf51e348bb47f3964">  428</a></span><span class="preprocessor">#define GLFW_KEY_Q                  81</span></div>
+<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"><a class="line" href="group__keys.html#ga4ce6c70a0c98c50b3fe4ab9a728d4d36">  429</a></span><span class="preprocessor">#define GLFW_KEY_R                  82</span></div>
+<div class="line"><a id="l00430" name="l00430"></a><span class="lineno"><a class="line" href="group__keys.html#ga1570e2ccaab036ea82bed66fc1dab2a9">  430</a></span><span class="preprocessor">#define GLFW_KEY_S                  83</span></div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="group__keys.html#ga90e0560422ec7a30e7f3f375bc9f37f9">  431</a></span><span class="preprocessor">#define GLFW_KEY_T                  84</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="group__keys.html#gacad52f3bf7d378fc0ffa72a76769256d">  432</a></span><span class="preprocessor">#define GLFW_KEY_U                  85</span></div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"><a class="line" href="group__keys.html#ga22c7763899ecf7788862e5f90eacce6b">  433</a></span><span class="preprocessor">#define GLFW_KEY_V                  86</span></div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">  434</a></span><span class="preprocessor">#define GLFW_KEY_W                  87</span></div>
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"><a class="line" href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">  435</a></span><span class="preprocessor">#define GLFW_KEY_X                  88</span></div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="group__keys.html#gafd9f115a549effdf8e372a787c360313">  436</a></span><span class="preprocessor">#define GLFW_KEY_Y                  89</span></div>
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"><a class="line" href="group__keys.html#gac489e208c26afda8d4938ed88718760a">  437</a></span><span class="preprocessor">#define GLFW_KEY_Z                  90</span></div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="group__keys.html#gad1c8d9adac53925276ecb1d592511d8a">  438</a></span><span class="preprocessor">#define GLFW_KEY_LEFT_BRACKET       91  </span><span class="comment">/* [ */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="group__keys.html#gab8155ea99d1ab27ff56f24f8dc73f8d1">  439</a></span><span class="preprocessor">#define GLFW_KEY_BACKSLASH          92  </span><span class="comment">/* \ */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"><a class="line" href="group__keys.html#ga86ef225fd6a66404caae71044cdd58d8">  440</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT_BRACKET      93  </span><span class="comment">/* ] */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"><a class="line" href="group__keys.html#ga7a3701fb4e2a0b136ff4b568c3c8d668">  441</a></span><span class="preprocessor">#define GLFW_KEY_GRAVE_ACCENT       96  </span><span class="comment">/* ` */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00442" name="l00442"></a><span class="lineno"><a class="line" href="group__keys.html#gadc78dad3dab76bcd4b5c20114052577a">  442</a></span><span class="preprocessor">#define GLFW_KEY_WORLD_1            161 </span><span class="comment">/* non-US #1 */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00443" name="l00443"></a><span class="lineno"><a class="line" href="group__keys.html#ga20494bfebf0bb4fc9503afca18ab2c5e">  443</a></span><span class="preprocessor">#define GLFW_KEY_WORLD_2            162 </span><span class="comment">/* non-US #2 */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00444" name="l00444"></a><span class="lineno">  444</span> </div>
+<div class="line"><a id="l00445" name="l00445"></a><span class="lineno">  445</span><span class="comment">/* Function keys */</span></div>
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="group__keys.html#gaac6596c350b635c245113b81c2123b93">  446</a></span><span class="preprocessor">#define GLFW_KEY_ESCAPE             256</span></div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="group__keys.html#ga9555a92ecbecdbc1f3435219c571d667">  447</a></span><span class="preprocessor">#define GLFW_KEY_ENTER              257</span></div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="group__keys.html#ga6908a4bda9950a3e2b73f794bbe985df">  448</a></span><span class="preprocessor">#define GLFW_KEY_TAB                258</span></div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="group__keys.html#ga6c0df1fe2f156bbd5a98c66d76ff3635">  449</a></span><span class="preprocessor">#define GLFW_KEY_BACKSPACE          259</span></div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="group__keys.html#ga373ac7365435d6b0eb1068f470e34f47">  450</a></span><span class="preprocessor">#define GLFW_KEY_INSERT             260</span></div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="group__keys.html#gadb111e4df74b8a715f2c05dad58d2682">  451</a></span><span class="preprocessor">#define GLFW_KEY_DELETE             261</span></div>
+<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"><a class="line" href="group__keys.html#ga06ba07662e8c291a4a84535379ffc7ac">  452</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT              262</span></div>
+<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"><a class="line" href="group__keys.html#gae12a010d33c309a67ab9460c51eb2462">  453</a></span><span class="preprocessor">#define GLFW_KEY_LEFT               263</span></div>
+<div class="line"><a id="l00454" name="l00454"></a><span class="lineno"><a class="line" href="group__keys.html#gae2e3958c71595607416aa7bf082be2f9">  454</a></span><span class="preprocessor">#define GLFW_KEY_DOWN               264</span></div>
+<div class="line"><a id="l00455" name="l00455"></a><span class="lineno"><a class="line" href="group__keys.html#ga2f3342b194020d3544c67e3506b6f144">  455</a></span><span class="preprocessor">#define GLFW_KEY_UP                 265</span></div>
+<div class="line"><a id="l00456" name="l00456"></a><span class="lineno"><a class="line" href="group__keys.html#ga3ab731f9622f0db280178a5f3cc6d586">  456</a></span><span class="preprocessor">#define GLFW_KEY_PAGE_UP            266</span></div>
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"><a class="line" href="group__keys.html#gaee0a8fa442001cc2147812f84b59041c">  457</a></span><span class="preprocessor">#define GLFW_KEY_PAGE_DOWN          267</span></div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"><a class="line" href="group__keys.html#ga41452c7287195d481e43207318c126a7">  458</a></span><span class="preprocessor">#define GLFW_KEY_HOME               268</span></div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"><a class="line" href="group__keys.html#ga86587ea1df19a65978d3e3b8439bedd9">  459</a></span><span class="preprocessor">#define GLFW_KEY_END                269</span></div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"><a class="line" href="group__keys.html#ga92c1d2c9d63485f3d70f94f688d48672">  460</a></span><span class="preprocessor">#define GLFW_KEY_CAPS_LOCK          280</span></div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="group__keys.html#gaf622b63b9537f7084c2ab649b8365630">  461</a></span><span class="preprocessor">#define GLFW_KEY_SCROLL_LOCK        281</span></div>
+<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"><a class="line" href="group__keys.html#ga3946edc362aeff213b2be6304296cf43">  462</a></span><span class="preprocessor">#define GLFW_KEY_NUM_LOCK           282</span></div>
+<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"><a class="line" href="group__keys.html#gaf964c2e65e97d0cf785a5636ee8df642">  463</a></span><span class="preprocessor">#define GLFW_KEY_PRINT_SCREEN       283</span></div>
+<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="group__keys.html#ga8116b9692d87382afb5849b6d8907f18">  464</a></span><span class="preprocessor">#define GLFW_KEY_PAUSE              284</span></div>
+<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"><a class="line" href="group__keys.html#gafb8d66c573acf22e364049477dcbea30">  465</a></span><span class="preprocessor">#define GLFW_KEY_F1                 290</span></div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="group__keys.html#ga0900750aff94889b940f5e428c07daee">  466</a></span><span class="preprocessor">#define GLFW_KEY_F2                 291</span></div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"><a class="line" href="group__keys.html#gaed7cd729c0147a551bb8b7bb36c17015">  467</a></span><span class="preprocessor">#define GLFW_KEY_F3                 292</span></div>
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"><a class="line" href="group__keys.html#ga9b61ebd0c63b44b7332fda2c9763eaa6">  468</a></span><span class="preprocessor">#define GLFW_KEY_F4                 293</span></div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"><a class="line" href="group__keys.html#gaf258dda9947daa428377938ed577c8c2">  469</a></span><span class="preprocessor">#define GLFW_KEY_F5                 294</span></div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="group__keys.html#ga6dc2d3f87b9d51ffbbbe2ef0299d8e1d">  470</a></span><span class="preprocessor">#define GLFW_KEY_F6                 295</span></div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"><a class="line" href="group__keys.html#gacca6ef8a2162c52a0ac1d881e8d9c38a">  471</a></span><span class="preprocessor">#define GLFW_KEY_F7                 296</span></div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"><a class="line" href="group__keys.html#gac9d39390336ae14e4a93e295de43c7e8">  472</a></span><span class="preprocessor">#define GLFW_KEY_F8                 297</span></div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"><a class="line" href="group__keys.html#gae40de0de1c9f21cd26c9afa3d7050851">  473</a></span><span class="preprocessor">#define GLFW_KEY_F9                 298</span></div>
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"><a class="line" href="group__keys.html#ga718d11d2f7d57471a2f6a894235995b1">  474</a></span><span class="preprocessor">#define GLFW_KEY_F10                299</span></div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"><a class="line" href="group__keys.html#ga0bc04b11627e7d69339151e7306b2832">  475</a></span><span class="preprocessor">#define GLFW_KEY_F11                300</span></div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="group__keys.html#gaf5908fa9b0a906ae03fc2c61ac7aa3e2">  476</a></span><span class="preprocessor">#define GLFW_KEY_F12                301</span></div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"><a class="line" href="group__keys.html#gad637f4308655e1001bd6ad942bc0fd4b">  477</a></span><span class="preprocessor">#define GLFW_KEY_F13                302</span></div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"><a class="line" href="group__keys.html#gaf14c66cff3396e5bd46e803c035e6c1f">  478</a></span><span class="preprocessor">#define GLFW_KEY_F14                303</span></div>
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="group__keys.html#ga7f70970db6e8be1794da8516a6d14058">  479</a></span><span class="preprocessor">#define GLFW_KEY_F15                304</span></div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"><a class="line" href="group__keys.html#gaa582dbb1d2ba2050aa1dca0838095b27">  480</a></span><span class="preprocessor">#define GLFW_KEY_F16                305</span></div>
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"><a class="line" href="group__keys.html#ga972ce5c365e2394b36104b0e3125c748">  481</a></span><span class="preprocessor">#define GLFW_KEY_F17                306</span></div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"><a class="line" href="group__keys.html#gaebf6391058d5566601e357edc5ea737c">  482</a></span><span class="preprocessor">#define GLFW_KEY_F18                307</span></div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"><a class="line" href="group__keys.html#gaec011d9ba044058cb54529da710e9791">  483</a></span><span class="preprocessor">#define GLFW_KEY_F19                308</span></div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"><a class="line" href="group__keys.html#ga82b9c721ada04cd5ca8de767da38022f">  484</a></span><span class="preprocessor">#define GLFW_KEY_F20                309</span></div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"><a class="line" href="group__keys.html#ga356afb14d3440ff2bb378f74f7ebc60f">  485</a></span><span class="preprocessor">#define GLFW_KEY_F21                310</span></div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"><a class="line" href="group__keys.html#ga90960bd2a155f2b09675324d3dff1565">  486</a></span><span class="preprocessor">#define GLFW_KEY_F22                311</span></div>
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"><a class="line" href="group__keys.html#ga43c21099aac10952d1be909a8ddee4d5">  487</a></span><span class="preprocessor">#define GLFW_KEY_F23                312</span></div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"><a class="line" href="group__keys.html#ga8150374677b5bed3043408732152dea2">  488</a></span><span class="preprocessor">#define GLFW_KEY_F24                313</span></div>
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"><a class="line" href="group__keys.html#gaa4bbd93ed73bb4c6ae7d83df880b7199">  489</a></span><span class="preprocessor">#define GLFW_KEY_F25                314</span></div>
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"><a class="line" href="group__keys.html#ga10515dafc55b71e7683f5b4fedd1c70d">  490</a></span><span class="preprocessor">#define GLFW_KEY_KP_0               320</span></div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"><a class="line" href="group__keys.html#gaf3a29a334402c5eaf0b3439edf5587c3">  491</a></span><span class="preprocessor">#define GLFW_KEY_KP_1               321</span></div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"><a class="line" href="group__keys.html#gaf82d5a802ab8213c72653d7480c16f13">  492</a></span><span class="preprocessor">#define GLFW_KEY_KP_2               322</span></div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="group__keys.html#ga7e25ff30d56cd512828c1d4ae8d54ef2">  493</a></span><span class="preprocessor">#define GLFW_KEY_KP_3               323</span></div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"><a class="line" href="group__keys.html#gada7ec86778b85e0b4de0beea72234aea">  494</a></span><span class="preprocessor">#define GLFW_KEY_KP_4               324</span></div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"><a class="line" href="group__keys.html#ga9a5be274434866c51738cafbb6d26b45">  495</a></span><span class="preprocessor">#define GLFW_KEY_KP_5               325</span></div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"><a class="line" href="group__keys.html#gafc141b0f8450519084c01092a3157faa">  496</a></span><span class="preprocessor">#define GLFW_KEY_KP_6               326</span></div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"><a class="line" href="group__keys.html#ga8882f411f05d04ec77a9563974bbfa53">  497</a></span><span class="preprocessor">#define GLFW_KEY_KP_7               327</span></div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"><a class="line" href="group__keys.html#gab2ea2e6a12f89d315045af520ac78cec">  498</a></span><span class="preprocessor">#define GLFW_KEY_KP_8               328</span></div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"><a class="line" href="group__keys.html#gafb21426b630ed4fcc084868699ba74c1">  499</a></span><span class="preprocessor">#define GLFW_KEY_KP_9               329</span></div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"><a class="line" href="group__keys.html#ga4e231d968796331a9ea0dbfb98d4005b">  500</a></span><span class="preprocessor">#define GLFW_KEY_KP_DECIMAL         330</span></div>
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"><a class="line" href="group__keys.html#gabca1733780a273d549129ad0f250d1e5">  501</a></span><span class="preprocessor">#define GLFW_KEY_KP_DIVIDE          331</span></div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"><a class="line" href="group__keys.html#ga9ada267eb0e78ed2ada8701dd24a56ef">  502</a></span><span class="preprocessor">#define GLFW_KEY_KP_MULTIPLY        332</span></div>
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="group__keys.html#gaa3dbd60782ff93d6082a124bce1fa236">  503</a></span><span class="preprocessor">#define GLFW_KEY_KP_SUBTRACT        333</span></div>
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"><a class="line" href="group__keys.html#gad09c7c98acc79e89aa6a0a91275becac">  504</a></span><span class="preprocessor">#define GLFW_KEY_KP_ADD             334</span></div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"><a class="line" href="group__keys.html#ga4f728f8738f2986bd63eedd3d412e8cf">  505</a></span><span class="preprocessor">#define GLFW_KEY_KP_ENTER           335</span></div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"><a class="line" href="group__keys.html#gaebdc76d4a808191e6d21b7e4ad2acd97">  506</a></span><span class="preprocessor">#define GLFW_KEY_KP_EQUAL           336</span></div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"><a class="line" href="group__keys.html#ga8a530a28a65c44ab5d00b759b756d3f6">  507</a></span><span class="preprocessor">#define GLFW_KEY_LEFT_SHIFT         340</span></div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"><a class="line" href="group__keys.html#ga9f97b743e81460ac4b2deddecd10a464">  508</a></span><span class="preprocessor">#define GLFW_KEY_LEFT_CONTROL       341</span></div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="group__keys.html#ga7f27dabf63a7789daa31e1c96790219b">  509</a></span><span class="preprocessor">#define GLFW_KEY_LEFT_ALT           342</span></div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"><a class="line" href="group__keys.html#gafb1207c91997fc295afd1835fbc5641a">  510</a></span><span class="preprocessor">#define GLFW_KEY_LEFT_SUPER         343</span></div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"><a class="line" href="group__keys.html#gaffca36b99c9dce1a19cb9befbadce691">  511</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT_SHIFT        344</span></div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"><a class="line" href="group__keys.html#gad1ca2094b2694e7251d0ab1fd34f8519">  512</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT_CONTROL      345</span></div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"><a class="line" href="group__keys.html#ga687b38009131cfdd07a8d05fff8fa446">  513</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT_ALT          346</span></div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="group__keys.html#gad4547a3e8e247594acb60423fe6502db">  514</a></span><span class="preprocessor">#define GLFW_KEY_RIGHT_SUPER        347</span></div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"><a class="line" href="group__keys.html#ga9845be48a745fc232045c9ec174d8820">  515</a></span><span class="preprocessor">#define GLFW_KEY_MENU               348</span></div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno">  516</span> </div>
+<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"><a class="line" href="group__keys.html#ga442cbaef7bfb9a4ba13594dd7fbf2789">  517</a></span><span class="preprocessor">#define GLFW_KEY_LAST               GLFW_KEY_MENU</span></div>
+<div class="line"><a id="l00518" name="l00518"></a><span class="lineno">  518</span> </div>
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="group__mods.html#ga14994d3196c290aaa347248e51740274">  533</a></span><span class="preprocessor">#define GLFW_MOD_SHIFT           0x0001</span></div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"><a class="line" href="group__mods.html#ga6ed94871c3208eefd85713fa929d45aa">  538</a></span><span class="preprocessor">#define GLFW_MOD_CONTROL         0x0002</span></div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"><a class="line" href="group__mods.html#gad2acd5633463c29e07008687ea73c0f4">  543</a></span><span class="preprocessor">#define GLFW_MOD_ALT             0x0004</span></div>
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"><a class="line" href="group__mods.html#ga6b64ba10ea0227cf6f42efd0a220aba1">  548</a></span><span class="preprocessor">#define GLFW_MOD_SUPER           0x0008</span></div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"><a class="line" href="group__mods.html#gaefeef8fcf825a6e43e241b337897200f">  554</a></span><span class="preprocessor">#define GLFW_MOD_CAPS_LOCK       0x0010</span></div>
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"><a class="line" href="group__mods.html#ga64e020b8a42af8376e944baf61feecbe">  560</a></span><span class="preprocessor">#define GLFW_MOD_NUM_LOCK        0x0020</span></div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno">  561</span> </div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"><a class="line" href="group__buttons.html#ga181a6e875251fd8671654eff00f9112e">  571</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_1         0</span></div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"><a class="line" href="group__buttons.html#ga604b39b92c88ce9bd332e97fc3f4156c">  572</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_2         1</span></div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"><a class="line" href="group__buttons.html#ga0130d505563d0236a6f85545f19e1721">  573</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_3         2</span></div>
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"><a class="line" href="group__buttons.html#ga53f4097bb01d5521c7d9513418c91ca9">  574</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_4         3</span></div>
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"><a class="line" href="group__buttons.html#gaf08c4ddecb051d3d9667db1d5e417c9c">  575</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_5         4</span></div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"><a class="line" href="group__buttons.html#gae8513e06aab8aa393b595f22c6d8257a">  576</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_6         5</span></div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"><a class="line" href="group__buttons.html#ga8b02a1ab55dde45b3a3883d54ffd7dc7">  577</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_7         6</span></div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"><a class="line" href="group__buttons.html#ga35d5c4263e0dc0d0a4731ca6c562f32c">  578</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_8         7</span></div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"><a class="line" href="group__buttons.html#gab1fd86a4518a9141ec7bcde2e15a2fdf">  579</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_LAST      GLFW_MOUSE_BUTTON_8</span></div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"><a class="line" href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">  580</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_LEFT      GLFW_MOUSE_BUTTON_1</span></div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">  581</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_RIGHT     GLFW_MOUSE_BUTTON_2</span></div>
+<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"><a class="line" href="group__buttons.html#ga34a4d2a701434f763fd93a2ff842b95a">  582</a></span><span class="preprocessor">#define GLFW_MOUSE_BUTTON_MIDDLE    GLFW_MOUSE_BUTTON_3</span></div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">  592</a></span><span class="preprocessor">#define GLFW_JOYSTICK_1             0</span></div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">  593</a></span><span class="preprocessor">#define GLFW_JOYSTICK_2             1</span></div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"><a class="line" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">  594</a></span><span class="preprocessor">#define GLFW_JOYSTICK_3             2</span></div>
+<div class="line"><a id="l00595" name="l00595"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">  595</a></span><span class="preprocessor">#define GLFW_JOYSTICK_4             3</span></div>
+<div class="line"><a id="l00596" name="l00596"></a><span class="lineno"><a class="line" href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">  596</a></span><span class="preprocessor">#define GLFW_JOYSTICK_5             4</span></div>
+<div class="line"><a id="l00597" name="l00597"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga74771620aa53bd68a487186dea66fd77">  597</a></span><span class="preprocessor">#define GLFW_JOYSTICK_6             5</span></div>
+<div class="line"><a id="l00598" name="l00598"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">  598</a></span><span class="preprocessor">#define GLFW_JOYSTICK_7             6</span></div>
+<div class="line"><a id="l00599" name="l00599"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga21a934c940bcf25db0e4c8fe9b364bdb">  599</a></span><span class="preprocessor">#define GLFW_JOYSTICK_8             7</span></div>
+<div class="line"><a id="l00600" name="l00600"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga87689d47df0ba6f9f5fcbbcaf7b3cecf">  600</a></span><span class="preprocessor">#define GLFW_JOYSTICK_9             8</span></div>
+<div class="line"><a id="l00601" name="l00601"></a><span class="lineno"><a class="line" href="group__joysticks.html#gaef55389ee605d6dfc31aef6fe98c54ec">  601</a></span><span class="preprocessor">#define GLFW_JOYSTICK_10            9</span></div>
+<div class="line"><a id="l00602" name="l00602"></a><span class="lineno"><a class="line" href="group__joysticks.html#gae7d26e3df447c2c14a569fcc18516af4">  602</a></span><span class="preprocessor">#define GLFW_JOYSTICK_11            10</span></div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"><a class="line" href="group__joysticks.html#gab91bbf5b7ca6be8d3ac5c4d89ff48ac7">  603</a></span><span class="preprocessor">#define GLFW_JOYSTICK_12            11</span></div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga5c84fb4e49bf661d7d7c78eb4018c508">  604</a></span><span class="preprocessor">#define GLFW_JOYSTICK_13            12</span></div>
+<div class="line"><a id="l00605" name="l00605"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga89540873278ae5a42b3e70d64164dc74">  605</a></span><span class="preprocessor">#define GLFW_JOYSTICK_14            13</span></div>
+<div class="line"><a id="l00606" name="l00606"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga7b02ab70daf7a78bcc942d5d4cc1dcf9">  606</a></span><span class="preprocessor">#define GLFW_JOYSTICK_15            14</span></div>
+<div class="line"><a id="l00607" name="l00607"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga453edeeabf350827646b6857df4f80ce">  607</a></span><span class="preprocessor">#define GLFW_JOYSTICK_16            15</span></div>
+<div class="line"><a id="l00608" name="l00608"></a><span class="lineno"><a class="line" href="group__joysticks.html#ga9ca13ebf24c331dd98df17d84a4b72c9">  608</a></span><span class="preprocessor">#define GLFW_JOYSTICK_LAST          GLFW_JOYSTICK_16</span></div>
+<div class="line"><a id="l00618" name="l00618"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">  618</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_A               0</span></div>
+<div class="line"><a id="l00619" name="l00619"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga2228a6512fd5950cdb51ba07846546fa">  619</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_B               1</span></div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga52cc94785cf3fe9a12e246539259887c">  620</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_X               2</span></div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gafc931248bda494b530cbe057f386a5ed">  621</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_Y               3</span></div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga17d67b4f39a39d6b813bd1567a3507c3">  622</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER     4</span></div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gadfbc9ea9bf3aae896b79fa49fdc85c7f">  623</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER    5</span></div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gabc7c0264ce778835b516a472b47f6caf">  624</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_BACK            6</span></div>
+<div class="line"><a id="l00625" name="l00625"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga04606949dd9139434b8a1bedf4ac1021">  625</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_START           7</span></div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga7fa48c32e5b2f5db2f080aa0b8b573dc">  626</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_GUIDE           8</span></div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga3e089787327454f7bfca7364d6ca206a">  627</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB      9</span></div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga1c003f52b5aebb45272475b48953b21a">  628</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB     10</span></div>
+<div class="line"><a id="l00629" name="l00629"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga4f1ed6f974a47bc8930d4874a283476a">  629</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_UP         11</span></div>
+<div class="line"><a id="l00630" name="l00630"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gae2a780d2a8c79e0b77c0b7b601ca57c6">  630</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT      12</span></div>
+<div class="line"><a id="l00631" name="l00631"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga8f2b731b97d80f90f11967a83207665c">  631</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN       13</span></div>
+<div class="line"><a id="l00632" name="l00632"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaf0697e0e8607b2ebe1c93b0c6befe301">  632</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT       14</span></div>
+<div class="line"><a id="l00633" name="l00633"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga5cc98882f4f81dacf761639a567f61eb">  633</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_LAST            GLFW_GAMEPAD_BUTTON_DPAD_LEFT</span></div>
+<div class="line"><a id="l00634" name="l00634"></a><span class="lineno">  634</span> </div>
+<div class="line"><a id="l00635" name="l00635"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaf08d0df26527c9305253422bd98ed63a">  635</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_CROSS       GLFW_GAMEPAD_BUTTON_A</span></div>
+<div class="line"><a id="l00636" name="l00636"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gaaef094b3dacbf15f272b274516839b82">  636</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_CIRCLE      GLFW_GAMEPAD_BUTTON_B</span></div>
+<div class="line"><a id="l00637" name="l00637"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#gafc7821e87d77d41ed2cd3e1f726ec35f">  637</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_SQUARE      GLFW_GAMEPAD_BUTTON_X</span></div>
+<div class="line"><a id="l00638" name="l00638"></a><span class="lineno"><a class="line" href="group__gamepad__buttons.html#ga3a7ef6bcb768a08cd3bf142f7f09f802">  638</a></span><span class="preprocessor">#define GLFW_GAMEPAD_BUTTON_TRIANGLE    GLFW_GAMEPAD_BUTTON_Y</span></div>
+<div class="line"><a id="l00648" name="l00648"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga544e396d092036a7d80c1e5f233f7a38">  648</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_X        0</span></div>
+<div class="line"><a id="l00649" name="l00649"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga64dcf2c6e9be50b7c556ff7671996dd5">  649</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_Y        1</span></div>
+<div class="line"><a id="l00650" name="l00650"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#gabd6785106cd3c5a044a6e49a395ee2fc">  650</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_X       2</span></div>
+<div class="line"><a id="l00651" name="l00651"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga1cc20566d44d521b7183681a8e88e2e4">  651</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_Y       3</span></div>
+<div class="line"><a id="l00652" name="l00652"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga6d79561dd8907c37354426242901b86e">  652</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER  4</span></div>
+<div class="line"><a id="l00653" name="l00653"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">  653</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5</span></div>
+<div class="line"><a id="l00654" name="l00654"></a><span class="lineno"><a class="line" href="group__gamepad__axes.html#ga0818fd9433e1359692b7443293e5ac86">  654</a></span><span class="preprocessor">#define GLFW_GAMEPAD_AXIS_LAST          GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</span></div>
+<div class="line"><a id="l00670" name="l00670"></a><span class="lineno"><a class="line" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">  670</a></span><span class="preprocessor">#define GLFW_NO_ERROR               0</span></div>
+<div class="line"><a id="l00679" name="l00679"></a><span class="lineno"><a class="line" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">  679</a></span><span class="preprocessor">#define GLFW_NOT_INITIALIZED        0x00010001</span></div>
+<div class="line"><a id="l00689" name="l00689"></a><span class="lineno"><a class="line" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">  689</a></span><span class="preprocessor">#define GLFW_NO_CURRENT_CONTEXT     0x00010002</span></div>
+<div class="line"><a id="l00697" name="l00697"></a><span class="lineno"><a class="line" href="group__errors.html#ga76f6bb9c4eea73db675f096b404593ce">  697</a></span><span class="preprocessor">#define GLFW_INVALID_ENUM           0x00010003</span></div>
+<div class="line"><a id="l00708" name="l00708"></a><span class="lineno"><a class="line" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">  708</a></span><span class="preprocessor">#define GLFW_INVALID_VALUE          0x00010004</span></div>
+<div class="line"><a id="l00716" name="l00716"></a><span class="lineno"><a class="line" href="group__errors.html#ga9023953a2bcb98c2906afd071d21ee7f">  716</a></span><span class="preprocessor">#define GLFW_OUT_OF_MEMORY          0x00010005</span></div>
+<div class="line"><a id="l00732" name="l00732"></a><span class="lineno"><a class="line" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">  732</a></span><span class="preprocessor">#define GLFW_API_UNAVAILABLE        0x00010006</span></div>
+<div class="line"><a id="l00749" name="l00749"></a><span class="lineno"><a class="line" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">  749</a></span><span class="preprocessor">#define GLFW_VERSION_UNAVAILABLE    0x00010007</span></div>
+<div class="line"><a id="l00760" name="l00760"></a><span class="lineno"><a class="line" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">  760</a></span><span class="preprocessor">#define GLFW_PLATFORM_ERROR         0x00010008</span></div>
+<div class="line"><a id="l00779" name="l00779"></a><span class="lineno"><a class="line" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">  779</a></span><span class="preprocessor">#define GLFW_FORMAT_UNAVAILABLE     0x00010009</span></div>
+<div class="line"><a id="l00787" name="l00787"></a><span class="lineno"><a class="line" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">  787</a></span><span class="preprocessor">#define GLFW_NO_WINDOW_CONTEXT      0x0001000A</span></div>
+<div class="line"><a id="l00797" name="l00797"></a><span class="lineno"><a class="line" href="group__window.html#ga54ddb14825a1541a56e22afb5f832a9e">  797</a></span><span class="preprocessor">#define GLFW_FOCUSED                0x00020001</span></div>
+<div class="line"><a id="l00802" name="l00802"></a><span class="lineno"><a class="line" href="group__window.html#ga39d44b7c056e55e581355a92d240b58a">  802</a></span><span class="preprocessor">#define GLFW_ICONIFIED              0x00020002</span></div>
+<div class="line"><a id="l00808" name="l00808"></a><span class="lineno"><a class="line" href="group__window.html#gadba13c7a1b3aa40831eb2beedbd5bd1d">  808</a></span><span class="preprocessor">#define GLFW_RESIZABLE              0x00020003</span></div>
+<div class="line"><a id="l00814" name="l00814"></a><span class="lineno"><a class="line" href="group__window.html#gafb3cdc45297e06d8f1eb13adc69ca6c4">  814</a></span><span class="preprocessor">#define GLFW_VISIBLE                0x00020004</span></div>
+<div class="line"><a id="l00820" name="l00820"></a><span class="lineno"><a class="line" href="group__window.html#ga21b854d36314c94d65aed84405b2f25e">  820</a></span><span class="preprocessor">#define GLFW_DECORATED              0x00020005</span></div>
+<div class="line"><a id="l00826" name="l00826"></a><span class="lineno"><a class="line" href="group__window.html#ga9d9874fc928200136a6dcdad726aa252">  826</a></span><span class="preprocessor">#define GLFW_AUTO_ICONIFY           0x00020006</span></div>
+<div class="line"><a id="l00832" name="l00832"></a><span class="lineno"><a class="line" href="group__window.html#ga7fb0be51407783b41adbf5bec0b09d80">  832</a></span><span class="preprocessor">#define GLFW_FLOATING               0x00020007</span></div>
+<div class="line"><a id="l00838" name="l00838"></a><span class="lineno"><a class="line" href="group__window.html#gad8ccb396253ad0b72c6d4c917eb38a03">  838</a></span><span class="preprocessor">#define GLFW_MAXIMIZED              0x00020008</span></div>
+<div class="line"><a id="l00843" name="l00843"></a><span class="lineno"><a class="line" href="group__window.html#ga5ac0847c0aa0b3619f2855707b8a7a77">  843</a></span><span class="preprocessor">#define GLFW_CENTER_CURSOR          0x00020009</span></div>
+<div class="line"><a id="l00850" name="l00850"></a><span class="lineno"><a class="line" href="group__window.html#ga60a0578c3b9449027d683a9c6abb9f14">  850</a></span><span class="preprocessor">#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A</span></div>
+<div class="line"><a id="l00855" name="l00855"></a><span class="lineno"><a class="line" href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">  855</a></span><span class="preprocessor">#define GLFW_HOVERED                0x0002000B</span></div>
+<div class="line"><a id="l00861" name="l00861"></a><span class="lineno"><a class="line" href="group__window.html#gafa94b1da34bfd6488c0d709761504dfc">  861</a></span><span class="preprocessor">#define GLFW_FOCUS_ON_SHOW          0x0002000C</span></div>
+<div class="line"><a id="l00862" name="l00862"></a><span class="lineno">  862</span> </div>
+<div class="line"><a id="l00867" name="l00867"></a><span class="lineno"><a class="line" href="group__window.html#gaf78ed8e417dbcc1e354906cc2708c982">  867</a></span><span class="preprocessor">#define GLFW_RED_BITS               0x00021001</span></div>
+<div class="line"><a id="l00872" name="l00872"></a><span class="lineno"><a class="line" href="group__window.html#gafba3b72638c914e5fb8a237dd4c50d4d">  872</a></span><span class="preprocessor">#define GLFW_GREEN_BITS             0x00021002</span></div>
+<div class="line"><a id="l00877" name="l00877"></a><span class="lineno"><a class="line" href="group__window.html#gab292ea403db6d514537b515311bf9ae3">  877</a></span><span class="preprocessor">#define GLFW_BLUE_BITS              0x00021003</span></div>
+<div class="line"><a id="l00882" name="l00882"></a><span class="lineno"><a class="line" href="group__window.html#gafed79a3f468997877da86c449bd43e8c">  882</a></span><span class="preprocessor">#define GLFW_ALPHA_BITS             0x00021004</span></div>
+<div class="line"><a id="l00887" name="l00887"></a><span class="lineno"><a class="line" href="group__window.html#ga318a55eac1fee57dfe593b6d38149d07">  887</a></span><span class="preprocessor">#define GLFW_DEPTH_BITS             0x00021005</span></div>
+<div class="line"><a id="l00892" name="l00892"></a><span class="lineno"><a class="line" href="group__window.html#ga5339890a45a1fb38e93cb9fcc5fd069d">  892</a></span><span class="preprocessor">#define GLFW_STENCIL_BITS           0x00021006</span></div>
+<div class="line"><a id="l00897" name="l00897"></a><span class="lineno"><a class="line" href="group__window.html#gaead34a9a683b2bc20eecf30ba738bfc6">  897</a></span><span class="preprocessor">#define GLFW_ACCUM_RED_BITS         0x00021007</span></div>
+<div class="line"><a id="l00902" name="l00902"></a><span class="lineno"><a class="line" href="group__window.html#ga65713cee1326f8e9d806fdf93187b471">  902</a></span><span class="preprocessor">#define GLFW_ACCUM_GREEN_BITS       0x00021008</span></div>
+<div class="line"><a id="l00907" name="l00907"></a><span class="lineno"><a class="line" href="group__window.html#ga22bbe9104a8ce1f8b88fb4f186aa36ce">  907</a></span><span class="preprocessor">#define GLFW_ACCUM_BLUE_BITS        0x00021009</span></div>
+<div class="line"><a id="l00912" name="l00912"></a><span class="lineno"><a class="line" href="group__window.html#gae829b55591c18169a40ab4067a041b1f">  912</a></span><span class="preprocessor">#define GLFW_ACCUM_ALPHA_BITS       0x0002100A</span></div>
+<div class="line"><a id="l00917" name="l00917"></a><span class="lineno"><a class="line" href="group__window.html#gab05108c5029443b371112b031d1fa174">  917</a></span><span class="preprocessor">#define GLFW_AUX_BUFFERS            0x0002100B</span></div>
+<div class="line"><a id="l00922" name="l00922"></a><span class="lineno"><a class="line" href="group__window.html#ga83d991efca02537e2d69969135b77b03">  922</a></span><span class="preprocessor">#define GLFW_STEREO                 0x0002100C</span></div>
+<div class="line"><a id="l00927" name="l00927"></a><span class="lineno"><a class="line" href="group__window.html#ga2cdf86fdcb7722fb8829c4e201607535">  927</a></span><span class="preprocessor">#define GLFW_SAMPLES                0x0002100D</span></div>
+<div class="line"><a id="l00932" name="l00932"></a><span class="lineno"><a class="line" href="group__window.html#ga444a8f00414a63220591f9fdb7b5642b">  932</a></span><span class="preprocessor">#define GLFW_SRGB_CAPABLE           0x0002100E</span></div>
+<div class="line"><a id="l00937" name="l00937"></a><span class="lineno"><a class="line" href="group__window.html#ga0f20825e6e47ee8ba389024519682212">  937</a></span><span class="preprocessor">#define GLFW_REFRESH_RATE           0x0002100F</span></div>
+<div class="line"><a id="l00942" name="l00942"></a><span class="lineno"><a class="line" href="group__window.html#ga714a5d569e8a274ea58fdfa020955339">  942</a></span><span class="preprocessor">#define GLFW_DOUBLEBUFFER           0x00021010</span></div>
+<div class="line"><a id="l00943" name="l00943"></a><span class="lineno">  943</span> </div>
+<div class="line"><a id="l00949" name="l00949"></a><span class="lineno"><a class="line" href="group__window.html#ga649309cf72a3d3de5b1348ca7936c95b">  949</a></span><span class="preprocessor">#define GLFW_CLIENT_API             0x00022001</span></div>
+<div class="line"><a id="l00955" name="l00955"></a><span class="lineno"><a class="line" href="group__window.html#gafe5e4922de1f9932d7e9849bb053b0c0">  955</a></span><span class="preprocessor">#define GLFW_CONTEXT_VERSION_MAJOR  0x00022002</span></div>
+<div class="line"><a id="l00961" name="l00961"></a><span class="lineno"><a class="line" href="group__window.html#ga31aca791e4b538c4e4a771eb95cc2d07">  961</a></span><span class="preprocessor">#define GLFW_CONTEXT_VERSION_MINOR  0x00022003</span></div>
+<div class="line"><a id="l00967" name="l00967"></a><span class="lineno"><a class="line" href="group__window.html#gafb9475071aa77c6fb05ca5a5c8678a08">  967</a></span><span class="preprocessor">#define GLFW_CONTEXT_REVISION       0x00022004</span></div>
+<div class="line"><a id="l00973" name="l00973"></a><span class="lineno"><a class="line" href="group__window.html#gade3593916b4c507900aa2d6844810e00">  973</a></span><span class="preprocessor">#define GLFW_CONTEXT_ROBUSTNESS     0x00022005</span></div>
+<div class="line"><a id="l00979" name="l00979"></a><span class="lineno"><a class="line" href="group__window.html#ga13d24b12465da8b28985f46c8557925b">  979</a></span><span class="preprocessor">#define GLFW_OPENGL_FORWARD_COMPAT  0x00022006</span></div>
+<div class="line"><a id="l00985" name="l00985"></a><span class="lineno"><a class="line" href="group__window.html#ga87ec2df0b915201e950ca42d5d0831e1">  985</a></span><span class="preprocessor">#define GLFW_OPENGL_DEBUG_CONTEXT   0x00022007</span></div>
+<div class="line"><a id="l00991" name="l00991"></a><span class="lineno"><a class="line" href="group__window.html#ga44f3a6b4261fbe351e0b950b0f372e12">  991</a></span><span class="preprocessor">#define GLFW_OPENGL_PROFILE         0x00022008</span></div>
+<div class="line"><a id="l00997" name="l00997"></a><span class="lineno"><a class="line" href="group__window.html#ga72b648a8378fe3310c7c7bbecc0f7be6">  997</a></span><span class="preprocessor">#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009</span></div>
+<div class="line"><a id="l01003" name="l01003"></a><span class="lineno"><a class="line" href="group__window.html#ga5a52fdfd46d8249c211f923675728082"> 1003</a></span><span class="preprocessor">#define GLFW_CONTEXT_NO_ERROR       0x0002200A</span></div>
+<div class="line"><a id="l01009" name="l01009"></a><span class="lineno"><a class="line" href="group__window.html#ga5154cebfcd831c1cc63a4d5ac9bb4486"> 1009</a></span><span class="preprocessor">#define GLFW_CONTEXT_CREATION_API   0x0002200B</span></div>
+<div class="line"><a id="l01013" name="l01013"></a><span class="lineno"><a class="line" href="group__window.html#ga620bc4280c7eab81ac9f02204500ed47"> 1013</a></span><span class="preprocessor">#define GLFW_SCALE_TO_MONITOR       0x0002200C</span></div>
+<div class="line"><a id="l01017" name="l01017"></a><span class="lineno"><a class="line" href="group__window.html#gab6ef2d02eb55800d249ccf1af253c35e"> 1017</a></span><span class="preprocessor">#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001</span></div>
+<div class="line"><a id="l01021" name="l01021"></a><span class="lineno"><a class="line" href="group__window.html#ga70fa0fbc745de6aa824df79a580e84b5"> 1021</a></span><span class="preprocessor">#define GLFW_COCOA_FRAME_NAME         0x00023002</span></div>
+<div class="line"><a id="l01025" name="l01025"></a><span class="lineno"><a class="line" href="group__window.html#ga53c84ed2ddd94e15bbd44b1f6f7feafc"> 1025</a></span><span class="preprocessor">#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003</span></div>
+<div class="line"><a id="l01029" name="l01029"></a><span class="lineno"><a class="line" href="group__window.html#gae5a9ea2fccccd92edbd343fc56461114"> 1029</a></span><span class="preprocessor">#define GLFW_X11_CLASS_NAME         0x00024001</span></div>
+<div class="line"><a id="l01033" name="l01033"></a><span class="lineno"><a class="line" href="group__window.html#ga494c3c0d911e4b860b946530a3e389e8"> 1033</a></span><span class="preprocessor">#define GLFW_X11_INSTANCE_NAME      0x00024002</span></div>
+<div class="line"><a id="l01036" name="l01036"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a8f6dcdc968d214ff14779564f1389264"> 1036</a></span><span class="preprocessor">#define GLFW_NO_API                          0</span></div>
+<div class="line"><a id="l01037" name="l01037"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a01b3f66db266341425e9abee6b257db2"> 1037</a></span><span class="preprocessor">#define GLFW_OPENGL_API             0x00030001</span></div>
+<div class="line"><a id="l01038" name="l01038"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a28d9b3bc6c2a522d815c8e146595051f"> 1038</a></span><span class="preprocessor">#define GLFW_OPENGL_ES_API          0x00030002</span></div>
+<div class="line"><a id="l01039" name="l01039"></a><span class="lineno"> 1039</span> </div>
+<div class="line"><a id="l01040" name="l01040"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a8b306cb27f5bb0d6d67c7356a0e0fc34"> 1040</a></span><span class="preprocessor">#define GLFW_NO_ROBUSTNESS                   0</span></div>
+<div class="line"><a id="l01041" name="l01041"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aee84a679230d205005e22487ff678a85"> 1041</a></span><span class="preprocessor">#define GLFW_NO_RESET_NOTIFICATION  0x00031001</span></div>
+<div class="line"><a id="l01042" name="l01042"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aec1132f245143fc915b2f0995228564c"> 1042</a></span><span class="preprocessor">#define GLFW_LOSE_CONTEXT_ON_RESET  0x00031002</span></div>
+<div class="line"><a id="l01043" name="l01043"></a><span class="lineno"> 1043</span> </div>
+<div class="line"><a id="l01044" name="l01044"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ad6f2335d6f21cc9bab96633b1c111d5f"> 1044</a></span><span class="preprocessor">#define GLFW_OPENGL_ANY_PROFILE              0</span></div>
+<div class="line"><a id="l01045" name="l01045"></a><span class="lineno"><a class="line" href="glfw3_8h.html#af094bb16da76f66ebceb19ee213b3de8"> 1045</a></span><span class="preprocessor">#define GLFW_OPENGL_CORE_PROFILE    0x00032001</span></div>
+<div class="line"><a id="l01046" name="l01046"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ac06b663d79c8fcf04669cc8fcc0b7670"> 1046</a></span><span class="preprocessor">#define GLFW_OPENGL_COMPAT_PROFILE  0x00032002</span></div>
+<div class="line"><a id="l01047" name="l01047"></a><span class="lineno"> 1047</span> </div>
+<div class="line"><a id="l01048" name="l01048"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c"> 1048</a></span><span class="preprocessor">#define GLFW_CURSOR                 0x00033001</span></div>
+<div class="line"><a id="l01049" name="l01049"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc"> 1049</a></span><span class="preprocessor">#define GLFW_STICKY_KEYS            0x00033002</span></div>
+<div class="line"><a id="l01050" name="l01050"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1"> 1050</a></span><span class="preprocessor">#define GLFW_STICKY_MOUSE_BUTTONS   0x00033003</span></div>
+<div class="line"><a id="l01051" name="l01051"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947"> 1051</a></span><span class="preprocessor">#define GLFW_LOCK_KEY_MODS          0x00033004</span></div>
+<div class="line"><a id="l01052" name="l01052"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb"> 1052</a></span><span class="preprocessor">#define GLFW_RAW_MOUSE_MOTION       0x00033005</span></div>
+<div class="line"><a id="l01053" name="l01053"></a><span class="lineno"> 1053</span> </div>
+<div class="line"><a id="l01054" name="l01054"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68"> 1054</a></span><span class="preprocessor">#define GLFW_CURSOR_NORMAL          0x00034001</span></div>
+<div class="line"><a id="l01055" name="l01055"></a><span class="lineno"><a class="line" href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11"> 1055</a></span><span class="preprocessor">#define GLFW_CURSOR_HIDDEN          0x00034002</span></div>
+<div class="line"><a id="l01056" name="l01056"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88"> 1056</a></span><span class="preprocessor">#define GLFW_CURSOR_DISABLED        0x00034003</span></div>
+<div class="line"><a id="l01057" name="l01057"></a><span class="lineno"> 1057</span> </div>
+<div class="line"><a id="l01058" name="l01058"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a6b47d806f285efe9bfd7aeec667297ee"> 1058</a></span><span class="preprocessor">#define GLFW_ANY_RELEASE_BEHAVIOR            0</span></div>
+<div class="line"><a id="l01059" name="l01059"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a999961d391db49cb4f949c1dece0e13b"> 1059</a></span><span class="preprocessor">#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001</span></div>
+<div class="line"><a id="l01060" name="l01060"></a><span class="lineno"><a class="line" href="glfw3_8h.html#afca09088eccacdce4b59036cfae349c5"> 1060</a></span><span class="preprocessor">#define GLFW_RELEASE_BEHAVIOR_NONE  0x00035002</span></div>
+<div class="line"><a id="l01061" name="l01061"></a><span class="lineno"> 1061</span> </div>
+<div class="line"><a id="l01062" name="l01062"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a0494c9bfd3f584ab41e6dbeeaa0e6a19"> 1062</a></span><span class="preprocessor">#define GLFW_NATIVE_CONTEXT_API     0x00036001</span></div>
+<div class="line"><a id="l01063" name="l01063"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a03cf65c9ab01fc8b872ba58842c531c9"> 1063</a></span><span class="preprocessor">#define GLFW_EGL_CONTEXT_API        0x00036002</span></div>
+<div class="line"><a id="l01064" name="l01064"></a><span class="lineno"><a class="line" href="glfw3_8h.html#afd34a473af9fa81f317910ea371b19e3"> 1064</a></span><span class="preprocessor">#define GLFW_OSMESA_CONTEXT_API     0x00036003</span></div>
+<div class="line"><a id="l01065" name="l01065"></a><span class="lineno"> 1065</span> </div>
+<div class="line"><a id="l01078" name="l01078"></a><span class="lineno"><a class="line" href="group__shapes.html#ga8ab0e717245b85506cb0eaefdea39d0a"> 1078</a></span><span class="preprocessor">#define GLFW_ARROW_CURSOR           0x00036001</span></div>
+<div class="line"><a id="l01083" name="l01083"></a><span class="lineno"><a class="line" href="group__shapes.html#ga36185f4375eaada1b04e431244774c86"> 1083</a></span><span class="preprocessor">#define GLFW_IBEAM_CURSOR           0x00036002</span></div>
+<div class="line"><a id="l01088" name="l01088"></a><span class="lineno"><a class="line" href="group__shapes.html#ga8af88c0ea05ab9e8f9ac1530e8873c22"> 1088</a></span><span class="preprocessor">#define GLFW_CROSSHAIR_CURSOR       0x00036003</span></div>
+<div class="line"><a id="l01093" name="l01093"></a><span class="lineno"><a class="line" href="group__shapes.html#ga1db35e20849e0837c82e3dc1fd797263"> 1093</a></span><span class="preprocessor">#define GLFW_HAND_CURSOR            0x00036004</span></div>
+<div class="line"><a id="l01098" name="l01098"></a><span class="lineno"><a class="line" href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962"> 1098</a></span><span class="preprocessor">#define GLFW_HRESIZE_CURSOR         0x00036005</span></div>
+<div class="line"><a id="l01103" name="l01103"></a><span class="lineno"><a class="line" href="group__shapes.html#gaf024f0e1ff8366fb2b5c260509a1fce5"> 1103</a></span><span class="preprocessor">#define GLFW_VRESIZE_CURSOR         0x00036006</span></div>
+<div class="line"><a id="l01106" name="l01106"></a><span class="lineno"><a class="line" href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e"> 1106</a></span><span class="preprocessor">#define GLFW_CONNECTED              0x00040001</span></div>
+<div class="line"><a id="l01107" name="l01107"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32"> 1107</a></span><span class="preprocessor">#define GLFW_DISCONNECTED           0x00040002</span></div>
+<div class="line"><a id="l01108" name="l01108"></a><span class="lineno"> 1108</span> </div>
+<div class="line"><a id="l01115" name="l01115"></a><span class="lineno"><a class="line" href="group__init.html#gab9c0534709fda03ec8959201da3a9a18"> 1115</a></span><span class="preprocessor">#define GLFW_JOYSTICK_HAT_BUTTONS   0x00050001</span></div>
+<div class="line"><a id="l01120" name="l01120"></a><span class="lineno"><a class="line" href="group__init.html#gab937983147a3158d45f88fad7129d9f2"> 1120</a></span><span class="preprocessor">#define GLFW_COCOA_CHDIR_RESOURCES  0x00051001</span></div>
+<div class="line"><a id="l01125" name="l01125"></a><span class="lineno"><a class="line" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf"> 1125</a></span><span class="preprocessor">#define GLFW_COCOA_MENUBAR          0x00051002</span></div>
+<div class="line"><a id="l01128" name="l01128"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a7a2edf2c18446833d27d07f1b7f3d571"> 1128</a></span><span class="preprocessor">#define GLFW_DONT_CARE              -1</span></div>
+<div class="line"><a id="l01129" name="l01129"></a><span class="lineno"> 1129</span> </div>
+<div class="line"><a id="l01130" name="l01130"></a><span class="lineno"> 1130</span> </div>
+<div class="line"><a id="l01131" name="l01131"></a><span class="lineno"> 1131</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l01132" name="l01132"></a><span class="lineno"> 1132</span><span class="comment"> * GLFW API types</span></div>
+<div class="line"><a id="l01133" name="l01133"></a><span class="lineno"> 1133</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l01134" name="l01134"></a><span class="lineno"> 1134</span> </div>
+<div class="line"><a id="l01147" name="l01147"></a><span class="lineno"><a class="line" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c"> 1147</a></span><span class="keyword">typedef</span> void (*<a class="code hl_typedef" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>)(void);</div>
+<div class="line"><a id="l01148" name="l01148"></a><span class="lineno"> 1148</span> </div>
+<div class="line"><a id="l01161" name="l01161"></a><span class="lineno"><a class="line" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af"> 1161</a></span><span class="keyword">typedef</span> void (*<a class="code hl_typedef" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>)(void);</div>
+<div class="line"><a id="l01162" name="l01162"></a><span class="lineno"> 1162</span> </div>
+<div class="line"><a id="l01173" name="l01173"></a><span class="lineno"><a class="line" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3"> 1173</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>;</div>
+<div class="line"><a id="l01174" name="l01174"></a><span class="lineno"> 1174</span> </div>
+<div class="line"><a id="l01185" name="l01185"></a><span class="lineno"><a class="line" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242"> 1185</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> <a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>;</div>
+<div class="line"><a id="l01186" name="l01186"></a><span class="lineno"> 1186</span> </div>
+<div class="line"><a id="l01197" name="l01197"></a><span class="lineno"><a class="line" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4"> 1197</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> <a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>;</div>
+<div class="line"><a id="l01198" name="l01198"></a><span class="lineno"> 1198</span> </div>
+<div class="line"><a id="l01221" name="l01221"></a><span class="lineno"><a class="line" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3"> 1221</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>)(<span class="keywordtype">int</span> error_code, <span class="keyword">const</span> <span class="keywordtype">char</span>* description);</div>
+<div class="line"><a id="l01222" name="l01222"></a><span class="lineno"> 1222</span> </div>
+<div class="line"><a id="l01244" name="l01244"></a><span class="lineno"><a class="line" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9"> 1244</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos);</div>
+<div class="line"><a id="l01245" name="l01245"></a><span class="lineno"> 1245</span> </div>
+<div class="line"><a id="l01266" name="l01266"></a><span class="lineno"><a class="line" href="group__window.html#gaec0282944bb810f6f3163ec02da90350"> 1266</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
+<div class="line"><a id="l01267" name="l01267"></a><span class="lineno"> 1267</span> </div>
+<div class="line"><a id="l01286" name="l01286"></a><span class="lineno"><a class="line" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e"> 1286</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l01287" name="l01287"></a><span class="lineno"> 1287</span> </div>
+<div class="line"><a id="l01306" name="l01306"></a><span class="lineno"><a class="line" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5"> 1306</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l01307" name="l01307"></a><span class="lineno"> 1307</span> </div>
+<div class="line"><a id="l01327" name="l01327"></a><span class="lineno"><a class="line" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46"> 1327</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> focused);</div>
+<div class="line"><a id="l01328" name="l01328"></a><span class="lineno"> 1328</span> </div>
+<div class="line"><a id="l01348" name="l01348"></a><span class="lineno"><a class="line" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f"> 1348</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> iconified);</div>
+<div class="line"><a id="l01349" name="l01349"></a><span class="lineno"> 1349</span> </div>
+<div class="line"><a id="l01369" name="l01369"></a><span class="lineno"><a class="line" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90"> 1369</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> maximized);</div>
+<div class="line"><a id="l01370" name="l01370"></a><span class="lineno"> 1370</span> </div>
+<div class="line"><a id="l01390" name="l01390"></a><span class="lineno"><a class="line" href="group__window.html#gae18026e294dde685ed2e5f759533144d"> 1390</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
+<div class="line"><a id="l01391" name="l01391"></a><span class="lineno"> 1391</span> </div>
+<div class="line"><a id="l01411" name="l01411"></a><span class="lineno"><a class="line" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e"> 1411</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">float</span> xscale, <span class="keywordtype">float</span> yscale);</div>
+<div class="line"><a id="l01412" name="l01412"></a><span class="lineno"> 1412</span> </div>
+<div class="line"><a id="l01437" name="l01437"></a><span class="lineno"><a class="line" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727"> 1437</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> button, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods);</div>
+<div class="line"><a id="l01438" name="l01438"></a><span class="lineno"> 1438</span> </div>
+<div class="line"><a id="l01460" name="l01460"></a><span class="lineno"><a class="line" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68"> 1460</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xpos, <span class="keywordtype">double</span> ypos);</div>
+<div class="line"><a id="l01461" name="l01461"></a><span class="lineno"> 1461</span> </div>
+<div class="line"><a id="l01481" name="l01481"></a><span class="lineno"><a class="line" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe"> 1481</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> entered);</div>
+<div class="line"><a id="l01482" name="l01482"></a><span class="lineno"> 1482</span> </div>
+<div class="line"><a id="l01502" name="l01502"></a><span class="lineno"><a class="line" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5"> 1502</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xoffset, <span class="keywordtype">double</span> yoffset);</div>
+<div class="line"><a id="l01503" name="l01503"></a><span class="lineno"> 1503</span> </div>
+<div class="line"><a id="l01528" name="l01528"></a><span class="lineno"><a class="line" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c"> 1528</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods);</div>
+<div class="line"><a id="l01529" name="l01529"></a><span class="lineno"> 1529</span> </div>
+<div class="line"><a id="l01549" name="l01549"></a><span class="lineno"><a class="line" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e"> 1549</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codepoint);</div>
+<div class="line"><a id="l01550" name="l01550"></a><span class="lineno"> 1550</span> </div>
+<div class="line"><a id="l01576" name="l01576"></a><span class="lineno"><a class="line" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f"> 1576</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codepoint, <span class="keywordtype">int</span> mods);</div>
+<div class="line"><a id="l01577" name="l01577"></a><span class="lineno"> 1577</span> </div>
+<div class="line"><a id="l01600" name="l01600"></a><span class="lineno"><a class="line" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2"> 1600</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a>)(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> path_count, <span class="keyword">const</span> <span class="keywordtype">char</span>* paths[]);</div>
+<div class="line"><a id="l01601" name="l01601"></a><span class="lineno"> 1601</span> </div>
+<div class="line"><a id="l01621" name="l01621"></a><span class="lineno"><a class="line" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249"> 1621</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>)(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event);</div>
+<div class="line"><a id="l01622" name="l01622"></a><span class="lineno"> 1622</span> </div>
+<div class="line"><a id="l01642" name="l01642"></a><span class="lineno"><a class="line" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243"> 1642</a></span><span class="keyword">typedef</span> void (* <a class="code hl_typedef" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a>)(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span> event);</div>
+<div class="line"><a id="l01643" name="l01643"></a><span class="lineno"> 1643</span> </div>
+<div class="line"><a id="l01657" name="l01657"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html"> 1657</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structGLFWvidmode.html">GLFWvidmode</a></div>
+<div class="line"><a id="l01658" name="l01658"></a><span class="lineno"> 1658</span>{</div>
+<div class="line"><a id="l01661" name="l01661"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d"> 1661</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d">width</a>;</div>
+<div class="line"><a id="l01664" name="l01664"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c"> 1664</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c">height</a>;</div>
+<div class="line"><a id="l01667" name="l01667"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b"> 1667</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b">redBits</a>;</div>
+<div class="line"><a id="l01670" name="l01670"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa"> 1670</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa">greenBits</a>;</div>
+<div class="line"><a id="l01673" name="l01673"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047"> 1673</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047">blueBits</a>;</div>
+<div class="line"><a id="l01676" name="l01676"></a><span class="lineno"><a class="line" href="structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649"> 1676</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649">refreshRate</a>;</div>
+<div class="line"><a id="l01677" name="l01677"></a><span class="lineno"><a class="line" href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565"> 1677</a></span>} <a class="code hl_typedef" href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">GLFWvidmode</a>;</div>
+<div class="line"><a id="l01678" name="l01678"></a><span class="lineno"> 1678</span> </div>
+<div class="line"><a id="l01691" name="l01691"></a><span class="lineno"><a class="line" href="structGLFWgammaramp.html"> 1691</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structGLFWgammaramp.html">GLFWgammaramp</a></div>
+<div class="line"><a id="l01692" name="l01692"></a><span class="lineno"> 1692</span>{</div>
+<div class="line"><a id="l01695" name="l01695"></a><span class="lineno"><a class="line" href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138"> 1695</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code hl_variable" href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">red</a>;</div>
+<div class="line"><a id="l01698" name="l01698"></a><span class="lineno"><a class="line" href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a"> 1698</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code hl_variable" href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">green</a>;</div>
+<div class="line"><a id="l01701" name="l01701"></a><span class="lineno"><a class="line" href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b"> 1701</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">short</span>* <a class="code hl_variable" href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">blue</a>;</div>
+<div class="line"><a id="l01704" name="l01704"></a><span class="lineno"><a class="line" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5"> 1704</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a>;</div>
+<div class="line"><a id="l01705" name="l01705"></a><span class="lineno"><a class="line" href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404"> 1705</a></span>} <a class="code hl_typedef" href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">GLFWgammaramp</a>;</div>
+<div class="line"><a id="l01706" name="l01706"></a><span class="lineno"> 1706</span> </div>
+<div class="line"><a id="l01720" name="l01720"></a><span class="lineno"><a class="line" href="structGLFWimage.html"> 1720</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structGLFWimage.html">GLFWimage</a></div>
+<div class="line"><a id="l01721" name="l01721"></a><span class="lineno"> 1721</span>{</div>
+<div class="line"><a id="l01724" name="l01724"></a><span class="lineno"><a class="line" href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835"> 1724</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">width</a>;</div>
+<div class="line"><a id="l01727" name="l01727"></a><span class="lineno"><a class="line" href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec"> 1727</a></span>    <span class="keywordtype">int</span> <a class="code hl_variable" href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">height</a>;</div>
+<div class="line"><a id="l01730" name="l01730"></a><span class="lineno"><a class="line" href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb"> 1730</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code hl_variable" href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">pixels</a>;</div>
+<div class="line"><a id="l01731" name="l01731"></a><span class="lineno"><a class="line" href="group__window.html#ga7cc0a09de172fa7250872046f8c4d2ca"> 1731</a></span>} <a class="code hl_typedef" href="group__window.html#ga7cc0a09de172fa7250872046f8c4d2ca">GLFWimage</a>;</div>
+<div class="line"><a id="l01732" name="l01732"></a><span class="lineno"> 1732</span> </div>
+<div class="line"><a id="l01744" name="l01744"></a><span class="lineno"><a class="line" href="structGLFWgamepadstate.html"> 1744</a></span><span class="keyword">typedef</span> <span class="keyword">struct </span><a class="code hl_struct" href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div>
+<div class="line"><a id="l01745" name="l01745"></a><span class="lineno"> 1745</span>{</div>
+<div class="line"><a id="l01749" name="l01749"></a><span class="lineno"><a class="line" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a"> 1749</a></span>    <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> <a class="code hl_variable" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">buttons</a>[15];</div>
+<div class="line"><a id="l01753" name="l01753"></a><span class="lineno"><a class="line" href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189"> 1753</a></span>    <span class="keywordtype">float</span> <a class="code hl_variable" href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">axes</a>[6];</div>
+<div class="line"><a id="l01754" name="l01754"></a><span class="lineno"><a class="line" href="group__input.html#ga61acfb1f28f751438dd221225c5e725d"> 1754</a></span>} <a class="code hl_typedef" href="group__input.html#ga61acfb1f28f751438dd221225c5e725d">GLFWgamepadstate</a>;</div>
+<div class="line"><a id="l01755" name="l01755"></a><span class="lineno"> 1755</span> </div>
+<div class="line"><a id="l01756" name="l01756"></a><span class="lineno"> 1756</span> </div>
+<div class="line"><a id="l01757" name="l01757"></a><span class="lineno"> 1757</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l01758" name="l01758"></a><span class="lineno"> 1758</span><span class="comment"> * GLFW API functions</span></div>
+<div class="line"><a id="l01759" name="l01759"></a><span class="lineno"> 1759</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l01760" name="l01760"></a><span class="lineno"> 1760</span> </div>
+<div class="line"><a id="l01797" name="l01797"></a><span class="lineno"><a class="line" href="group__init.html#ga317aac130a235ab08c6db0834907d85e"> 1797</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l01798" name="l01798"></a><span class="lineno"> 1798</span> </div>
+<div class="line"><a id="l01831" name="l01831"></a><span class="lineno"><a class="line" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901"> 1831</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l01832" name="l01832"></a><span class="lineno"> 1832</span> </div>
+<div class="line"><a id="l01863" name="l01863"></a><span class="lineno"><a class="line" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a"> 1863</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>(<span class="keywordtype">int</span> hint, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l01864" name="l01864"></a><span class="lineno"> 1864</span> </div>
+<div class="line"><a id="l01890" name="l01890"></a><span class="lineno"><a class="line" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197"> 1890</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>(<span class="keywordtype">int</span>* major, <span class="keywordtype">int</span>* minor, <span class="keywordtype">int</span>* rev);</div>
+<div class="line"><a id="l01891" name="l01891"></a><span class="lineno"> 1891</span> </div>
+<div class="line"><a id="l01921" name="l01921"></a><span class="lineno"><a class="line" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0"> 1921</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l01922" name="l01922"></a><span class="lineno"> 1922</span> </div>
+<div class="line"><a id="l01952" name="l01952"></a><span class="lineno"><a class="line" href="group__init.html#ga944986b4ec0b928d488141f92982aa18"> 1952</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>** description);</div>
+<div class="line"><a id="l01953" name="l01953"></a><span class="lineno"> 1953</span> </div>
+<div class="line"><a id="l01998" name="l01998"></a><span class="lineno"><a class="line" href="group__init.html#gaff45816610d53f0b83656092a4034f40"> 1998</a></span>GLFWAPI <a class="code hl_typedef" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a> <a class="code hl_function" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>(<a class="code hl_typedef" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a> callback);</div>
+<div class="line"><a id="l01999" name="l01999"></a><span class="lineno"> 1999</span> </div>
+<div class="line"><a id="l02027" name="l02027"></a><span class="lineno"><a class="line" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2"> 2027</a></span>GLFWAPI <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** <a class="code hl_function" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a>(<span class="keywordtype">int</span>* count);</div>
+<div class="line"><a id="l02028" name="l02028"></a><span class="lineno"> 2028</span> </div>
+<div class="line"><a id="l02051" name="l02051"></a><span class="lineno"><a class="line" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5"> 2051</a></span>GLFWAPI <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* <a class="code hl_function" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l02052" name="l02052"></a><span class="lineno"> 2052</span> </div>
+<div class="line"><a id="l02076" name="l02076"></a><span class="lineno"><a class="line" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9"> 2076</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos);</div>
+<div class="line"><a id="l02077" name="l02077"></a><span class="lineno"> 2077</span> </div>
+<div class="line"><a id="l02107" name="l02107"></a><span class="lineno"><a class="line" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"> 2107</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
+<div class="line"><a id="l02108" name="l02108"></a><span class="lineno"> 2108</span> </div>
+<div class="line"><a id="l02141" name="l02141"></a><span class="lineno"><a class="line" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea"> 2141</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* widthMM, <span class="keywordtype">int</span>* heightMM);</div>
+<div class="line"><a id="l02142" name="l02142"></a><span class="lineno"> 2142</span> </div>
+<div class="line"><a id="l02173" name="l02173"></a><span class="lineno"><a class="line" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b"> 2173</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">float</span>* xscale, <span class="keywordtype">float</span>* yscale);</div>
+<div class="line"><a id="l02174" name="l02174"></a><span class="lineno"> 2174</span> </div>
+<div class="line"><a id="l02199" name="l02199"></a><span class="lineno"><a class="line" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68"> 2199</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l02200" name="l02200"></a><span class="lineno"> 2200</span> </div>
+<div class="line"><a id="l02225" name="l02225"></a><span class="lineno"><a class="line" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda"> 2225</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">void</span>* pointer);</div>
+<div class="line"><a id="l02226" name="l02226"></a><span class="lineno"> 2226</span> </div>
+<div class="line"><a id="l02249" name="l02249"></a><span class="lineno"><a class="line" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5"> 2249</a></span>GLFWAPI <span class="keywordtype">void</span>* <a class="code hl_function" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l02250" name="l02250"></a><span class="lineno"> 2250</span> </div>
+<div class="line"><a id="l02279" name="l02279"></a><span class="lineno"><a class="line" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3"> 2279</a></span>GLFWAPI <a class="code hl_typedef" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a> <a class="code hl_function" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a>(<a class="code hl_typedef" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a> callback);</div>
+<div class="line"><a id="l02280" name="l02280"></a><span class="lineno"> 2280</span> </div>
+<div class="line"><a id="l02313" name="l02313"></a><span class="lineno"><a class="line" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b"> 2313</a></span>GLFWAPI <span class="keyword">const</span> <a class="code hl_struct" href="structGLFWvidmode.html">GLFWvidmode</a>* <a class="code hl_function" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span>* count);</div>
+<div class="line"><a id="l02314" name="l02314"></a><span class="lineno"> 2314</span> </div>
+<div class="line"><a id="l02341" name="l02341"></a><span class="lineno"><a class="line" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5"> 2341</a></span>GLFWAPI <span class="keyword">const</span> <a class="code hl_struct" href="structGLFWvidmode.html">GLFWvidmode</a>* <a class="code hl_function" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l02342" name="l02342"></a><span class="lineno"> 2342</span> </div>
+<div class="line"><a id="l02374" name="l02374"></a><span class="lineno"><a class="line" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a"> 2374</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">float</span> gamma);</div>
+<div class="line"><a id="l02375" name="l02375"></a><span class="lineno"> 2375</span> </div>
+<div class="line"><a id="l02404" name="l02404"></a><span class="lineno"><a class="line" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f"> 2404</a></span>GLFWAPI <span class="keyword">const</span> <a class="code hl_struct" href="structGLFWgammaramp.html">GLFWgammaramp</a>* <a class="code hl_function" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l02405" name="l02405"></a><span class="lineno"> 2405</span> </div>
+<div class="line"><a id="l02445" name="l02445"></a><span class="lineno"><a class="line" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd"> 2445</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keyword">const</span> <a class="code hl_struct" href="structGLFWgammaramp.html">GLFWgammaramp</a>* ramp);</div>
+<div class="line"><a id="l02446" name="l02446"></a><span class="lineno"> 2446</span> </div>
+<div class="line"><a id="l02464" name="l02464"></a><span class="lineno"><a class="line" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a"> 2464</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l02465" name="l02465"></a><span class="lineno"> 2465</span> </div>
+<div class="line"><a id="l02499" name="l02499"></a><span class="lineno"><a class="line" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033"> 2499</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>(<span class="keywordtype">int</span> hint, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l02500" name="l02500"></a><span class="lineno"> 2500</span> </div>
+<div class="line"><a id="l02537" name="l02537"></a><span class="lineno"><a class="line" href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f"> 2537</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f">glfwWindowHintString</a>(<span class="keywordtype">int</span> hint, <span class="keyword">const</span> <span class="keywordtype">char</span>* value);</div>
+<div class="line"><a id="l02538" name="l02538"></a><span class="lineno"> 2538</span> </div>
+<div class="line"><a id="l02691" name="l02691"></a><span class="lineno"><a class="line" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb"> 2691</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* <a class="code hl_function" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>(<span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keyword">const</span> <span class="keywordtype">char</span>* title, <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* share);</div>
+<div class="line"><a id="l02692" name="l02692"></a><span class="lineno"> 2692</span> </div>
+<div class="line"><a id="l02720" name="l02720"></a><span class="lineno"><a class="line" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2"> 2720</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l02721" name="l02721"></a><span class="lineno"> 2721</span> </div>
+<div class="line"><a id="l02740" name="l02740"></a><span class="lineno"><a class="line" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5"> 2740</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l02741" name="l02741"></a><span class="lineno"> 2741</span> </div>
+<div class="line"><a id="l02762" name="l02762"></a><span class="lineno"><a class="line" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708"> 2762</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l02763" name="l02763"></a><span class="lineno"> 2763</span> </div>
+<div class="line"><a id="l02787" name="l02787"></a><span class="lineno"><a class="line" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff"> 2787</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> <span class="keywordtype">char</span>* title);</div>
+<div class="line"><a id="l02788" name="l02788"></a><span class="lineno"> 2788</span> </div>
+<div class="line"><a id="l02834" name="l02834"></a><span class="lineno"><a class="line" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5"> 2834</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> count, <span class="keyword">const</span> <a class="code hl_struct" href="structGLFWimage.html">GLFWimage</a>* images);</div>
+<div class="line"><a id="l02835" name="l02835"></a><span class="lineno"> 2835</span> </div>
+<div class="line"><a id="l02866" name="l02866"></a><span class="lineno"><a class="line" href="group__window.html#ga73cb526c000876fd8ddf571570fdb634"> 2866</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga73cb526c000876fd8ddf571570fdb634">glfwGetWindowPos</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* xpos, <span class="keywordtype">int</span>* ypos);</div>
+<div class="line"><a id="l02867" name="l02867"></a><span class="lineno"> 2867</span> </div>
+<div class="line"><a id="l02901" name="l02901"></a><span class="lineno"><a class="line" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8"> 2901</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfwSetWindowPos</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos);</div>
+<div class="line"><a id="l02902" name="l02902"></a><span class="lineno"> 2902</span> </div>
+<div class="line"><a id="l02931" name="l02931"></a><span class="lineno"><a class="line" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6"> 2931</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
+<div class="line"><a id="l02932" name="l02932"></a><span class="lineno"> 2932</span> </div>
+<div class="line"><a id="l02974" name="l02974"></a><span class="lineno"><a class="line" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90"> 2974</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfwSetWindowSizeLimits</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> minwidth, <span class="keywordtype">int</span> minheight, <span class="keywordtype">int</span> maxwidth, <span class="keywordtype">int</span> maxheight);</div>
+<div class="line"><a id="l02975" name="l02975"></a><span class="lineno"> 2975</span> </div>
+<div class="line"><a id="l03017" name="l03017"></a><span class="lineno"><a class="line" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937"> 3017</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfwSetWindowAspectRatio</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> numer, <span class="keywordtype">int</span> denom);</div>
+<div class="line"><a id="l03018" name="l03018"></a><span class="lineno"> 3018</span> </div>
+<div class="line"><a id="l03058" name="l03058"></a><span class="lineno"><a class="line" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb"> 3058</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height);</div>
+<div class="line"><a id="l03059" name="l03059"></a><span class="lineno"> 3059</span> </div>
+<div class="line"><a id="l03087" name="l03087"></a><span class="lineno"><a class="line" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9"> 3087</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height);</div>
+<div class="line"><a id="l03088" name="l03088"></a><span class="lineno"> 3088</span> </div>
+<div class="line"><a id="l03124" name="l03124"></a><span class="lineno"><a class="line" href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1"> 3124</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1">glfwGetWindowFrameSize</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* left, <span class="keywordtype">int</span>* top, <span class="keywordtype">int</span>* right, <span class="keywordtype">int</span>* bottom);</div>
+<div class="line"><a id="l03125" name="l03125"></a><span class="lineno"> 3125</span> </div>
+<div class="line"><a id="l03157" name="l03157"></a><span class="lineno"><a class="line" href="group__window.html#gaf5d31de9c19c4f994facea64d2b3106c"> 3157</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gaf5d31de9c19c4f994facea64d2b3106c">glfwGetWindowContentScale</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">float</span>* xscale, <span class="keywordtype">float</span>* yscale);</div>
+<div class="line"><a id="l03158" name="l03158"></a><span class="lineno"> 3158</span> </div>
+<div class="line"><a id="l03184" name="l03184"></a><span class="lineno"><a class="line" href="group__window.html#gad09f0bd7a6307c4533b7061828480a84"> 3184</a></span>GLFWAPI <span class="keywordtype">float</span> <a class="code hl_function" href="group__window.html#gad09f0bd7a6307c4533b7061828480a84">glfwGetWindowOpacity</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03185" name="l03185"></a><span class="lineno"> 3185</span> </div>
+<div class="line"><a id="l03213" name="l03213"></a><span class="lineno"><a class="line" href="group__window.html#gac31caeb3d1088831b13d2c8a156802e9"> 3213</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gac31caeb3d1088831b13d2c8a156802e9">glfwSetWindowOpacity</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">float</span> opacity);</div>
+<div class="line"><a id="l03214" name="l03214"></a><span class="lineno"> 3214</span> </div>
+<div class="line"><a id="l03241" name="l03241"></a><span class="lineno"><a class="line" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4"> 3241</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4">glfwIconifyWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03242" name="l03242"></a><span class="lineno"> 3242</span> </div>
+<div class="line"><a id="l03268" name="l03268"></a><span class="lineno"><a class="line" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7"> 3268</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfwRestoreWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03269" name="l03269"></a><span class="lineno"> 3269</span> </div>
+<div class="line"><a id="l03293" name="l03293"></a><span class="lineno"><a class="line" href="group__window.html#ga3f541387449d911274324ae7f17ec56b"> 3293</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga3f541387449d911274324ae7f17ec56b">glfwMaximizeWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03294" name="l03294"></a><span class="lineno"> 3294</span> </div>
+<div class="line"><a id="l03325" name="l03325"></a><span class="lineno"><a class="line" href="group__window.html#ga61be47917b72536a148300f46494fc66"> 3325</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga61be47917b72536a148300f46494fc66">glfwShowWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03326" name="l03326"></a><span class="lineno"> 3326</span> </div>
+<div class="line"><a id="l03347" name="l03347"></a><span class="lineno"><a class="line" href="group__window.html#ga49401f82a1ba5f15db5590728314d47c"> 3347</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga49401f82a1ba5f15db5590728314d47c">glfwHideWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03348" name="l03348"></a><span class="lineno"> 3348</span> </div>
+<div class="line"><a id="l03386" name="l03386"></a><span class="lineno"><a class="line" href="group__window.html#ga873780357abd3f3a081d71a40aae45a1"> 3386</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga873780357abd3f3a081d71a40aae45a1">glfwFocusWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03387" name="l03387"></a><span class="lineno"> 3387</span> </div>
+<div class="line"><a id="l03413" name="l03413"></a><span class="lineno"><a class="line" href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703"> 3413</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">glfwRequestWindowAttention</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03414" name="l03414"></a><span class="lineno"> 3414</span> </div>
+<div class="line"><a id="l03435" name="l03435"></a><span class="lineno"><a class="line" href="group__window.html#ga4d766499ac02c60f02221a9dfab87299"> 3435</a></span>GLFWAPI <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* <a class="code hl_function" href="group__window.html#ga4d766499ac02c60f02221a9dfab87299">glfwGetWindowMonitor</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03436" name="l03436"></a><span class="lineno"> 3436</span> </div>
+<div class="line"><a id="l03494" name="l03494"></a><span class="lineno"><a class="line" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7"> 3494</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> xpos, <span class="keywordtype">int</span> ypos, <span class="keywordtype">int</span> width, <span class="keywordtype">int</span> height, <span class="keywordtype">int</span> refreshRate);</div>
+<div class="line"><a id="l03495" name="l03495"></a><span class="lineno"> 3495</span> </div>
+<div class="line"><a id="l03531" name="l03531"></a><span class="lineno"><a class="line" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337"> 3531</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> attrib);</div>
+<div class="line"><a id="l03532" name="l03532"></a><span class="lineno"> 3532</span> </div>
+<div class="line"><a id="l03568" name="l03568"></a><span class="lineno"><a class="line" href="group__window.html#gace2afda29b4116ec012e410a6819033e"> 3568</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gace2afda29b4116ec012e410a6819033e">glfwSetWindowAttrib</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> attrib, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l03569" name="l03569"></a><span class="lineno"> 3569</span> </div>
+<div class="line"><a id="l03591" name="l03591"></a><span class="lineno"><a class="line" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651"> 3591</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">void</span>* pointer);</div>
+<div class="line"><a id="l03592" name="l03592"></a><span class="lineno"> 3592</span> </div>
+<div class="line"><a id="l03612" name="l03612"></a><span class="lineno"><a class="line" href="group__window.html#gae77a4add0d2023ca21ff1443ced01653"> 3612</a></span>GLFWAPI <span class="keywordtype">void</span>* <a class="code hl_function" href="group__window.html#gae77a4add0d2023ca21ff1443ced01653">glfwGetWindowUserPointer</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l03613" name="l03613"></a><span class="lineno"> 3613</span> </div>
+<div class="line"><a id="l03647" name="l03647"></a><span class="lineno"><a class="line" href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74"> 3647</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a> <a class="code hl_function" href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a> callback);</div>
+<div class="line"><a id="l03648" name="l03648"></a><span class="lineno"> 3648</span> </div>
+<div class="line"><a id="l03679" name="l03679"></a><span class="lineno"><a class="line" href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8"> 3679</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a> <a class="code hl_function" href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a> callback);</div>
+<div class="line"><a id="l03680" name="l03680"></a><span class="lineno"> 3680</span> </div>
+<div class="line"><a id="l03719" name="l03719"></a><span class="lineno"><a class="line" href="group__window.html#gada646d775a7776a95ac000cfc1885331"> 3719</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a> <a class="code hl_function" href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a> callback);</div>
+<div class="line"><a id="l03720" name="l03720"></a><span class="lineno"> 3720</span> </div>
+<div class="line"><a id="l03755" name="l03755"></a><span class="lineno"><a class="line" href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e"> 3755</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a> <a class="code hl_function" href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a> callback);</div>
+<div class="line"><a id="l03756" name="l03756"></a><span class="lineno"> 3756</span> </div>
+<div class="line"><a id="l03790" name="l03790"></a><span class="lineno"><a class="line" href="group__window.html#gac2d83c4a10f071baf841f6730528e66c"> 3790</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a> <a class="code hl_function" href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a> callback);</div>
+<div class="line"><a id="l03791" name="l03791"></a><span class="lineno"> 3791</span> </div>
+<div class="line"><a id="l03823" name="l03823"></a><span class="lineno"><a class="line" href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e"> 3823</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a> <a class="code hl_function" href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">glfwSetWindowIconifyCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a> callback);</div>
+<div class="line"><a id="l03824" name="l03824"></a><span class="lineno"> 3824</span> </div>
+<div class="line"><a id="l03853" name="l03853"></a><span class="lineno"><a class="line" href="group__window.html#gacbe64c339fbd94885e62145563b6dc93"> 3853</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a> <a class="code hl_function" href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a> callback);</div>
+<div class="line"><a id="l03854" name="l03854"></a><span class="lineno"> 3854</span> </div>
+<div class="line"><a id="l03883" name="l03883"></a><span class="lineno"><a class="line" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f"> 3883</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a> <a class="code hl_function" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a> callback);</div>
+<div class="line"><a id="l03884" name="l03884"></a><span class="lineno"> 3884</span> </div>
+<div class="line"><a id="l03914" name="l03914"></a><span class="lineno"><a class="line" href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6"> 3914</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a> <a class="code hl_function" href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a> callback);</div>
+<div class="line"><a id="l03915" name="l03915"></a><span class="lineno"> 3915</span> </div>
+<div class="line"><a id="l03952" name="l03952"></a><span class="lineno"><a class="line" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832"> 3952</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l03953" name="l03953"></a><span class="lineno"> 3953</span> </div>
+<div class="line"><a id="l03997" name="l03997"></a><span class="lineno"><a class="line" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e"> 3997</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l03998" name="l03998"></a><span class="lineno"> 3998</span> </div>
+<div class="line"><a id="l04046" name="l04046"></a><span class="lineno"><a class="line" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf"> 4046</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a>(<span class="keywordtype">double</span> timeout);</div>
+<div class="line"><a id="l04047" name="l04047"></a><span class="lineno"> 4047</span> </div>
+<div class="line"><a id="l04066" name="l04066"></a><span class="lineno"><a class="line" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9"> 4066</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l04067" name="l04067"></a><span class="lineno"> 4067</span> </div>
+<div class="line"><a id="l04091" name="l04091"></a><span class="lineno"><a class="line" href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4"> 4091</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4">glfwGetInputMode</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> mode);</div>
+<div class="line"><a id="l04092" name="l04092"></a><span class="lineno"> 4092</span> </div>
+<div class="line"><a id="l04153" name="l04153"></a><span class="lineno"><a class="line" href="group__input.html#gaa92336e173da9c8834558b54ee80563b"> 4153</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> mode, <span class="keywordtype">int</span> value);</div>
+<div class="line"><a id="l04154" name="l04154"></a><span class="lineno"> 4154</span> </div>
+<div class="line"><a id="l04182" name="l04182"></a><span class="lineno"><a class="line" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2"> 4182</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l04183" name="l04183"></a><span class="lineno"> 4183</span> </div>
+<div class="line"><a id="l04250" name="l04250"></a><span class="lineno"><a class="line" href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f"> 4250</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a>(<span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode);</div>
+<div class="line"><a id="l04251" name="l04251"></a><span class="lineno"> 4251</span> </div>
+<div class="line"><a id="l04274" name="l04274"></a><span class="lineno"><a class="line" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a"> 4274</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>(<span class="keywordtype">int</span> key);</div>
+<div class="line"><a id="l04275" name="l04275"></a><span class="lineno"> 4275</span> </div>
+<div class="line"><a id="l04313" name="l04313"></a><span class="lineno"><a class="line" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2"> 4313</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> key);</div>
+<div class="line"><a id="l04314" name="l04314"></a><span class="lineno"> 4314</span> </div>
+<div class="line"><a id="l04342" name="l04342"></a><span class="lineno"><a class="line" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704"> 4342</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> button);</div>
+<div class="line"><a id="l04343" name="l04343"></a><span class="lineno"> 4343</span> </div>
+<div class="line"><a id="l04380" name="l04380"></a><span class="lineno"><a class="line" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc"> 4380</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span>* xpos, <span class="keywordtype">double</span>* ypos);</div>
+<div class="line"><a id="l04381" name="l04381"></a><span class="lineno"> 4381</span> </div>
+<div class="line"><a id="l04420" name="l04420"></a><span class="lineno"><a class="line" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7"> 4420</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xpos, <span class="keywordtype">double</span> ypos);</div>
+<div class="line"><a id="l04421" name="l04421"></a><span class="lineno"> 4421</span> </div>
+<div class="line"><a id="l04458" name="l04458"></a><span class="lineno"><a class="line" href="group__input.html#ga556f604f73af156c0db0e97c081373c3"> 4458</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* <a class="code hl_function" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a>(<span class="keyword">const</span> <a class="code hl_struct" href="structGLFWimage.html">GLFWimage</a>* image, <span class="keywordtype">int</span> xhot, <span class="keywordtype">int</span> yhot);</div>
+<div class="line"><a id="l04459" name="l04459"></a><span class="lineno"> 4459</span> </div>
+<div class="line"><a id="l04481" name="l04481"></a><span class="lineno"><a class="line" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e"> 4481</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* <a class="code hl_function" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a>(<span class="keywordtype">int</span> shape);</div>
+<div class="line"><a id="l04482" name="l04482"></a><span class="lineno"> 4482</span> </div>
+<div class="line"><a id="l04508" name="l04508"></a><span class="lineno"><a class="line" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a"> 4508</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>(<a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor);</div>
+<div class="line"><a id="l04509" name="l04509"></a><span class="lineno"> 4509</span> </div>
+<div class="line"><a id="l04535" name="l04535"></a><span class="lineno"><a class="line" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e"> 4535</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor);</div>
+<div class="line"><a id="l04536" name="l04536"></a><span class="lineno"> 4536</span> </div>
+<div class="line"><a id="l04585" name="l04585"></a><span class="lineno"><a class="line" href="group__input.html#ga1caf18159767e761185e49a3be019f8d"> 4585</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a> <a class="code hl_function" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a> callback);</div>
+<div class="line"><a id="l04586" name="l04586"></a><span class="lineno"> 4586</span> </div>
+<div class="line"><a id="l04628" name="l04628"></a><span class="lineno"><a class="line" href="group__input.html#gab25c4a220fd8f5717718dbc487828996"> 4628</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a> <a class="code hl_function" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a> callback);</div>
+<div class="line"><a id="l04629" name="l04629"></a><span class="lineno"> 4629</span> </div>
+<div class="line"><a id="l04670" name="l04670"></a><span class="lineno"><a class="line" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c"> 4670</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a> <a class="code hl_function" href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a> callback);</div>
+<div class="line"><a id="l04671" name="l04671"></a><span class="lineno"> 4671</span> </div>
+<div class="line"><a id="l04707" name="l04707"></a><span class="lineno"><a class="line" href="group__input.html#ga6ab84420974d812bee700e45284a723c"> 4707</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a> <a class="code hl_function" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a> callback);</div>
+<div class="line"><a id="l04708" name="l04708"></a><span class="lineno"> 4708</span> </div>
+<div class="line"><a id="l04739" name="l04739"></a><span class="lineno"><a class="line" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7"> 4739</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a> <a class="code hl_function" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a> callback);</div>
+<div class="line"><a id="l04740" name="l04740"></a><span class="lineno"> 4740</span> </div>
+<div class="line"><a id="l04770" name="l04770"></a><span class="lineno"><a class="line" href="group__input.html#gad27f8ad0142c038a281466c0966817d8"> 4770</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a> <a class="code hl_function" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a> callback);</div>
+<div class="line"><a id="l04771" name="l04771"></a><span class="lineno"> 4771</span> </div>
+<div class="line"><a id="l04804" name="l04804"></a><span class="lineno"><a class="line" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede"> 4804</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a> <a class="code hl_function" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a> callback);</div>
+<div class="line"><a id="l04805" name="l04805"></a><span class="lineno"> 4805</span> </div>
+<div class="line"><a id="l04841" name="l04841"></a><span class="lineno"><a class="line" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b"> 4841</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a> <a class="code hl_function" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <a class="code hl_typedef" href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a> callback);</div>
+<div class="line"><a id="l04842" name="l04842"></a><span class="lineno"> 4842</span> </div>
+<div class="line"><a id="l04865" name="l04865"></a><span class="lineno"><a class="line" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1"> 4865</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l04866" name="l04866"></a><span class="lineno"> 4866</span> </div>
+<div class="line"><a id="l04898" name="l04898"></a><span class="lineno"><a class="line" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408"> 4898</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">float</span>* <a class="code hl_function" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
+<div class="line"><a id="l04899" name="l04899"></a><span class="lineno"> 4899</span> </div>
+<div class="line"><a id="l04939" name="l04939"></a><span class="lineno"><a class="line" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938"> 4939</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
+<div class="line"><a id="l04940" name="l04940"></a><span class="lineno"> 4940</span> </div>
+<div class="line"><a id="l04996" name="l04996"></a><span class="lineno"><a class="line" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c"> 4996</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span>* count);</div>
+<div class="line"><a id="l04997" name="l04997"></a><span class="lineno"> 4997</span> </div>
+<div class="line"><a id="l05027" name="l05027"></a><span class="lineno"><a class="line" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978"> 5027</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l05028" name="l05028"></a><span class="lineno"> 5028</span> </div>
+<div class="line"><a id="l05068" name="l05068"></a><span class="lineno"><a class="line" href="group__input.html#ga6659411aec3c7fcef27780e2cb2d9600"> 5068</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#ga6659411aec3c7fcef27780e2cb2d9600">glfwGetJoystickGUID</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l05069" name="l05069"></a><span class="lineno"> 5069</span> </div>
+<div class="line"><a id="l05094" name="l05094"></a><span class="lineno"><a class="line" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e"> 5094</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a>(<span class="keywordtype">int</span> jid, <span class="keywordtype">void</span>* pointer);</div>
+<div class="line"><a id="l05095" name="l05095"></a><span class="lineno"> 5095</span> </div>
+<div class="line"><a id="l05118" name="l05118"></a><span class="lineno"><a class="line" href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3"> 5118</a></span>GLFWAPI <span class="keywordtype">void</span>* <a class="code hl_function" href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">glfwGetJoystickUserPointer</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l05119" name="l05119"></a><span class="lineno"> 5119</span> </div>
+<div class="line"><a id="l05146" name="l05146"></a><span class="lineno"><a class="line" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00"> 5146</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l05147" name="l05147"></a><span class="lineno"> 5147</span> </div>
+<div class="line"><a id="l05182" name="l05182"></a><span class="lineno"><a class="line" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"> 5182</a></span>GLFWAPI <a class="code hl_typedef" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a> <a class="code hl_function" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a>(<a class="code hl_typedef" href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a> callback);</div>
+<div class="line"><a id="l05183" name="l05183"></a><span class="lineno"> 5183</span> </div>
+<div class="line"><a id="l05216" name="l05216"></a><span class="lineno"><a class="line" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f"> 5216</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
+<div class="line"><a id="l05217" name="l05217"></a><span class="lineno"> 5217</span> </div>
+<div class="line"><a id="l05248" name="l05248"></a><span class="lineno"><a class="line" href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728"> 5248</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a>(<span class="keywordtype">int</span> jid);</div>
+<div class="line"><a id="l05249" name="l05249"></a><span class="lineno"> 5249</span> </div>
+<div class="line"><a id="l05286" name="l05286"></a><span class="lineno"><a class="line" href="group__input.html#gadccddea8bce6113fa459de379ddaf051"> 5286</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>(<span class="keywordtype">int</span> jid, <a class="code hl_struct" href="structGLFWgamepadstate.html">GLFWgamepadstate</a>* state);</div>
+<div class="line"><a id="l05287" name="l05287"></a><span class="lineno"> 5287</span> </div>
+<div class="line"><a id="l05311" name="l05311"></a><span class="lineno"><a class="line" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd"> 5311</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
+<div class="line"><a id="l05312" name="l05312"></a><span class="lineno"> 5312</span> </div>
+<div class="line"><a id="l05341" name="l05341"></a><span class="lineno"><a class="line" href="group__input.html#ga71a5b20808ea92193d65c21b82580355"> 5341</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l05342" name="l05342"></a><span class="lineno"> 5342</span> </div>
+<div class="line"><a id="l05371" name="l05371"></a><span class="lineno"><a class="line" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a"> 5371</a></span>GLFWAPI <span class="keywordtype">double</span> <a class="code hl_function" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l05372" name="l05372"></a><span class="lineno"> 5372</span> </div>
+<div class="line"><a id="l05401" name="l05401"></a><span class="lineno"><a class="line" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0"> 5401</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>(<span class="keywordtype">double</span> time);</div>
+<div class="line"><a id="l05402" name="l05402"></a><span class="lineno"> 5402</span> </div>
+<div class="line"><a id="l05423" name="l05423"></a><span class="lineno"><a class="line" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa"> 5423</a></span>GLFWAPI uint64_t <a class="code hl_function" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l05424" name="l05424"></a><span class="lineno"> 5424</span> </div>
+<div class="line"><a id="l05443" name="l05443"></a><span class="lineno"><a class="line" href="group__input.html#ga3289ee876572f6e91f06df3a24824443"> 5443</a></span>GLFWAPI uint64_t <a class="code hl_function" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l05444" name="l05444"></a><span class="lineno"> 5444</span> </div>
+<div class="line"><a id="l05481" name="l05481"></a><span class="lineno"><a class="line" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157"> 5481</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l05482" name="l05482"></a><span class="lineno"> 5482</span> </div>
+<div class="line"><a id="l05502" name="l05502"></a><span class="lineno"><a class="line" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c"> 5502</a></span>GLFWAPI <a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* <a class="code hl_function" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l05503" name="l05503"></a><span class="lineno"> 5503</span> </div>
+<div class="line"><a id="l05536" name="l05536"></a><span class="lineno"><a class="line" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14"> 5536</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l05537" name="l05537"></a><span class="lineno"> 5537</span> </div>
+<div class="line"><a id="l05582" name="l05582"></a><span class="lineno"><a class="line" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed"> 5582</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a>(<span class="keywordtype">int</span> interval);</div>
+<div class="line"><a id="l05583" name="l05583"></a><span class="lineno"> 5583</span> </div>
+<div class="line"><a id="l05620" name="l05620"></a><span class="lineno"><a class="line" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa"> 5620</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* extension);</div>
+<div class="line"><a id="l05621" name="l05621"></a><span class="lineno"> 5621</span> </div>
+<div class="line"><a id="l05662" name="l05662"></a><span class="lineno"><a class="line" href="group__context.html#ga35f1837e6f666781842483937612f163"> 5662</a></span>GLFWAPI <a class="code hl_typedef" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a> <a class="code hl_function" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* procname);</div>
+<div class="line"><a id="l05663" name="l05663"></a><span class="lineno"> 5663</span> </div>
+<div class="line"><a id="l05688" name="l05688"></a><span class="lineno"><a class="line" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b"> 5688</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l05689" name="l05689"></a><span class="lineno"> 5689</span> </div>
+<div class="line"><a id="l05732" name="l05732"></a><span class="lineno"><a class="line" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6"> 5732</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>** <a class="code hl_function" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a>(uint32_t* count);</div>
+<div class="line"><a id="l05733" name="l05733"></a><span class="lineno"> 5733</span> </div>
+<div class="line"><a id="l05734" name="l05734"></a><span class="lineno"> 5734</span><span class="preprocessor">#if defined(VK_VERSION_1_0)</span></div>
+<div class="line"><a id="l05735" name="l05735"></a><span class="lineno"> 5735</span> </div>
+<div class="line"><a id="l05775" name="l05775"></a><span class="lineno"><a class="line" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9"> 5775</a></span>GLFWAPI <a class="code hl_typedef" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a> <a class="code hl_function" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a>(VkInstance instance, <span class="keyword">const</span> <span class="keywordtype">char</span>* procname);</div>
+<div class="line"><a id="l05776" name="l05776"></a><span class="lineno"> 5776</span> </div>
+<div class="line"><a id="l05812" name="l05812"></a><span class="lineno"><a class="line" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92"> 5812</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a>(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily);</div>
+<div class="line"><a id="l05813" name="l05813"></a><span class="lineno"> 5813</span> </div>
+<div class="line"><a id="l05875" name="l05875"></a><span class="lineno"><a class="line" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965"> 5875</a></span>GLFWAPI VkResult <a class="code hl_function" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965">glfwCreateWindowSurface</a>(VkInstance instance, <a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keyword">const</span> VkAllocationCallbacks* allocator, VkSurfaceKHR* surface);</div>
+<div class="line"><a id="l05876" name="l05876"></a><span class="lineno"> 5876</span> </div>
+<div class="line"><a id="l05877" name="l05877"></a><span class="lineno"> 5877</span><span class="preprocessor">#endif </span><span class="comment">/*VK_VERSION_1_0*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l05878" name="l05878"></a><span class="lineno"> 5878</span> </div>
+<div class="line"><a id="l05879" name="l05879"></a><span class="lineno"> 5879</span> </div>
+<div class="line"><a id="l05880" name="l05880"></a><span class="lineno"> 5880</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l05881" name="l05881"></a><span class="lineno"> 5881</span><span class="comment"> * Global definition cleanup</span></div>
+<div class="line"><a id="l05882" name="l05882"></a><span class="lineno"> 5882</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l05883" name="l05883"></a><span class="lineno"> 5883</span> </div>
+<div class="line"><a id="l05884" name="l05884"></a><span class="lineno"> 5884</span><span class="comment">/* ------------------- BEGIN SYSTEM/COMPILER SPECIFIC -------------------- */</span></div>
+<div class="line"><a id="l05885" name="l05885"></a><span class="lineno"> 5885</span> </div>
+<div class="line"><a id="l05886" name="l05886"></a><span class="lineno"> 5886</span><span class="preprocessor">#ifdef GLFW_WINGDIAPI_DEFINED</span></div>
+<div class="line"><a id="l05887" name="l05887"></a><span class="lineno"> 5887</span><span class="preprocessor"> #undef WINGDIAPI</span></div>
+<div class="line"><a id="l05888" name="l05888"></a><span class="lineno"> 5888</span><span class="preprocessor"> #undef GLFW_WINGDIAPI_DEFINED</span></div>
+<div class="line"><a id="l05889" name="l05889"></a><span class="lineno"> 5889</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l05890" name="l05890"></a><span class="lineno"> 5890</span> </div>
+<div class="line"><a id="l05891" name="l05891"></a><span class="lineno"> 5891</span><span class="preprocessor">#ifdef GLFW_CALLBACK_DEFINED</span></div>
+<div class="line"><a id="l05892" name="l05892"></a><span class="lineno"> 5892</span><span class="preprocessor"> #undef CALLBACK</span></div>
+<div class="line"><a id="l05893" name="l05893"></a><span class="lineno"> 5893</span><span class="preprocessor"> #undef GLFW_CALLBACK_DEFINED</span></div>
+<div class="line"><a id="l05894" name="l05894"></a><span class="lineno"> 5894</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l05895" name="l05895"></a><span class="lineno"> 5895</span> </div>
+<div class="line"><a id="l05896" name="l05896"></a><span class="lineno"> 5896</span><span class="comment">/* Some OpenGL related headers need GLAPIENTRY, but it is unconditionally</span></div>
+<div class="line"><a id="l05897" name="l05897"></a><span class="lineno"> 5897</span><span class="comment"> * defined by some gl.h variants (OpenBSD) so define it after if needed.</span></div>
+<div class="line"><a id="l05898" name="l05898"></a><span class="lineno"> 5898</span><span class="comment"> */</span></div>
+<div class="line"><a id="l05899" name="l05899"></a><span class="lineno"> 5899</span><span class="preprocessor">#ifndef GLAPIENTRY</span></div>
+<div class="line"><a id="l05900" name="l05900"></a><span class="lineno"><a class="line" href="glfw3_8h.html#aa97755eb47e4bf2727ad45d610e18206"> 5900</a></span><span class="preprocessor"> #define GLAPIENTRY APIENTRY</span></div>
+<div class="line"><a id="l05901" name="l05901"></a><span class="lineno"><a class="line" href="glfw3_8h.html#a3b526ac796be993406ea2f1642c25fc3"> 5901</a></span><span class="preprocessor"> #define GLFW_GLAPIENTRY_DEFINED</span></div>
+<div class="line"><a id="l05902" name="l05902"></a><span class="lineno"> 5902</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l05903" name="l05903"></a><span class="lineno"> 5903</span> </div>
+<div class="line"><a id="l05904" name="l05904"></a><span class="lineno"> 5904</span><span class="comment">/* -------------------- END SYSTEM/COMPILER SPECIFIC --------------------- */</span></div>
+<div class="line"><a id="l05905" name="l05905"></a><span class="lineno"> 5905</span> </div>
+<div class="line"><a id="l05906" name="l05906"></a><span class="lineno"> 5906</span> </div>
+<div class="line"><a id="l05907" name="l05907"></a><span class="lineno"> 5907</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l05908" name="l05908"></a><span class="lineno"> 5908</span>}</div>
+<div class="line"><a id="l05909" name="l05909"></a><span class="lineno"> 5909</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l05910" name="l05910"></a><span class="lineno"> 5910</span> </div>
+<div class="line"><a id="l05911" name="l05911"></a><span class="lineno"> 5911</span><span class="preprocessor">#endif </span><span class="comment">/* _glfw3_h_ */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l05912" name="l05912"></a><span class="lineno"> 5912</span> </div>
+<div class="ttc" id="agroup__context_html_ga1c04dc242268f827290fe40aa1c91157"><div class="ttname"><a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a></div><div class="ttdeci">void glfwMakeContextCurrent(GLFWwindow *window)</div><div class="ttdoc">Makes the context of the specified window current for the calling thread.</div></div>
+<div class="ttc" id="agroup__context_html_ga35f1837e6f666781842483937612f163"><div class="ttname"><a href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></div><div class="ttdeci">GLFWglproc glfwGetProcAddress(const char *procname)</div><div class="ttdoc">Returns the address of the specified function for the current context.</div></div>
+<div class="ttc" id="agroup__context_html_ga3d47c2d2fbe0be9c505d0e04e91a133c"><div class="ttname"><a href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a></div><div class="ttdeci">void(* GLFWglproc)(void)</div><div class="ttdoc">Client API function pointer type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1147</div></div>
+<div class="ttc" id="agroup__context_html_ga6d4e0cdf151b5e579bd67f13202994ed"><div class="ttname"><a href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a></div><div class="ttdeci">void glfwSwapInterval(int interval)</div><div class="ttdoc">Sets the swap interval for the current context.</div></div>
+<div class="ttc" id="agroup__context_html_ga87425065c011cef1ebd6aac75e059dfa"><div class="ttname"><a href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></div><div class="ttdeci">int glfwExtensionSupported(const char *extension)</div><div class="ttdoc">Returns whether the specified extension is available.</div></div>
+<div class="ttc" id="agroup__context_html_gad94e80185397a6cf5fe2ab30567af71c"><div class="ttname"><a href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a></div><div class="ttdeci">GLFWwindow * glfwGetCurrentContext(void)</div><div class="ttdoc">Returns the window whose context is current on the calling thread.</div></div>
+<div class="ttc" id="agroup__init_html_ga026abd003c8e6501981ab1662062f1c0"><div class="ttname"><a href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a></div><div class="ttdeci">const char * glfwGetVersionString(void)</div><div class="ttdoc">Returns a string describing the compile-time configuration.</div></div>
+<div class="ttc" id="agroup__init_html_ga110fd1d3f0412822b4f1908c026f724a"><div class="ttname"><a href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a></div><div class="ttdeci">void glfwInitHint(int hint, int value)</div><div class="ttdoc">Sets the specified init hint to the desired value.</div></div>
+<div class="ttc" id="agroup__init_html_ga317aac130a235ab08c6db0834907d85e"><div class="ttname"><a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a></div><div class="ttdeci">int glfwInit(void)</div><div class="ttdoc">Initializes the GLFW library.</div></div>
+<div class="ttc" id="agroup__init_html_ga8184701785c096b3862a75cda1bf44a3"><div class="ttname"><a href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a></div><div class="ttdeci">void(* GLFWerrorfun)(int error_code, const char *description)</div><div class="ttdoc">The function pointer type for error callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1221</div></div>
 <div class="ttc" id="agroup__init_html_ga944986b4ec0b928d488141f92982aa18"><div class="ttname"><a href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a></div><div class="ttdeci">int glfwGetError(const char **description)</div><div class="ttdoc">Returns and clears the last error for the calling thread.</div></div>
-<div class="ttc" id="agroup__window_html_gab3fb7c3366577daef18c0023e2a8591f"><div class="ttname"><a href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a></div><div class="ttdeci">GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)</div><div class="ttdoc">Sets the framebuffer resize callback for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga371911f12c74c504dd8d47d832d095cb"><div class="ttname"><a href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a></div><div class="ttdeci">void glfwSetWindowSize(GLFWwindow *window, int width, int height)</div><div class="ttdoc">Sets the size of the content area of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga7a56f9e0227e2cd9470d80d919032e08"><div class="ttname"><a href="group__window.html#ga7a56f9e0227e2cd9470d80d919032e08">GLFWwindowrefreshfun</a></div><div class="ttdeci">void(* GLFWwindowrefreshfun)(GLFWwindow *)</div><div class="ttdoc">The function pointer type for window content refresh callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1273</div></div>
-<div class="ttc" id="agroup__input_html_ga39893a4a7e7c3239c98d29c9e084350c"><div class="ttname"><a href="group__input.html#ga39893a4a7e7c3239c98d29c9e084350c">GLFWmousebuttonfun</a></div><div class="ttdeci">void(* GLFWmousebuttonfun)(GLFWwindow *, int, int, int)</div><div class="ttdoc">The function pointer type for mouse button callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1404</div></div>
-<div class="ttc" id="agroup__monitor_html_gaec0bd37af673be8813592849f13e02f0"><div class="ttname"><a href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">GLFWgammaramp</a></div><div class="ttdeci">struct GLFWgammaramp GLFWgammaramp</div><div class="ttdoc">Gamma ramp.</div></div>
-<div class="ttc" id="agroup__window_html_gac81c32f4437de7b3aa58ab62c3d9e5b1"><div class="ttname"><a href="group__window.html#gac81c32f4437de7b3aa58ab62c3d9e5b1">GLFWimage</a></div><div class="ttdeci">struct GLFWimage GLFWimage</div><div class="ttdoc">Image data.</div></div>
-<div class="ttc" id="agroup__input_html_gaa6cf4e7a77158a3b8fd00328b1720a4a"><div class="ttname"><a href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a></div><div class="ttdeci">double glfwGetTime(void)</div><div class="ttdoc">Returns the GLFW time.</div></div>
-<div class="ttc" id="agroup__window_html_ga1abb6d690e8c88e0c8cd1751356dbca8"><div class="ttname"><a href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfwSetWindowPos</a></div><div class="ttdeci">void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)</div><div class="ttdoc">Sets the position of the content area of the specified window.</div></div>
+<div class="ttc" id="agroup__init_html_ga9f8ffaacf3c269cc48eafbf8b9b71197"><div class="ttname"><a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></div><div class="ttdeci">void glfwGetVersion(int *major, int *minor, int *rev)</div><div class="ttdoc">Retrieves the version of the GLFW library.</div></div>
+<div class="ttc" id="agroup__init_html_gaaae48c0a18607ea4a4ba951d939f0901"><div class="ttname"><a href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></div><div class="ttdeci">void glfwTerminate(void)</div><div class="ttdoc">Terminates the GLFW library.</div></div>
+<div class="ttc" id="agroup__init_html_gaff45816610d53f0b83656092a4034f40"><div class="ttname"><a href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a></div><div class="ttdeci">GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)</div><div class="ttdoc">Sets the error callback.</div></div>
+<div class="ttc" id="agroup__input_html_ga0184dcb59f6d85d735503dcaae809727"><div class="ttname"><a href="group__input.html#ga0184dcb59f6d85d735503dcaae809727">GLFWmousebuttonfun</a></div><div class="ttdeci">void(* GLFWmousebuttonfun)(GLFWwindow *window, int button, int action, int mods)</div><div class="ttdoc">The function pointer type for mouse button callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1437</div></div>
+<div class="ttc" id="agroup__input_html_ga01d37b6c40133676b9cea60ca1d7c0cc"><div class="ttname"><a href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a></div><div class="ttdeci">void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)</div><div class="ttdoc">Retrieves the position of the cursor relative to the content area of the window.</div></div>
 <div class="ttc" id="agroup__input_html_ga04b03af936d906ca123c8f4ee08b39e7"><div class="ttname"><a href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a></div><div class="ttdeci">void glfwSetCursorPos(GLFWwindow *window, double xpos, double ypos)</div><div class="ttdoc">Sets the position of the cursor, relative to the content area of the window.</div></div>
-<div class="ttc" id="agroup__input_html_gaed5104612f2fa8e66aa6e846652ad00f"><div class="ttname"><a href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a></div><div class="ttdeci">int glfwUpdateGamepadMappings(const char *string)</div><div class="ttdoc">Adds the specified SDL_GameControllerDB gamepad mappings.</div></div>
-<div class="ttc" id="agroup__input_html_gafbe3e51f670320908cfe4e20d3e5559e"><div class="ttname"><a href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a></div><div class="ttdeci">const char * glfwGetJoystickName(int jid)</div><div class="ttdoc">Returns the name of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_ga4cfad918fa836f09541e7b9acd36686c"><div class="ttname"><a href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a></div><div class="ttdeci">void(* GLFWcursorposfun)(GLFWwindow *, double, double)</div><div class="ttdoc">The function pointer type for cursor position callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1427</div></div>
-<div class="ttc" id="agroup__window_html_gace2afda29b4116ec012e410a6819033e"><div class="ttname"><a href="group__window.html#gace2afda29b4116ec012e410a6819033e">glfwSetWindowAttrib</a></div><div class="ttdeci">void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)</div><div class="ttdoc">Sets an attribute of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga52527a5904b47d802b6b4bb519cdebc7"><div class="ttname"><a href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfwRestoreWindow</a></div><div class="ttdeci">void glfwRestoreWindow(GLFWwindow *window)</div><div class="ttdoc">Restores the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_gac1473feacb5996c01a7a5a33b5066704"><div class="ttname"><a href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a></div><div class="ttdeci">int glfwGetMouseButton(GLFWwindow *window, int button)</div><div class="ttdoc">Returns the last reported state of a mouse button for the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_ga06e660841b3e79c54da4f54a932c5a2c"><div class="ttname"><a href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickHats(int jid, int *count)</div><div class="ttdoc">Returns the state of all hats of the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_ga09b2bd37d328e0b9456c7ec575cc26aa"><div class="ttname"><a href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a></div><div class="ttdeci">uint64_t glfwGetTimerValue(void)</div><div class="ttdoc">Returns the current value of the raw timer.</div></div>
+<div class="ttc" id="agroup__input_html_ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><div class="ttname"><a href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a></div><div class="ttdeci">GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)</div><div class="ttdoc">Sets the Unicode character with modifiers callback.</div></div>
+<div class="ttc" id="agroup__input_html_ga18cefd7265d1fa04f3fd38a6746db5f3"><div class="ttname"><a href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">glfwGetJoystickUserPointer</a></div><div class="ttdeci">void * glfwGetJoystickUserPointer(int jid)</div><div class="ttdoc">Returns the user pointer of the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_ga1ab90a55cf3f58639b893c0f4118cb6e"><div class="ttname"><a href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">GLFWcharfun</a></div><div class="ttdeci">void(* GLFWcharfun)(GLFWwindow *window, unsigned int codepoint)</div><div class="ttdoc">The function pointer type for Unicode character callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1549</div></div>
+<div class="ttc" id="agroup__input_html_ga1caf18159767e761185e49a3be019f8d"><div class="ttname"><a href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a></div><div class="ttdeci">GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)</div><div class="ttdoc">Sets the key callback.</div></div>
+<div class="ttc" id="agroup__input_html_ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><div class="ttname"><a href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a></div><div class="ttdeci">GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)</div><div class="ttdoc">Sets the joystick configuration callback.</div></div>
+<div class="ttc" id="agroup__input_html_ga3289ee876572f6e91f06df3a24824443"><div class="ttname"><a href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a></div><div class="ttdeci">uint64_t glfwGetTimerFrequency(void)</div><div class="ttdoc">Returns the frequency, in Hz, of the raw timer.</div></div>
+<div class="ttc" id="agroup__input_html_ga556f604f73af156c0db0e97c081373c3"><div class="ttname"><a href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)</div><div class="ttdoc">Creates a custom cursor.</div></div>
+<div class="ttc" id="agroup__input_html_ga571e45a030ae4061f746ed56cb76aede"><div class="ttname"><a href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a></div><div class="ttdeci">GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)</div><div class="ttdoc">Sets the scroll callback.</div></div>
+<div class="ttc" id="agroup__input_html_ga5bd751b27b90f865d2ea613533f0453c"><div class="ttname"><a href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">GLFWkeyfun</a></div><div class="ttdeci">void(* GLFWkeyfun)(GLFWwindow *window, int key, int scancode, int action, int mods)</div><div class="ttdoc">The function pointer type for keyboard key callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1528</div></div>
+<div class="ttc" id="agroup__input_html_ga5ffe34739d3dc97efe432ed2d81d9938"><div class="ttname"><a href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickButtons(int jid, int *count)</div><div class="ttdoc">Returns the state of all buttons of the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_ga61acfb1f28f751438dd221225c5e725d"><div class="ttname"><a href="group__input.html#ga61acfb1f28f751438dd221225c5e725d">GLFWgamepadstate</a></div><div class="ttdeci">struct GLFWgamepadstate GLFWgamepadstate</div><div class="ttdoc">Gamepad input state.</div></div>
+<div class="ttc" id="agroup__input_html_ga6659411aec3c7fcef27780e2cb2d9600"><div class="ttname"><a href="group__input.html#ga6659411aec3c7fcef27780e2cb2d9600">glfwGetJoystickGUID</a></div><div class="ttdeci">const char * glfwGetJoystickGUID(int jid)</div><div class="ttdoc">Returns the SDL compatible GUID of the specified joystick.</div></div>
 <div class="ttc" id="agroup__input_html_ga67ddd1b7dcbbaff03e4a76c0ea67103a"><div class="ttname"><a href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a></div><div class="ttdeci">int glfwGetKeyScancode(int key)</div><div class="ttdoc">Returns the platform-specific scancode of the specified key.</div></div>
-<div class="ttc" id="agroup__monitor_html_gad3152e84465fa620b601265ebfcdb21b"><div class="ttname"><a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a></div><div class="ttdeci">void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified monitor.</div></div>
-<div class="ttc" id="agroup__input_html_gae36fb6897d2b7df9b128900c8ce9c507"><div class="ttname"><a href="group__input.html#gae36fb6897d2b7df9b128900c8ce9c507">GLFWcharmodsfun</a></div><div class="ttdeci">void(* GLFWcharmodsfun)(GLFWwindow *, unsigned int, int)</div><div class="ttdoc">The function pointer type for Unicode character with modifiers callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1543</div></div>
-<div class="ttc" id="agroup__input_html_gafca356935e10135016aa49ffa464c355"><div class="ttname"><a href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)</div><div class="ttdoc">Creates a custom cursor.</div></div>
-<div class="ttc" id="agroup__window_html_gaf5d31de9c19c4f994facea64d2b3106c"><div class="ttname"><a href="group__window.html#gaf5d31de9c19c4f994facea64d2b3106c">glfwGetWindowContentScale</a></div><div class="ttdeci">void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_ga237a182e5ec0b21ce64543f3b5e7e2be"><div class="ttname"><a href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a></div><div class="ttdeci">const char * glfwGetKeyName(int key, int scancode)</div><div class="ttdoc">Returns the layout-specific name of the specified printable key.</div></div>
-<div class="ttc" id="agroup__window_html_ga1c5c7eb889c33c7f4d10dd35b327654e"><div class="ttname"><a href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a></div><div class="ttdeci">GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)</div><div class="ttdoc">Sets the refresh callback for the specified window.</div></div>
-<div class="ttc" id="agroup__monitor_html_gab39df645587c8518192aa746c2fb06c3"><div class="ttname"><a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a></div><div class="ttdeci">GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)</div><div class="ttdoc">Sets the monitor configuration callback.</div></div>
-<div class="ttc" id="astructGLFWimage_html_a0b7d95368f0c80d5e5c9875057c7dbec"><div class="ttname"><a href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">GLFWimage::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1694</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html"><div class="ttname"><a href="structGLFWgammaramp.html">GLFWgammaramp</a></div><div class="ttdoc">Gamma ramp.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1658</div></div>
-<div class="ttc" id="agroup__input_html_gaa92336e173da9c8834558b54ee80563b"><div class="ttname"><a href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a></div><div class="ttdeci">void glfwSetInputMode(GLFWwindow *window, int mode, int value)</div><div class="ttdoc">Sets an input option for the specified window.</div></div>
-<div class="ttc" id="agroup__init_html_ga6b8a2639706d5c409fc1287e8f55e928"><div class="ttname"><a href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a></div><div class="ttdeci">void(* GLFWerrorfun)(int, const char *)</div><div class="ttdoc">The function pointer type for error callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1188</div></div>
-<div class="ttc" id="agroup__input_html_ga0192a232a41e4e82948217c8ba94fdfd"><div class="ttname"><a href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">GLFWkeyfun</a></div><div class="ttdeci">void(* GLFWkeyfun)(GLFWwindow *, int, int, int, int)</div><div class="ttdoc">The function pointer type for keyboard key callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1495</div></div>
-<div class="ttc" id="agroup__window_html_gad91b8b047a0c4c6033c38853864c34f8"><div class="ttname"><a href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a></div><div class="ttdeci">GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)</div><div class="ttdoc">Sets the size callback for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga7269a3d1cb100c0081f95fc09afa4949"><div class="ttname"><a href="group__window.html#ga7269a3d1cb100c0081f95fc09afa4949">GLFWwindowmaximizefun</a></div><div class="ttdeci">void(* GLFWwindowmaximizefun)(GLFWwindow *, int)</div><div class="ttdoc">The function pointer type for window maximize callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1336</div></div>
-<div class="ttc" id="agroup__context_html_gac84759b1f6c2d271a4fea8ae89ec980d"><div class="ttname"><a href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a></div><div class="ttdeci">GLFWwindow * glfwGetCurrentContext(void)</div><div class="ttdoc">Returns the window whose context is current on the calling thread.</div></div>
-<div class="ttc" id="agroup__window_html_ga81c76c418af80a1cce7055bccb0ae0a7"><div class="ttname"><a href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a></div><div class="ttdeci">void glfwSetWindowMonitor(GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate)</div><div class="ttdoc">Sets the mode, monitor, video mode and placement of a window.</div></div>
-<div class="ttc" id="agroup__window_html_ga73cb526c000876fd8ddf571570fdb634"><div class="ttname"><a href="group__window.html#ga73cb526c000876fd8ddf571570fdb634">glfwGetWindowPos</a></div><div class="ttdeci">void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)</div><div class="ttdoc">Retrieves the position of the content area of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_gacbe64c339fbd94885e62145563b6dc93"><div class="ttname"><a href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a></div><div class="ttdeci">GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)</div><div class="ttdoc">Sets the maximize callback for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_ga51ab436c41eeaed6db5a0c9403b1c840"><div class="ttname"><a href="group__input.html#ga51ab436c41eeaed6db5a0c9403b1c840">GLFWcursorenterfun</a></div><div class="ttdeci">void(* GLFWcursorenterfun)(GLFWwindow *, int)</div><div class="ttdoc">The function pointer type for cursor enter/leave callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1448</div></div>
-<div class="ttc" id="agroup__vulkan_html_ga70c01918dc9d233a4fbe0681a43018af"><div class="ttname"><a href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a></div><div class="ttdeci">void(* GLFWvkproc)(void)</div><div class="ttdoc">Vulkan API function pointer type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1128</div></div>
-<div class="ttc" id="agroup__input_html_gaf5b859dbe19bdf434e42695ea45cc5f4"><div class="ttname"><a href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4">glfwGetInputMode</a></div><div class="ttdeci">int glfwGetInputMode(GLFWwindow *window, int mode)</div><div class="ttdoc">Returns the value of an input option for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga5d877f09e968cef7a360b513306f17ff"><div class="ttname"><a href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a></div><div class="ttdeci">void glfwSetWindowTitle(GLFWwindow *window, const char *title)</div><div class="ttdoc">Sets the title of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1152</div></div>
-<div class="ttc" id="agroup__monitor_html_ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"><div class="ttname"><a href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a></div><div class="ttdeci">void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)</div><div class="ttdoc">Retrieves the work area of the monitor.</div></div>
-<div class="ttc" id="agroup__input_html_ga6b2f72d64d636b48a727b437cbb7489e"><div class="ttname"><a href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a></div><div class="ttdeci">void glfwSetJoystickUserPointer(int jid, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified joystick.</div></div>
-<div class="ttc" id="agroup__init_html_gaaae48c0a18607ea4a4ba951d939f0901"><div class="ttname"><a href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></div><div class="ttdeci">void glfwTerminate(void)</div><div class="ttdoc">Terminates the GLFW library.</div></div>
-<div class="ttc" id="agroup__context_html_ga87425065c011cef1ebd6aac75e059dfa"><div class="ttname"><a href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></div><div class="ttdeci">int glfwExtensionSupported(const char *extension)</div><div class="ttdoc">Returns whether the specified extension is available.</div></div>
 <div class="ttc" id="agroup__input_html_ga6ab84420974d812bee700e45284a723c"><div class="ttname"><a href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a></div><div class="ttdeci">GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)</div><div class="ttdoc">Sets the mouse button callback.</div></div>
-<div class="ttc" id="agroup__window_html_ga15a5a1ee5b3c2ca6b15ca209a12efd14"><div class="ttname"><a href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a></div><div class="ttdeci">void glfwSwapBuffers(GLFWwindow *window)</div><div class="ttdoc">Swaps the front and back buffers of the specified window.</div></div>
-<div class="ttc" id="agroup__context_html_ga1c04dc242268f827290fe40aa1c91157"><div class="ttname"><a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a></div><div class="ttdeci">void glfwMakeContextCurrent(GLFWwindow *window)</div><div class="ttdoc">Makes the context of the specified window current for the calling thread.</div></div>
-<div class="ttc" id="agroup__context_html_ga6d4e0cdf151b5e579bd67f13202994ed"><div class="ttname"><a href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a></div><div class="ttdeci">void glfwSwapInterval(int interval)</div><div class="ttdoc">Sets the swap interval for the current context.</div></div>
-<div class="ttc" id="agroup__input_html_ga2d8d0634bb81c180899aeb07477a67ea"><div class="ttname"><a href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickHats(int jid, int *count)</div><div class="ttdoc">Returns the state of all hats of the specified joystick.</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_af310977f58d2e3b188175b6e3d314047"><div class="ttname"><a href="structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047">GLFWvidmode::blueBits</a></div><div class="ttdeci">int blueBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1640</div></div>
-<div class="ttc" id="agroup__window_html_ga1a9fd382058c53101b21cf211898f1f1"><div class="ttname"><a href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1">glfwGetWindowFrameSize</a></div><div class="ttdeci">void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)</div><div class="ttdoc">Retrieves the size of the frame of the window.</div></div>
-<div class="ttc" id="agroup__input_html_ga5c71e3533b2d384db9317fcd7661b210"><div class="ttname"><a href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a></div><div class="ttdeci">const char * glfwGetGamepadName(int jid)</div><div class="ttdoc">Returns the human-readable gamepad name for the specified joystick.</div></div>
-<div class="ttc" id="agroup__window_html_ga24e02fbfefbb81fc45320989f8140ab5"><div class="ttname"><a href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a></div><div class="ttdeci">int glfwWindowShouldClose(GLFWwindow *window)</div><div class="ttdoc">Checks the close flag of the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_gaf59589ef6e8b8c8b5ad184b25afd4dc0"><div class="ttname"><a href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a></div><div class="ttdeci">void glfwSetTime(double time)</div><div class="ttdoc">Sets the GLFW time.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga583f0ffd0d29613d8cd172b996bbf0dd"><div class="ttname"><a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a></div><div class="ttdeci">void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)</div><div class="ttdoc">Sets the current gamma ramp for the specified monitor.</div></div>
-<div class="ttc" id="agroup__input_html_ga01d37b6c40133676b9cea60ca1d7c0cc"><div class="ttname"><a href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a></div><div class="ttdeci">void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)</div><div class="ttdoc">Retrieves the position of the cursor relative to the content area of the window.</div></div>
-<div class="ttc" id="agroup__init_html_ga110fd1d3f0412822b4f1908c026f724a"><div class="ttname"><a href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a></div><div class="ttdeci">void glfwInitHint(int hint, int value)</div><div class="ttdoc">Sets the specified init hint to the desired value.</div></div>
-<div class="ttc" id="agroup__input_html_gad0f676860f329d80f7e47e9f06a96f00"><div class="ttname"><a href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a></div><div class="ttdeci">int glfwJoystickIsGamepad(int jid)</div><div class="ttdoc">Returns whether the specified joystick has a gamepad mapping.</div></div>
-<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
-<div class="ttc" id="agroup__window_html_ga554e37d781f0a997656c26b2c56c835e"><div class="ttname"><a href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a></div><div class="ttdeci">void glfwWaitEvents(void)</div><div class="ttdoc">Waits until events are queued and processes them.</div></div>
+<div class="ttc" id="agroup__input_html_ga6b2f72d64d636b48a727b437cbb7489e"><div class="ttname"><a href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a></div><div class="ttdeci">void glfwSetJoystickUserPointer(int jid, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_ga71a5b20808ea92193d65c21b82580355"><div class="ttname"><a href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a></div><div class="ttdeci">const char * glfwGetClipboardString(GLFWwindow *window)</div><div class="ttdoc">Returns the contents of the clipboard as a string.</div></div>
 <div class="ttc" id="agroup__input_html_ga81b952cd1764274d0db7fb3c5a79ba6a"><div class="ttname"><a href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a></div><div class="ttdeci">void glfwDestroyCursor(GLFWcursor *cursor)</div><div class="ttdoc">Destroys a cursor.</div></div>
-<div class="ttc" id="agroup__input_html_gadb3cbf44af90a1536f519659a53bddd6"><div class="ttname"><a href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickButtons(int jid, int *count)</div><div class="ttdoc">Returns the state of all buttons of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_ga4687e2199c60a18a8dd1da532e6d75c9"><div class="ttname"><a href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a></div><div class="ttdeci">void(* GLFWscrollfun)(GLFWwindow *, double, double)</div><div class="ttdoc">The function pointer type for scroll callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1469</div></div>
-<div class="ttc" id="agroup__monitor_html_ga79a34ee22ff080ca954a9663e4679daf"><div class="ttname"><a href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a></div><div class="ttdeci">const char * glfwGetMonitorName(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the name of the specified monitor.</div></div>
+<div class="ttc" id="agroup__input_html_ga89261ae18c75e863aaf2656ecdd238f4"><div class="ttname"><a href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a></div><div class="ttdeci">struct GLFWcursor GLFWcursor</div><div class="ttdoc">Opaque cursor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1197</div></div>
+<div class="ttc" id="agroup__input_html_ga8aea73a1a25cc6c0486a617019f56728"><div class="ttname"><a href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a></div><div class="ttdeci">const char * glfwGetGamepadName(int jid)</div><div class="ttdoc">Returns the human-readable gamepad name for the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_gaa21ad5986ae9a26077a40142efb56243"><div class="ttname"><a href="group__input.html#gaa21ad5986ae9a26077a40142efb56243">GLFWjoystickfun</a></div><div class="ttdeci">void(* GLFWjoystickfun)(int jid, int event)</div><div class="ttdoc">The function pointer type for joystick configuration callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1642</div></div>
+<div class="ttc" id="agroup__input_html_gaa6cf4e7a77158a3b8fd00328b1720a4a"><div class="ttname"><a href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a></div><div class="ttdeci">double glfwGetTime(void)</div><div class="ttdoc">Returns the GLFW time.</div></div>
+<div class="ttc" id="agroup__input_html_gaa92336e173da9c8834558b54ee80563b"><div class="ttname"><a href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a></div><div class="ttdeci">void glfwSetInputMode(GLFWwindow *window, int mode, int value)</div><div class="ttdoc">Sets an input option for the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_gaa93dc4818ac9ab32532909d53a337cbe"><div class="ttname"><a href="group__input.html#gaa93dc4818ac9ab32532909d53a337cbe">GLFWcursorenterfun</a></div><div class="ttdeci">void(* GLFWcursorenterfun)(GLFWwindow *window, int entered)</div><div class="ttdoc">The function pointer type for cursor enter/leave callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1481</div></div>
+<div class="ttc" id="agroup__input_html_gaaba73c3274062c18723b7f05862d94b2"><div class="ttname"><a href="group__input.html#gaaba73c3274062c18723b7f05862d94b2">GLFWdropfun</a></div><div class="ttdeci">void(* GLFWdropfun)(GLFWwindow *window, int path_count, const char *paths[])</div><div class="ttdoc">The function pointer type for path drop callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1600</div></div>
 <div class="ttc" id="agroup__input_html_gab25c4a220fd8f5717718dbc487828996"><div class="ttname"><a href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a></div><div class="ttdeci">GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)</div><div class="ttdoc">Sets the Unicode character callback.</div></div>
-<div class="ttc" id="agroup__window_html_gac314fa6cec7d2d307be9963e2709cc90"><div class="ttname"><a href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfwSetWindowSizeLimits</a></div><div class="ttdeci">void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)</div><div class="ttdoc">Sets the size limits of the specified window.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga721867d84c6d18d6790d64d2847ca0b1"><div class="ttname"><a href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga8a7ee579a66720f24d656526f3e44c63"><div class="ttname"><a href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a></div><div class="ttdeci">void(* GLFWmonitorfun)(GLFWmonitor *, int)</div><div class="ttdoc">The function pointer type for monitor configuration callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1588</div></div>
-<div class="ttc" id="agroup__input_html_gaa67aa597e974298c748bfe4fb17d406d"><div class="ttname"><a href="group__input.html#gaa67aa597e974298c748bfe4fb17d406d">GLFWjoystickfun</a></div><div class="ttdeci">void(* GLFWjoystickfun)(int, int)</div><div class="ttdoc">The function pointer type for joystick configuration callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1609</div></div>
-<div class="ttc" id="agroup__input_html_gae168c2c0b8cf2a1cb67c6b3c00bdd543"><div class="ttname"><a href="group__input.html#gae168c2c0b8cf2a1cb67c6b3c00bdd543">glfwGetJoystickGUID</a></div><div class="ttdeci">const char * glfwGetJoystickGUID(int jid)</div><div class="ttdoc">Returns the SDL compatible GUID of the specified joystick.</div></div>
-<div class="ttc" id="agroup__window_html_gac2d83c4a10f071baf841f6730528e66c"><div class="ttname"><a href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a></div><div class="ttdeci">GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)</div><div class="ttdoc">Sets the focus callback for the specified window.</div></div>
-<div class="ttc" id="agroup__vulkan_html_ga1abcbe61033958f22f63ef82008874b1"><div class="ttname"><a href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a></div><div class="ttdeci">const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)</div><div class="ttdoc">Returns the Vulkan instance extensions required by GLFW.</div></div>
-<div class="ttc" id="agroup__window_html_gada646d775a7776a95ac000cfc1885331"><div class="ttname"><a href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a></div><div class="ttdeci">GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)</div><div class="ttdoc">Sets the close callback for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga873780357abd3f3a081d71a40aae45a1"><div class="ttname"><a href="group__window.html#ga873780357abd3f3a081d71a40aae45a1">glfwFocusWindow</a></div><div class="ttdeci">void glfwFocusWindow(GLFWwindow *window)</div><div class="ttdoc">Brings the specified window to front and sets input focus.</div></div>
-<div class="ttc" id="agroup__context_html_ga3d47c2d2fbe0be9c505d0e04e91a133c"><div class="ttname"><a href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a></div><div class="ttdeci">void(* GLFWglproc)(void)</div><div class="ttdoc">Client API function pointer type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1114</div></div>
-<div class="ttc" id="agroup__input_html_ga5aba1d704d9ab539282b1fbe9f18bb94"><div class="ttname"><a href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a></div><div class="ttdeci">const char * glfwGetClipboardString(GLFWwindow *window)</div><div class="ttdoc">Returns the contents of the clipboard as a string.</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_ac65942a5f6981695517437a9d571d03c"><div class="ttname"><a href="structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c">GLFWvidmode::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1631</div></div>
-<div class="ttc" id="agroup__window_html_gaf2832ebb5aa6c252a2d261de002c92d6"><div class="ttname"><a href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a></div><div class="ttdeci">GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)</div><div class="ttdoc">Sets the window content scale callback for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga08bdfbba88934f9c4f92fd757979ac74"><div class="ttname"><a href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a></div><div class="ttdeci">GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)</div><div class="ttdoc">Sets the position callback for the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_gab773f0ee0a07cff77a210cea40bc1f6b"><div class="ttname"><a href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a></div><div class="ttdeci">GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)</div><div class="ttdoc">Sets the path drop callback.</div></div>
+<div class="ttc" id="agroup__input_html_gaba1f022c5eb07dfac421df34cdcd31dd"><div class="ttname"><a href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a></div><div class="ttdeci">void glfwSetClipboardString(GLFWwindow *window, const char *string)</div><div class="ttdoc">Sets the clipboard to the specified string.</div></div>
+<div class="ttc" id="agroup__input_html_gac1473feacb5996c01a7a5a33b5066704"><div class="ttname"><a href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a></div><div class="ttdeci">int glfwGetMouseButton(GLFWwindow *window, int button)</div><div class="ttdoc">Returns the last reported state of a mouse button for the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_gac1f879ab7435d54d4d79bb469fe225d7"><div class="ttname"><a href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a></div><div class="ttdeci">GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)</div><div class="ttdoc">Sets the cursor position callback.</div></div>
+<div class="ttc" id="agroup__input_html_gac3cf64f90b6219c05ac7b7822d5a4b8f"><div class="ttname"><a href="group__input.html#gac3cf64f90b6219c05ac7b7822d5a4b8f">GLFWcharmodsfun</a></div><div class="ttdeci">void(* GLFWcharmodsfun)(GLFWwindow *window, unsigned int codepoint, int mods)</div><div class="ttdoc">The function pointer type for Unicode character with modifiers callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1576</div></div>
+<div class="ttc" id="agroup__input_html_gac6a8e769e18e0bcfa9097793fc2c3978"><div class="ttname"><a href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a></div><div class="ttdeci">const char * glfwGetJoystickName(int jid)</div><div class="ttdoc">Returns the name of the specified joystick.</div></div>
+<div class="ttc" id="agroup__input_html_gad0f676860f329d80f7e47e9f06a96f00"><div class="ttname"><a href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a></div><div class="ttdeci">int glfwJoystickIsGamepad(int jid)</div><div class="ttdoc">Returns whether the specified joystick has a gamepad mapping.</div></div>
 <div class="ttc" id="agroup__input_html_gad27f8ad0142c038a281466c0966817d8"><div class="ttname"><a href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a></div><div class="ttdeci">GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)</div><div class="ttdoc">Sets the cursor enter/leave callback.</div></div>
 <div class="ttc" id="agroup__input_html_gad3b4f38c8d5dae036bc8fa959e18343e"><div class="ttname"><a href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a></div><div class="ttdeci">void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)</div><div class="ttdoc">Sets the cursor for the window.</div></div>
-<div class="ttc" id="agroup__window_html_ga3e218ef9ff826129c55a7d5f6971a285"><div class="ttname"><a href="group__window.html#ga3e218ef9ff826129c55a7d5f6971a285">GLFWframebuffersizefun</a></div><div class="ttdeci">void(* GLFWframebuffersizefun)(GLFWwindow *, int, int)</div><div class="ttdoc">The function pointer type for framebuffer size callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1357</div></div>
-<div class="ttc" id="agroup__monitor_html_ga3fba51c8bd36491d4712aa5bd074a537"><div class="ttname"><a href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a></div><div class="ttdeci">GLFWmonitor ** glfwGetMonitors(int *count)</div><div class="ttdoc">Returns the currently connected monitors.</div></div>
+<div class="ttc" id="agroup__input_html_gad6fae41b3ac2e4209aaa87b596c57f68"><div class="ttname"><a href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a></div><div class="ttdeci">void(* GLFWcursorposfun)(GLFWwindow *window, double xpos, double ypos)</div><div class="ttdoc">The function pointer type for cursor position callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1460</div></div>
+<div class="ttc" id="agroup__input_html_gadccddea8bce6113fa459de379ddaf051"><div class="ttname"><a href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a></div><div class="ttdeci">int glfwGetGamepadState(int jid, GLFWgamepadstate *state)</div><div class="ttdoc">Retrieves the state of the specified joystick remapped as a gamepad.</div></div>
+<div class="ttc" id="agroup__input_html_gadd341da06bc8d418b4dc3a3518af9ad2"><div class="ttname"><a href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a></div><div class="ttdeci">int glfwGetKey(GLFWwindow *window, int key)</div><div class="ttdoc">Returns the last reported state of a keyboard key for the specified window.</div></div>
 <div class="ttc" id="agroup__input_html_gae4ee0dbd0d256183e1ea4026d897e1c2"><div class="ttname"><a href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a></div><div class="ttdeci">int glfwRawMouseMotionSupported(void)</div><div class="ttdoc">Returns whether raw mouse motion is supported.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga702750e24313a686d3637297b6e85fda"><div class="ttname"><a href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a></div><div class="ttdeci">void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified monitor.</div></div>
-<div class="ttc" id="astructGLFWimage_html_a0c532a5c2bb715555279b7817daba0fb"><div class="ttname"><a href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">GLFWimage::pixels</a></div><div class="ttdeci">unsigned char * pixels</div><div class="ttdef"><b>Definition:</b> glfw3.h:1697</div></div>
-<div class="ttc" id="agroup__monitor_html_ga820b0ce9a5237d645ea7cbb4bd383458"><div class="ttname"><a href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)</div><div class="ttdoc">Returns the available video modes for the specified monitor.</div></div>
-<div class="ttc" id="agroup__window_html_ga61be47917b72536a148300f46494fc66"><div class="ttname"><a href="group__window.html#ga61be47917b72536a148300f46494fc66">glfwShowWindow</a></div><div class="ttdeci">void glfwShowWindow(GLFWwindow *window)</div><div class="ttdoc">Makes the specified window visible.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_affccc6f5df47820b6562d709da3a5a3a"><div class="ttname"><a href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">GLFWgammaramp::green</a></div><div class="ttdeci">unsigned short * green</div><div class="ttdef"><b>Definition:</b> glfw3.h:1665</div></div>
-<div class="ttc" id="agroup__input_html_ga0b86867abb735af3b959f61c44b1d029"><div class="ttname"><a href="group__input.html#ga0b86867abb735af3b959f61c44b1d029">GLFWgamepadstate</a></div><div class="ttdeci">struct GLFWgamepadstate GLFWgamepadstate</div><div class="ttdoc">Gamepad input state.</div></div>
-<div class="ttc" id="agroup__window_html_ga2f8d59323fc4692c1d54ba08c863a703"><div class="ttname"><a href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">glfwRequestWindowAttention</a></div><div class="ttdeci">void glfwRequestWindowAttention(GLFWwindow *window)</div><div class="ttdoc">Requests user attention to the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_gaeaed62e69c3bd62b7ff8f7b19913ce4f"><div class="ttname"><a href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a></div><div class="ttdeci">const char * glfwGetKeyName(int key, int scancode)</div><div class="ttdoc">Returns the layout-specific name of the specified printable key.</div></div>
+<div class="ttc" id="agroup__input_html_gaeb1c0191d3140a233a682987c61eb408"><div class="ttname"><a href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a></div><div class="ttdeci">const float * glfwGetJoystickAxes(int jid, int *count)</div><div class="ttdoc">Returns the values of all axes of the specified joystick.</div></div>
 <div class="ttc" id="agroup__input_html_gaed0966cee139d815317f9ffcba64c9f1"><div class="ttname"><a href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a></div><div class="ttdeci">int glfwJoystickPresent(int jid)</div><div class="ttdoc">Returns whether the specified joystick is present.</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html_a27e9896b51c65df15fba2c7139bfdb9a"><div class="ttname"><a href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">GLFWgamepadstate::buttons</a></div><div class="ttdeci">unsigned char buttons[15]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1716</div></div>
-<div class="ttc" id="agroup__vulkan_html_ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><div class="ttname"><a href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a></div><div class="ttdeci">int glfwVulkanSupported(void)</div><div class="ttdoc">Returns whether the Vulkan loader and an ICD have been found.</div></div>
+<div class="ttc" id="agroup__input_html_gaed5104612f2fa8e66aa6e846652ad00f"><div class="ttname"><a href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a></div><div class="ttdeci">int glfwUpdateGamepadMappings(const char *string)</div><div class="ttdoc">Adds the specified SDL_GameControllerDB gamepad mappings.</div></div>
+<div class="ttc" id="agroup__input_html_gaf2fb2eb2c9dd842d1cef8a34e3c6403e"><div class="ttname"><a href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateStandardCursor(int shape)</div><div class="ttdoc">Creates a cursor with a standard shape.</div></div>
+<div class="ttc" id="agroup__input_html_gaf59589ef6e8b8c8b5ad184b25afd4dc0"><div class="ttname"><a href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a></div><div class="ttdeci">void glfwSetTime(double time)</div><div class="ttdoc">Sets the GLFW time.</div></div>
+<div class="ttc" id="agroup__input_html_gaf5b859dbe19bdf434e42695ea45cc5f4"><div class="ttname"><a href="group__input.html#gaf5b859dbe19bdf434e42695ea45cc5f4">glfwGetInputMode</a></div><div class="ttdeci">int glfwGetInputMode(GLFWwindow *window, int mode)</div><div class="ttdoc">Returns the value of an input option for the specified window.</div></div>
+<div class="ttc" id="agroup__input_html_gaf656112c33de3efdb227fa58f0134cf5"><div class="ttname"><a href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a></div><div class="ttdeci">void(* GLFWscrollfun)(GLFWwindow *window, double xoffset, double yoffset)</div><div class="ttdoc">The function pointer type for scroll callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1502</div></div>
 <div class="ttc" id="agroup__monitor_html_ga102f54e7acc9149edbcf0997152df8c9"><div class="ttname"><a href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a></div><div class="ttdeci">void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)</div><div class="ttdoc">Returns the position of the monitor's viewport on the virtual screen.</div></div>
-<div class="ttc" id="agroup__window_html_ga49401f82a1ba5f15db5590728314d47c"><div class="ttname"><a href="group__window.html#ga49401f82a1ba5f15db5590728314d47c">glfwHideWindow</a></div><div class="ttdeci">void glfwHideWindow(GLFWwindow *window)</div><div class="ttdoc">Hides the specified window.</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_a698dcb200562051a7249cb6ae154c71d"><div class="ttname"><a href="structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d">GLFWvidmode::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1628</div></div>
-<div class="ttc" id="agroup__window_html_ga3f541387449d911274324ae7f17ec56b"><div class="ttname"><a href="group__window.html#ga3f541387449d911274324ae7f17ec56b">glfwMaximizeWindow</a></div><div class="ttdeci">void glfwMaximizeWindow(GLFWwindow *window)</div><div class="ttdoc">Maximizes the specified window.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_ad620e1cffbff9a32c51bca46301b59a5"><div class="ttname"><a href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">GLFWgammaramp::size</a></div><div class="ttdeci">unsigned int size</div><div class="ttdef"><b>Definition:</b> glfw3.h:1671</div></div>
+<div class="ttc" id="agroup__monitor_html_ga1adbfbfb8cd58b23cfee82e574fbbdc5"><div class="ttname"><a href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a></div><div class="ttdeci">void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the user pointer of the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga583f0ffd0d29613d8cd172b996bbf0dd"><div class="ttname"><a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a></div><div class="ttdeci">void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)</div><div class="ttdoc">Sets the current gamma ramp for the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga6ac582625c990220785ddd34efa3169a"><div class="ttname"><a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a></div><div class="ttdeci">void glfwSetGamma(GLFWmonitor *monitor, float gamma)</div><div class="ttdoc">Generates a gamma ramp and sets it for the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga702750e24313a686d3637297b6e85fda"><div class="ttname"><a href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a></div><div class="ttdeci">void glfwSetMonitorUserPointer(GLFWmonitor *monitor, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga70b1156d5d24e9928f145d6c864369d2"><div class="ttname"><a href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a></div><div class="ttdeci">GLFWmonitor ** glfwGetMonitors(int *count)</div><div class="ttdoc">Returns the currently connected monitors.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"><div class="ttname"><a href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a></div><div class="ttdeci">void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)</div><div class="ttdoc">Retrieves the work area of the monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga76ba90debcf0062b5c4b73052b24f96f"><div class="ttname"><a href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a></div><div class="ttdeci">const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current gamma ramp for the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga7af83e13489d90379588fb331b9e4b68"><div class="ttname"><a href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a></div><div class="ttdeci">const char * glfwGetMonitorName(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the name of the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga7d8bffc6c55539286a6bd20d32a8d7ea"><div class="ttname"><a href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a></div><div class="ttdeci">void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)</div><div class="ttdoc">Returns the physical size of the monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1173</div></div>
+<div class="ttc" id="agroup__monitor_html_ga902c2816ac9b34b757282daab59b2565"><div class="ttname"><a href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">GLFWvidmode</a></div><div class="ttdeci">struct GLFWvidmode GLFWvidmode</div><div class="ttdoc">Video mode type.</div></div>
+<div class="ttc" id="agroup__monitor_html_ga939cf093cb0af0498b7b54dc2e181404"><div class="ttname"><a href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">GLFWgammaramp</a></div><div class="ttdeci">struct GLFWgammaramp GLFWgammaramp</div><div class="ttdoc">Gamma ramp.</div></div>
+<div class="ttc" id="agroup__monitor_html_gaabe16caca8dea952504dfdebdf4cd249"><div class="ttname"><a href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a></div><div class="ttdeci">void(* GLFWmonitorfun)(GLFWmonitor *monitor, int event)</div><div class="ttdoc">The function pointer type for monitor configuration callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1621</div></div>
+<div class="ttc" id="agroup__monitor_html_gab39df645587c8518192aa746c2fb06c3"><div class="ttname"><a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a></div><div class="ttdeci">GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)</div><div class="ttdoc">Sets the monitor configuration callback.</div></div>
+<div class="ttc" id="agroup__monitor_html_gaba376fa7e76634b4788bddc505d6c9d5"><div class="ttname"><a href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current mode of the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_gac3adb24947eb709e1874028272e5dfc5"><div class="ttname"><a href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_gad2e24d2843cb7d6c26202cddd530fc1b"><div class="ttname"><a href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)</div><div class="ttdoc">Returns the available video modes for the specified monitor.</div></div>
+<div class="ttc" id="agroup__monitor_html_gad3152e84465fa620b601265ebfcdb21b"><div class="ttname"><a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a></div><div class="ttdeci">void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified monitor.</div></div>
 <div class="ttc" id="agroup__vulkan_html_ga1a24536bec3f80b08ead18e28e6ae965"><div class="ttname"><a href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965">glfwCreateWindowSurface</a></div><div class="ttdeci">VkResult glfwCreateWindowSurface(VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface)</div><div class="ttdoc">Creates a Vulkan surface for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_gabf24451c7ceb1952bc02b17a0d5c3e5f"><div class="ttname"><a href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">GLFWcharfun</a></div><div class="ttdeci">void(* GLFWcharfun)(GLFWwindow *, unsigned int)</div><div class="ttdoc">The function pointer type for Unicode character callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1516</div></div>
-<div class="ttc" id="agroup__window_html_ga1da46b65eafcc1a7ff0adb8f4a7b72fd"><div class="ttname"><a href="group__window.html#ga1da46b65eafcc1a7ff0adb8f4a7b72fd">GLFWwindowcontentscalefun</a></div><div class="ttdeci">void(* GLFWwindowcontentscalefun)(GLFWwindow *, float, float)</div><div class="ttdoc">The function pointer type for window content scale callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1378</div></div>
-<div class="ttc" id="agroup__input_html_ga09b2bd37d328e0b9456c7ec575cc26aa"><div class="ttname"><a href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a></div><div class="ttdeci">uint64_t glfwGetTimerValue(void)</div><div class="ttdoc">Returns the current value of the raw timer.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_a2cce5d968734b685623eef913e635138"><div class="ttname"><a href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">GLFWgammaramp::red</a></div><div class="ttdeci">unsigned short * red</div><div class="ttdef"><b>Definition:</b> glfw3.h:1662</div></div>
-<div class="ttc" id="agroup__window_html_gaa77c4898dfb83344a6b4f76aa16b9a4a"><div class="ttname"><a href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a></div><div class="ttdeci">void glfwDefaultWindowHints(void)</div><div class="ttdoc">Resets all window hints to their default values.</div></div>
-<div class="ttc" id="agroup__input_html_gac1f879ab7435d54d4d79bb469fe225d7"><div class="ttname"><a href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a></div><div class="ttdeci">GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)</div><div class="ttdoc">Sets the cursor position callback.</div></div>
-<div class="ttc" id="agroup__input_html_ga3289ee876572f6e91f06df3a24824443"><div class="ttname"><a href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a></div><div class="ttdeci">uint64_t glfwGetTimerFrequency(void)</div><div class="ttdoc">Returns the frequency, in Hz, of the raw timer.</div></div>
-<div class="ttc" id="agroup__window_html_gadd7ccd39fe7a7d1f0904666ae5932dc5"><div class="ttname"><a href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a></div><div class="ttdeci">void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)</div><div class="ttdoc">Sets the icon for the specified window.</div></div>
-<div class="ttc" id="astructGLFWimage_html_af6a71cc999fe6d3aea31dd7e9687d835"><div class="ttname"><a href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">GLFWimage::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1691</div></div>
-<div class="ttc" id="agroup__window_html_ga5c336fddf2cbb5b92f65f10fb6043344"><div class="ttname"><a href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
-<div class="ttc" id="agroup__input_html_ga0b7f4ad13c2b17435ff13b6dcfb4e43c"><div class="ttname"><a href="group__input.html#ga0b7f4ad13c2b17435ff13b6dcfb4e43c">glfwSetCharModsCallback</a></div><div class="ttdeci">GLFWcharmodsfun glfwSetCharModsCallback(GLFWwindow *window, GLFWcharmodsfun callback)</div><div class="ttdoc">Sets the Unicode character with modifiers callback.</div></div>
+<div class="ttc" id="agroup__vulkan_html_ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><div class="ttname"><a href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a></div><div class="ttdeci">int glfwVulkanSupported(void)</div><div class="ttdoc">Returns whether the Vulkan loader and an ICD have been found.</div></div>
+<div class="ttc" id="agroup__vulkan_html_ga70c01918dc9d233a4fbe0681a43018af"><div class="ttname"><a href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a></div><div class="ttdeci">void(* GLFWvkproc)(void)</div><div class="ttdoc">Vulkan API function pointer type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1161</div></div>
+<div class="ttc" id="agroup__vulkan_html_ga99ad342d82f4a3421e2864978cb6d1d6"><div class="ttname"><a href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a></div><div class="ttdeci">const char ** glfwGetRequiredInstanceExtensions(uint32_t *count)</div><div class="ttdoc">Returns the Vulkan instance extensions required by GLFW.</div></div>
+<div class="ttc" id="agroup__vulkan_html_gadf228fac94c5fd8f12423ec9af9ff1e9"><div class="ttname"><a href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a></div><div class="ttdeci">GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)</div><div class="ttdoc">Returns the address of the specified Vulkan instance function.</div></div>
+<div class="ttc" id="agroup__vulkan_html_gaff3823355cdd7e2f3f9f4d9ea9518d92"><div class="ttname"><a href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a></div><div class="ttdeci">int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)</div><div class="ttdoc">Returns whether the specified queue family can present images.</div></div>
+<div class="ttc" id="agroup__window_html_ga08bdfbba88934f9c4f92fd757979ac74"><div class="ttname"><a href="group__window.html#ga08bdfbba88934f9c4f92fd757979ac74">glfwSetWindowPosCallback</a></div><div class="ttdeci">GLFWwindowposfun glfwSetWindowPosCallback(GLFWwindow *window, GLFWwindowposfun callback)</div><div class="ttdoc">Sets the position callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga0e2637a4161afb283f5300c7f94785c9"><div class="ttname"><a href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a></div><div class="ttdeci">void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the framebuffer of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga15a5a1ee5b3c2ca6b15ca209a12efd14"><div class="ttname"><a href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a></div><div class="ttdeci">void glfwSwapBuffers(GLFWwindow *window)</div><div class="ttdoc">Swaps the front and back buffers of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga1a9fd382058c53101b21cf211898f1f1"><div class="ttname"><a href="group__window.html#ga1a9fd382058c53101b21cf211898f1f1">glfwGetWindowFrameSize</a></div><div class="ttdeci">void glfwGetWindowFrameSize(GLFWwindow *window, int *left, int *top, int *right, int *bottom)</div><div class="ttdoc">Retrieves the size of the frame of the window.</div></div>
+<div class="ttc" id="agroup__window_html_ga1abb6d690e8c88e0c8cd1751356dbca8"><div class="ttname"><a href="group__window.html#ga1abb6d690e8c88e0c8cd1751356dbca8">glfwSetWindowPos</a></div><div class="ttdeci">void glfwSetWindowPos(GLFWwindow *window, int xpos, int ypos)</div><div class="ttdoc">Sets the position of the content area of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga1bb559c0ebaad63c5c05ad2a066779c4"><div class="ttname"><a href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4">glfwIconifyWindow</a></div><div class="ttdeci">void glfwIconifyWindow(GLFWwindow *window)</div><div class="ttdoc">Iconifies the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga1c5c7eb889c33c7f4d10dd35b327654e"><div class="ttname"><a href="group__window.html#ga1c5c7eb889c33c7f4d10dd35b327654e">glfwSetWindowRefreshCallback</a></div><div class="ttdeci">GLFWwindowrefreshfun glfwSetWindowRefreshCallback(GLFWwindow *window, GLFWwindowrefreshfun callback)</div><div class="ttdoc">Sets the refresh callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga24e02fbfefbb81fc45320989f8140ab5"><div class="ttname"><a href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a></div><div class="ttdeci">int glfwWindowShouldClose(GLFWwindow *window)</div><div class="ttdoc">Checks the close flag of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga2f8d59323fc4692c1d54ba08c863a703"><div class="ttname"><a href="group__window.html#ga2f8d59323fc4692c1d54ba08c863a703">glfwRequestWindowAttention</a></div><div class="ttdeci">void glfwRequestWindowAttention(GLFWwindow *window)</div><div class="ttdoc">Requests user attention to the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga3017196fdaec33ac3e095765176c2a90"><div class="ttname"><a href="group__window.html#ga3017196fdaec33ac3e095765176c2a90">GLFWwindowmaximizefun</a></div><div class="ttdeci">void(* GLFWwindowmaximizefun)(GLFWwindow *window, int maximized)</div><div class="ttdoc">The function pointer type for window maximize callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1369</div></div>
+<div class="ttc" id="agroup__window_html_ga3555a418df92ad53f917597fe2f64aeb"><div class="ttname"><a href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
+<div class="ttc" id="agroup__window_html_ga35c658cccba236f26e7adee0e25f6a4f"><div class="ttname"><a href="group__window.html#ga35c658cccba236f26e7adee0e25f6a4f">GLFWwindowiconifyfun</a></div><div class="ttdeci">void(* GLFWwindowiconifyfun)(GLFWwindow *window, int iconified)</div><div class="ttdoc">The function pointer type for window iconify callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1348</div></div>
+<div class="ttc" id="agroup__window_html_ga371911f12c74c504dd8d47d832d095cb"><div class="ttname"><a href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a></div><div class="ttdeci">void glfwSetWindowSize(GLFWwindow *window, int width, int height)</div><div class="ttdoc">Sets the size of the content area of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
+<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1185</div></div>
+<div class="ttc" id="agroup__window_html_ga3d2fc6026e690ab31a13f78bc9fd3651"><div class="ttname"><a href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a></div><div class="ttdeci">void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga3f541387449d911274324ae7f17ec56b"><div class="ttname"><a href="group__window.html#ga3f541387449d911274324ae7f17ec56b">glfwMaximizeWindow</a></div><div class="ttdeci">void glfwMaximizeWindow(GLFWwindow *window)</div><div class="ttdoc">Maximizes the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga431663a1427d2eb3a273bc398b6737b5"><div class="ttname"><a href="group__window.html#ga431663a1427d2eb3a273bc398b6737b5">GLFWwindowrefreshfun</a></div><div class="ttdeci">void(* GLFWwindowrefreshfun)(GLFWwindow *window)</div><div class="ttdoc">The function pointer type for window content refresh callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1306</div></div>
+<div class="ttc" id="agroup__window_html_ga49401f82a1ba5f15db5590728314d47c"><div class="ttname"><a href="group__window.html#ga49401f82a1ba5f15db5590728314d47c">glfwHideWindow</a></div><div class="ttdeci">void glfwHideWindow(GLFWwindow *window)</div><div class="ttdoc">Hides the specified window.</div></div>
 <div class="ttc" id="agroup__window_html_ga49c449dde2a6f87d996f4daaa09d6708"><div class="ttname"><a href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a></div><div class="ttdeci">void glfwSetWindowShouldClose(GLFWwindow *window, int value)</div><div class="ttdoc">Sets the close flag of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga72ac8cb1ee2e312a878b55153d81b937"><div class="ttname"><a href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfwSetWindowAspectRatio</a></div><div class="ttdeci">void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)</div><div class="ttdoc">Sets the aspect ratio of the specified window.</div></div>
-<div class="ttc" id="agroup__monitor_html_gac2d4209016b049222877f620010ed0d8"><div class="ttname"><a href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a></div><div class="ttdeci">void * glfwGetMonitorUserPointer(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the user pointer of the specified monitor.</div></div>
+<div class="ttc" id="agroup__window_html_ga4d766499ac02c60f02221a9dfab87299"><div class="ttname"><a href="group__window.html#ga4d766499ac02c60f02221a9dfab87299">glfwGetWindowMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)</div><div class="ttdoc">Returns the monitor that the window uses for full screen mode.</div></div>
+<div class="ttc" id="agroup__window_html_ga52527a5904b47d802b6b4bb519cdebc7"><div class="ttname"><a href="group__window.html#ga52527a5904b47d802b6b4bb519cdebc7">glfwRestoreWindow</a></div><div class="ttdeci">void glfwRestoreWindow(GLFWwindow *window)</div><div class="ttdoc">Restores the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga554e37d781f0a997656c26b2c56c835e"><div class="ttname"><a href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a></div><div class="ttdeci">void glfwWaitEvents(void)</div><div class="ttdoc">Waits until events are queued and processes them.</div></div>
+<div class="ttc" id="agroup__window_html_ga5d877f09e968cef7a360b513306f17ff"><div class="ttname"><a href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a></div><div class="ttdeci">void glfwSetWindowTitle(GLFWwindow *window, const char *title)</div><div class="ttdoc">Sets the title of the specified window.</div></div>
 <div class="ttc" id="agroup__window_html_ga605a178db92f1a7f1a925563ef3ea2cf"><div class="ttname"><a href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a></div><div class="ttdeci">void glfwWaitEventsTimeout(double timeout)</div><div class="ttdoc">Waits with timeout until events are queued and processes them.</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_a292fdd281f3485fb3ff102a5bda43faa"><div class="ttname"><a href="structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa">GLFWvidmode::greenBits</a></div><div class="ttdeci">int greenBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1637</div></div>
-<div class="ttc" id="agroup__monitor_html_ga7d8bffc6c55539286a6bd20d32a8d7ea"><div class="ttname"><a href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a></div><div class="ttdeci">void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)</div><div class="ttdoc">Returns the physical size of the monitor.</div></div>
-<div class="ttc" id="agroup__input_html_ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><div class="ttname"><a href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a></div><div class="ttdeci">GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)</div><div class="ttdoc">Sets the joystick configuration callback.</div></div>
-<div class="ttc" id="agroup__window_html_gad2d4e4c3d28b1242e742e8268b9528af"><div class="ttname"><a href="group__window.html#gad2d4e4c3d28b1242e742e8268b9528af">GLFWwindowiconifyfun</a></div><div class="ttdeci">void(* GLFWwindowiconifyfun)(GLFWwindow *, int)</div><div class="ttdoc">The function pointer type for window iconify callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1315</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html"><div class="ttname"><a href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div><div class="ttdoc">Gamepad input state.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1711</div></div>
-<div class="ttc" id="agroup__monitor_html_gae48aadf4ea0967e6605c8f58fa5daccb"><div class="ttname"><a href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">GLFWvidmode</a></div><div class="ttdeci">struct GLFWvidmode GLFWvidmode</div><div class="ttdoc">Video mode type.</div></div>
-<div class="ttc" id="agroup__input_html_gafd0493dc32cd5ca5810e6148c0c026ea"><div class="ttname"><a href="group__input.html#gafd0493dc32cd5ca5810e6148c0c026ea">GLFWdropfun</a></div><div class="ttdeci">void(* GLFWdropfun)(GLFWwindow *, int, const char *[])</div><div class="ttdoc">The function pointer type for path drop callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1567</div></div>
-<div class="ttc" id="agroup__input_html_ga89261ae18c75e863aaf2656ecdd238f4"><div class="ttname"><a href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a></div><div class="ttdeci">struct GLFWcursor GLFWcursor</div><div class="ttdoc">Opaque cursor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1164</div></div>
-<div class="ttc" id="agroup__input_html_gaa65f416d03ebbbb5b8db71a489fcb894"><div class="ttname"><a href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateStandardCursor(int shape)</div><div class="ttdoc">Creates a cursor with a standard shape.</div></div>
-<div class="ttc" id="agroup__init_html_ga317aac130a235ab08c6db0834907d85e"><div class="ttname"><a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a></div><div class="ttdeci">int glfwInit(void)</div><div class="ttdoc">Initializes the GLFW library.</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html_a8b2c8939b1d31458de5359998375c189"><div class="ttname"><a href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">GLFWgamepadstate::axes</a></div><div class="ttdeci">float axes[6]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1720</div></div>
+<div class="ttc" id="agroup__window_html_ga61be47917b72536a148300f46494fc66"><div class="ttname"><a href="group__window.html#ga61be47917b72536a148300f46494fc66">glfwShowWindow</a></div><div class="ttdeci">void glfwShowWindow(GLFWwindow *window)</div><div class="ttdoc">Makes the specified window visible.</div></div>
+<div class="ttc" id="agroup__window_html_ga72ac8cb1ee2e312a878b55153d81b937"><div class="ttname"><a href="group__window.html#ga72ac8cb1ee2e312a878b55153d81b937">glfwSetWindowAspectRatio</a></div><div class="ttdeci">void glfwSetWindowAspectRatio(GLFWwindow *window, int numer, int denom)</div><div class="ttdoc">Sets the aspect ratio of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga73cb526c000876fd8ddf571570fdb634"><div class="ttname"><a href="group__window.html#ga73cb526c000876fd8ddf571570fdb634">glfwGetWindowPos</a></div><div class="ttdeci">void glfwGetWindowPos(GLFWwindow *window, int *xpos, int *ypos)</div><div class="ttdoc">Retrieves the position of the content area of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_ga77f288a2d04bb3c77c7d9615d08cf70e"><div class="ttname"><a href="group__window.html#ga77f288a2d04bb3c77c7d9615d08cf70e">GLFWwindowcontentscalefun</a></div><div class="ttdeci">void(* GLFWwindowcontentscalefun)(GLFWwindow *window, float xscale, float yscale)</div><div class="ttdoc">The function pointer type for window content scale callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1411</div></div>
+<div class="ttc" id="agroup__window_html_ga7cc0a09de172fa7250872046f8c4d2ca"><div class="ttname"><a href="group__window.html#ga7cc0a09de172fa7250872046f8c4d2ca">GLFWimage</a></div><div class="ttdeci">struct GLFWimage GLFWimage</div><div class="ttdoc">Image data.</div></div>
+<div class="ttc" id="agroup__window_html_ga7d9c8c62384b1e2821c4dc48952d2033"><div class="ttname"><a href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a></div><div class="ttdeci">void glfwWindowHint(int hint, int value)</div><div class="ttdoc">Sets the specified window hint to the desired value.</div></div>
+<div class="ttc" id="agroup__window_html_ga81c76c418af80a1cce7055bccb0ae0a7"><div class="ttname"><a href="group__window.html#ga81c76c418af80a1cce7055bccb0ae0a7">glfwSetWindowMonitor</a></div><div class="ttdeci">void glfwSetWindowMonitor(GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate)</div><div class="ttdoc">Sets the mode, monitor, video mode and placement of a window.</div></div>
+<div class="ttc" id="agroup__window_html_ga873780357abd3f3a081d71a40aae45a1"><div class="ttname"><a href="group__window.html#ga873780357abd3f3a081d71a40aae45a1">glfwFocusWindow</a></div><div class="ttdeci">void glfwFocusWindow(GLFWwindow *window)</div><div class="ttdoc">Brings the specified window to front and sets input focus.</div></div>
 <div class="ttc" id="agroup__window_html_ga8cb2782861c9d997bcf2dea97f363e5f"><div class="ttname"><a href="group__window.html#ga8cb2782861c9d997bcf2dea97f363e5f">glfwWindowHintString</a></div><div class="ttdeci">void glfwWindowHintString(int hint, const char *value)</div><div class="ttdoc">Sets the specified window hint to the desired value.</div></div>
-<div class="ttc" id="agroup__window_html_gad09f0bd7a6307c4533b7061828480a84"><div class="ttname"><a href="group__window.html#gad09f0bd7a6307c4533b7061828480a84">glfwGetWindowOpacity</a></div><div class="ttdeci">float glfwGetWindowOpacity(GLFWwindow *window)</div><div class="ttdoc">Returns the opacity of the whole window.</div></div>
-<div class="ttc" id="astructGLFWimage_html"><div class="ttname"><a href="structGLFWimage.html">GLFWimage</a></div><div class="ttdoc">Image data.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1687</div></div>
-<div class="ttc" id="agroup__window_html_gac31caeb3d1088831b13d2c8a156802e9"><div class="ttname"><a href="group__window.html#gac31caeb3d1088831b13d2c8a156802e9">glfwSetWindowOpacity</a></div><div class="ttdeci">void glfwSetWindowOpacity(GLFWwindow *window, float opacity)</div><div class="ttdoc">Sets the opacity of the whole window.</div></div>
-<div class="ttc" id="agroup__context_html_ga35f1837e6f666781842483937612f163"><div class="ttname"><a href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></div><div class="ttdeci">GLFWglproc glfwGetProcAddress(const char *procname)</div><div class="ttdoc">Returns the address of the specified function for the current context.</div></div>
-<div class="ttc" id="agroup__monitor_html_gab7c41deb2219bde3e1eb756ddaa9ec80"><div class="ttname"><a href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a></div><div class="ttdeci">const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current gamma ramp for the specified monitor.</div></div>
-<div class="ttc" id="agroup__input_html_gab773f0ee0a07cff77a210cea40bc1f6b"><div class="ttname"><a href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a></div><div class="ttdeci">GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)</div><div class="ttdoc">Sets the path drop callback.</div></div>
-<div class="ttc" id="agroup__window_html_gae49ee6ebc03fa2da024b89943a331355"><div class="ttname"><a href="group__window.html#gae49ee6ebc03fa2da024b89943a331355">GLFWwindowsizefun</a></div><div class="ttdeci">void(* GLFWwindowsizefun)(GLFWwindow *, int, int)</div><div class="ttdoc">The function pointer type for window size callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1233</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_acf0c836d0efe29c392fe8d1a1042744b"><div class="ttname"><a href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">GLFWgammaramp::blue</a></div><div class="ttdeci">unsigned short * blue</div><div class="ttdef"><b>Definition:</b> glfw3.h:1668</div></div>
-<div class="ttc" id="agroup__window_html_gaeac25e64789974ccbe0811766bd91a16"><div class="ttname"><a href="group__window.html#gaeac25e64789974ccbe0811766bd91a16">glfwGetWindowMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetWindowMonitor(GLFWwindow *window)</div><div class="ttdoc">Returns the monitor that the window uses for full screen mode.</div></div>
-<div class="ttc" id="agroup__input_html_ga1caf18159767e761185e49a3be019f8d"><div class="ttname"><a href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a></div><div class="ttdeci">GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)</div><div class="ttdoc">Sets the key callback.</div></div>
-<div class="ttc" id="agroup__window_html_ga1bb559c0ebaad63c5c05ad2a066779c4"><div class="ttname"><a href="group__window.html#ga1bb559c0ebaad63c5c05ad2a066779c4">glfwIconifyWindow</a></div><div class="ttdeci">void glfwIconifyWindow(GLFWwindow *window)</div><div class="ttdoc">Iconifies the specified window.</div></div>
-<div class="ttc" id="agroup__init_html_ga23d47dc013fce2bf58036da66079a657"><div class="ttname"><a href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a></div><div class="ttdeci">const char * glfwGetVersionString(void)</div><div class="ttdoc">Returns a string describing the compile-time configuration.</div></div>
-<div class="ttc" id="agroup__window_html_ga3d2fc6026e690ab31a13f78bc9fd3651"><div class="ttname"><a href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a></div><div class="ttdeci">void glfwSetWindowUserPointer(GLFWwindow *window, void *pointer)</div><div class="ttdoc">Sets the user pointer of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gaa77c4898dfb83344a6b4f76aa16b9a4a"><div class="ttname"><a href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a></div><div class="ttdeci">void glfwDefaultWindowHints(void)</div><div class="ttdoc">Resets all window hints to their default values.</div></div>
+<div class="ttc" id="agroup__window_html_gab3fb7c3366577daef18c0023e2a8591f"><div class="ttname"><a href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a></div><div class="ttdeci">GLFWframebuffersizefun glfwSetFramebufferSizeCallback(GLFWwindow *window, GLFWframebuffersizefun callback)</div><div class="ttdoc">Sets the framebuffer resize callback for the specified window.</div></div>
 <div class="ttc" id="agroup__window_html_gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><div class="ttname"><a href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a></div><div class="ttdeci">void glfwPostEmptyEvent(void)</div><div class="ttdoc">Posts an empty event to the event queue.</div></div>
-<div class="ttc" id="agroup__window_html_gacccb29947ea4b16860ebef42c2cb9337"><div class="ttname"><a href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a></div><div class="ttdeci">int glfwGetWindowAttrib(GLFWwindow *window, int attrib)</div><div class="ttdoc">Returns an attribute of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga58be2061828dd35080bb438405d3a7e2"><div class="ttname"><a href="group__window.html#ga58be2061828dd35080bb438405d3a7e2">GLFWwindowfocusfun</a></div><div class="ttdeci">void(* GLFWwindowfocusfun)(GLFWwindow *, int)</div><div class="ttdoc">The function pointer type for window focus callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1294</div></div>
+<div class="ttc" id="agroup__window_html_gabc58c47e9d93f6eb1862d615c3680f46"><div class="ttname"><a href="group__window.html#gabc58c47e9d93f6eb1862d615c3680f46">GLFWwindowfocusfun</a></div><div class="ttdeci">void(* GLFWwindowfocusfun)(GLFWwindow *window, int focused)</div><div class="ttdoc">The function pointer type for window focus callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1327</div></div>
+<div class="ttc" id="agroup__window_html_gabe287973a21a8f927cde4db06b8dcbe9"><div class="ttname"><a href="group__window.html#gabe287973a21a8f927cde4db06b8dcbe9">GLFWwindowposfun</a></div><div class="ttdeci">void(* GLFWwindowposfun)(GLFWwindow *window, int xpos, int ypos)</div><div class="ttdoc">The function pointer type for window position callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1244</div></div>
+<div class="ttc" id="agroup__window_html_gabf859b936d80961b7d39013a9694cc3e"><div class="ttname"><a href="group__window.html#gabf859b936d80961b7d39013a9694cc3e">GLFWwindowclosefun</a></div><div class="ttdeci">void(* GLFWwindowclosefun)(GLFWwindow *window)</div><div class="ttdoc">The function pointer type for window close callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1286</div></div>
+<div class="ttc" id="agroup__window_html_gac2d83c4a10f071baf841f6730528e66c"><div class="ttname"><a href="group__window.html#gac2d83c4a10f071baf841f6730528e66c">glfwSetWindowFocusCallback</a></div><div class="ttdeci">GLFWwindowfocusfun glfwSetWindowFocusCallback(GLFWwindow *window, GLFWwindowfocusfun callback)</div><div class="ttdoc">Sets the focus callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gac314fa6cec7d2d307be9963e2709cc90"><div class="ttname"><a href="group__window.html#gac314fa6cec7d2d307be9963e2709cc90">glfwSetWindowSizeLimits</a></div><div class="ttdeci">void glfwSetWindowSizeLimits(GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight)</div><div class="ttdoc">Sets the size limits of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gac31caeb3d1088831b13d2c8a156802e9"><div class="ttname"><a href="group__window.html#gac31caeb3d1088831b13d2c8a156802e9">glfwSetWindowOpacity</a></div><div class="ttdeci">void glfwSetWindowOpacity(GLFWwindow *window, float opacity)</div><div class="ttdoc">Sets the opacity of the whole window.</div></div>
 <div class="ttc" id="agroup__window_html_gac793e9efd255567b5fb8b445052cfd3e"><div class="ttname"><a href="group__window.html#gac793e9efd255567b5fb8b445052cfd3e">glfwSetWindowIconifyCallback</a></div><div class="ttdeci">GLFWwindowiconifyfun glfwSetWindowIconifyCallback(GLFWwindow *window, GLFWwindowiconifyfun callback)</div><div class="ttdoc">Sets the iconify callback for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_ga571e45a030ae4061f746ed56cb76aede"><div class="ttname"><a href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a></div><div class="ttdeci">GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)</div><div class="ttdoc">Sets the scroll callback.</div></div>
-<div class="ttc" id="agroup__input_html_gadd341da06bc8d418b4dc3a3518af9ad2"><div class="ttname"><a href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a></div><div class="ttdeci">int glfwGetKey(GLFWwindow *window, int key)</div><div class="ttdoc">Returns the last reported state of a keyboard key for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><div class="ttname"><a href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a></div><div class="ttdeci">void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the content area of the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_gaa8806536731e92c061bc70bcff6edbd0"><div class="ttname"><a href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a></div><div class="ttdeci">const float * glfwGetJoystickAxes(int jid, int *count)</div><div class="ttdoc">Returns the values of all axes of the specified joystick.</div></div>
-<div class="ttc" id="astructGLFWvidmode_html"><div class="ttname"><a href="structGLFWvidmode.html">GLFWvidmode</a></div><div class="ttdoc">Video mode type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1624</div></div>
-<div class="ttc" id="agroup__init_html_gaff45816610d53f0b83656092a4034f40"><div class="ttname"><a href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a></div><div class="ttdeci">GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)</div><div class="ttdoc">Sets the error callback.</div></div>
-<div class="ttc" id="agroup__window_html_ga0e2637a4161afb283f5300c7f94785c9"><div class="ttname"><a href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a></div><div class="ttdeci">void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the framebuffer of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga93e7c2555bd837f4ed8b20f76cada72e"><div class="ttname"><a href="group__window.html#ga93e7c2555bd837f4ed8b20f76cada72e">GLFWwindowclosefun</a></div><div class="ttdeci">void(* GLFWwindowclosefun)(GLFWwindow *)</div><div class="ttdoc">The function pointer type for window close callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1253</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_a6066c4ecd251098700062d3b735dba1b"><div class="ttname"><a href="structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b">GLFWvidmode::redBits</a></div><div class="ttdeci">int redBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1634</div></div>
-<div class="ttc" id="agroup__window_html_ga7d9c8c62384b1e2821c4dc48952d2033"><div class="ttname"><a href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a></div><div class="ttdeci">void glfwWindowHint(int hint, int value)</div><div class="ttdoc">Sets the specified window hint to the desired value.</div></div>
-<div class="ttc" id="agroup__init_html_ga9f8ffaacf3c269cc48eafbf8b9b71197"><div class="ttname"><a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></div><div class="ttdeci">void glfwGetVersion(int *major, int *minor, int *rev)</div><div class="ttdoc">Retrieves the version of the GLFW library.</div></div>
-<div class="ttc" id="agroup__vulkan_html_gaff3823355cdd7e2f3f9f4d9ea9518d92"><div class="ttname"><a href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a></div><div class="ttdeci">int glfwGetPhysicalDevicePresentationSupport(VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily)</div><div class="ttdoc">Returns whether the specified queue family can present images.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga6ac582625c990220785ddd34efa3169a"><div class="ttname"><a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a></div><div class="ttdeci">void glfwSetGamma(GLFWmonitor *monitor, float gamma)</div><div class="ttdoc">Generates a gamma ramp and sets it for the specified monitor.</div></div>
-<div class="ttc" id="agroup__window_html_gafd8db81fdb0e850549dc6bace5ed697a"><div class="ttname"><a href="group__window.html#gafd8db81fdb0e850549dc6bace5ed697a">GLFWwindowposfun</a></div><div class="ttdeci">void(* GLFWwindowposfun)(GLFWwindow *, int, int)</div><div class="ttdoc">The function pointer type for window position callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1211</div></div>
-<div class="ttc" id="agroup__monitor_html_gafc1bb972a921ad5b3bd5d63a95fc2d52"><div class="ttname"><a href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current mode of the specified monitor.</div></div>
-<div class="ttc" id="agroup__input_html_gaba1f022c5eb07dfac421df34cdcd31dd"><div class="ttname"><a href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a></div><div class="ttdeci">void glfwSetClipboardString(GLFWwindow *window, const char *string)</div><div class="ttdoc">Sets the clipboard to the specified string.</div></div>
+<div class="ttc" id="agroup__window_html_gacbe64c339fbd94885e62145563b6dc93"><div class="ttname"><a href="group__window.html#gacbe64c339fbd94885e62145563b6dc93">glfwSetWindowMaximizeCallback</a></div><div class="ttdeci">GLFWwindowmaximizefun glfwSetWindowMaximizeCallback(GLFWwindow *window, GLFWwindowmaximizefun callback)</div><div class="ttdoc">Sets the maximize callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gacccb29947ea4b16860ebef42c2cb9337"><div class="ttname"><a href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a></div><div class="ttdeci">int glfwGetWindowAttrib(GLFWwindow *window, int attrib)</div><div class="ttdoc">Returns an attribute of the specified window.</div></div>
 <div class="ttc" id="agroup__window_html_gacdf43e51376051d2c091662e9fe3d7b2"><div class="ttname"><a href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a></div><div class="ttdeci">void glfwDestroyWindow(GLFWwindow *window)</div><div class="ttdoc">Destroys the specified window and its context.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1140</div></div>
-<div class="ttc" id="astructGLFWvidmode_html_a791bdd6c7697b09f7e9c97054bf05649"><div class="ttname"><a href="structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649">GLFWvidmode::refreshRate</a></div><div class="ttdeci">int refreshRate</div><div class="ttdef"><b>Definition:</b> glfw3.h:1643</div></div>
-<div class="ttc" id="agroup__window_html_ga17807ce0f45ac3f8bb50d6dcc59a4e06"><div class="ttname"><a href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">glfwGetWindowUserPointer</a></div><div class="ttdeci">void * glfwGetWindowUserPointer(GLFWwindow *window)</div><div class="ttdoc">Returns the user pointer of the specified window.</div></div>
-<div class="ttc" id="agroup__vulkan_html_gadf228fac94c5fd8f12423ec9af9ff1e9"><div class="ttname"><a href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a></div><div class="ttdeci">GLFWvkproc glfwGetInstanceProcAddress(VkInstance instance, const char *procname)</div><div class="ttdoc">Returns the address of the specified Vulkan instance function.</div></div>
+<div class="ttc" id="agroup__window_html_gace2afda29b4116ec012e410a6819033e"><div class="ttname"><a href="group__window.html#gace2afda29b4116ec012e410a6819033e">glfwSetWindowAttrib</a></div><div class="ttdeci">void glfwSetWindowAttrib(GLFWwindow *window, int attrib, int value)</div><div class="ttdoc">Sets an attribute of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gad09f0bd7a6307c4533b7061828480a84"><div class="ttname"><a href="group__window.html#gad09f0bd7a6307c4533b7061828480a84">glfwGetWindowOpacity</a></div><div class="ttdeci">float glfwGetWindowOpacity(GLFWwindow *window)</div><div class="ttdoc">Returns the opacity of the whole window.</div></div>
+<div class="ttc" id="agroup__window_html_gad91b8b047a0c4c6033c38853864c34f8"><div class="ttname"><a href="group__window.html#gad91b8b047a0c4c6033c38853864c34f8">glfwSetWindowSizeCallback</a></div><div class="ttdeci">GLFWwindowsizefun glfwSetWindowSizeCallback(GLFWwindow *window, GLFWwindowsizefun callback)</div><div class="ttdoc">Sets the size callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gada646d775a7776a95ac000cfc1885331"><div class="ttname"><a href="group__window.html#gada646d775a7776a95ac000cfc1885331">glfwSetWindowCloseCallback</a></div><div class="ttdeci">GLFWwindowclosefun glfwSetWindowCloseCallback(GLFWwindow *window, GLFWwindowclosefun callback)</div><div class="ttdoc">Sets the close callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gadd7ccd39fe7a7d1f0904666ae5932dc5"><div class="ttname"><a href="group__window.html#gadd7ccd39fe7a7d1f0904666ae5932dc5">glfwSetWindowIcon</a></div><div class="ttdeci">void glfwSetWindowIcon(GLFWwindow *window, int count, const GLFWimage *images)</div><div class="ttdoc">Sets the icon for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gae18026e294dde685ed2e5f759533144d"><div class="ttname"><a href="group__window.html#gae18026e294dde685ed2e5f759533144d">GLFWframebuffersizefun</a></div><div class="ttdeci">void(* GLFWframebuffersizefun)(GLFWwindow *window, int width, int height)</div><div class="ttdoc">The function pointer type for framebuffer size callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1390</div></div>
+<div class="ttc" id="agroup__window_html_gae77a4add0d2023ca21ff1443ced01653"><div class="ttname"><a href="group__window.html#gae77a4add0d2023ca21ff1443ced01653">glfwGetWindowUserPointer</a></div><div class="ttdeci">void * glfwGetWindowUserPointer(GLFWwindow *window)</div><div class="ttdoc">Returns the user pointer of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gaec0282944bb810f6f3163ec02da90350"><div class="ttname"><a href="group__window.html#gaec0282944bb810f6f3163ec02da90350">GLFWwindowsizefun</a></div><div class="ttdeci">void(* GLFWwindowsizefun)(GLFWwindow *window, int width, int height)</div><div class="ttdoc">The function pointer type for window size callbacks.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1266</div></div>
+<div class="ttc" id="agroup__window_html_gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><div class="ttname"><a href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a></div><div class="ttdeci">void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the content area of the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gaf2832ebb5aa6c252a2d261de002c92d6"><div class="ttname"><a href="group__window.html#gaf2832ebb5aa6c252a2d261de002c92d6">glfwSetWindowContentScaleCallback</a></div><div class="ttdeci">GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback(GLFWwindow *window, GLFWwindowcontentscalefun callback)</div><div class="ttdoc">Sets the window content scale callback for the specified window.</div></div>
+<div class="ttc" id="agroup__window_html_gaf5d31de9c19c4f994facea64d2b3106c"><div class="ttname"><a href="group__window.html#gaf5d31de9c19c4f994facea64d2b3106c">glfwGetWindowContentScale</a></div><div class="ttdeci">void glfwGetWindowContentScale(GLFWwindow *window, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified window.</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html"><div class="ttname"><a href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div><div class="ttdoc">Gamepad input state.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1745</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html_a27e9896b51c65df15fba2c7139bfdb9a"><div class="ttname"><a href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">GLFWgamepadstate::buttons</a></div><div class="ttdeci">unsigned char buttons[15]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1749</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html_a8b2c8939b1d31458de5359998375c189"><div class="ttname"><a href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">GLFWgamepadstate::axes</a></div><div class="ttdeci">float axes[6]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1753</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html"><div class="ttname"><a href="structGLFWgammaramp.html">GLFWgammaramp</a></div><div class="ttdoc">Gamma ramp.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1692</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_a2cce5d968734b685623eef913e635138"><div class="ttname"><a href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">GLFWgammaramp::red</a></div><div class="ttdeci">unsigned short * red</div><div class="ttdef"><b>Definition:</b> glfw3.h:1695</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_acf0c836d0efe29c392fe8d1a1042744b"><div class="ttname"><a href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">GLFWgammaramp::blue</a></div><div class="ttdeci">unsigned short * blue</div><div class="ttdef"><b>Definition:</b> glfw3.h:1701</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_ad620e1cffbff9a32c51bca46301b59a5"><div class="ttname"><a href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">GLFWgammaramp::size</a></div><div class="ttdeci">unsigned int size</div><div class="ttdef"><b>Definition:</b> glfw3.h:1704</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_affccc6f5df47820b6562d709da3a5a3a"><div class="ttname"><a href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">GLFWgammaramp::green</a></div><div class="ttdeci">unsigned short * green</div><div class="ttdef"><b>Definition:</b> glfw3.h:1698</div></div>
+<div class="ttc" id="astructGLFWimage_html"><div class="ttname"><a href="structGLFWimage.html">GLFWimage</a></div><div class="ttdoc">Image data.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1721</div></div>
+<div class="ttc" id="astructGLFWimage_html_a0b7d95368f0c80d5e5c9875057c7dbec"><div class="ttname"><a href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">GLFWimage::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1727</div></div>
+<div class="ttc" id="astructGLFWimage_html_a0c532a5c2bb715555279b7817daba0fb"><div class="ttname"><a href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">GLFWimage::pixels</a></div><div class="ttdeci">unsigned char * pixels</div><div class="ttdef"><b>Definition:</b> glfw3.h:1730</div></div>
+<div class="ttc" id="astructGLFWimage_html_af6a71cc999fe6d3aea31dd7e9687d835"><div class="ttname"><a href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">GLFWimage::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1724</div></div>
+<div class="ttc" id="astructGLFWvidmode_html"><div class="ttname"><a href="structGLFWvidmode.html">GLFWvidmode</a></div><div class="ttdoc">Video mode type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1658</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_a292fdd281f3485fb3ff102a5bda43faa"><div class="ttname"><a href="structGLFWvidmode.html#a292fdd281f3485fb3ff102a5bda43faa">GLFWvidmode::greenBits</a></div><div class="ttdeci">int greenBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1670</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_a6066c4ecd251098700062d3b735dba1b"><div class="ttname"><a href="structGLFWvidmode.html#a6066c4ecd251098700062d3b735dba1b">GLFWvidmode::redBits</a></div><div class="ttdeci">int redBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1667</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_a698dcb200562051a7249cb6ae154c71d"><div class="ttname"><a href="structGLFWvidmode.html#a698dcb200562051a7249cb6ae154c71d">GLFWvidmode::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1661</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_a791bdd6c7697b09f7e9c97054bf05649"><div class="ttname"><a href="structGLFWvidmode.html#a791bdd6c7697b09f7e9c97054bf05649">GLFWvidmode::refreshRate</a></div><div class="ttdeci">int refreshRate</div><div class="ttdef"><b>Definition:</b> glfw3.h:1676</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_ac65942a5f6981695517437a9d571d03c"><div class="ttname"><a href="structGLFWvidmode.html#ac65942a5f6981695517437a9d571d03c">GLFWvidmode::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1664</div></div>
+<div class="ttc" id="astructGLFWvidmode_html_af310977f58d2e3b188175b6e3d314047"><div class="ttname"><a href="structGLFWvidmode.html#af310977f58d2e3b188175b6e3d314047">GLFWvidmode::blueBits</a></div><div class="ttdeci">int blueBits</div><div class="ttdef"><b>Definition:</b> glfw3.h:1673</div></div>
+</div><!-- fragment --></div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 36 - 35
glfw.mod/glfw/docs/html/glfw3native_8h.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: glfw3native.h File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,29 +61,28 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li><li class="navelem"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li><li class="navelem"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">glfw3native.h File Reference</div>  </div>
+  <div class="headertitle"><div class="title">glfw3native.h File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<div class="textblock"><p>This is the header file of the native access functions. See <a class="el" href="group__native.html">Native access</a> for more information. </p>
+<div class="textblock"><p >This is the header file of the native access functions. See <a class="el" href="group__native.html">Native access</a> for more information. </p>
 </div>
 <p><a href="glfw3native_8h_source.html">Go to the source code of this file.</a></p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">glfwGetWin32Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the adapter device name of the specified monitor.  <a href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">More...</a><br /></td></tr>
-<tr class="separator:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac408b09a330749402d5d1fa1f5894dd9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">glfwGetWin32Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac408b09a330749402d5d1fa1f5894dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display device name of the specified monitor.  <a href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">More...</a><br /></td></tr>
-<tr class="separator:gac408b09a330749402d5d1fa1f5894dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">glfwGetWin32Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the adapter device name of the specified monitor.  <a href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">More...</a><br /></td></tr>
+<tr class="separator:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">glfwGetWin32Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display device name of the specified monitor.  <a href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">More...</a><br /></td></tr>
+<tr class="separator:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memItemLeft" align="right" valign="top">HWND&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:gafe5079aa79038b0079fc09d5f0a8e667"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>HWND</code> of the specified window.  <a href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">More...</a><br /></td></tr>
 <tr class="separator:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -97,9 +98,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga559e002e3cd63c979881770cd4dc63bc"><td class="memItemLeft" align="right" valign="top">id&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga559e002e3cd63c979881770cd4dc63bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>NSOpenGLContext</code> of the specified window.  <a href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">More...</a><br /></td></tr>
 <tr class="separator:ga559e002e3cd63c979881770cd4dc63bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">glfwGetX11Display</a> (void)</td></tr>
-<tr class="memdesc:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Display</code> used by GLFW.  <a href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">More...</a><br /></td></tr>
-<tr class="separator:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e7822385cc8a1cc3b18f60352830189"><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">glfwGetX11Display</a> (void)</td></tr>
+<tr class="memdesc:ga6e7822385cc8a1cc3b18f60352830189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Display</code> used by GLFW.  <a href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">More...</a><br /></td></tr>
+<tr class="separator:ga6e7822385cc8a1cc3b18f60352830189"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga088fbfa80f50569402b41be71ad66e40"><td class="memItemLeft" align="right" valign="top">RRCrtc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
 <tr class="memdesc:ga088fbfa80f50569402b41be71ad66e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>RRCrtc</code> of the specified monitor.  <a href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">More...</a><br /></td></tr>
 <tr class="separator:ga088fbfa80f50569402b41be71ad66e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -112,24 +113,24 @@ Functions</h2></td></tr>
 <tr class="memitem:ga55f879ab02d93367f966186b6f0133f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a> (const char *string)</td></tr>
 <tr class="memdesc:ga55f879ab02d93367f966186b6f0133f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current primary selection to the specified string.  <a href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">More...</a><br /></td></tr>
 <tr class="separator:ga55f879ab02d93367f966186b6f0133f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga72f23e3980b83788c70aa854eca31430"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga72f23e3980b83788c70aa854eca31430">glfwGetX11SelectionString</a> (void)</td></tr>
-<tr class="memdesc:ga72f23e3980b83788c70aa854eca31430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the current primary selection as a string.  <a href="group__native.html#ga72f23e3980b83788c70aa854eca31430">More...</a><br /></td></tr>
-<tr class="separator:ga72f23e3980b83788c70aa854eca31430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae084ef64dc0db140b455b1427256d3f7"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">glfwGetX11SelectionString</a> (void)</td></tr>
+<tr class="memdesc:gae084ef64dc0db140b455b1427256d3f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the current primary selection as a string.  <a href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">More...</a><br /></td></tr>
+<tr class="separator:gae084ef64dc0db140b455b1427256d3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga62d884114b0abfcdc2930e89f20867e2"><td class="memItemLeft" align="right" valign="top">GLXContext&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga62d884114b0abfcdc2930e89f20867e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXContext</code> of the specified window.  <a href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">More...</a><br /></td></tr>
 <tr class="separator:ga62d884114b0abfcdc2930e89f20867e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memItemLeft" align="right" valign="top">GLXWindow&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga1ed27b8766e859a21381e8f8ce18d049"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXWindow</code> of the specified window.  <a href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">More...</a><br /></td></tr>
 <tr class="separator:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memItemLeft" align="right" valign="top">struct wl_display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">glfwGetWaylandDisplay</a> (void)</td></tr>
-<tr class="memdesc:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_display*</code> used by GLFW.  <a href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">More...</a><br /></td></tr>
-<tr class="separator:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab10427a667b6cd91eec7709f7a906bd3"><td class="memItemLeft" align="right" valign="top">struct wl_output *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">glfwGetWaylandMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gab10427a667b6cd91eec7709f7a906bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_output*</code> of the specified monitor.  <a href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">More...</a><br /></td></tr>
-<tr class="separator:gab10427a667b6cd91eec7709f7a906bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4738d7aca4191363519a9a641c3ab64c"><td class="memItemLeft" align="right" valign="top">struct wl_surface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">glfwGetWaylandWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
-<tr class="memdesc:ga4738d7aca4191363519a9a641c3ab64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the main <code>struct wl_surface*</code> of the specified window.  <a href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">More...</a><br /></td></tr>
-<tr class="separator:ga4738d7aca4191363519a9a641c3ab64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacbe11f93ce20621de82989bbba94e62a"><td class="memItemLeft" align="right" valign="top">struct wl_display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">glfwGetWaylandDisplay</a> (void)</td></tr>
+<tr class="memdesc:gacbe11f93ce20621de82989bbba94e62a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_display*</code> used by GLFW.  <a href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">More...</a><br /></td></tr>
+<tr class="separator:gacbe11f93ce20621de82989bbba94e62a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="memItemLeft" align="right" valign="top">struct wl_output *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">glfwGetWaylandMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_output*</code> of the specified monitor.  <a href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">More...</a><br /></td></tr>
+<tr class="separator:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5c597f2841229d9626f0811cca41ceb3"><td class="memItemLeft" align="right" valign="top">struct wl_surface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">glfwGetWaylandWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:ga5c597f2841229d9626f0811cca41ceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the main <code>struct wl_surface*</code> of the specified window.  <a href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">More...</a><br /></td></tr>
+<tr class="separator:ga5c597f2841229d9626f0811cca41ceb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga1cd8d973f47aacb5532d368147cc3138"><td class="memItemLeft" align="right" valign="top">EGLDisplay&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a> (void)</td></tr>
 <tr class="memdesc:ga1cd8d973f47aacb5532d368147cc3138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>EGLDisplay</code> used by GLFW.  <a href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">More...</a><br /></td></tr>
 <tr class="separator:ga1cd8d973f47aacb5532d368147cc3138"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -152,7 +153,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 215 - 202
glfw.mod/glfw/docs/html/glfw3native_8h_source.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: glfw3native.h Source File</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,213 +61,224 @@ $(function() {
 
 <div id="nav-path" class="navpath">
   <ul>
-<li class="navelem"><a class="el" href="dir_bc6505cac00d7a6291dbfd9af70666b7.html">glfw-3.3.2</a></li><li class="navelem"><a class="el" href="dir_a58ef735c5cc5a9a31d321e1abe7c42e.html">include</a></li><li class="navelem"><a class="el" href="dir_15a5176d7c9cc5c407ed4f611edf0684.html">GLFW</a></li>  </ul>
+<li class="navelem"><a class="el" href="dir_4351554941a2744586042c1cf3cf139a.html">glfw-3.3.8</a></li><li class="navelem"><a class="el" href="dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html">include</a></li><li class="navelem"><a class="el" href="dir_1dfd43b3952c5bc1ba15d15b12afff7b.html">GLFW</a></li>  </ul>
 </div>
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">glfw3native.h</div>  </div>
+  <div class="headertitle"><div class="title">glfw3native.h</div></div>
 </div><!--header-->
 <div class="contents">
-<a href="glfw3native_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * GLFW 3.3 - www.glfw.org</span></div>
-<div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> * A library for OpenGL, window and input</span></div>
-<div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> *------------------------------------------------------------------------</span></div>
-<div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * Copyright (c) 2002-2006 Marcus Geelnard</span></div>
-<div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * Copyright (c) 2006-2018 Camilla Löwy &lt;[email protected]&gt;</span></div>
-<div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> * This software is provided &#39;as-is&#39;, without any express or implied</span></div>
-<div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> * warranty. In no event will the authors be held liable for any damages</span></div>
-<div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * arising from the use of this software.</span></div>
-<div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span></div>
-<div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * including commercial applications, and to alter it and redistribute it</span></div>
-<div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> * freely, subject to the following restrictions:</span></div>
-<div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="comment"> * 1. The origin of this software must not be misrepresented; you must not</span></div>
-<div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="comment"> *    claim that you wrote the original software. If you use this software</span></div>
-<div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;<span class="comment"> *    in a product, an acknowledgment in the product documentation would</span></div>
-<div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="comment"> *    be appreciated but is not required.</span></div>
-<div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;<span class="comment"> * 2. Altered source versions must be plainly marked as such, and must not</span></div>
-<div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="comment"> *    be misrepresented as being the original software.</span></div>
-<div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="comment"> * 3. This notice may not be removed or altered from any source</span></div>
-<div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;<span class="comment"> *    distribution.</span></div>
-<div class="line"><a name="l00026"></a><span class="lineno">   26</span>&#160;<span class="comment"> *</span></div>
-<div class="line"><a name="l00027"></a><span class="lineno">   27</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160; </div>
-<div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="preprocessor">#ifndef _glfw3_native_h_</span></div>
-<div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;<span class="preprocessor">#define _glfw3_native_h_</span></div>
-<div class="line"><a name="l00031"></a><span class="lineno">   31</span>&#160; </div>
-<div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00033"></a><span class="lineno">   33</span>&#160;<span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
-<div class="line"><a name="l00034"></a><span class="lineno">   34</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; </div>
-<div class="line"><a name="l00036"></a><span class="lineno">   36</span>&#160; </div>
-<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160;<span class="comment"> * Doxygen documentation</span></div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00040"></a><span class="lineno">   40</span>&#160; </div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;<span class="comment"> * System headers and types</span></div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; <span class="comment">// This is a workaround for the fact that glfw3.h needs to export APIENTRY (for</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; <span class="comment">// example to allow applications to correctly declare a GL_ARB_debug_output</span></div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; <span class="comment">// callback) but windows.h assumes no one will define APIENTRY before it does</span></div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;<span class="preprocessor"> #if defined(GLFW_APIENTRY_DEFINED)</span></div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;<span class="preprocessor">  #undef APIENTRY</span></div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;<span class="preprocessor">  #undef GLFW_APIENTRY_DEFINED</span></div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;<span class="preprocessor"> #include &lt;windows.h&gt;</span></div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;<span class="preprocessor">#elif defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;<span class="preprocessor"> #if defined(__OBJC__)</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;<span class="preprocessor">  #import &lt;Cocoa/Cocoa.h&gt;</span></div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor"> #else</span></div>
-<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;<span class="preprocessor">  #include &lt;ApplicationServices/ApplicationServices.h&gt;</span></div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;  <span class="keyword">typedef</span> <span class="keywordtype">void</span>* id;</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;<span class="preprocessor"> #endif</span></div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;<span class="preprocessor">#elif defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;<span class="preprocessor"> #include &lt;X11/Xlib.h&gt;</span></div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;<span class="preprocessor"> #include &lt;X11/extensions/Xrandr.h&gt;</span></div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;<span class="preprocessor">#elif defined(GLFW_EXPOSE_NATIVE_WAYLAND)</span></div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor"> #include &lt;wayland-client.h&gt;</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160; </div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; <span class="comment">/* WGL is declared by windows.h */</span></div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
-<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160; <span class="comment">/* NSGL is declared by Cocoa.h */</span></div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="preprocessor"> #include &lt;GL/glx.h&gt;</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_EGL)</span></div>
-<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor"> #include &lt;EGL/egl.h&gt;</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_OSMESA)</span></div>
-<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;<span class="preprocessor"> #include &lt;GL/osmesa.h&gt;</span></div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="comment">/*************************************************************************</span></div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="comment"> * Functions</span></div>
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;<span class="comment"> *************************************************************************/</span></div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WIN32)</span></div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">glfwGetWin32Adapter</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">glfwGetWin32Monitor</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;GLFWAPI HWND <a class="code" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160; </div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;GLFWAPI HGLRC <a class="code" href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">glfwGetWGLContext</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160; </div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_COCOA)</span></div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;GLFWAPI CGDirectDisplayID <a class="code" href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">glfwGetCocoaMonitor</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;GLFWAPI <span class="keywordtype">id</span> <a class="code" href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">glfwGetCocoaWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160; </div>
-<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;GLFWAPI <span class="keywordtype">id</span> <a class="code" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160; </div>
-<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_X11)</span></div>
-<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160; </div>
-<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;GLFWAPI Display* <a class="code" href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">glfwGetX11Display</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
-<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;GLFWAPI RRCrtc <a class="code" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160; </div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;GLFWAPI RROutput <a class="code" href="group__native.html#gab2f8cc043905e9fa9b12bfdbbcfe874c">glfwGetX11Monitor</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
-<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;GLFWAPI Window <a class="code" href="group__native.html#ga90ca676322740842db446999a1b1f21d">glfwGetX11Window</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;GLFWAPI <span class="keywordtype">void</span> <a class="code" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__native.html#ga72f23e3980b83788c70aa854eca31430">glfwGetX11SelectionString</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160; </div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160; </div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;GLFWAPI GLXContext <a class="code" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160; </div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;GLFWAPI GLXWindow <a class="code" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160; </div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)</span></div>
-<div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;GLFWAPI <span class="keyword">struct </span>wl_display* <a class="code" href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">glfwGetWaylandDisplay</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
-<div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;GLFWAPI <span class="keyword">struct </span>wl_output* <a class="code" href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">glfwGetWaylandMonitor</a>(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
-<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160; </div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;GLFWAPI <span class="keyword">struct </span>wl_surface* <a class="code" href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">glfwGetWaylandWindow</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160; </div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_EGL)</span></div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
-<div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;GLFWAPI EGLDisplay <a class="code" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a>(<span class="keywordtype">void</span>);</div>
-<div class="line"><a name="l00432"></a><span class="lineno">  432</span>&#160; </div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;GLFWAPI EGLContext <a class="code" href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">glfwGetEGLContext</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160; </div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;GLFWAPI EGLSurface <a class="code" href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">glfwGetEGLSurface</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160; </div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;<span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_OSMESA)</span></div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
-<div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__native.html#ga3b36e3e3dcf308b776427b6bd73cc132">glfwGetOSMesaColorBuffer</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height, <span class="keywordtype">int</span>* format, <span class="keywordtype">void</span>** buffer);</div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160; </div>
-<div class="line"><a name="l00503"></a><span class="lineno">  503</span>&#160;GLFWAPI <span class="keywordtype">int</span> <a class="code" href="group__native.html#ga6b64039ffc88a7a2f57f0956c0c75d53">glfwGetOSMesaDepthBuffer</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height, <span class="keywordtype">int</span>* bytesPerValue, <span class="keywordtype">void</span>** buffer);</div>
-<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
-<div class="line"><a name="l00517"></a><span class="lineno">  517</span>&#160;GLFWAPI OSMesaContext <a class="code" href="group__native.html#ga9e47700080094eb569cb053afaa88773">glfwGetOSMesaContext</a>(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
-<div class="line"><a name="l00518"></a><span class="lineno">  518</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00519"></a><span class="lineno">  519</span>&#160; </div>
-<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160;<span class="preprocessor">#ifdef __cplusplus</span></div>
-<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160;}</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160;<span class="preprocessor">#endif</span></div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160; </div>
-<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;<span class="preprocessor">#endif </span><span class="comment">/* _glfw3_native_h_ */</span><span class="preprocessor"></span></div>
-<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160; </div>
-</div><!-- fragment --></div><!-- contents -->
-<div class="ttc" id="agroup__native_html_ga6b64039ffc88a7a2f57f0956c0c75d53"><div class="ttname"><a href="group__native.html#ga6b64039ffc88a7a2f57f0956c0c75d53">glfwGetOSMesaDepthBuffer</a></div><div class="ttdeci">int glfwGetOSMesaDepthBuffer(GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer)</div><div class="ttdoc">Retrieves the depth buffer associated with the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_ga72f23e3980b83788c70aa854eca31430"><div class="ttname"><a href="group__native.html#ga72f23e3980b83788c70aa854eca31430">glfwGetX11SelectionString</a></div><div class="ttdeci">const char * glfwGetX11SelectionString(void)</div><div class="ttdoc">Returns the contents of the current primary selection as a string.</div></div>
+<a href="glfw3native_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a id="l00001" name="l00001"></a><span class="lineno">    1</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00002" name="l00002"></a><span class="lineno">    2</span><span class="comment"> * GLFW 3.3 - www.glfw.org</span></div>
+<div class="line"><a id="l00003" name="l00003"></a><span class="lineno">    3</span><span class="comment"> * A library for OpenGL, window and input</span></div>
+<div class="line"><a id="l00004" name="l00004"></a><span class="lineno">    4</span><span class="comment"> *------------------------------------------------------------------------</span></div>
+<div class="line"><a id="l00005" name="l00005"></a><span class="lineno">    5</span><span class="comment"> * Copyright (c) 2002-2006 Marcus Geelnard</span></div>
+<div class="line"><a id="l00006" name="l00006"></a><span class="lineno">    6</span><span class="comment"> * Copyright (c) 2006-2018 Camilla Löwy &lt;[email protected]&gt;</span></div>
+<div class="line"><a id="l00007" name="l00007"></a><span class="lineno">    7</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00008" name="l00008"></a><span class="lineno">    8</span><span class="comment"> * This software is provided &#39;as-is&#39;, without any express or implied</span></div>
+<div class="line"><a id="l00009" name="l00009"></a><span class="lineno">    9</span><span class="comment"> * warranty. In no event will the authors be held liable for any damages</span></div>
+<div class="line"><a id="l00010" name="l00010"></a><span class="lineno">   10</span><span class="comment"> * arising from the use of this software.</span></div>
+<div class="line"><a id="l00011" name="l00011"></a><span class="lineno">   11</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00012" name="l00012"></a><span class="lineno">   12</span><span class="comment"> * Permission is granted to anyone to use this software for any purpose,</span></div>
+<div class="line"><a id="l00013" name="l00013"></a><span class="lineno">   13</span><span class="comment"> * including commercial applications, and to alter it and redistribute it</span></div>
+<div class="line"><a id="l00014" name="l00014"></a><span class="lineno">   14</span><span class="comment"> * freely, subject to the following restrictions:</span></div>
+<div class="line"><a id="l00015" name="l00015"></a><span class="lineno">   15</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00016" name="l00016"></a><span class="lineno">   16</span><span class="comment"> * 1. The origin of this software must not be misrepresented; you must not</span></div>
+<div class="line"><a id="l00017" name="l00017"></a><span class="lineno">   17</span><span class="comment"> *    claim that you wrote the original software. If you use this software</span></div>
+<div class="line"><a id="l00018" name="l00018"></a><span class="lineno">   18</span><span class="comment"> *    in a product, an acknowledgment in the product documentation would</span></div>
+<div class="line"><a id="l00019" name="l00019"></a><span class="lineno">   19</span><span class="comment"> *    be appreciated but is not required.</span></div>
+<div class="line"><a id="l00020" name="l00020"></a><span class="lineno">   20</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00021" name="l00021"></a><span class="lineno">   21</span><span class="comment"> * 2. Altered source versions must be plainly marked as such, and must not</span></div>
+<div class="line"><a id="l00022" name="l00022"></a><span class="lineno">   22</span><span class="comment"> *    be misrepresented as being the original software.</span></div>
+<div class="line"><a id="l00023" name="l00023"></a><span class="lineno">   23</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00024" name="l00024"></a><span class="lineno">   24</span><span class="comment"> * 3. This notice may not be removed or altered from any source</span></div>
+<div class="line"><a id="l00025" name="l00025"></a><span class="lineno">   25</span><span class="comment"> *    distribution.</span></div>
+<div class="line"><a id="l00026" name="l00026"></a><span class="lineno">   26</span><span class="comment"> *</span></div>
+<div class="line"><a id="l00027" name="l00027"></a><span class="lineno">   27</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00028" name="l00028"></a><span class="lineno">   28</span> </div>
+<div class="line"><a id="l00029" name="l00029"></a><span class="lineno">   29</span><span class="preprocessor">#ifndef _glfw3_native_h_</span></div>
+<div class="line"><a id="l00030" name="l00030"></a><span class="lineno">   30</span><span class="preprocessor">#define _glfw3_native_h_</span></div>
+<div class="line"><a id="l00031" name="l00031"></a><span class="lineno">   31</span> </div>
+<div class="line"><a id="l00032" name="l00032"></a><span class="lineno">   32</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00033" name="l00033"></a><span class="lineno">   33</span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span> {</div>
+<div class="line"><a id="l00034" name="l00034"></a><span class="lineno">   34</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00035" name="l00035"></a><span class="lineno">   35</span> </div>
+<div class="line"><a id="l00036" name="l00036"></a><span class="lineno">   36</span> </div>
+<div class="line"><a id="l00037" name="l00037"></a><span class="lineno">   37</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00038" name="l00038"></a><span class="lineno">   38</span><span class="comment"> * Doxygen documentation</span></div>
+<div class="line"><a id="l00039" name="l00039"></a><span class="lineno">   39</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00040" name="l00040"></a><span class="lineno">   40</span> </div>
+<div class="line"><a id="l00090" name="l00090"></a><span class="lineno">   90</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00091" name="l00091"></a><span class="lineno">   91</span><span class="comment"> * System headers and types</span></div>
+<div class="line"><a id="l00092" name="l00092"></a><span class="lineno">   92</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00093" name="l00093"></a><span class="lineno">   93</span> </div>
+<div class="line"><a id="l00094" name="l00094"></a><span class="lineno">   94</span><span class="preprocessor">#if !defined(GLFW_NATIVE_INCLUDE_NONE)</span></div>
+<div class="line"><a id="l00095" name="l00095"></a><span class="lineno">   95</span> </div>
+<div class="line"><a id="l00096" name="l00096"></a><span class="lineno">   96</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_WIN32) || defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
+<div class="line"><a id="l00097" name="l00097"></a><span class="lineno">   97</span>  <span class="comment">/* This is a workaround for the fact that glfw3.h needs to export APIENTRY (for</span></div>
+<div class="line"><a id="l00098" name="l00098"></a><span class="lineno">   98</span><span class="comment">   * example to allow applications to correctly declare a GL_KHR_debug callback)</span></div>
+<div class="line"><a id="l00099" name="l00099"></a><span class="lineno">   99</span><span class="comment">   * but windows.h assumes no one will define APIENTRY before it does</span></div>
+<div class="line"><a id="l00100" name="l00100"></a><span class="lineno">  100</span><span class="comment">   */</span></div>
+<div class="line"><a id="l00101" name="l00101"></a><span class="lineno">  101</span><span class="preprocessor">  #if defined(GLFW_APIENTRY_DEFINED)</span></div>
+<div class="line"><a id="l00102" name="l00102"></a><span class="lineno">  102</span><span class="preprocessor">   #undef APIENTRY</span></div>
+<div class="line"><a id="l00103" name="l00103"></a><span class="lineno">  103</span><span class="preprocessor">   #undef GLFW_APIENTRY_DEFINED</span></div>
+<div class="line"><a id="l00104" name="l00104"></a><span class="lineno">  104</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00105" name="l00105"></a><span class="lineno">  105</span><span class="preprocessor">  #include &lt;windows.h&gt;</span></div>
+<div class="line"><a id="l00106" name="l00106"></a><span class="lineno">  106</span><span class="preprocessor"> #elif defined(GLFW_EXPOSE_NATIVE_COCOA) || defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
+<div class="line"><a id="l00107" name="l00107"></a><span class="lineno">  107</span><span class="preprocessor">  #if defined(__OBJC__)</span></div>
+<div class="line"><a id="l00108" name="l00108"></a><span class="lineno">  108</span><span class="preprocessor">   #import &lt;Cocoa/Cocoa.h&gt;</span></div>
+<div class="line"><a id="l00109" name="l00109"></a><span class="lineno">  109</span><span class="preprocessor">  #else</span></div>
+<div class="line"><a id="l00110" name="l00110"></a><span class="lineno">  110</span><span class="preprocessor">   #include &lt;ApplicationServices/ApplicationServices.h&gt;</span></div>
+<div class="line"><a id="l00111" name="l00111"></a><span class="lineno">  111</span><span class="preprocessor">   #include &lt;objc/objc.h&gt;</span></div>
+<div class="line"><a id="l00112" name="l00112"></a><span class="lineno">  112</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00113" name="l00113"></a><span class="lineno">  113</span><span class="preprocessor"> #elif defined(GLFW_EXPOSE_NATIVE_X11) || defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
+<div class="line"><a id="l00114" name="l00114"></a><span class="lineno">  114</span><span class="preprocessor">  #include &lt;X11/Xlib.h&gt;</span></div>
+<div class="line"><a id="l00115" name="l00115"></a><span class="lineno">  115</span><span class="preprocessor">  #include &lt;X11/extensions/Xrandr.h&gt;</span></div>
+<div class="line"><a id="l00116" name="l00116"></a><span class="lineno">  116</span><span class="preprocessor"> #elif defined(GLFW_EXPOSE_NATIVE_WAYLAND)</span></div>
+<div class="line"><a id="l00117" name="l00117"></a><span class="lineno">  117</span><span class="preprocessor">  #include &lt;wayland-client.h&gt;</span></div>
+<div class="line"><a id="l00118" name="l00118"></a><span class="lineno">  118</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00119" name="l00119"></a><span class="lineno">  119</span> </div>
+<div class="line"><a id="l00120" name="l00120"></a><span class="lineno">  120</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
+<div class="line"><a id="l00121" name="l00121"></a><span class="lineno">  121</span>  <span class="comment">/* WGL is declared by windows.h */</span></div>
+<div class="line"><a id="l00122" name="l00122"></a><span class="lineno">  122</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00123" name="l00123"></a><span class="lineno">  123</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
+<div class="line"><a id="l00124" name="l00124"></a><span class="lineno">  124</span>  <span class="comment">/* NSGL is declared by Cocoa.h */</span></div>
+<div class="line"><a id="l00125" name="l00125"></a><span class="lineno">  125</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00126" name="l00126"></a><span class="lineno">  126</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
+<div class="line"><a id="l00127" name="l00127"></a><span class="lineno">  127</span>  <span class="comment">/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by</span></div>
+<div class="line"><a id="l00128" name="l00128"></a><span class="lineno">  128</span><span class="comment">   * default it also acts as an OpenGL header</span></div>
+<div class="line"><a id="l00129" name="l00129"></a><span class="lineno">  129</span><span class="comment">   * However, glx.h will include gl.h, which will define it unconditionally</span></div>
+<div class="line"><a id="l00130" name="l00130"></a><span class="lineno">  130</span><span class="comment">   */</span></div>
+<div class="line"><a id="l00131" name="l00131"></a><span class="lineno">  131</span><span class="preprocessor">  #if defined(GLFW_GLAPIENTRY_DEFINED)</span></div>
+<div class="line"><a id="l00132" name="l00132"></a><span class="lineno">  132</span><span class="preprocessor">   #undef GLAPIENTRY</span></div>
+<div class="line"><a id="l00133" name="l00133"></a><span class="lineno">  133</span><span class="preprocessor">   #undef GLFW_GLAPIENTRY_DEFINED</span></div>
+<div class="line"><a id="l00134" name="l00134"></a><span class="lineno">  134</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00135" name="l00135"></a><span class="lineno">  135</span><span class="preprocessor">  #include &lt;GL/glx.h&gt;</span></div>
+<div class="line"><a id="l00136" name="l00136"></a><span class="lineno">  136</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00137" name="l00137"></a><span class="lineno">  137</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_EGL)</span></div>
+<div class="line"><a id="l00138" name="l00138"></a><span class="lineno">  138</span><span class="preprocessor">  #include &lt;EGL/egl.h&gt;</span></div>
+<div class="line"><a id="l00139" name="l00139"></a><span class="lineno">  139</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00140" name="l00140"></a><span class="lineno">  140</span><span class="preprocessor"> #if defined(GLFW_EXPOSE_NATIVE_OSMESA)</span></div>
+<div class="line"><a id="l00141" name="l00141"></a><span class="lineno">  141</span>  <span class="comment">/* This is a workaround for the fact that glfw3.h defines GLAPIENTRY because by</span></div>
+<div class="line"><a id="l00142" name="l00142"></a><span class="lineno">  142</span><span class="comment">   * default it also acts as an OpenGL header</span></div>
+<div class="line"><a id="l00143" name="l00143"></a><span class="lineno">  143</span><span class="comment">   * However, osmesa.h will include gl.h, which will define it unconditionally</span></div>
+<div class="line"><a id="l00144" name="l00144"></a><span class="lineno">  144</span><span class="comment">   */</span></div>
+<div class="line"><a id="l00145" name="l00145"></a><span class="lineno">  145</span><span class="preprocessor">  #if defined(GLFW_GLAPIENTRY_DEFINED)</span></div>
+<div class="line"><a id="l00146" name="l00146"></a><span class="lineno">  146</span><span class="preprocessor">   #undef GLAPIENTRY</span></div>
+<div class="line"><a id="l00147" name="l00147"></a><span class="lineno">  147</span><span class="preprocessor">   #undef GLFW_GLAPIENTRY_DEFINED</span></div>
+<div class="line"><a id="l00148" name="l00148"></a><span class="lineno">  148</span><span class="preprocessor">  #endif</span></div>
+<div class="line"><a id="l00149" name="l00149"></a><span class="lineno">  149</span><span class="preprocessor">  #include &lt;GL/osmesa.h&gt;</span></div>
+<div class="line"><a id="l00150" name="l00150"></a><span class="lineno">  150</span><span class="preprocessor"> #endif</span></div>
+<div class="line"><a id="l00151" name="l00151"></a><span class="lineno">  151</span> </div>
+<div class="line"><a id="l00152" name="l00152"></a><span class="lineno">  152</span><span class="preprocessor">#endif </span><span class="comment">/*GLFW_NATIVE_INCLUDE_NONE*/</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00153" name="l00153"></a><span class="lineno">  153</span> </div>
+<div class="line"><a id="l00154" name="l00154"></a><span class="lineno">  154</span> </div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno">  155</span><span class="comment">/*************************************************************************</span></div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno">  156</span><span class="comment"> * Functions</span></div>
+<div class="line"><a id="l00157" name="l00157"></a><span class="lineno">  157</span><span class="comment"> *************************************************************************/</span></div>
+<div class="line"><a id="l00158" name="l00158"></a><span class="lineno">  158</span> </div>
+<div class="line"><a id="l00159" name="l00159"></a><span class="lineno">  159</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WIN32)</span></div>
+<div class="line"><a id="l00175" name="l00175"></a><span class="lineno"><a class="line" href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">  175</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">glfwGetWin32Adapter</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00176" name="l00176"></a><span class="lineno">  176</span> </div>
+<div class="line"><a id="l00192" name="l00192"></a><span class="lineno"><a class="line" href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">  192</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">glfwGetWin32Monitor</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00193" name="l00193"></a><span class="lineno">  193</span> </div>
+<div class="line"><a id="l00216" name="l00216"></a><span class="lineno"><a class="line" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">  216</a></span>GLFWAPI HWND <a class="code hl_function" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00217" name="l00217"></a><span class="lineno">  217</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00218" name="l00218"></a><span class="lineno">  218</span> </div>
+<div class="line"><a id="l00219" name="l00219"></a><span class="lineno">  219</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WGL)</span></div>
+<div class="line"><a id="l00243" name="l00243"></a><span class="lineno"><a class="line" href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">  243</a></span>GLFWAPI HGLRC <a class="code hl_function" href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">glfwGetWGLContext</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00244" name="l00244"></a><span class="lineno">  244</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00245" name="l00245"></a><span class="lineno">  245</span> </div>
+<div class="line"><a id="l00246" name="l00246"></a><span class="lineno">  246</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_COCOA)</span></div>
+<div class="line"><a id="l00261" name="l00261"></a><span class="lineno"><a class="line" href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">  261</a></span>GLFWAPI CGDirectDisplayID <a class="code hl_function" href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">glfwGetCocoaMonitor</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00262" name="l00262"></a><span class="lineno">  262</span> </div>
+<div class="line"><a id="l00277" name="l00277"></a><span class="lineno"><a class="line" href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">  277</a></span>GLFWAPI <span class="keywordtype">id</span> <a class="code hl_function" href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">glfwGetCocoaWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00278" name="l00278"></a><span class="lineno">  278</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00279" name="l00279"></a><span class="lineno">  279</span> </div>
+<div class="line"><a id="l00280" name="l00280"></a><span class="lineno">  280</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_NSGL)</span></div>
+<div class="line"><a id="l00296" name="l00296"></a><span class="lineno"><a class="line" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">  296</a></span>GLFWAPI <span class="keywordtype">id</span> <a class="code hl_function" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00297" name="l00297"></a><span class="lineno">  297</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00298" name="l00298"></a><span class="lineno">  298</span> </div>
+<div class="line"><a id="l00299" name="l00299"></a><span class="lineno">  299</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_X11)</span></div>
+<div class="line"><a id="l00314" name="l00314"></a><span class="lineno"><a class="line" href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">  314</a></span>GLFWAPI Display* <a class="code hl_function" href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">glfwGetX11Display</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00315" name="l00315"></a><span class="lineno">  315</span> </div>
+<div class="line"><a id="l00330" name="l00330"></a><span class="lineno"><a class="line" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">  330</a></span>GLFWAPI RRCrtc <a class="code hl_function" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00331" name="l00331"></a><span class="lineno">  331</span> </div>
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="group__native.html#gab2f8cc043905e9fa9b12bfdbbcfe874c">  346</a></span>GLFWAPI RROutput <a class="code hl_function" href="group__native.html#gab2f8cc043905e9fa9b12bfdbbcfe874c">glfwGetX11Monitor</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno">  347</span> </div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="group__native.html#ga90ca676322740842db446999a1b1f21d">  362</a></span>GLFWAPI Window <a class="code hl_function" href="group__native.html#ga90ca676322740842db446999a1b1f21d">glfwGetX11Window</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno">  363</span> </div>
+<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"><a class="line" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">  384</a></span>GLFWAPI <span class="keywordtype">void</span> <a class="code hl_function" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>* <span class="keywordtype">string</span>);</div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno">  385</span> </div>
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"><a class="line" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">  412</a></span>GLFWAPI <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code hl_function" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">glfwGetX11SelectionString</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno">  413</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno">  414</span> </div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno">  415</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_GLX)</span></div>
+<div class="line"><a id="l00431" name="l00431"></a><span class="lineno"><a class="line" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">  431</a></span>GLFWAPI GLXContext <a class="code hl_function" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno">  432</span> </div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">  448</a></span>GLFWAPI GLXWindow <a class="code hl_function" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno">  449</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno">  450</span> </div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno">  451</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_WAYLAND)</span></div>
+<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">  466</a></span>GLFWAPI <span class="keyword">struct </span>wl_display* <a class="code hl_function" href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">glfwGetWaylandDisplay</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00467" name="l00467"></a><span class="lineno">  467</span> </div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"><a class="line" href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">  482</a></span>GLFWAPI <span class="keyword">struct </span>wl_output* <a class="code hl_function" href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">glfwGetWaylandMonitor</a>(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor);</div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno">  483</span> </div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"><a class="line" href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">  498</a></span>GLFWAPI <span class="keyword">struct </span>wl_surface* <a class="code hl_function" href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">glfwGetWaylandWindow</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno">  499</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno">  500</span> </div>
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno">  501</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_EGL)</span></div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">  519</a></span>GLFWAPI EGLDisplay <a class="code hl_function" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"><a id="l00520" name="l00520"></a><span class="lineno">  520</span> </div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">  536</a></span>GLFWAPI EGLContext <a class="code hl_function" href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">glfwGetEGLContext</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno">  537</span> </div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"><a class="line" href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">  553</a></span>GLFWAPI EGLSurface <a class="code hl_function" href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">glfwGetEGLSurface</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno">  554</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno">  555</span> </div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno">  556</span><span class="preprocessor">#if defined(GLFW_EXPOSE_NATIVE_OSMESA)</span></div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"><a class="line" href="group__native.html#ga3b36e3e3dcf308b776427b6bd73cc132">  579</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__native.html#ga3b36e3e3dcf308b776427b6bd73cc132">glfwGetOSMesaColorBuffer</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height, <span class="keywordtype">int</span>* format, <span class="keywordtype">void</span>** buffer);</div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno">  580</span> </div>
+<div class="line"><a id="l00603" name="l00603"></a><span class="lineno"><a class="line" href="group__native.html#ga6b64039ffc88a7a2f57f0956c0c75d53">  603</a></span>GLFWAPI <span class="keywordtype">int</span> <a class="code hl_function" href="group__native.html#ga6b64039ffc88a7a2f57f0956c0c75d53">glfwGetOSMesaDepthBuffer</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span>* width, <span class="keywordtype">int</span>* height, <span class="keywordtype">int</span>* bytesPerValue, <span class="keywordtype">void</span>** buffer);</div>
+<div class="line"><a id="l00604" name="l00604"></a><span class="lineno">  604</span> </div>
+<div class="line"><a id="l00620" name="l00620"></a><span class="lineno"><a class="line" href="group__native.html#ga9e47700080094eb569cb053afaa88773">  620</a></span>GLFWAPI OSMesaContext <a class="code hl_function" href="group__native.html#ga9e47700080094eb569cb053afaa88773">glfwGetOSMesaContext</a>(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="line"><a id="l00621" name="l00621"></a><span class="lineno">  621</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00622" name="l00622"></a><span class="lineno">  622</span> </div>
+<div class="line"><a id="l00623" name="l00623"></a><span class="lineno">  623</span><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><a id="l00624" name="l00624"></a><span class="lineno">  624</span>}</div>
+<div class="line"><a id="l00625" name="l00625"></a><span class="lineno">  625</span><span class="preprocessor">#endif</span></div>
+<div class="line"><a id="l00626" name="l00626"></a><span class="lineno">  626</span> </div>
+<div class="line"><a id="l00627" name="l00627"></a><span class="lineno">  627</span><span class="preprocessor">#endif </span><span class="comment">/* _glfw3_native_h_ */</span><span class="preprocessor"></span></div>
+<div class="line"><a id="l00628" name="l00628"></a><span class="lineno">  628</span> </div>
+<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1173</div></div>
+<div class="ttc" id="agroup__native_html_ga088fbfa80f50569402b41be71ad66e40"><div class="ttname"><a href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a></div><div class="ttdeci">RRCrtc glfwGetX11Adapter(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the RRCrtc of the specified monitor.</div></div>
+<div class="ttc" id="agroup__native_html_ga1cd8d973f47aacb5532d368147cc3138"><div class="ttname"><a href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a></div><div class="ttdeci">EGLDisplay glfwGetEGLDisplay(void)</div><div class="ttdoc">Returns the EGLDisplay used by GLFW.</div></div>
 <div class="ttc" id="agroup__native_html_ga1ed27b8766e859a21381e8f8ce18d049"><div class="ttname"><a href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a></div><div class="ttdeci">GLXWindow glfwGetGLXWindow(GLFWwindow *window)</div><div class="ttdoc">Returns the GLXWindow of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_gaaf8118a3c877f3a6bc8e7a649519de5e"><div class="ttname"><a href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">glfwGetWaylandDisplay</a></div><div class="ttdeci">struct wl_display * glfwGetWaylandDisplay(void)</div><div class="ttdoc">Returns the struct wl_display* used by GLFW.</div></div>
-<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1152</div></div>
-<div class="ttc" id="agroup__native_html_gaf22f429aec4b1aab316142d66d9be3e6"><div class="ttname"><a href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">glfwGetCocoaMonitor</a></div><div class="ttdeci">CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the CGDirectDisplayID of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_ga671c5072becd085f4ab5771a9c8efcf1"><div class="ttname"><a href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">glfwGetEGLContext</a></div><div class="ttdeci">EGLContext glfwGetEGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the EGLContext of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga2199b36117a6a695fec8441d8052eee6"><div class="ttname"><a href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">glfwGetEGLSurface</a></div><div class="ttdeci">EGLSurface glfwGetEGLSurface(GLFWwindow *window)</div><div class="ttdoc">Returns the EGLSurface of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga3b36e3e3dcf308b776427b6bd73cc132"><div class="ttname"><a href="group__native.html#ga3b36e3e3dcf308b776427b6bd73cc132">glfwGetOSMesaColorBuffer</a></div><div class="ttdeci">int glfwGetOSMesaColorBuffer(GLFWwindow *window, int *width, int *height, int *format, void **buffer)</div><div class="ttdoc">Retrieves the color buffer associated with the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga4f16066bd4c59e2f99418adfcb43dd16"><div class="ttname"><a href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">glfwGetWaylandMonitor</a></div><div class="ttdeci">struct wl_output * glfwGetWaylandMonitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the struct wl_output* of the specified monitor.</div></div>
+<div class="ttc" id="agroup__native_html_ga559e002e3cd63c979881770cd4dc63bc"><div class="ttname"><a href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a></div><div class="ttdeci">id glfwGetNSGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the NSOpenGLContext of the specified window.</div></div>
 <div class="ttc" id="agroup__native_html_ga55f879ab02d93367f966186b6f0133f7"><div class="ttname"><a href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a></div><div class="ttdeci">void glfwSetX11SelectionString(const char *string)</div><div class="ttdoc">Sets the current primary selection to the specified string.</div></div>
-<div class="ttc" id="agroup__native_html_gab10427a667b6cd91eec7709f7a906bd3"><div class="ttname"><a href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">glfwGetWaylandMonitor</a></div><div class="ttdeci">struct wl_output * glfwGetWaylandMonitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the struct wl_output* of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_gadc4010d91d9cc1134d040eeb1202a143"><div class="ttname"><a href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">glfwGetWGLContext</a></div><div class="ttdeci">HGLRC glfwGetWGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the HGLRC of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga5c597f2841229d9626f0811cca41ceb3"><div class="ttname"><a href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">glfwGetWaylandWindow</a></div><div class="ttdeci">struct wl_surface * glfwGetWaylandWindow(GLFWwindow *window)</div><div class="ttdoc">Returns the main struct wl_surface* of the specified window.</div></div>
 <div class="ttc" id="agroup__native_html_ga62d884114b0abfcdc2930e89f20867e2"><div class="ttname"><a href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a></div><div class="ttdeci">GLXContext glfwGetGLXContext(GLFWwindow *window)</div><div class="ttdoc">Returns the GLXContext of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_ga8519b66594ea3ef6eeafaa2e3ee37406"><div class="ttname"><a href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">glfwGetX11Display</a></div><div class="ttdeci">Display * glfwGetX11Display(void)</div><div class="ttdoc">Returns the Display used by GLFW.</div></div>
-<div class="ttc" id="agroup__native_html_gac3ed9d495d0c2bb9652de5a50c648715"><div class="ttname"><a href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">glfwGetCocoaWindow</a></div><div class="ttdeci">id glfwGetCocoaWindow(GLFWwindow *window)</div><div class="ttdoc">Returns the NSWindow of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_ga4738d7aca4191363519a9a641c3ab64c"><div class="ttname"><a href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">glfwGetWaylandWindow</a></div><div class="ttdeci">struct wl_surface * glfwGetWaylandWindow(GLFWwindow *window)</div><div class="ttdoc">Returns the main struct wl_surface* of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_gac408b09a330749402d5d1fa1f5894dd9"><div class="ttname"><a href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">glfwGetWin32Monitor</a></div><div class="ttdeci">const char * glfwGetWin32Monitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the display device name of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_ga559e002e3cd63c979881770cd4dc63bc"><div class="ttname"><a href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a></div><div class="ttdeci">id glfwGetNSGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the NSOpenGLContext of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_gac84f63a3f9db145b9435e5e0dbc4183d"><div class="ttname"><a href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">glfwGetWin32Adapter</a></div><div class="ttdeci">const char * glfwGetWin32Adapter(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the adapter device name of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_ga9e47700080094eb569cb053afaa88773"><div class="ttname"><a href="group__native.html#ga9e47700080094eb569cb053afaa88773">glfwGetOSMesaContext</a></div><div class="ttdeci">OSMesaContext glfwGetOSMesaContext(GLFWwindow *window)</div><div class="ttdoc">Returns the OSMesaContext of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga671c5072becd085f4ab5771a9c8efcf1"><div class="ttname"><a href="group__native.html#ga671c5072becd085f4ab5771a9c8efcf1">glfwGetEGLContext</a></div><div class="ttdeci">EGLContext glfwGetEGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the EGLContext of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga6b64039ffc88a7a2f57f0956c0c75d53"><div class="ttname"><a href="group__native.html#ga6b64039ffc88a7a2f57f0956c0c75d53">glfwGetOSMesaDepthBuffer</a></div><div class="ttdeci">int glfwGetOSMesaDepthBuffer(GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer)</div><div class="ttdoc">Retrieves the depth buffer associated with the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga6e7822385cc8a1cc3b18f60352830189"><div class="ttname"><a href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">glfwGetX11Display</a></div><div class="ttdeci">Display * glfwGetX11Display(void)</div><div class="ttdoc">Returns the Display used by GLFW.</div></div>
 <div class="ttc" id="agroup__native_html_ga90ca676322740842db446999a1b1f21d"><div class="ttname"><a href="group__native.html#ga90ca676322740842db446999a1b1f21d">glfwGetX11Window</a></div><div class="ttdeci">Window glfwGetX11Window(GLFWwindow *window)</div><div class="ttdoc">Returns the Window of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_ga2199b36117a6a695fec8441d8052eee6"><div class="ttname"><a href="group__native.html#ga2199b36117a6a695fec8441d8052eee6">glfwGetEGLSurface</a></div><div class="ttdeci">EGLSurface glfwGetEGLSurface(GLFWwindow *window)</div><div class="ttdoc">Returns the EGLSurface of the specified window.</div></div>
-<div class="ttc" id="agroup__native_html_ga3b36e3e3dcf308b776427b6bd73cc132"><div class="ttname"><a href="group__native.html#ga3b36e3e3dcf308b776427b6bd73cc132">glfwGetOSMesaColorBuffer</a></div><div class="ttdeci">int glfwGetOSMesaColorBuffer(GLFWwindow *window, int *width, int *height, int *format, void **buffer)</div><div class="ttdoc">Retrieves the color buffer associated with the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_ga9e47700080094eb569cb053afaa88773"><div class="ttname"><a href="group__native.html#ga9e47700080094eb569cb053afaa88773">glfwGetOSMesaContext</a></div><div class="ttdeci">OSMesaContext glfwGetOSMesaContext(GLFWwindow *window)</div><div class="ttdoc">Returns the OSMesaContext of the specified window.</div></div>
 <div class="ttc" id="agroup__native_html_gab2f8cc043905e9fa9b12bfdbbcfe874c"><div class="ttname"><a href="group__native.html#gab2f8cc043905e9fa9b12bfdbbcfe874c">glfwGetX11Monitor</a></div><div class="ttdeci">RROutput glfwGetX11Monitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the RROutput of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_ga088fbfa80f50569402b41be71ad66e40"><div class="ttname"><a href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a></div><div class="ttdeci">RRCrtc glfwGetX11Adapter(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the RRCrtc of the specified monitor.</div></div>
-<div class="ttc" id="agroup__native_html_ga1cd8d973f47aacb5532d368147cc3138"><div class="ttname"><a href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a></div><div class="ttdeci">EGLDisplay glfwGetEGLDisplay(void)</div><div class="ttdoc">Returns the EGLDisplay used by GLFW.</div></div>
+<div class="ttc" id="agroup__native_html_gac3ed9d495d0c2bb9652de5a50c648715"><div class="ttname"><a href="group__native.html#gac3ed9d495d0c2bb9652de5a50c648715">glfwGetCocoaWindow</a></div><div class="ttdeci">id glfwGetCocoaWindow(GLFWwindow *window)</div><div class="ttdoc">Returns the NSWindow of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_gac845f7dbe4c1d7fdd682a3c6fdae6766"><div class="ttname"><a href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">glfwGetWin32Monitor</a></div><div class="ttdeci">const char * glfwGetWin32Monitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the display device name of the specified monitor.</div></div>
+<div class="ttc" id="agroup__native_html_gacbe11f93ce20621de82989bbba94e62a"><div class="ttname"><a href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">glfwGetWaylandDisplay</a></div><div class="ttdeci">struct wl_display * glfwGetWaylandDisplay(void)</div><div class="ttdoc">Returns the struct wl_display* used by GLFW.</div></div>
+<div class="ttc" id="agroup__native_html_gad4d3e9242536c0ba6be88a98f4c73a41"><div class="ttname"><a href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">glfwGetWin32Adapter</a></div><div class="ttdeci">const char * glfwGetWin32Adapter(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the adapter device name of the specified monitor.</div></div>
+<div class="ttc" id="agroup__native_html_gadc4010d91d9cc1134d040eeb1202a143"><div class="ttname"><a href="group__native.html#gadc4010d91d9cc1134d040eeb1202a143">glfwGetWGLContext</a></div><div class="ttdeci">HGLRC glfwGetWGLContext(GLFWwindow *window)</div><div class="ttdoc">Returns the HGLRC of the specified window.</div></div>
+<div class="ttc" id="agroup__native_html_gae084ef64dc0db140b455b1427256d3f7"><div class="ttname"><a href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">glfwGetX11SelectionString</a></div><div class="ttdeci">const char * glfwGetX11SelectionString(void)</div><div class="ttdoc">Returns the contents of the current primary selection as a string.</div></div>
+<div class="ttc" id="agroup__native_html_gaf22f429aec4b1aab316142d66d9be3e6"><div class="ttname"><a href="group__native.html#gaf22f429aec4b1aab316142d66d9be3e6">glfwGetCocoaMonitor</a></div><div class="ttdeci">CGDirectDisplayID glfwGetCocoaMonitor(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the CGDirectDisplayID of the specified monitor.</div></div>
 <div class="ttc" id="agroup__native_html_gafe5079aa79038b0079fc09d5f0a8e667"><div class="ttname"><a href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a></div><div class="ttdeci">HWND glfwGetWin32Window(GLFWwindow *window)</div><div class="ttdoc">Returns the HWND of the specified window.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1140</div></div>
+<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1185</div></div>
+</div><!-- fragment --></div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 26 - 25
glfw.mod/glfw/docs/html/group__buttons.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Mouse buttons</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Mouse buttons<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Mouse buttons<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#input_mouse_button">mouse button input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#input_mouse_button">mouse button input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga181a6e875251fd8671654eff00f9112e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__buttons.html#ga181a6e875251fd8671654eff00f9112e">GLFW_MOUSE_BUTTON_1</a>&#160;&#160;&#160;0</td></tr>
 <tr class="separator:ga181a6e875251fd8671654eff00f9112e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -96,7 +97,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga34a4d2a701434f763fd93a2ff842b95a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga181a6e875251fd8671654eff00f9112e"></a>
+<a id="ga181a6e875251fd8671654eff00f9112e" name="ga181a6e875251fd8671654eff00f9112e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga181a6e875251fd8671654eff00f9112e">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_1</h2>
 
 <div class="memitem">
@@ -110,7 +111,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga604b39b92c88ce9bd332e97fc3f4156c"></a>
+<a id="ga604b39b92c88ce9bd332e97fc3f4156c" name="ga604b39b92c88ce9bd332e97fc3f4156c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga604b39b92c88ce9bd332e97fc3f4156c">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_2</h2>
 
 <div class="memitem">
@@ -124,7 +125,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga0130d505563d0236a6f85545f19e1721"></a>
+<a id="ga0130d505563d0236a6f85545f19e1721" name="ga0130d505563d0236a6f85545f19e1721"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga0130d505563d0236a6f85545f19e1721">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_3</h2>
 
 <div class="memitem">
@@ -138,7 +139,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga53f4097bb01d5521c7d9513418c91ca9"></a>
+<a id="ga53f4097bb01d5521c7d9513418c91ca9" name="ga53f4097bb01d5521c7d9513418c91ca9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga53f4097bb01d5521c7d9513418c91ca9">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_4</h2>
 
 <div class="memitem">
@@ -152,7 +153,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaf08c4ddecb051d3d9667db1d5e417c9c"></a>
+<a id="gaf08c4ddecb051d3d9667db1d5e417c9c" name="gaf08c4ddecb051d3d9667db1d5e417c9c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf08c4ddecb051d3d9667db1d5e417c9c">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_5</h2>
 
 <div class="memitem">
@@ -166,7 +167,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gae8513e06aab8aa393b595f22c6d8257a"></a>
+<a id="gae8513e06aab8aa393b595f22c6d8257a" name="gae8513e06aab8aa393b595f22c6d8257a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae8513e06aab8aa393b595f22c6d8257a">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_6</h2>
 
 <div class="memitem">
@@ -180,7 +181,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga8b02a1ab55dde45b3a3883d54ffd7dc7"></a>
+<a id="ga8b02a1ab55dde45b3a3883d54ffd7dc7" name="ga8b02a1ab55dde45b3a3883d54ffd7dc7"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8b02a1ab55dde45b3a3883d54ffd7dc7">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_7</h2>
 
 <div class="memitem">
@@ -194,7 +195,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga35d5c4263e0dc0d0a4731ca6c562f32c"></a>
+<a id="ga35d5c4263e0dc0d0a4731ca6c562f32c" name="ga35d5c4263e0dc0d0a4731ca6c562f32c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga35d5c4263e0dc0d0a4731ca6c562f32c">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_8</h2>
 
 <div class="memitem">
@@ -208,7 +209,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gab1fd86a4518a9141ec7bcde2e15a2fdf"></a>
+<a id="gab1fd86a4518a9141ec7bcde2e15a2fdf" name="gab1fd86a4518a9141ec7bcde2e15a2fdf"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab1fd86a4518a9141ec7bcde2e15a2fdf">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_LAST</h2>
 
 <div class="memitem">
@@ -222,7 +223,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaf37100431dcd5082d48f95ee8bc8cd56"></a>
+<a id="gaf37100431dcd5082d48f95ee8bc8cd56" name="gaf37100431dcd5082d48f95ee8bc8cd56"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf37100431dcd5082d48f95ee8bc8cd56">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_LEFT</h2>
 
 <div class="memitem">
@@ -236,7 +237,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga3e2f2cf3c4942df73cc094247d275e74"></a>
+<a id="ga3e2f2cf3c4942df73cc094247d275e74" name="ga3e2f2cf3c4942df73cc094247d275e74"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga3e2f2cf3c4942df73cc094247d275e74">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_RIGHT</h2>
 
 <div class="memitem">
@@ -250,7 +251,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga34a4d2a701434f763fd93a2ff842b95a"></a>
+<a id="ga34a4d2a701434f763fd93a2ff842b95a" name="ga34a4d2a701434f763fd93a2ff842b95a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga34a4d2a701434f763fd93a2ff842b95a">&#9670;&nbsp;</a></span>GLFW_MOUSE_BUTTON_MIDDLE</h2>
 
 <div class="memitem">
@@ -267,7 +268,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 44 - 43
glfw.mod/glfw/docs/html/group__context.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Context reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -62,27 +64,26 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">Context reference</div>  </div>
+  <div class="headertitle"><div class="title">Context reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>This is the reference documentation for OpenGL and OpenGL ES context related functions. For more task-oriented information, see the <a class="el" href="context_guide.html">Context guide</a>. </p>
+<p >This is the reference documentation for OpenGL and OpenGL ES context related functions. For more task-oriented information, see the <a class="el" href="context_guide.html">Context guide</a>. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr class="memitem:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">GLFWglproc</a>) (void)</td></tr>
 <tr class="memdesc:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Client API function pointer type.  <a href="group__context.html#ga3d47c2d2fbe0be9c505d0e04e91a133c">More...</a><br /></td></tr>
 <tr class="separator:ga3d47c2d2fbe0be9c505d0e04e91a133c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:ga1c04dc242268f827290fe40aa1c91157"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga1c04dc242268f827290fe40aa1c91157"><td class="mdescLeft">&#160;</td><td class="mdescRight">Makes the context of the specified window current for the calling thread.  <a href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">More...</a><br /></td></tr>
 <tr class="separator:ga1c04dc242268f827290fe40aa1c91157"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a> (void)</td></tr>
-<tr class="memdesc:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the window whose context is current on the calling thread.  <a href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">More...</a><br /></td></tr>
-<tr class="separator:gac84759b1f6c2d271a4fea8ae89ec980d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad94e80185397a6cf5fe2ab30567af71c"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a> (void)</td></tr>
+<tr class="memdesc:gad94e80185397a6cf5fe2ab30567af71c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the window whose context is current on the calling thread.  <a href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">More...</a><br /></td></tr>
+<tr class="separator:gad94e80185397a6cf5fe2ab30567af71c"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a> (int interval)</td></tr>
 <tr class="memdesc:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the swap interval for the current context.  <a href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">More...</a><br /></td></tr>
 <tr class="separator:ga6d4e0cdf151b5e579bd67f13202994ed"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -94,7 +95,7 @@ Functions</h2></td></tr>
 <tr class="separator:ga35f1837e6f666781842483937612f163"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ga3d47c2d2fbe0be9c505d0e04e91a133c"></a>
+<a id="ga3d47c2d2fbe0be9c505d0e04e91a133c" name="ga3d47c2d2fbe0be9c505d0e04e91a133c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga3d47c2d2fbe0be9c505d0e04e91a133c">&#9670;&nbsp;</a></span>GLFWglproc</h2>
 
 <div class="memitem">
@@ -105,7 +106,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.</p>
+<p >Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.</p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_glext">OpenGL and OpenGL ES extensions</a> </dd>
 <dd>
 <a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></dd></dl>
@@ -114,7 +115,7 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga1c04dc242268f827290fe40aa1c91157"></a>
+<a id="ga1c04dc242268f827290fe40aa1c91157" name="ga1c04dc242268f827290fe40aa1c91157"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1c04dc242268f827290fe40aa1c91157">&#9670;&nbsp;</a></span>glfwMakeContextCurrent()</h2>
 
 <div class="memitem">
@@ -129,10 +130,10 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function makes the OpenGL or OpenGL ES context of the specified window current on the calling thread. A context must only be made current on a single thread at a time and each thread can have only a single current context at a time.</p>
-<p>When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.</p>
-<p>By default, making a context non-current implicitly forces a pipeline flush. On machines that support <code>GL_KHR_context_flush_control</code>, you can control whether a context performs this flush by setting the <a class="el" href="window_guide.html#GLFW_CONTEXT_RELEASE_BEHAVIOR_hint">GLFW_CONTEXT_RELEASE_BEHAVIOR</a> hint.</p>
-<p>The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> error.</p>
+<p >This function makes the OpenGL or OpenGL ES context of the specified window current on the calling thread. A context must only be made current on a single thread at a time and each thread can have only a single current context at a time.</p>
+<p >When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.</p>
+<p >By default, making a context non-current implicitly forces a pipeline flush. On machines that support <code>GL_KHR_context_flush_control</code>, you can control whether a context performs this flush by setting the <a class="el" href="window_guide.html#GLFW_CONTEXT_RELEASE_BEHAVIOR_hint">GLFW_CONTEXT_RELEASE_BEHAVIOR</a> hint.</p>
+<p >The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> error.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">window</td><td>The window whose context to make current, or <code>NULL</code> to detach the current context.</td></tr>
@@ -143,19 +144,19 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="context_guide.html#context_current">Current context</a> </dd>
 <dd>
-<a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a></dd></dl>
+<a class="el" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="gac84759b1f6c2d271a4fea8ae89ec980d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac84759b1f6c2d271a4fea8ae89ec980d">&#9670;&nbsp;</a></span>glfwGetCurrentContext()</h2>
+<a id="gad94e80185397a6cf5fe2ab30567af71c" name="gad94e80185397a6cf5fe2ab30567af71c"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad94e80185397a6cf5fe2ab30567af71c">&#9670;&nbsp;</a></span>glfwGetCurrentContext()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* glfwGetCurrentContext </td>
+          <td class="memname"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> * glfwGetCurrentContext </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -163,7 +164,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.</p>
+<p >This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.</p>
 <dl class="section return"><dt>Returns</dt><dd>The window whose context is current, or <code>NULL</code> if no window's context is current.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
@@ -174,7 +175,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga6d4e0cdf151b5e579bd67f13202994ed"></a>
+<a id="ga6d4e0cdf151b5e579bd67f13202994ed" name="ga6d4e0cdf151b5e579bd67f13202994ed"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6d4e0cdf151b5e579bd67f13202994ed">&#9670;&nbsp;</a></span>glfwSwapInterval()</h2>
 
 <div class="memitem">
@@ -189,10 +190,10 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets the swap interval for the current OpenGL or OpenGL ES context, i.e. the number of screen updates to wait from the time <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a> was called before swapping the buffers and returning. This is sometimes called <em>vertical synchronization</em>, <em>vertical retrace synchronization</em> or just <em>vsync</em>.</p>
-<p>A context that supports either of the <code>WGL_EXT_swap_control_tear</code> and <code>GLX_EXT_swap_control_tear</code> extensions also accepts <em>negative</em> swap intervals, which allows the driver to swap immediately even if a frame arrives a little bit late. You can check for these extensions with <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>.</p>
-<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
-<p>This function does not apply to Vulkan. If you are rendering with Vulkan, see the present mode of your swapchain instead.</p>
+<p >This function sets the swap interval for the current OpenGL or OpenGL ES context, i.e. the number of screen updates to wait from the time <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a> was called before swapping the buffers and returning. This is sometimes called <em>vertical synchronization</em>, <em>vertical retrace synchronization</em> or just <em>vsync</em>.</p>
+<p >A context that supports either of the <code>WGL_EXT_swap_control_tear</code> and <code>GLX_EXT_swap_control_tear</code> extensions also accepts <em>negative</em> swap intervals, which allows the driver to swap immediately even if a frame arrives a little bit late. You can check for these extensions with <a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a>.</p>
+<p >A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
+<p >This function does not apply to Vulkan. If you are rendering with Vulkan, see the present mode of your swapchain instead.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">interval</td><td>The minimum number of screen updates to wait for until the buffers are swapped by <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>.</td></tr>
@@ -211,7 +212,7 @@ Some GPU drivers do not honor the requested swap interval, either because of a u
 
 </div>
 </div>
-<a id="ga87425065c011cef1ebd6aac75e059dfa"></a>
+<a id="ga87425065c011cef1ebd6aac75e059dfa" name="ga87425065c011cef1ebd6aac75e059dfa"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga87425065c011cef1ebd6aac75e059dfa">&#9670;&nbsp;</a></span>glfwExtensionSupported()</h2>
 
 <div class="memitem">
@@ -226,10 +227,10 @@ Some GPU drivers do not honor the requested swap interval, either because of a u
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns whether the specified <a class="el" href="context_guide.html#context_glext">API extension</a> is supported by the current OpenGL or OpenGL ES context. It searches both for client API extension and context creation API extensions.</p>
-<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
-<p>As this functions retrieves and searches one or more extension strings each call, it is recommended that you cache its results if it is going to be used frequently. The extension strings will not change during the lifetime of a context, so there is no danger in doing this.</p>
-<p>This function does not apply to Vulkan. If you are using Vulkan, see <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a>, <code>vkEnumerateInstanceExtensionProperties</code> and <code>vkEnumerateDeviceExtensionProperties</code> instead.</p>
+<p >This function returns whether the specified <a class="el" href="context_guide.html#context_glext">API extension</a> is supported by the current OpenGL or OpenGL ES context. It searches both for client API extension and context creation API extensions.</p>
+<p >A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
+<p >As this functions retrieves and searches one or more extension strings each call, it is recommended that you cache its results if it is going to be used frequently. The extension strings will not change during the lifetime of a context, so there is no danger in doing this.</p>
+<p >This function does not apply to Vulkan. If you are using Vulkan, see <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a>, <code>vkEnumerateInstanceExtensionProperties</code> and <code>vkEnumerateDeviceExtensionProperties</code> instead.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">extension</td><td>The ASCII encoded name of the extension. </td></tr>
@@ -246,7 +247,7 @@ Some GPU drivers do not honor the requested swap interval, either because of a u
 
 </div>
 </div>
-<a id="ga35f1837e6f666781842483937612f163"></a>
+<a id="ga35f1837e6f666781842483937612f163" name="ga35f1837e6f666781842483937612f163"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga35f1837e6f666781842483937612f163">&#9670;&nbsp;</a></span>glfwGetProcAddress()</h2>
 
 <div class="memitem">
@@ -261,9 +262,9 @@ Some GPU drivers do not honor the requested swap interval, either because of a u
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the address of the specified OpenGL or OpenGL ES <a class="el" href="context_guide.html#context_glext">core or extension function</a>, if it is supported by the current context.</p>
-<p>A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
-<p>This function does not apply to Vulkan. If you are rendering with Vulkan, see <a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a>, <code>vkGetInstanceProcAddr</code> and <code>vkGetDeviceProcAddr</code> instead.</p>
+<p >This function returns the address of the specified OpenGL or OpenGL ES <a class="el" href="context_guide.html#context_glext">core or extension function</a>, if it is supported by the current context.</p>
+<p >A context must be current on the calling thread. Calling this function without a current context will cause a <a class="el" href="group__errors.html#gaa8290386e9528ccb9e42a3a4e16fc0d0">GLFW_NO_CURRENT_CONTEXT</a> error.</p>
+<p >This function does not apply to Vulkan. If you are rendering with Vulkan, see <a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a>, <code>vkGetInstanceProcAddr</code> and <code>vkGetDeviceProcAddr</code> instead.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">procname</td><td>The ASCII encoded name of the function. </td></tr>
@@ -287,7 +288,7 @@ This function may return a non-<code>NULL</code> address despite the associated
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 38 - 37
glfw.mod/glfw/docs/html/group__errors.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Error codes</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Error codes<div class="ingroups"><a class="el" href="group__init.html">Initialization, version and error reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Error codes<div class="ingroups"><a class="el" href="group__init.html">Initialization, version and error reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="intro_guide.html#error_handling">error handling</a> for how these are used. </p>
+<p >See <a class="el" href="intro_guide.html#error_handling">error handling</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:gafa30deee5db4d69c4c93d116ed87dbf4"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a>&#160;&#160;&#160;0</td></tr>
 <tr class="memdesc:gafa30deee5db4d69c4c93d116ed87dbf4"><td class="mdescLeft">&#160;</td><td class="mdescRight">No error has occurred.  <a href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">More...</a><br /></td></tr>
@@ -105,7 +106,7 @@ Macros</h2></td></tr>
 <tr class="separator:gacff24d2757da752ae4c80bf452356487"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="gafa30deee5db4d69c4c93d116ed87dbf4"></a>
+<a id="gafa30deee5db4d69c4c93d116ed87dbf4" name="gafa30deee5db4d69c4c93d116ed87dbf4"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gafa30deee5db4d69c4c93d116ed87dbf4">&#9670;&nbsp;</a></span>GLFW_NO_ERROR</h2>
 
 <div class="memitem">
@@ -116,12 +117,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>No error has occurred.</p>
+<p >No error has occurred.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Yay. </dd></dl>
 
 </div>
 </div>
-<a id="ga2374ee02c177f12e1fa76ff3ed15e14a"></a>
+<a id="ga2374ee02c177f12e1fa76ff3ed15e14a" name="ga2374ee02c177f12e1fa76ff3ed15e14a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga2374ee02c177f12e1fa76ff3ed15e14a">&#9670;&nbsp;</a></span>GLFW_NOT_INITIALIZED</h2>
 
 <div class="memitem">
@@ -132,12 +133,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This occurs if a GLFW function was called that must not be called unless the library is <a class="el" href="intro_guide.html#intro_init">initialized</a>.</p>
+<p >This occurs if a GLFW function was called that must not be called unless the library is <a class="el" href="intro_guide.html#intro_init">initialized</a>.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Initialize GLFW before calling any function that requires initialization. </dd></dl>
 
 </div>
 </div>
-<a id="gaa8290386e9528ccb9e42a3a4e16fc0d0"></a>
+<a id="gaa8290386e9528ccb9e42a3a4e16fc0d0" name="gaa8290386e9528ccb9e42a3a4e16fc0d0"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaa8290386e9528ccb9e42a3a4e16fc0d0">&#9670;&nbsp;</a></span>GLFW_NO_CURRENT_CONTEXT</h2>
 
 <div class="memitem">
@@ -148,12 +149,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This occurs if a GLFW function was called that needs and operates on the current OpenGL or OpenGL ES context but no context is current on the calling thread. One such function is <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a>.</p>
+<p >This occurs if a GLFW function was called that needs and operates on the current OpenGL or OpenGL ES context but no context is current on the calling thread. One such function is <a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a>.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Ensure a context is current before calling functions that require a current context. </dd></dl>
 
 </div>
 </div>
-<a id="ga76f6bb9c4eea73db675f096b404593ce"></a>
+<a id="ga76f6bb9c4eea73db675f096b404593ce" name="ga76f6bb9c4eea73db675f096b404593ce"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga76f6bb9c4eea73db675f096b404593ce">&#9670;&nbsp;</a></span>GLFW_INVALID_ENUM</h2>
 
 <div class="memitem">
@@ -164,12 +165,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>One of the arguments to the function was an invalid enum value, for example requesting <a class="el" href="window_guide.html#GLFW_RED_BITS">GLFW_RED_BITS</a> with <a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>.</p>
+<p >One of the arguments to the function was an invalid enum value, for example requesting <a class="el" href="window_guide.html#GLFW_RED_BITS">GLFW_RED_BITS</a> with <a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
 
 </div>
 </div>
-<a id="gaaf2ef9aa8202c2b82ac2d921e554c687"></a>
+<a id="gaaf2ef9aa8202c2b82ac2d921e554c687" name="gaaf2ef9aa8202c2b82ac2d921e554c687"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaaf2ef9aa8202c2b82ac2d921e554c687">&#9670;&nbsp;</a></span>GLFW_INVALID_VALUE</h2>
 
 <div class="memitem">
@@ -180,13 +181,13 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>One of the arguments to the function was an invalid value, for example requesting a non-existent OpenGL or OpenGL ES version like 2.7.</p>
-<p>Requesting a valid but unavailable OpenGL or OpenGL ES version will instead result in a <a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">GLFW_VERSION_UNAVAILABLE</a> error.</p>
+<p >One of the arguments to the function was an invalid value, for example requesting a non-existent OpenGL or OpenGL ES version like 2.7.</p>
+<p >Requesting a valid but unavailable OpenGL or OpenGL ES version will instead result in a <a class="el" href="group__errors.html#gad16c5565b4a69f9c2a9ac2c0dbc89462">GLFW_VERSION_UNAVAILABLE</a> error.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
 
 </div>
 </div>
-<a id="ga9023953a2bcb98c2906afd071d21ee7f"></a>
+<a id="ga9023953a2bcb98c2906afd071d21ee7f" name="ga9023953a2bcb98c2906afd071d21ee7f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga9023953a2bcb98c2906afd071d21ee7f">&#9670;&nbsp;</a></span>GLFW_OUT_OF_MEMORY</h2>
 
 <div class="memitem">
@@ -197,12 +198,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>A memory allocation failed.</p>
+<p >A memory allocation failed.</p>
 <dl class="section user"><dt>Analysis</dt><dd>A bug in GLFW or the underlying operating system. Report the bug to our <a href="https://github.com/glfw/glfw/issues">issue tracker</a>. </dd></dl>
 
 </div>
 </div>
-<a id="ga56882b290db23261cc6c053c40c2d08e"></a>
+<a id="ga56882b290db23261cc6c053c40c2d08e" name="ga56882b290db23261cc6c053c40c2d08e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga56882b290db23261cc6c053c40c2d08e">&#9670;&nbsp;</a></span>GLFW_API_UNAVAILABLE</h2>
 
 <div class="memitem">
@@ -213,13 +214,13 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>GLFW could not find support for the requested API on the system.</p>
+<p >GLFW could not find support for the requested API on the system.</p>
 <dl class="section user"><dt>Analysis</dt><dd>The installed graphics driver does not support the requested API, or does not support it via the chosen context creation backend. Below are a few examples.</dd></dl>
 <dl class="section user"><dt></dt><dd>Some pre-installed Windows graphics drivers do not support OpenGL. AMD only supports OpenGL ES via EGL, while Nvidia and Intel only support it via a WGL or GLX extension. macOS does not provide OpenGL ES at all. The Mesa EGL, OpenGL and OpenGL ES libraries do not interface with the Nvidia binary driver. Older graphics drivers do not support Vulkan. </dd></dl>
 
 </div>
 </div>
-<a id="gad16c5565b4a69f9c2a9ac2c0dbc89462"></a>
+<a id="gad16c5565b4a69f9c2a9ac2c0dbc89462" name="gad16c5565b4a69f9c2a9ac2c0dbc89462"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad16c5565b4a69f9c2a9ac2c0dbc89462">&#9670;&nbsp;</a></span>GLFW_VERSION_UNAVAILABLE</h2>
 
 <div class="memitem">
@@ -230,13 +231,13 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The requested OpenGL or OpenGL ES version (including any requested context or framebuffer hints) is not available on this machine.</p>
+<p >The requested OpenGL or OpenGL ES version (including any requested context or framebuffer hints) is not available on this machine.</p>
 <dl class="section user"><dt>Analysis</dt><dd>The machine does not support your requirements. If your application is sufficiently flexible, downgrade your requirements and try again. Otherwise, inform the user that their machine does not match your requirements.</dd></dl>
 <dl class="section user"><dt></dt><dd>Future invalid OpenGL and OpenGL ES versions, for example OpenGL 4.8 if 5.0 comes out before the 4.x series gets that far, also fail with this error and not <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a>, because GLFW cannot know what future versions will exist. </dd></dl>
 
 </div>
 </div>
-<a id="gad44162d78100ea5e87cdd38426b8c7a1"></a>
+<a id="gad44162d78100ea5e87cdd38426b8c7a1" name="gad44162d78100ea5e87cdd38426b8c7a1"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad44162d78100ea5e87cdd38426b8c7a1">&#9670;&nbsp;</a></span>GLFW_PLATFORM_ERROR</h2>
 
 <div class="memitem">
@@ -247,12 +248,12 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>A platform-specific error occurred that does not match any of the more specific categories.</p>
+<p >A platform-specific error occurred that does not match any of the more specific categories.</p>
 <dl class="section user"><dt>Analysis</dt><dd>A bug or configuration error in GLFW, the underlying operating system or its drivers, or a lack of required resources. Report the issue to our <a href="https://github.com/glfw/glfw/issues">issue tracker</a>. </dd></dl>
 
 </div>
 </div>
-<a id="ga196e125ef261d94184e2b55c05762f14"></a>
+<a id="ga196e125ef261d94184e2b55c05762f14" name="ga196e125ef261d94184e2b55c05762f14"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga196e125ef261d94184e2b55c05762f14">&#9670;&nbsp;</a></span>GLFW_FORMAT_UNAVAILABLE</h2>
 
 <div class="memitem">
@@ -263,14 +264,14 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If emitted during window creation, the requested pixel format is not supported.</p>
-<p>If emitted when querying the clipboard, the contents of the clipboard could not be converted to the requested format.</p>
+<p >If emitted during window creation, the requested pixel format is not supported.</p>
+<p >If emitted when querying the clipboard, the contents of the clipboard could not be converted to the requested format.</p>
 <dl class="section user"><dt>Analysis</dt><dd>If emitted during window creation, one or more <a class="el" href="window_guide.html#window_hints_hard">hard constraints</a> did not match any of the available pixel formats. If your application is sufficiently flexible, downgrade your requirements and try again. Otherwise, inform the user that their machine does not match your requirements.</dd></dl>
 <dl class="section user"><dt></dt><dd>If emitted when querying the clipboard, ignore the error or report it to the user, as appropriate. </dd></dl>
 
 </div>
 </div>
-<a id="gacff24d2757da752ae4c80bf452356487"></a>
+<a id="gacff24d2757da752ae4c80bf452356487" name="gacff24d2757da752ae4c80bf452356487"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gacff24d2757da752ae4c80bf452356487">&#9670;&nbsp;</a></span>GLFW_NO_WINDOW_CONTEXT</h2>
 
 <div class="memitem">
@@ -281,7 +282,7 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>A window that does not have an OpenGL or OpenGL ES context was passed to a function that requires it to have one.</p>
+<p >A window that does not have an OpenGL or OpenGL ES context was passed to a function that requires it to have one.</p>
 <dl class="section user"><dt>Analysis</dt><dd>Application programmer error. Fix the offending call. </dd></dl>
 
 </div>
@@ -289,7 +290,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 21 - 20
glfw.mod/glfw/docs/html/group__gamepad__axes.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Gamepad axes</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Gamepad axes<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Gamepad axes<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#gamepad">Gamepad input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#gamepad">Gamepad input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga544e396d092036a7d80c1e5f233f7a38"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gamepad__axes.html#ga544e396d092036a7d80c1e5f233f7a38">GLFW_GAMEPAD_AXIS_LEFT_X</a>&#160;&#160;&#160;0</td></tr>
 <tr class="separator:ga544e396d092036a7d80c1e5f233f7a38"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -86,7 +87,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga0818fd9433e1359692b7443293e5ac86"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga544e396d092036a7d80c1e5f233f7a38"></a>
+<a id="ga544e396d092036a7d80c1e5f233f7a38" name="ga544e396d092036a7d80c1e5f233f7a38"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga544e396d092036a7d80c1e5f233f7a38">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_LEFT_X</h2>
 
 <div class="memitem">
@@ -100,7 +101,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga64dcf2c6e9be50b7c556ff7671996dd5"></a>
+<a id="ga64dcf2c6e9be50b7c556ff7671996dd5" name="ga64dcf2c6e9be50b7c556ff7671996dd5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga64dcf2c6e9be50b7c556ff7671996dd5">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_LEFT_Y</h2>
 
 <div class="memitem">
@@ -114,7 +115,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gabd6785106cd3c5a044a6e49a395ee2fc"></a>
+<a id="gabd6785106cd3c5a044a6e49a395ee2fc" name="gabd6785106cd3c5a044a6e49a395ee2fc"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gabd6785106cd3c5a044a6e49a395ee2fc">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_RIGHT_X</h2>
 
 <div class="memitem">
@@ -128,7 +129,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga1cc20566d44d521b7183681a8e88e2e4"></a>
+<a id="ga1cc20566d44d521b7183681a8e88e2e4" name="ga1cc20566d44d521b7183681a8e88e2e4"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1cc20566d44d521b7183681a8e88e2e4">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_RIGHT_Y</h2>
 
 <div class="memitem">
@@ -142,7 +143,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga6d79561dd8907c37354426242901b86e"></a>
+<a id="ga6d79561dd8907c37354426242901b86e" name="ga6d79561dd8907c37354426242901b86e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6d79561dd8907c37354426242901b86e">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_LEFT_TRIGGER</h2>
 
 <div class="memitem">
@@ -156,7 +157,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga121a7d5d20589a423cd1634dd6ee6eab"></a>
+<a id="ga121a7d5d20589a423cd1634dd6ee6eab" name="ga121a7d5d20589a423cd1634dd6ee6eab"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga121a7d5d20589a423cd1634dd6ee6eab">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</h2>
 
 <div class="memitem">
@@ -170,7 +171,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga0818fd9433e1359692b7443293e5ac86"></a>
+<a id="ga0818fd9433e1359692b7443293e5ac86" name="ga0818fd9433e1359692b7443293e5ac86"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga0818fd9433e1359692b7443293e5ac86">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_AXIS_LAST</h2>
 
 <div class="memitem">
@@ -187,7 +188,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 34 - 33
glfw.mod/glfw/docs/html/group__gamepad__buttons.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Gamepad buttons</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Gamepad buttons<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Gamepad buttons<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#gamepad">Gamepad input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#gamepad">Gamepad input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:gae055a12fbf4b48b5954c8e1cd129b810"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">GLFW_GAMEPAD_BUTTON_A</a>&#160;&#160;&#160;0</td></tr>
 <tr class="separator:gae055a12fbf4b48b5954c8e1cd129b810"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -112,7 +113,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga3a7ef6bcb768a08cd3bf142f7f09f802"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="gae055a12fbf4b48b5954c8e1cd129b810"></a>
+<a id="gae055a12fbf4b48b5954c8e1cd129b810" name="gae055a12fbf4b48b5954c8e1cd129b810"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae055a12fbf4b48b5954c8e1cd129b810">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_A</h2>
 
 <div class="memitem">
@@ -126,7 +127,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga2228a6512fd5950cdb51ba07846546fa"></a>
+<a id="ga2228a6512fd5950cdb51ba07846546fa" name="ga2228a6512fd5950cdb51ba07846546fa"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga2228a6512fd5950cdb51ba07846546fa">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_B</h2>
 
 <div class="memitem">
@@ -140,7 +141,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga52cc94785cf3fe9a12e246539259887c"></a>
+<a id="ga52cc94785cf3fe9a12e246539259887c" name="ga52cc94785cf3fe9a12e246539259887c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga52cc94785cf3fe9a12e246539259887c">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_X</h2>
 
 <div class="memitem">
@@ -154,7 +155,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gafc931248bda494b530cbe057f386a5ed"></a>
+<a id="gafc931248bda494b530cbe057f386a5ed" name="gafc931248bda494b530cbe057f386a5ed"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gafc931248bda494b530cbe057f386a5ed">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_Y</h2>
 
 <div class="memitem">
@@ -168,7 +169,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga17d67b4f39a39d6b813bd1567a3507c3"></a>
+<a id="ga17d67b4f39a39d6b813bd1567a3507c3" name="ga17d67b4f39a39d6b813bd1567a3507c3"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga17d67b4f39a39d6b813bd1567a3507c3">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_LEFT_BUMPER</h2>
 
 <div class="memitem">
@@ -182,7 +183,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gadfbc9ea9bf3aae896b79fa49fdc85c7f"></a>
+<a id="gadfbc9ea9bf3aae896b79fa49fdc85c7f" name="gadfbc9ea9bf3aae896b79fa49fdc85c7f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gadfbc9ea9bf3aae896b79fa49fdc85c7f">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER</h2>
 
 <div class="memitem">
@@ -196,7 +197,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gabc7c0264ce778835b516a472b47f6caf"></a>
+<a id="gabc7c0264ce778835b516a472b47f6caf" name="gabc7c0264ce778835b516a472b47f6caf"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gabc7c0264ce778835b516a472b47f6caf">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_BACK</h2>
 
 <div class="memitem">
@@ -210,7 +211,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga04606949dd9139434b8a1bedf4ac1021"></a>
+<a id="ga04606949dd9139434b8a1bedf4ac1021" name="ga04606949dd9139434b8a1bedf4ac1021"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga04606949dd9139434b8a1bedf4ac1021">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_START</h2>
 
 <div class="memitem">
@@ -224,7 +225,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga7fa48c32e5b2f5db2f080aa0b8b573dc"></a>
+<a id="ga7fa48c32e5b2f5db2f080aa0b8b573dc" name="ga7fa48c32e5b2f5db2f080aa0b8b573dc"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga7fa48c32e5b2f5db2f080aa0b8b573dc">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_GUIDE</h2>
 
 <div class="memitem">
@@ -238,7 +239,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga3e089787327454f7bfca7364d6ca206a"></a>
+<a id="ga3e089787327454f7bfca7364d6ca206a" name="ga3e089787327454f7bfca7364d6ca206a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga3e089787327454f7bfca7364d6ca206a">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_LEFT_THUMB</h2>
 
 <div class="memitem">
@@ -252,7 +253,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga1c003f52b5aebb45272475b48953b21a"></a>
+<a id="ga1c003f52b5aebb45272475b48953b21a" name="ga1c003f52b5aebb45272475b48953b21a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1c003f52b5aebb45272475b48953b21a">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_RIGHT_THUMB</h2>
 
 <div class="memitem">
@@ -266,7 +267,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga4f1ed6f974a47bc8930d4874a283476a"></a>
+<a id="ga4f1ed6f974a47bc8930d4874a283476a" name="ga4f1ed6f974a47bc8930d4874a283476a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga4f1ed6f974a47bc8930d4874a283476a">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_DPAD_UP</h2>
 
 <div class="memitem">
@@ -280,7 +281,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gae2a780d2a8c79e0b77c0b7b601ca57c6"></a>
+<a id="gae2a780d2a8c79e0b77c0b7b601ca57c6" name="gae2a780d2a8c79e0b77c0b7b601ca57c6"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae2a780d2a8c79e0b77c0b7b601ca57c6">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_DPAD_RIGHT</h2>
 
 <div class="memitem">
@@ -294,7 +295,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga8f2b731b97d80f90f11967a83207665c"></a>
+<a id="ga8f2b731b97d80f90f11967a83207665c" name="ga8f2b731b97d80f90f11967a83207665c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8f2b731b97d80f90f11967a83207665c">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_DPAD_DOWN</h2>
 
 <div class="memitem">
@@ -308,7 +309,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaf0697e0e8607b2ebe1c93b0c6befe301"></a>
+<a id="gaf0697e0e8607b2ebe1c93b0c6befe301" name="gaf0697e0e8607b2ebe1c93b0c6befe301"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf0697e0e8607b2ebe1c93b0c6befe301">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_DPAD_LEFT</h2>
 
 <div class="memitem">
@@ -322,7 +323,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga5cc98882f4f81dacf761639a567f61eb"></a>
+<a id="ga5cc98882f4f81dacf761639a567f61eb" name="ga5cc98882f4f81dacf761639a567f61eb"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga5cc98882f4f81dacf761639a567f61eb">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_LAST</h2>
 
 <div class="memitem">
@@ -336,7 +337,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaf08d0df26527c9305253422bd98ed63a"></a>
+<a id="gaf08d0df26527c9305253422bd98ed63a" name="gaf08d0df26527c9305253422bd98ed63a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf08d0df26527c9305253422bd98ed63a">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_CROSS</h2>
 
 <div class="memitem">
@@ -350,7 +351,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaaef094b3dacbf15f272b274516839b82"></a>
+<a id="gaaef094b3dacbf15f272b274516839b82" name="gaaef094b3dacbf15f272b274516839b82"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaaef094b3dacbf15f272b274516839b82">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_CIRCLE</h2>
 
 <div class="memitem">
@@ -364,7 +365,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gafc7821e87d77d41ed2cd3e1f726ec35f"></a>
+<a id="gafc7821e87d77d41ed2cd3e1f726ec35f" name="gafc7821e87d77d41ed2cd3e1f726ec35f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gafc7821e87d77d41ed2cd3e1f726ec35f">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_SQUARE</h2>
 
 <div class="memitem">
@@ -378,7 +379,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga3a7ef6bcb768a08cd3bf142f7f09f802"></a>
+<a id="ga3a7ef6bcb768a08cd3bf142f7f09f802" name="ga3a7ef6bcb768a08cd3bf142f7f09f802"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga3a7ef6bcb768a08cd3bf142f7f09f802">&#9670;&nbsp;</a></span>GLFW_GAMEPAD_BUTTON_TRIANGLE</h2>
 
 <div class="memitem">
@@ -395,7 +396,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 23 - 22
glfw.mod/glfw/docs/html/group__hat__state.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Joystick hat states</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Joystick hat states<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Joystick hat states<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#joystick_hat">joystick hat input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#joystick_hat">joystick hat input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:gae2c0bcb7aec609e4736437554f6638fd"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__hat__state.html#gae2c0bcb7aec609e4736437554f6638fd">GLFW_HAT_CENTERED</a>&#160;&#160;&#160;0</td></tr>
 <tr class="separator:gae2c0bcb7aec609e4736437554f6638fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -90,7 +91,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga76c02baf1ea345fcbe3e8ff176a73e19"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="gae2c0bcb7aec609e4736437554f6638fd"></a>
+<a id="gae2c0bcb7aec609e4736437554f6638fd" name="gae2c0bcb7aec609e4736437554f6638fd"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae2c0bcb7aec609e4736437554f6638fd">&#9670;&nbsp;</a></span>GLFW_HAT_CENTERED</h2>
 
 <div class="memitem">
@@ -104,7 +105,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga8c9720c76cd1b912738159ed74c85b36"></a>
+<a id="ga8c9720c76cd1b912738159ed74c85b36" name="ga8c9720c76cd1b912738159ed74c85b36"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8c9720c76cd1b912738159ed74c85b36">&#9670;&nbsp;</a></span>GLFW_HAT_UP</h2>
 
 <div class="memitem">
@@ -118,7 +119,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga252586e3bbde75f4b0e07ad3124867f5"></a>
+<a id="ga252586e3bbde75f4b0e07ad3124867f5" name="ga252586e3bbde75f4b0e07ad3124867f5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga252586e3bbde75f4b0e07ad3124867f5">&#9670;&nbsp;</a></span>GLFW_HAT_RIGHT</h2>
 
 <div class="memitem">
@@ -132,7 +133,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gad60d1fd0dc85c18f2642cbae96d3deff"></a>
+<a id="gad60d1fd0dc85c18f2642cbae96d3deff" name="gad60d1fd0dc85c18f2642cbae96d3deff"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad60d1fd0dc85c18f2642cbae96d3deff">&#9670;&nbsp;</a></span>GLFW_HAT_DOWN</h2>
 
 <div class="memitem">
@@ -146,7 +147,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gac775f4b3154fdf5db93eb432ba546dff"></a>
+<a id="gac775f4b3154fdf5db93eb432ba546dff" name="gac775f4b3154fdf5db93eb432ba546dff"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gac775f4b3154fdf5db93eb432ba546dff">&#9670;&nbsp;</a></span>GLFW_HAT_LEFT</h2>
 
 <div class="memitem">
@@ -160,7 +161,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga94aea0ae241a8b902883536c592ee693"></a>
+<a id="ga94aea0ae241a8b902883536c592ee693" name="ga94aea0ae241a8b902883536c592ee693"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga94aea0ae241a8b902883536c592ee693">&#9670;&nbsp;</a></span>GLFW_HAT_RIGHT_UP</h2>
 
 <div class="memitem">
@@ -174,7 +175,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gad7f0e4f52fd68d734863aaeadab3a3f5"></a>
+<a id="gad7f0e4f52fd68d734863aaeadab3a3f5" name="gad7f0e4f52fd68d734863aaeadab3a3f5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad7f0e4f52fd68d734863aaeadab3a3f5">&#9670;&nbsp;</a></span>GLFW_HAT_RIGHT_DOWN</h2>
 
 <div class="memitem">
@@ -188,7 +189,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga638f0e20dc5de90de21a33564e8ce129"></a>
+<a id="ga638f0e20dc5de90de21a33564e8ce129" name="ga638f0e20dc5de90de21a33564e8ce129"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga638f0e20dc5de90de21a33564e8ce129">&#9670;&nbsp;</a></span>GLFW_HAT_LEFT_UP</h2>
 
 <div class="memitem">
@@ -202,7 +203,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga76c02baf1ea345fcbe3e8ff176a73e19"></a>
+<a id="ga76c02baf1ea345fcbe3e8ff176a73e19" name="ga76c02baf1ea345fcbe3e8ff176a73e19"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga76c02baf1ea345fcbe3e8ff176a73e19">&#9670;&nbsp;</a></span>GLFW_HAT_LEFT_DOWN</h2>
 
 <div class="memitem">
@@ -219,7 +220,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 80 - 76
glfw.mod/glfw/docs/html/group__init.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Initialization, version and error reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -64,20 +66,19 @@ $(function() {
 <a href="#define-members">Macros</a> &#124;
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">Initialization, version and error reference</div>  </div>
+  <div class="headertitle"><div class="title">Initialization, version and error reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>This is the reference documentation for initialization and termination of the library, version management and error handling. For more task-oriented information, see the <a class="el" href="intro_guide.html">Introduction to the API</a>. </p>
+<p >This is the reference documentation for initialization and termination of the library, version management and error handling. For more task-oriented information, see the <a class="el" href="intro_guide.html">Introduction to the API</a>. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="groups" name="groups"></a>
 Modules</h2></td></tr>
 <tr class="memitem:group__errors"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__errors.html">Error codes</a></td></tr>
 <tr class="memdesc:group__errors"><td class="mdescLeft">&#160;</td><td class="mdescRight">Error codes. <br /></td></tr>
 <tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga2744fbb29b5631bb28802dbe0cf36eba"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>&#160;&#160;&#160;1</td></tr>
 <tr class="memdesc:ga2744fbb29b5631bb28802dbe0cf36eba"><td class="mdescLeft">&#160;</td><td class="mdescRight">One.  <a href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">More...</a><br /></td></tr>
@@ -95,13 +96,13 @@ Macros</h2></td></tr>
 <tr class="memdesc:ga71e0b4ce2f2696a84a9b8c5e12dc70cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">macOS specific init hint.  <a href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">More...</a><br /></td></tr>
 <tr class="separator:ga71e0b4ce2f2696a84a9b8c5e12dc70cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
-<tr class="memitem:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>) (int, const char *)</td></tr>
-<tr class="memdesc:ga6b8a2639706d5c409fc1287e8f55e928"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for error callbacks.  <a href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">More...</a><br /></td></tr>
-<tr class="separator:ga6b8a2639706d5c409fc1287e8f55e928"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8184701785c096b3862a75cda1bf44a3"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>) (int error_code, const char *description)</td></tr>
+<tr class="memdesc:ga8184701785c096b3862a75cda1bf44a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for error callbacks.  <a href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">More...</a><br /></td></tr>
+<tr class="separator:ga8184701785c096b3862a75cda1bf44a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:ga317aac130a235ab08c6db0834907d85e"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> (void)</td></tr>
 <tr class="memdesc:ga317aac130a235ab08c6db0834907d85e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the GLFW library.  <a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">More...</a><br /></td></tr>
@@ -115,18 +116,18 @@ Functions</h2></td></tr>
 <tr class="memitem:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> (int *major, int *minor, int *rev)</td></tr>
 <tr class="memdesc:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the version of the GLFW library.  <a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">More...</a><br /></td></tr>
 <tr class="separator:ga9f8ffaacf3c269cc48eafbf8b9b71197"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga23d47dc013fce2bf58036da66079a657"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a> (void)</td></tr>
-<tr class="memdesc:ga23d47dc013fce2bf58036da66079a657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string describing the compile-time configuration.  <a href="group__init.html#ga23d47dc013fce2bf58036da66079a657">More...</a><br /></td></tr>
-<tr class="separator:ga23d47dc013fce2bf58036da66079a657"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga026abd003c8e6501981ab1662062f1c0"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a> (void)</td></tr>
+<tr class="memdesc:ga026abd003c8e6501981ab1662062f1c0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a string describing the compile-time configuration.  <a href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">More...</a><br /></td></tr>
+<tr class="separator:ga026abd003c8e6501981ab1662062f1c0"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga944986b4ec0b928d488141f92982aa18"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> (const char **description)</td></tr>
 <tr class="memdesc:ga944986b4ec0b928d488141f92982aa18"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns and clears the last error for the calling thread.  <a href="group__init.html#ga944986b4ec0b928d488141f92982aa18">More...</a><br /></td></tr>
 <tr class="separator:ga944986b4ec0b928d488141f92982aa18"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaff45816610d53f0b83656092a4034f40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a> (<a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> callback)</td></tr>
+<tr class="memitem:gaff45816610d53f0b83656092a4034f40"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a> (<a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a> callback)</td></tr>
 <tr class="memdesc:gaff45816610d53f0b83656092a4034f40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the error callback.  <a href="group__init.html#gaff45816610d53f0b83656092a4034f40">More...</a><br /></td></tr>
 <tr class="separator:gaff45816610d53f0b83656092a4034f40"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga6337d9ea43b22fc529b2bba066b4a576"></a>
+<a id="ga6337d9ea43b22fc529b2bba066b4a576" name="ga6337d9ea43b22fc529b2bba066b4a576"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6337d9ea43b22fc529b2bba066b4a576">&#9670;&nbsp;</a></span>GLFW_VERSION_MAJOR</h2>
 
 <div class="memitem">
@@ -137,11 +138,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is incremented when the API is changed in non-compatible ways. </p>
+<p >The major version number of the GLFW header. This is incremented when the API is changed in non-compatible ways. </p>
 
 </div>
 </div>
-<a id="gaf80d40f0aea7088ff337606e9c48f7a3"></a>
+<a id="gaf80d40f0aea7088ff337606e9c48f7a3" name="gaf80d40f0aea7088ff337606e9c48f7a3"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf80d40f0aea7088ff337606e9c48f7a3">&#9670;&nbsp;</a></span>GLFW_VERSION_MINOR</h2>
 
 <div class="memitem">
@@ -152,26 +153,26 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is incremented when features are added to the API but it remains backward-compatible. </p>
+<p >The minor version number of the GLFW header. This is incremented when features are added to the API but it remains backward-compatible. </p>
 
 </div>
 </div>
-<a id="gab72ae2e2035d9ea461abc3495eac0502"></a>
+<a id="gab72ae2e2035d9ea461abc3495eac0502" name="gab72ae2e2035d9ea461abc3495eac0502"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab72ae2e2035d9ea461abc3495eac0502">&#9670;&nbsp;</a></span>GLFW_VERSION_REVISION</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">#define GLFW_VERSION_REVISION&#160;&#160;&#160;2</td>
+          <td class="memname">#define GLFW_VERSION_REVISION&#160;&#160;&#160;8</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is incremented when a bug fix release is made that does not contain any API changes. </p>
+<p >The revision number of the GLFW header. This is incremented when a bug fix release is made that does not contain any API changes. </p>
 
 </div>
 </div>
-<a id="ga2744fbb29b5631bb28802dbe0cf36eba"></a>
+<a id="ga2744fbb29b5631bb28802dbe0cf36eba" name="ga2744fbb29b5631bb28802dbe0cf36eba"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga2744fbb29b5631bb28802dbe0cf36eba">&#9670;&nbsp;</a></span>GLFW_TRUE</h2>
 
 <div class="memitem">
@@ -182,11 +183,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is only semantic sugar for the number 1. You can instead use <code>1</code> or <code>true</code> or <code>_True</code> or <code>GL_TRUE</code> or <code>VK_TRUE</code> or anything else that is equal to one. </p>
+<p >This is only semantic sugar for the number 1. You can instead use <code>1</code> or <code>true</code> or <code>_True</code> or <code>GL_TRUE</code> or <code>VK_TRUE</code> or anything else that is equal to one. </p>
 
 </div>
 </div>
-<a id="gac877fe3b627d21ef3a0a23e0a73ba8c5"></a>
+<a id="gac877fe3b627d21ef3a0a23e0a73ba8c5" name="gac877fe3b627d21ef3a0a23e0a73ba8c5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gac877fe3b627d21ef3a0a23e0a73ba8c5">&#9670;&nbsp;</a></span>GLFW_FALSE</h2>
 
 <div class="memitem">
@@ -197,11 +198,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is only semantic sugar for the number 0. You can instead use <code>0</code> or <code>false</code> or <code>_False</code> or <code>GL_FALSE</code> or <code>VK_FALSE</code> or anything else that is equal to zero. </p>
+<p >This is only semantic sugar for the number 0. You can instead use <code>0</code> or <code>false</code> or <code>_False</code> or <code>GL_FALSE</code> or <code>VK_FALSE</code> or anything else that is equal to zero. </p>
 
 </div>
 </div>
-<a id="gab9c0534709fda03ec8959201da3a9a18"></a>
+<a id="gab9c0534709fda03ec8959201da3a9a18" name="gab9c0534709fda03ec8959201da3a9a18"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab9c0534709fda03ec8959201da3a9a18">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_HAT_BUTTONS</h2>
 
 <div class="memitem">
@@ -212,11 +213,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Joystick hat buttons <a class="el" href="intro_guide.html#GLFW_JOYSTICK_HAT_BUTTONS">init hint</a>. </p>
+<p >Joystick hat buttons <a class="el" href="intro_guide.html#GLFW_JOYSTICK_HAT_BUTTONS">init hint</a>. </p>
 
 </div>
 </div>
-<a id="gab937983147a3158d45f88fad7129d9f2"></a>
+<a id="gab937983147a3158d45f88fad7129d9f2" name="gab937983147a3158d45f88fad7129d9f2"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab937983147a3158d45f88fad7129d9f2">&#9670;&nbsp;</a></span>GLFW_COCOA_CHDIR_RESOURCES</h2>
 
 <div class="memitem">
@@ -227,11 +228,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>macOS specific <a class="el" href="intro_guide.html#GLFW_COCOA_CHDIR_RESOURCES_hint">init hint</a>. </p>
+<p >macOS specific <a class="el" href="intro_guide.html#GLFW_COCOA_CHDIR_RESOURCES_hint">init hint</a>. </p>
 
 </div>
 </div>
-<a id="ga71e0b4ce2f2696a84a9b8c5e12dc70cf"></a>
+<a id="ga71e0b4ce2f2696a84a9b8c5e12dc70cf" name="ga71e0b4ce2f2696a84a9b8c5e12dc70cf"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">&#9670;&nbsp;</a></span>GLFW_COCOA_MENUBAR</h2>
 
 <div class="memitem">
@@ -242,23 +243,23 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>macOS specific <a class="el" href="intro_guide.html#GLFW_COCOA_MENUBAR_hint">init hint</a>. </p>
+<p >macOS specific <a class="el" href="intro_guide.html#GLFW_COCOA_MENUBAR_hint">init hint</a>. </p>
 
 </div>
 </div>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ga6b8a2639706d5c409fc1287e8f55e928"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga6b8a2639706d5c409fc1287e8f55e928">&#9670;&nbsp;</a></span>GLFWerrorfun</h2>
+<a id="ga8184701785c096b3862a75cda1bf44a3" name="ga8184701785c096b3862a75cda1bf44a3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga8184701785c096b3862a75cda1bf44a3">&#9670;&nbsp;</a></span>GLFWerrorfun</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef void(*  GLFWerrorfun) (int, const char *)</td>
+          <td class="memname">typedef void(* GLFWerrorfun) (int error_code, const char *description)</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is the function pointer type for error callbacks. An error callback function has the following signature: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> callback_name(<span class="keywordtype">int</span> error_code, <span class="keyword">const</span> <span class="keywordtype">char</span>* description)</div>
+<p >This is the function pointer type for error callbacks. An error callback function has the following signature: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> callback_name(<span class="keywordtype">int</span> error_code, <span class="keyword">const</span> <span class="keywordtype">char</span>* description)</div>
 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">error_code</td><td>An <a class="el" href="group__errors.html">error code</a>. Future releases may add more error codes. </td></tr>
@@ -275,7 +276,7 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga317aac130a235ab08c6db0834907d85e"></a>
+<a id="ga317aac130a235ab08c6db0834907d85e" name="ga317aac130a235ab08c6db0834907d85e"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga317aac130a235ab08c6db0834907d85e">&#9670;&nbsp;</a></span>glfwInit()</h2>
 
 <div class="memitem">
@@ -290,12 +291,14 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function initializes the GLFW library. Before most GLFW functions can be used, GLFW must be initialized, and before an application terminates GLFW should be terminated in order to free any resources allocated during or after initialization.</p>
-<p>If this function fails, it calls <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before returning. If it succeeds, you should call <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before the application exits.</p>
-<p>Additional calls to this function after successful initialization but before termination will return <code>GLFW_TRUE</code> immediately.</p>
+<p >This function initializes the GLFW library. Before most GLFW functions can be used, GLFW must be initialized, and before an application terminates GLFW should be terminated in order to free any resources allocated during or after initialization.</p>
+<p >If this function fails, it calls <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before returning. If it succeeds, you should call <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> before the application exits.</p>
+<p >Additional calls to this function after successful initialization but before termination will return <code>GLFW_TRUE</code> immediately.</p>
 <dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if successful, or <code>GLFW_FALSE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd><b>macOS:</b> This function will change the current directory of the application to the <code>Contents/Resources</code> subdirectory of the application's bundle, if present. This can be disabled with the <a class="el" href="group__init.html#gab937983147a3158d45f88fad7129d9f2">GLFW_COCOA_CHDIR_RESOURCES</a> init hint.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd><b>macOS:</b> This function will change the current directory of the application to the <code>Contents/Resources</code> subdirectory of the application's bundle, if present. This can be disabled with the <a class="el" href="group__init.html#gab937983147a3158d45f88fad7129d9f2">GLFW_COCOA_CHDIR_RESOURCES</a> init hint.</dd>
+<dd>
+<b>X11:</b> This function will set the <code>LC_CTYPE</code> category of the application locale according to the current environment if that category is still "C". This is because the "C" locale breaks Unicode text input.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_init">Initialization and termination</a> </dd>
 <dd>
@@ -304,7 +307,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gaaae48c0a18607ea4a4ba951d939f0901"></a>
+<a id="gaaae48c0a18607ea4a4ba951d939f0901" name="gaaae48c0a18607ea4a4ba951d939f0901"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaaae48c0a18607ea4a4ba951d939f0901">&#9670;&nbsp;</a></span>glfwTerminate()</h2>
 
 <div class="memitem">
@@ -319,8 +322,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function destroys all remaining windows and cursors, restores any modified gamma ramps and frees any other allocated resources. Once this function is called, you must again call <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> successfully before you will be able to use most GLFW functions.</p>
-<p>If GLFW has been successfully initialized, this function should be called before the application exits. If initialization fails, there is no need to call this function, as it is called by <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> before it returns failure.</p>
+<p >This function destroys all remaining windows and cursors, restores any modified gamma ramps and frees any other allocated resources. Once this function is called, you must again call <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> successfully before you will be able to use most GLFW functions.</p>
+<p >If GLFW has been successfully initialized, this function should be called before the application exits. If initialization fails, there is no need to call this function, as it is called by <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> before it returns failure.</p>
+<p >This function has no effect if GLFW is not initialized.</p>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
 <dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
 <dl class="section warning"><dt>Warning</dt><dd>The contexts of any remaining windows must not be current on any other thread when this function is called.</dd></dl>
@@ -333,7 +337,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga110fd1d3f0412822b4f1908c026f724a"></a>
+<a id="ga110fd1d3f0412822b4f1908c026f724a" name="ga110fd1d3f0412822b4f1908c026f724a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga110fd1d3f0412822b4f1908c026f724a">&#9670;&nbsp;</a></span>glfwInitHint()</h2>
 
 <div class="memitem">
@@ -358,9 +362,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets hints for the next initialization of GLFW.</p>
-<p>The values you set hints to are never reset by GLFW, but they only take effect during initialization. Once GLFW has been initialized, any values you set will be ignored until the library is terminated and initialized again.</p>
-<p>Some hints are platform specific. These may be set on any platform but they will only affect their specific platform. Other platforms will ignore them. Setting these hints requires no platform specific headers or functions.</p>
+<p >This function sets hints for the next initialization of GLFW.</p>
+<p >The values you set hints to are never reset by GLFW, but they only take effect during initialization. Once GLFW has been initialized, any values you set will be ignored until the library is terminated and initialized again.</p>
+<p >Some hints are platform specific. These may be set on any platform but they will only affect their specific platform. Other platforms will ignore them. Setting these hints requires no platform specific headers or functions.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">hint</td><td>The <a class="el" href="intro_guide.html#init_hints">init hint</a> to set. </td></tr>
@@ -378,7 +382,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga9f8ffaacf3c269cc48eafbf8b9b71197"></a>
+<a id="ga9f8ffaacf3c269cc48eafbf8b9b71197" name="ga9f8ffaacf3c269cc48eafbf8b9b71197"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga9f8ffaacf3c269cc48eafbf8b9b71197">&#9670;&nbsp;</a></span>glfwGetVersion()</h2>
 
 <div class="memitem">
@@ -409,8 +413,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function retrieves the major, minor and revision numbers of the GLFW library. It is intended for when you are using GLFW as a shared library and want to ensure that you are using the minimum required version.</p>
-<p>Any or all of the version arguments may be <code>NULL</code>.</p>
+<p >This function retrieves the major, minor and revision numbers of the GLFW library. It is intended for when you are using GLFW as a shared library and want to ensure that you are using the minimum required version.</p>
+<p >Any or all of the version arguments may be <code>NULL</code>.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[out]</td><td class="paramname">major</td><td>Where to store the major version number, or <code>NULL</code>. </td></tr>
@@ -424,19 +428,19 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="intro_guide.html#intro_version">Version management</a> </dd>
 <dd>
-<a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a></dd></dl>
+<a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 1.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga23d47dc013fce2bf58036da66079a657"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga23d47dc013fce2bf58036da66079a657">&#9670;&nbsp;</a></span>glfwGetVersionString()</h2>
+<a id="ga026abd003c8e6501981ab1662062f1c0" name="ga026abd003c8e6501981ab1662062f1c0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga026abd003c8e6501981ab1662062f1c0">&#9670;&nbsp;</a></span>glfwGetVersionString()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char* glfwGetVersionString </td>
+          <td class="memname">const char * glfwGetVersionString </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -444,8 +448,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the compile-time generated <a class="el" href="intro_guide.html#intro_version_string">version string</a> of the GLFW library binary. It describes the version, platform, compiler and any platform-specific compile-time options. It should not be confused with the OpenGL or OpenGL ES version string, queried with <code>glGetString</code>.</p>
-<p><b>Do not use the version string</b> to parse the GLFW library version. The <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> function provides the version of the running library binary in numerical format.</p>
+<p >This function returns the compile-time generated <a class="el" href="intro_guide.html#intro_version_string">version string</a> of the GLFW library binary. It describes the version, platform, compiler and any platform-specific compile-time options. It should not be confused with the OpenGL or OpenGL ES version string, queried with <code>glGetString</code>.</p>
+<p ><b>Do not use the version string</b> to parse the GLFW library version. The <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> function provides the version of the running library binary in numerical format.</p>
 <dl class="section return"><dt>Returns</dt><dd>The ASCII encoded GLFW version string.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>None.</dd></dl>
 <dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
@@ -458,7 +462,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga944986b4ec0b928d488141f92982aa18"></a>
+<a id="ga944986b4ec0b928d488141f92982aa18" name="ga944986b4ec0b928d488141f92982aa18"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga944986b4ec0b928d488141f92982aa18">&#9670;&nbsp;</a></span>glfwGetError()</h2>
 
 <div class="memitem">
@@ -473,7 +477,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns and clears the <a class="el" href="group__errors.html">error code</a> of the last error that occurred on the calling thread, and optionally a UTF-8 encoded human-readable description of it. If no error has occurred since the last call, it returns <a class="el" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a> (zero) and the description pointer is set to <code>NULL</code>.</p>
+<p >This function returns and clears the <a class="el" href="group__errors.html">error code</a> of the last error that occurred on the calling thread, and optionally a UTF-8 encoded human-readable description of it. If no error has occurred since the last call, it returns <a class="el" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a> (zero) and the description pointer is set to <code>NULL</code>.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">description</td><td>Where to store the error description pointer, or <code>NULL</code>. </td></tr>
@@ -492,26 +496,26 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gaff45816610d53f0b83656092a4034f40"></a>
+<a id="gaff45816610d53f0b83656092a4034f40" name="gaff45816610d53f0b83656092a4034f40"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaff45816610d53f0b83656092a4034f40">&#9670;&nbsp;</a></span>glfwSetErrorCallback()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a> glfwSetErrorCallback </td>
+          <td class="memname"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a> glfwSetErrorCallback </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">GLFWerrorfun</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">GLFWerrorfun</a>&#160;</td>
           <td class="paramname"><em>callback</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets the error callback, which is called with an error code and a human-readable description each time a GLFW error occurs.</p>
-<p>The error code is set before the callback is called. Calling <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> from the error callback will return the same value as the error code argument.</p>
-<p>The error callback is called on the thread where the error occurred. If you are using GLFW from multiple threads, your error callback needs to be written accordingly.</p>
-<p>Because the description string may have been generated specifically for that error, it is not guaranteed to be valid after the callback has returned. If you wish to use it after the callback returns, you need to make a copy.</p>
-<p>Once set, the error callback remains set even after the library has been terminated.</p>
+<p >This function sets the error callback, which is called with an error code and a human-readable description each time a GLFW error occurs.</p>
+<p >The error code is set before the callback is called. Calling <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> from the error callback will return the same value as the error code argument.</p>
+<p >The error callback is called on the thread where the error occurred. If you are using GLFW from multiple threads, your error callback needs to be written accordingly.</p>
+<p >Because the description string may have been generated specifically for that error, it is not guaranteed to be valid after the callback has returned. If you wish to use it after the callback returns, you need to make a copy.</p>
+<p >Once set, the error callback remains set even after the library has been terminated.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
@@ -520,7 +524,7 @@ Functions</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set.</dd></dl>
 <dl class="section user"><dt>Callback signature</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> callback_name(<span class="keywordtype">int</span> error_code, <span class="keyword">const</span> <span class="keywordtype">char</span>* description)</div>
-</div><!-- fragment --> For more information about the callback parameters, see the <a class="el" href="group__init.html#ga6b8a2639706d5c409fc1287e8f55e928">callback pointer type</a>.</dd></dl>
+</div><!-- fragment --> For more information about the callback parameters, see the <a class="el" href="group__init.html#ga8184701785c096b3862a75cda1bf44a3">callback pointer type</a>.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>None.</dd></dl>
 <dl class="section remark"><dt>Remarks</dt><dd>This function may be called before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
@@ -534,7 +538,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 214 - 212
glfw.mod/glfw/docs/html/group__input.html


+ 31 - 30
glfw.mod/glfw/docs/html/group__joysticks.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Joysticks</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Joysticks<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Joysticks<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#joystick">joystick input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#joystick">joystick input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga34a0443d059e9f22272cd4669073f73d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a>&#160;&#160;&#160;0</td></tr>
 <tr class="separator:ga34a0443d059e9f22272cd4669073f73d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -106,7 +107,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga9ca13ebf24c331dd98df17d84a4b72c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga34a0443d059e9f22272cd4669073f73d"></a>
+<a id="ga34a0443d059e9f22272cd4669073f73d" name="ga34a0443d059e9f22272cd4669073f73d"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga34a0443d059e9f22272cd4669073f73d">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_1</h2>
 
 <div class="memitem">
@@ -120,7 +121,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga6eab65ec88e65e0850ef8413504cb50c"></a>
+<a id="ga6eab65ec88e65e0850ef8413504cb50c" name="ga6eab65ec88e65e0850ef8413504cb50c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6eab65ec88e65e0850ef8413504cb50c">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_2</h2>
 
 <div class="memitem">
@@ -134,7 +135,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gae6f3eedfeb42424c2f5e3161efb0b654"></a>
+<a id="gae6f3eedfeb42424c2f5e3161efb0b654" name="gae6f3eedfeb42424c2f5e3161efb0b654"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae6f3eedfeb42424c2f5e3161efb0b654">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_3</h2>
 
 <div class="memitem">
@@ -148,7 +149,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga97ddbcad02b7f48d74fad4ddb08fff59"></a>
+<a id="ga97ddbcad02b7f48d74fad4ddb08fff59" name="ga97ddbcad02b7f48d74fad4ddb08fff59"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga97ddbcad02b7f48d74fad4ddb08fff59">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_4</h2>
 
 <div class="memitem">
@@ -162,7 +163,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gae43281bc66d3fa5089fb50c3e7a28695"></a>
+<a id="gae43281bc66d3fa5089fb50c3e7a28695" name="gae43281bc66d3fa5089fb50c3e7a28695"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae43281bc66d3fa5089fb50c3e7a28695">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_5</h2>
 
 <div class="memitem">
@@ -176,7 +177,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga74771620aa53bd68a487186dea66fd77"></a>
+<a id="ga74771620aa53bd68a487186dea66fd77" name="ga74771620aa53bd68a487186dea66fd77"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga74771620aa53bd68a487186dea66fd77">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_6</h2>
 
 <div class="memitem">
@@ -190,7 +191,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga20a9f4f3aaefed9ea5e66072fc588b87"></a>
+<a id="ga20a9f4f3aaefed9ea5e66072fc588b87" name="ga20a9f4f3aaefed9ea5e66072fc588b87"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga20a9f4f3aaefed9ea5e66072fc588b87">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_7</h2>
 
 <div class="memitem">
@@ -204,7 +205,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga21a934c940bcf25db0e4c8fe9b364bdb"></a>
+<a id="ga21a934c940bcf25db0e4c8fe9b364bdb" name="ga21a934c940bcf25db0e4c8fe9b364bdb"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga21a934c940bcf25db0e4c8fe9b364bdb">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_8</h2>
 
 <div class="memitem">
@@ -218,7 +219,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga87689d47df0ba6f9f5fcbbcaf7b3cecf"></a>
+<a id="ga87689d47df0ba6f9f5fcbbcaf7b3cecf" name="ga87689d47df0ba6f9f5fcbbcaf7b3cecf"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga87689d47df0ba6f9f5fcbbcaf7b3cecf">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_9</h2>
 
 <div class="memitem">
@@ -232,7 +233,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gaef55389ee605d6dfc31aef6fe98c54ec"></a>
+<a id="gaef55389ee605d6dfc31aef6fe98c54ec" name="gaef55389ee605d6dfc31aef6fe98c54ec"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaef55389ee605d6dfc31aef6fe98c54ec">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_10</h2>
 
 <div class="memitem">
@@ -246,7 +247,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gae7d26e3df447c2c14a569fcc18516af4"></a>
+<a id="gae7d26e3df447c2c14a569fcc18516af4" name="gae7d26e3df447c2c14a569fcc18516af4"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gae7d26e3df447c2c14a569fcc18516af4">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_11</h2>
 
 <div class="memitem">
@@ -260,7 +261,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="gab91bbf5b7ca6be8d3ac5c4d89ff48ac7"></a>
+<a id="gab91bbf5b7ca6be8d3ac5c4d89ff48ac7" name="gab91bbf5b7ca6be8d3ac5c4d89ff48ac7"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab91bbf5b7ca6be8d3ac5c4d89ff48ac7">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_12</h2>
 
 <div class="memitem">
@@ -274,7 +275,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga5c84fb4e49bf661d7d7c78eb4018c508"></a>
+<a id="ga5c84fb4e49bf661d7d7c78eb4018c508" name="ga5c84fb4e49bf661d7d7c78eb4018c508"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga5c84fb4e49bf661d7d7c78eb4018c508">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_13</h2>
 
 <div class="memitem">
@@ -288,7 +289,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga89540873278ae5a42b3e70d64164dc74"></a>
+<a id="ga89540873278ae5a42b3e70d64164dc74" name="ga89540873278ae5a42b3e70d64164dc74"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga89540873278ae5a42b3e70d64164dc74">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_14</h2>
 
 <div class="memitem">
@@ -302,7 +303,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga7b02ab70daf7a78bcc942d5d4cc1dcf9"></a>
+<a id="ga7b02ab70daf7a78bcc942d5d4cc1dcf9" name="ga7b02ab70daf7a78bcc942d5d4cc1dcf9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga7b02ab70daf7a78bcc942d5d4cc1dcf9">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_15</h2>
 
 <div class="memitem">
@@ -316,7 +317,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga453edeeabf350827646b6857df4f80ce"></a>
+<a id="ga453edeeabf350827646b6857df4f80ce" name="ga453edeeabf350827646b6857df4f80ce"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga453edeeabf350827646b6857df4f80ce">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_16</h2>
 
 <div class="memitem">
@@ -330,7 +331,7 @@ Macros</h2></td></tr>
 
 </div>
 </div>
-<a id="ga9ca13ebf24c331dd98df17d84a4b72c9"></a>
+<a id="ga9ca13ebf24c331dd98df17d84a4b72c9" name="ga9ca13ebf24c331dd98df17d84a4b72c9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga9ca13ebf24c331dd98df17d84a4b72c9">&#9670;&nbsp;</a></span>GLFW_JOYSTICK_LAST</h2>
 
 <div class="memitem">
@@ -347,7 +348,7 @@ Macros</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 119 - 118
glfw.mod/glfw/docs/html/group__keys.html


+ 26 - 25
glfw.mod/glfw/docs/html/group__mods.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Modifier key flags</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Modifier key flags<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Modifier key flags<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#input_key">key input</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#input_key">key input</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga14994d3196c290aaa347248e51740274"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__mods.html#ga14994d3196c290aaa347248e51740274">GLFW_MOD_SHIFT</a>&#160;&#160;&#160;0x0001</td></tr>
 <tr class="memdesc:ga14994d3196c290aaa347248e51740274"><td class="mdescLeft">&#160;</td><td class="mdescRight">If this bit is set one or more Shift keys were held down.  <a href="group__mods.html#ga14994d3196c290aaa347248e51740274">More...</a><br /></td></tr>
@@ -90,7 +91,7 @@ Macros</h2></td></tr>
 <tr class="separator:ga64e020b8a42af8376e944baf61feecbe"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga14994d3196c290aaa347248e51740274"></a>
+<a id="ga14994d3196c290aaa347248e51740274" name="ga14994d3196c290aaa347248e51740274"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga14994d3196c290aaa347248e51740274">&#9670;&nbsp;</a></span>GLFW_MOD_SHIFT</h2>
 
 <div class="memitem">
@@ -101,11 +102,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set one or more Shift keys were held down. </p>
+<p >If this bit is set one or more Shift keys were held down. </p>
 
 </div>
 </div>
-<a id="ga6ed94871c3208eefd85713fa929d45aa"></a>
+<a id="ga6ed94871c3208eefd85713fa929d45aa" name="ga6ed94871c3208eefd85713fa929d45aa"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6ed94871c3208eefd85713fa929d45aa">&#9670;&nbsp;</a></span>GLFW_MOD_CONTROL</h2>
 
 <div class="memitem">
@@ -116,11 +117,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set one or more Control keys were held down. </p>
+<p >If this bit is set one or more Control keys were held down. </p>
 
 </div>
 </div>
-<a id="gad2acd5633463c29e07008687ea73c0f4"></a>
+<a id="gad2acd5633463c29e07008687ea73c0f4" name="gad2acd5633463c29e07008687ea73c0f4"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad2acd5633463c29e07008687ea73c0f4">&#9670;&nbsp;</a></span>GLFW_MOD_ALT</h2>
 
 <div class="memitem">
@@ -131,11 +132,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set one or more Alt keys were held down. </p>
+<p >If this bit is set one or more Alt keys were held down. </p>
 
 </div>
 </div>
-<a id="ga6b64ba10ea0227cf6f42efd0a220aba1"></a>
+<a id="ga6b64ba10ea0227cf6f42efd0a220aba1" name="ga6b64ba10ea0227cf6f42efd0a220aba1"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6b64ba10ea0227cf6f42efd0a220aba1">&#9670;&nbsp;</a></span>GLFW_MOD_SUPER</h2>
 
 <div class="memitem">
@@ -146,11 +147,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set one or more Super keys were held down. </p>
+<p >If this bit is set one or more Super keys were held down. </p>
 
 </div>
 </div>
-<a id="gaefeef8fcf825a6e43e241b337897200f"></a>
+<a id="gaefeef8fcf825a6e43e241b337897200f" name="gaefeef8fcf825a6e43e241b337897200f"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaefeef8fcf825a6e43e241b337897200f">&#9670;&nbsp;</a></span>GLFW_MOD_CAPS_LOCK</h2>
 
 <div class="memitem">
@@ -161,11 +162,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set the Caps Lock key is enabled and the <a class="el" href="input_guide.html#GLFW_LOCK_KEY_MODS">GLFW_LOCK_KEY_MODS</a> input mode is set. </p>
+<p >If this bit is set the Caps Lock key is enabled and the <a class="el" href="input_guide.html#GLFW_LOCK_KEY_MODS">GLFW_LOCK_KEY_MODS</a> input mode is set. </p>
 
 </div>
 </div>
-<a id="ga64e020b8a42af8376e944baf61feecbe"></a>
+<a id="ga64e020b8a42af8376e944baf61feecbe" name="ga64e020b8a42af8376e944baf61feecbe"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga64e020b8a42af8376e944baf61feecbe">&#9670;&nbsp;</a></span>GLFW_MOD_NUM_LOCK</h2>
 
 <div class="memitem">
@@ -176,14 +177,14 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If this bit is set the Num Lock key is enabled and the <a class="el" href="input_guide.html#GLFW_LOCK_KEY_MODS">GLFW_LOCK_KEY_MODS</a> input mode is set. </p>
+<p >If this bit is set the Num Lock key is enabled and the <a class="el" href="input_guide.html#GLFW_LOCK_KEY_MODS">GLFW_LOCK_KEY_MODS</a> input mode is set. </p>
 
 </div>
 </div>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 130 - 129
glfw.mod/glfw/docs/html/group__monitor.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Monitor reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -62,36 +64,35 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">Monitor reference</div>  </div>
+  <div class="headertitle"><div class="title">Monitor reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>This is the reference documentation for monitor related functions and types. For more task-oriented information, see the <a class="el" href="monitor_guide.html">Monitor guide</a>. </p>
+<p >This is the reference documentation for monitor related functions and types. For more task-oriented information, see the <a class="el" href="monitor_guide.html">Monitor guide</a>. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr class="memitem:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></td></tr>
 <tr class="memdesc:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Opaque monitor object.  <a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">More...</a><br /></td></tr>
 <tr class="separator:ga8d9efd1cde9426692c73fe40437d0ae3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8a7ee579a66720f24d656526f3e44c63"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *, int)</td></tr>
-<tr class="memdesc:ga8a7ee579a66720f24d656526f3e44c63"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for monitor configuration callbacks.  <a href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">More...</a><br /></td></tr>
-<tr class="separator:ga8a7ee579a66720f24d656526f3e44c63"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">GLFWvidmode</a></td></tr>
-<tr class="memdesc:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type.  <a href="group__monitor.html#gae48aadf4ea0967e6605c8f58fa5daccb">More...</a><br /></td></tr>
-<tr class="separator:gae48aadf4ea0967e6605c8f58fa5daccb"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaec0bd37af673be8813592849f13e02f0"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">GLFWgammaramp</a></td></tr>
-<tr class="memdesc:gaec0bd37af673be8813592849f13e02f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp.  <a href="group__monitor.html#gaec0bd37af673be8813592849f13e02f0">More...</a><br /></td></tr>
-<tr class="separator:gaec0bd37af673be8813592849f13e02f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaabe16caca8dea952504dfdebdf4cd249"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int event)</td></tr>
+<tr class="memdesc:gaabe16caca8dea952504dfdebdf4cd249"><td class="mdescLeft">&#160;</td><td class="mdescRight">The function pointer type for monitor configuration callbacks.  <a href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">More...</a><br /></td></tr>
+<tr class="separator:gaabe16caca8dea952504dfdebdf4cd249"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga902c2816ac9b34b757282daab59b2565"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">GLFWvidmode</a></td></tr>
+<tr class="memdesc:ga902c2816ac9b34b757282daab59b2565"><td class="mdescLeft">&#160;</td><td class="mdescRight">Video mode type.  <a href="group__monitor.html#ga902c2816ac9b34b757282daab59b2565">More...</a><br /></td></tr>
+<tr class="separator:ga902c2816ac9b34b757282daab59b2565"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga939cf093cb0af0498b7b54dc2e181404"><td class="memItemLeft" align="right" valign="top">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">GLFWgammaramp</a></td></tr>
+<tr class="memdesc:ga939cf093cb0af0498b7b54dc2e181404"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gamma ramp.  <a href="group__monitor.html#ga939cf093cb0af0498b7b54dc2e181404">More...</a><br /></td></tr>
+<tr class="separator:ga939cf093cb0af0498b7b54dc2e181404"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a> (int *count)</td></tr>
-<tr class="memdesc:ga3fba51c8bd36491d4712aa5bd074a537"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently connected monitors.  <a href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">More...</a><br /></td></tr>
-<tr class="separator:ga3fba51c8bd36491d4712aa5bd074a537"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a> (void)</td></tr>
-<tr class="memdesc:ga721867d84c6d18d6790d64d2847ca0b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the primary monitor.  <a href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">More...</a><br /></td></tr>
-<tr class="separator:ga721867d84c6d18d6790d64d2847ca0b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga70b1156d5d24e9928f145d6c864369d2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a> (int *count)</td></tr>
+<tr class="memdesc:ga70b1156d5d24e9928f145d6c864369d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the currently connected monitors.  <a href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">More...</a><br /></td></tr>
+<tr class="separator:ga70b1156d5d24e9928f145d6c864369d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac3adb24947eb709e1874028272e5dfc5"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a> (void)</td></tr>
+<tr class="memdesc:gac3adb24947eb709e1874028272e5dfc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the primary monitor.  <a href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">More...</a><br /></td></tr>
+<tr class="separator:gac3adb24947eb709e1874028272e5dfc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga102f54e7acc9149edbcf0997152df8c9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *xpos, int *ypos)</td></tr>
 <tr class="memdesc:ga102f54e7acc9149edbcf0997152df8c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the position of the monitor's viewport on the virtual screen.  <a href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">More...</a><br /></td></tr>
 <tr class="separator:ga102f54e7acc9149edbcf0997152df8c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -104,36 +105,36 @@ Functions</h2></td></tr>
 <tr class="memitem:gad3152e84465fa620b601265ebfcdb21b"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, float *xscale, float *yscale)</td></tr>
 <tr class="memdesc:gad3152e84465fa620b601265ebfcdb21b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Retrieves the content scale for the specified monitor.  <a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">More...</a><br /></td></tr>
 <tr class="separator:gad3152e84465fa620b601265ebfcdb21b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga79a34ee22ff080ca954a9663e4679daf"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:ga79a34ee22ff080ca954a9663e4679daf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified monitor.  <a href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">More...</a><br /></td></tr>
-<tr class="separator:ga79a34ee22ff080ca954a9663e4679daf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7af83e13489d90379588fb331b9e4b68"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga7af83e13489d90379588fb331b9e4b68"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the name of the specified monitor.  <a href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">More...</a><br /></td></tr>
+<tr class="separator:ga7af83e13489d90379588fb331b9e4b68"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga702750e24313a686d3637297b6e85fda"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, void *pointer)</td></tr>
 <tr class="memdesc:ga702750e24313a686d3637297b6e85fda"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the user pointer of the specified monitor.  <a href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">More...</a><br /></td></tr>
 <tr class="separator:ga702750e24313a686d3637297b6e85fda"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac2d4209016b049222877f620010ed0d8"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac2d4209016b049222877f620010ed0d8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified monitor.  <a href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">More...</a><br /></td></tr>
-<tr class="separator:gac2d4209016b049222877f620010ed0d8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab39df645587c8518192aa746c2fb06c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a> (<a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> callback)</td></tr>
+<tr class="memitem:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the user pointer of the specified monitor.  <a href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">More...</a><br /></td></tr>
+<tr class="separator:ga1adbfbfb8cd58b23cfee82e574fbbdc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab39df645587c8518192aa746c2fb06c3"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a> (<a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a> callback)</td></tr>
 <tr class="memdesc:gab39df645587c8518192aa746c2fb06c3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the monitor configuration callback.  <a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">More...</a><br /></td></tr>
 <tr class="separator:gab39df645587c8518192aa746c2fb06c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *count)</td></tr>
-<tr class="memdesc:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the available video modes for the specified monitor.  <a href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">More...</a><br /></td></tr>
-<tr class="separator:ga820b0ce9a5237d645ea7cbb4bd383458"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current mode of the specified monitor.  <a href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">More...</a><br /></td></tr>
-<tr class="separator:gafc1bb972a921ad5b3bd5d63a95fc2d52"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int *count)</td></tr>
+<tr class="memdesc:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the available video modes for the specified monitor.  <a href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">More...</a><br /></td></tr>
+<tr class="separator:gad2e24d2843cb7d6c26202cddd530fc1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaba376fa7e76634b4788bddc505d6c9d5"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gaba376fa7e76634b4788bddc505d6c9d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current mode of the specified monitor.  <a href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">More...</a><br /></td></tr>
+<tr class="separator:gaba376fa7e76634b4788bddc505d6c9d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga6ac582625c990220785ddd34efa3169a"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, float gamma)</td></tr>
 <tr class="memdesc:ga6ac582625c990220785ddd34efa3169a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates a gamma ramp and sets it for the specified monitor.  <a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">More...</a><br /></td></tr>
 <tr class="separator:ga6ac582625c990220785ddd34efa3169a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current gamma ramp for the specified monitor.  <a href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">More...</a><br /></td></tr>
-<tr class="separator:gab7c41deb2219bde3e1eb756ddaa9ec80"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga76ba90debcf0062b5c4b73052b24f96f"><td class="memItemLeft" align="right" valign="top">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga76ba90debcf0062b5c4b73052b24f96f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the current gamma ramp for the specified monitor.  <a href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">More...</a><br /></td></tr>
+<tr class="separator:ga76ba90debcf0062b5c4b73052b24f96f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> *ramp)</td></tr>
 <tr class="memdesc:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current gamma ramp for the specified monitor.  <a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">More...</a><br /></td></tr>
 <tr class="separator:ga583f0ffd0d29613d8cd172b996bbf0dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ga8d9efd1cde9426692c73fe40437d0ae3"></a>
+<a id="ga8d9efd1cde9426692c73fe40437d0ae3" name="ga8d9efd1cde9426692c73fe40437d0ae3"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8d9efd1cde9426692c73fe40437d0ae3">&#9670;&nbsp;</a></span>GLFWmonitor</h2>
 
 <div class="memitem">
@@ -144,24 +145,25 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Opaque monitor object.</p>
+<p >Opaque monitor object.</p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_object">Monitor objects</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga8a7ee579a66720f24d656526f3e44c63"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8a7ee579a66720f24d656526f3e44c63">&#9670;&nbsp;</a></span>GLFWmonitorfun</h2>
+<a id="gaabe16caca8dea952504dfdebdf4cd249" name="gaabe16caca8dea952504dfdebdf4cd249"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaabe16caca8dea952504dfdebdf4cd249">&#9670;&nbsp;</a></span>GLFWmonitorfun</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef void(*  GLFWmonitorfun) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *, int)</td>
+          <td class="memname">typedef void(* GLFWmonitorfun) (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor, int event)</td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This is the function pointer type for monitor configuration callbacks. A monitor callback function has the following signature: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> function_name(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
+<p >This is the function pointer type for monitor configuration callbacks. A monitor callback function has the following signature: </p><div class="fragment"><div class="line"><span class="keywordtype">void</span> function_name(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
+<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1173</div></div>
 </div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor that was connected or disconnected. </td></tr>
@@ -176,42 +178,42 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gae48aadf4ea0967e6605c8f58fa5daccb"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gae48aadf4ea0967e6605c8f58fa5daccb">&#9670;&nbsp;</a></span>GLFWvidmode</h2>
+<a id="ga902c2816ac9b34b757282daab59b2565" name="ga902c2816ac9b34b757282daab59b2565"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga902c2816ac9b34b757282daab59b2565">&#9670;&nbsp;</a></span>GLFWvidmode</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>  <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a></td>
+          <td class="memname">typedef struct <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This describes a single video mode.</p>
+<p >This describes a single video mode.</p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a> </dd>
+<a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a></dd></dl>
+<a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 1.0. <b>GLFW 3:</b> Added refresh rate member. </dd></dl>
 
 </div>
 </div>
-<a id="gaec0bd37af673be8813592849f13e02f0"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaec0bd37af673be8813592849f13e02f0">&#9670;&nbsp;</a></span>GLFWgammaramp</h2>
+<a id="ga939cf093cb0af0498b7b54dc2e181404" name="ga939cf093cb0af0498b7b54dc2e181404"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga939cf093cb0af0498b7b54dc2e181404">&#9670;&nbsp;</a></span>GLFWgammaramp</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>  <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a></td>
+          <td class="memname">typedef struct <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a></td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This describes the gamma ramp for a monitor.</p>
+<p >This describes the gamma ramp for a monitor.</p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_gamma">Gamma ramp</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a> </dd>
+<a class="el" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a> </dd>
 <dd>
 <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
@@ -219,14 +221,14 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga3fba51c8bd36491d4712aa5bd074a537"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga3fba51c8bd36491d4712aa5bd074a537">&#9670;&nbsp;</a></span>glfwGetMonitors()</h2>
+<a id="ga70b1156d5d24e9928f145d6c864369d2" name="ga70b1156d5d24e9928f145d6c864369d2"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga70b1156d5d24e9928f145d6c864369d2">&#9670;&nbsp;</a></span>glfwGetMonitors()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** glfwGetMonitors </td>
+          <td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> ** glfwGetMonitors </td>
           <td>(</td>
           <td class="paramtype">int *&#160;</td>
           <td class="paramname"><em>count</em></td><td>)</td>
@@ -234,7 +236,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns an array of handles for all currently connected monitors. The primary monitor is always first in the returned array. If no monitors were found, this function returns <code>NULL</code>.</p>
+<p >This function returns an array of handles for all currently connected monitors. The primary monitor is always first in the returned array. If no monitors were found, this function returns <code>NULL</code>.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of monitors in the returned array. This is set to zero if an error occurred. </td></tr>
@@ -249,19 +251,19 @@ Functions</h2></td></tr>
 <dd>
 <a class="el" href="monitor_guide.html#monitor_event">Monitor configuration changes</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a></dd></dl>
+<a class="el" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga721867d84c6d18d6790d64d2847ca0b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga721867d84c6d18d6790d64d2847ca0b1">&#9670;&nbsp;</a></span>glfwGetPrimaryMonitor()</h2>
+<a id="gac3adb24947eb709e1874028272e5dfc5" name="gac3adb24947eb709e1874028272e5dfc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac3adb24947eb709e1874028272e5dfc5">&#9670;&nbsp;</a></span>glfwGetPrimaryMonitor()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* glfwGetPrimaryMonitor </td>
+          <td class="memname"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> * glfwGetPrimaryMonitor </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -269,19 +271,19 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the primary monitor. This is usually the monitor where elements like the task bar or global menu bar are located.</p>
+<p >This function returns the primary monitor. This is usually the monitor where elements like the task bar or global menu bar are located.</p>
 <dl class="section return"><dt>Returns</dt><dd>The primary monitor, or <code>NULL</code> if no monitors were found or if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd>The primary monitor is always first in the array returned by <a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a>.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>The primary monitor is always first in the array returned by <a class="el" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a>.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_monitors">Retrieving monitors</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a></dd></dl>
+<a class="el" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga102f54e7acc9149edbcf0997152df8c9"></a>
+<a id="ga102f54e7acc9149edbcf0997152df8c9" name="ga102f54e7acc9149edbcf0997152df8c9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga102f54e7acc9149edbcf0997152df8c9">&#9670;&nbsp;</a></span>glfwGetMonitorPos()</h2>
 
 <div class="memitem">
@@ -312,8 +314,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the position, in screen coordinates, of the upper-left corner of the specified monitor.</p>
-<p>Any or all of the position arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position arguments will be set to zero.</p>
+<p >This function returns the position, in screen coordinates, of the upper-left corner of the specified monitor.</p>
+<p >Any or all of the position arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position arguments will be set to zero.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -329,7 +331,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"></a>
+<a id="ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0" name="ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">&#9670;&nbsp;</a></span>glfwGetMonitorWorkarea()</h2>
 
 <div class="memitem">
@@ -372,8 +374,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the position, in screen coordinates, of the upper-left corner of the work area of the specified monitor along with the work area size in screen coordinates. The work area is defined as the area of the monitor not occluded by the operating system task bar where present. If no task bar exists then the work area is the monitor resolution in screen coordinates.</p>
-<p>Any or all of the position and size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position and size arguments will be set to zero.</p>
+<p >This function returns the position, in screen coordinates, of the upper-left corner of the work area of the specified monitor along with the work area size in screen coordinates. The work area is defined as the area of the monitor not occluded by the operating system task bar where present. If no task bar exists then the work area is the monitor resolution in screen coordinates.</p>
+<p >Any or all of the position and size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> position and size arguments will be set to zero.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -391,7 +393,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga7d8bffc6c55539286a6bd20d32a8d7ea"></a>
+<a id="ga7d8bffc6c55539286a6bd20d32a8d7ea" name="ga7d8bffc6c55539286a6bd20d32a8d7ea"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga7d8bffc6c55539286a6bd20d32a8d7ea">&#9670;&nbsp;</a></span>glfwGetMonitorPhysicalSize()</h2>
 
 <div class="memitem">
@@ -422,9 +424,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the size, in millimetres, of the display area of the specified monitor.</p>
-<p>Some systems do not provide accurate monitor size information, either because the monitor <a href="https://en.wikipedia.org/wiki/Extended_display_identification_data">EDID</a> data is incorrect or because the driver does not report it accurately.</p>
-<p>Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
+<p >This function returns the size, in millimetres, of the display area of the specified monitor.</p>
+<p >Some systems do not provide accurate monitor size information, either because the monitor <a href="https://en.wikipedia.org/wiki/Extended_display_identification_data">EDID</a> data is incorrect or because the driver does not report it accurately.</p>
+<p >Any or all of the size arguments may be <code>NULL</code>. If an error occurs, all non-<code>NULL</code> size arguments will be set to zero.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -434,14 +436,14 @@ Functions</h2></td></tr>
   </dd>
 </dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd><b>Windows:</b> calculates the returned physical size from the current resolution and system DPI instead of querying the monitor EDID data.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd><b>Windows:</b> On Windows 8 and earlier the physical size is calculated from the current resolution and system DPI instead of querying the monitor EDID data.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_properties">Monitor properties</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="gad3152e84465fa620b601265ebfcdb21b"></a>
+<a id="gad3152e84465fa620b601265ebfcdb21b" name="gad3152e84465fa620b601265ebfcdb21b"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gad3152e84465fa620b601265ebfcdb21b">&#9670;&nbsp;</a></span>glfwGetMonitorContentScale()</h2>
 
 <div class="memitem">
@@ -472,8 +474,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function retrieves the content scale for the specified monitor. The content scale is the ratio between the current DPI and the platform's default DPI. This is especially important for text and any UI elements. If the pixel dimensions of your UI scaled by this look appropriate on your machine then it should appear at a reasonable size on other machines regardless of their DPI and scaling settings. This relies on the system DPI and scaling settings being somewhat correct.</p>
-<p>The content scale may depend on both the monitor resolution and pixel density and on user settings. It may be very different from the raw DPI calculated from the physical size and current resolution.</p>
+<p >This function retrieves the content scale for the specified monitor. The content scale is the ratio between the current DPI and the platform's default DPI. This is especially important for text and any UI elements. If the pixel dimensions of your UI scaled by this look appropriate on your machine then it should appear at a reasonable size on other machines regardless of their DPI and scaling settings. This relies on the system DPI and scaling settings being somewhat correct.</p>
+<p >The content scale may depend on both the monitor resolution and pixel density and on user settings. It may be very different from the raw DPI calculated from the physical size and current resolution.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -491,14 +493,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga79a34ee22ff080ca954a9663e4679daf"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga79a34ee22ff080ca954a9663e4679daf">&#9670;&nbsp;</a></span>glfwGetMonitorName()</h2>
+<a id="ga7af83e13489d90379588fb331b9e4b68" name="ga7af83e13489d90379588fb331b9e4b68"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga7af83e13489d90379588fb331b9e4b68">&#9670;&nbsp;</a></span>glfwGetMonitorName()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char* glfwGetMonitorName </td>
+          <td class="memname">const char * glfwGetMonitorName </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -506,7 +508,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns a human-readable name, encoded as UTF-8, of the specified monitor. The name typically reflects the make and model of the monitor and is not guaranteed to be unique among the connected monitors.</p>
+<p >This function returns a human-readable name, encoded as UTF-8, of the specified monitor. The name typically reflects the make and model of the monitor and is not guaranteed to be unique among the connected monitors.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -522,7 +524,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga702750e24313a686d3637297b6e85fda"></a>
+<a id="ga702750e24313a686d3637297b6e85fda" name="ga702750e24313a686d3637297b6e85fda"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga702750e24313a686d3637297b6e85fda">&#9670;&nbsp;</a></span>glfwSetMonitorUserPointer()</h2>
 
 <div class="memitem">
@@ -547,8 +549,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets the user-defined pointer of the specified monitor. The current value is retained until the monitor is disconnected. The initial value is <code>NULL</code>.</p>
-<p>This function may be called from the monitor callback, even for a monitor that is being disconnected.</p>
+<p >This function sets the user-defined pointer of the specified monitor. The current value is retained until the monitor is disconnected. The initial value is <code>NULL</code>.</p>
+<p >This function may be called from the monitor callback, even for a monitor that is being disconnected.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose pointer to set. </td></tr>
@@ -560,19 +562,19 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_userptr">User pointer</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a></dd></dl>
+<a class="el" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
 </div>
 </div>
-<a id="gac2d4209016b049222877f620010ed0d8"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac2d4209016b049222877f620010ed0d8">&#9670;&nbsp;</a></span>glfwGetMonitorUserPointer()</h2>
+<a id="ga1adbfbfb8cd58b23cfee82e574fbbdc5" name="ga1adbfbfb8cd58b23cfee82e574fbbdc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga1adbfbfb8cd58b23cfee82e574fbbdc5">&#9670;&nbsp;</a></span>glfwGetMonitorUserPointer()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">void* glfwGetMonitorUserPointer </td>
+          <td class="memname">void * glfwGetMonitorUserPointer </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -580,8 +582,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the current value of the user-defined pointer of the specified monitor. The initial value is <code>NULL</code>.</p>
-<p>This function may be called from the monitor callback, even for a monitor that is being disconnected.</p>
+<p >This function returns the current value of the user-defined pointer of the specified monitor. The initial value is <code>NULL</code>.</p>
+<p >This function may be called from the monitor callback, even for a monitor that is being disconnected.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose pointer to return.</td></tr>
@@ -597,22 +599,22 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gab39df645587c8518192aa746c2fb06c3"></a>
+<a id="gab39df645587c8518192aa746c2fb06c3" name="gab39df645587c8518192aa746c2fb06c3"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab39df645587c8518192aa746c2fb06c3">&#9670;&nbsp;</a></span>glfwSetMonitorCallback()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a> glfwSetMonitorCallback </td>
+          <td class="memname"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a> glfwSetMonitorCallback </td>
           <td>(</td>
-          <td class="paramtype"><a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">GLFWmonitorfun</a>&#160;</td>
+          <td class="paramtype"><a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">GLFWmonitorfun</a>&#160;</td>
           <td class="paramname"><em>callback</em></td><td>)</td>
           <td></td>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets the monitor configuration callback, or removes the currently set callback. This is called when a monitor is connected to or disconnected from the system.</p>
+<p >This function sets the monitor configuration callback, or removes the currently set callback. This is called when a monitor is connected to or disconnected from the system.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">callback</td><td>The new callback, or <code>NULL</code> to remove the currently set callback. </td></tr>
@@ -620,8 +622,8 @@ Functions</h2></td></tr>
   </dd>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>The previously set callback, or <code>NULL</code> if no callback was set or the library had not been <a class="el" href="intro_guide.html#intro_init">initialized</a>.</dd></dl>
-<dl class="section user"><dt>Callback signature</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> function_name(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
-</div><!-- fragment --> For more information about the callback parameters, see the <a class="el" href="group__monitor.html#ga8a7ee579a66720f24d656526f3e44c63">function pointer type</a>.</dd></dl>
+<dl class="section user"><dt>Callback signature</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> function_name(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
+</div><!-- fragment --> For more information about the callback parameters, see the <a class="el" href="group__monitor.html#gaabe16caca8dea952504dfdebdf4cd249">function pointer type</a>.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_event">Monitor configuration changes</a></dd></dl>
@@ -629,14 +631,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga820b0ce9a5237d645ea7cbb4bd383458"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga820b0ce9a5237d645ea7cbb4bd383458">&#9670;&nbsp;</a></span>glfwGetVideoModes()</h2>
+<a id="gad2e24d2843cb7d6c26202cddd530fc1b" name="gad2e24d2843cb7d6c26202cddd530fc1b"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad2e24d2843cb7d6c26202cddd530fc1b">&#9670;&nbsp;</a></span>glfwGetVideoModes()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>* glfwGetVideoModes </td>
+          <td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> * glfwGetVideoModes </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em>, </td>
@@ -654,7 +656,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns an array of all video modes supported by the specified monitor. The returned array is sorted in ascending order, first by color bit depth (the sum of all channel depths) and then by resolution area (the product of width and height).</p>
+<p >This function returns an array of all video modes supported by the specified monitor. The returned array is sorted in ascending order, first by color bit depth (the sum of all channel depths), then by resolution area (the product of width and height), then resolution width and finally by refresh rate.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -668,19 +670,19 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a></dd></dl>
+<a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 1.0. <b>GLFW 3:</b> Changed to return an array of modes for a specific monitor. </dd></dl>
 
 </div>
 </div>
-<a id="gafc1bb972a921ad5b3bd5d63a95fc2d52"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gafc1bb972a921ad5b3bd5d63a95fc2d52">&#9670;&nbsp;</a></span>glfwGetVideoMode()</h2>
+<a id="gaba376fa7e76634b4788bddc505d6c9d5" name="gaba376fa7e76634b4788bddc505d6c9d5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gaba376fa7e76634b4788bddc505d6c9d5">&#9670;&nbsp;</a></span>glfwGetVideoMode()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a>* glfwGetVideoMode </td>
+          <td class="memname">const <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> * glfwGetVideoMode </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -688,7 +690,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the current video mode of the specified monitor. If you have created a full screen window for that monitor, the return value will depend on whether that window is iconified.</p>
+<p >This function returns the current video mode of the specified monitor. If you have created a full screen window for that monitor, the return value will depend on whether that window is iconified.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -701,12 +703,12 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="monitor_guide.html#monitor_modes">Video modes</a> </dd>
 <dd>
-<a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a></dd></dl>
+<a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. Replaces <code>glfwGetDesktopMode</code>. </dd></dl>
 
 </div>
 </div>
-<a id="ga6ac582625c990220785ddd34efa3169a"></a>
+<a id="ga6ac582625c990220785ddd34efa3169a" name="ga6ac582625c990220785ddd34efa3169a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6ac582625c990220785ddd34efa3169a">&#9670;&nbsp;</a></span>glfwSetGamma()</h2>
 
 <div class="memitem">
@@ -731,9 +733,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function generates an appropriately sized gamma ramp from the specified exponent and then calls <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> with it. The value must be a finite number greater than zero.</p>
-<p>The software controlled gamma ramp is applied <em>in addition</em> to the hardware gamma correction, which today is usually an approximation of sRGB gamma. This means that setting a perfectly linear ramp, or gamma 1.0, will produce the default (usually sRGB-like) behavior.</p>
-<p>For gamma correct rendering with OpenGL or OpenGL ES, see the <a class="el" href="window_guide.html#GLFW_SRGB_CAPABLE">GLFW_SRGB_CAPABLE</a> hint.</p>
+<p >This function generates an appropriately sized gamma ramp from the specified exponent and then calls <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> with it. The value must be a finite number greater than zero.</p>
+<p >The software controlled gamma ramp is applied <em>in addition</em> to the hardware gamma correction, which today is usually an approximation of sRGB gamma. This means that setting a perfectly linear ramp, or gamma 1.0, will produce the default (usually sRGB-like) behavior.</p>
+<p >For gamma correct rendering with OpenGL or OpenGL ES, see the <a class="el" href="window_guide.html#GLFW_SRGB_CAPABLE">GLFW_SRGB_CAPABLE</a> hint.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose gamma ramp to set. </td></tr>
@@ -749,14 +751,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gab7c41deb2219bde3e1eb756ddaa9ec80"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab7c41deb2219bde3e1eb756ddaa9ec80">&#9670;&nbsp;</a></span>glfwGetGammaRamp()</h2>
+<a id="ga76ba90debcf0062b5c4b73052b24f96f" name="ga76ba90debcf0062b5c4b73052b24f96f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga76ba90debcf0062b5c4b73052b24f96f">&#9670;&nbsp;</a></span>glfwGetGammaRamp()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a>* glfwGetGammaRamp </td>
+          <td class="memname">const <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> * glfwGetGammaRamp </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -764,7 +766,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the current gamma ramp of the specified monitor.</p>
+<p >This function returns the current gamma ramp of the specified monitor.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor to query. </td></tr>
@@ -781,7 +783,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga583f0ffd0d29613d8cd172b996bbf0dd"></a>
+<a id="ga583f0ffd0d29613d8cd172b996bbf0dd" name="ga583f0ffd0d29613d8cd172b996bbf0dd"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga583f0ffd0d29613d8cd172b996bbf0dd">&#9670;&nbsp;</a></span>glfwSetGammaRamp()</h2>
 
 <div class="memitem">
@@ -806,9 +808,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function sets the current gamma ramp for the specified monitor. The original gamma ramp for that monitor is saved by GLFW the first time this function is called and is restored by <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
-<p>The software controlled gamma ramp is applied <em>in addition</em> to the hardware gamma correction, which today is usually an approximation of sRGB gamma. This means that setting a perfectly linear ramp, or gamma 1.0, will produce the default (usually sRGB-like) behavior.</p>
-<p>For gamma correct rendering with OpenGL or OpenGL ES, see the <a class="el" href="window_guide.html#GLFW_SRGB_CAPABLE">GLFW_SRGB_CAPABLE</a> hint.</p>
+<p >This function sets the current gamma ramp for the specified monitor. The original gamma ramp for that monitor is saved by GLFW the first time this function is called and is restored by <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
+<p >The software controlled gamma ramp is applied <em>in addition</em> to the hardware gamma correction, which today is usually an approximation of sRGB gamma. This means that setting a perfectly linear ramp, or gamma 1.0, will produce the default (usually sRGB-like) behavior.</p>
+<p >For gamma correct rendering with OpenGL or OpenGL ES, see the <a class="el" href="window_guide.html#GLFW_SRGB_CAPABLE">GLFW_SRGB_CAPABLE</a> hint.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">monitor</td><td>The monitor whose gamma ramp to set. </td></tr>
@@ -830,10 +832,9 @@ Functions</h2></td></tr>
 </div>
 </div>
 </div><!-- contents -->
-<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1140</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 117 - 82
glfw.mod/glfw/docs/html/group__native.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Native access</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,37 +63,42 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">Native access</div>  </div>
+  <div class="headertitle"><div class="title">Native access</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p><b>By using the native access functions you assert that you know what you're doing and how to fix problems caused by using them. If you don't, you shouldn't be using them.</b></p>
-<p>Before the inclusion of <a class="el" href="glfw3native_8h.html">glfw3native.h</a>, you may define zero or more window system API macro and zero or more context creation API macros.</p>
-<p>The chosen backends must match those the library was compiled for. Failure to do this will cause a link-time error.</p>
-<p>The available window API macros are:</p><ul>
+<p ><b>By using the native access functions you assert that you know what you're doing and how to fix problems caused by using them. If you don't, you shouldn't be using them.</b></p>
+<p >Before the inclusion of <a class="el" href="glfw3native_8h.html">glfw3native.h</a>, you may define zero or more window system API macro and zero or more context creation API macros.</p>
+<p >The chosen backends must match those the library was compiled for. Failure to do this will cause a link-time error.</p>
+<p >The available window API macros are:</p><ul>
 <li><code>GLFW_EXPOSE_NATIVE_WIN32</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_COCOA</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_X11</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_WAYLAND</code></li>
 </ul>
-<p>The available context API macros are:</p><ul>
+<p >The available context API macros are:</p><ul>
 <li><code>GLFW_EXPOSE_NATIVE_WGL</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_NSGL</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_GLX</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_EGL</code></li>
 <li><code>GLFW_EXPOSE_NATIVE_OSMESA</code></li>
 </ul>
-<p>These macros select which of the native access functions that are declared and which platform-specific headers to include. It is then up your (by definition platform-specific) code to handle which of these should be defined. </p>
-<table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<p >These macros select which of the native access functions that are declared and which platform-specific headers to include. It is then up your (by definition platform-specific) code to handle which of these should be defined.</p>
+<p >If you do not want the platform-specific headers to be included, define <code>GLFW_NATIVE_INCLUDE_NONE</code> before including the <a class="el" href="glfw3native_8h.html">glfw3native.h</a> header.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_EXPOSE_NATIVE_WIN32</span></div>
+<div class="line"><span class="preprocessor">#define GLFW_EXPOSE_NATIVE_WGL</span></div>
+<div class="line"><span class="preprocessor">#define GLFW_NATIVE_INCLUDE_NONE</span></div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3native_8h.html">GLFW/glfw3native.h</a>&gt;</span></div>
+<div class="ttc" id="aglfw3native_8h_html"><div class="ttname"><a href="glfw3native_8h.html">glfw3native.h</a></div><div class="ttdoc">The header of the native access functions.</div></div>
+</div><!-- fragment --> <table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
-<tr class="memitem:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">glfwGetWin32Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the adapter device name of the specified monitor.  <a href="group__native.html#gac84f63a3f9db145b9435e5e0dbc4183d">More...</a><br /></td></tr>
-<tr class="separator:gac84f63a3f9db145b9435e5e0dbc4183d"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gac408b09a330749402d5d1fa1f5894dd9"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">glfwGetWin32Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gac408b09a330749402d5d1fa1f5894dd9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display device name of the specified monitor.  <a href="group__native.html#gac408b09a330749402d5d1fa1f5894dd9">More...</a><br /></td></tr>
-<tr class="separator:gac408b09a330749402d5d1fa1f5894dd9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">glfwGetWin32Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the adapter device name of the specified monitor.  <a href="group__native.html#gad4d3e9242536c0ba6be88a98f4c73a41">More...</a><br /></td></tr>
+<tr class="separator:gad4d3e9242536c0ba6be88a98f4c73a41"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">glfwGetWin32Monitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the display device name of the specified monitor.  <a href="group__native.html#gac845f7dbe4c1d7fdd682a3c6fdae6766">More...</a><br /></td></tr>
+<tr class="separator:gac845f7dbe4c1d7fdd682a3c6fdae6766"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memItemLeft" align="right" valign="top">HWND&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:gafe5079aa79038b0079fc09d5f0a8e667"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>HWND</code> of the specified window.  <a href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">More...</a><br /></td></tr>
 <tr class="separator:gafe5079aa79038b0079fc09d5f0a8e667"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -107,9 +114,9 @@ Functions</h2></td></tr>
 <tr class="memitem:ga559e002e3cd63c979881770cd4dc63bc"><td class="memItemLeft" align="right" valign="top">id&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">glfwGetNSGLContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga559e002e3cd63c979881770cd4dc63bc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>NSOpenGLContext</code> of the specified window.  <a href="group__native.html#ga559e002e3cd63c979881770cd4dc63bc">More...</a><br /></td></tr>
 <tr class="separator:ga559e002e3cd63c979881770cd4dc63bc"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">glfwGetX11Display</a> (void)</td></tr>
-<tr class="memdesc:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Display</code> used by GLFW.  <a href="group__native.html#ga8519b66594ea3ef6eeafaa2e3ee37406">More...</a><br /></td></tr>
-<tr class="separator:ga8519b66594ea3ef6eeafaa2e3ee37406"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6e7822385cc8a1cc3b18f60352830189"><td class="memItemLeft" align="right" valign="top">Display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">glfwGetX11Display</a> (void)</td></tr>
+<tr class="memdesc:ga6e7822385cc8a1cc3b18f60352830189"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>Display</code> used by GLFW.  <a href="group__native.html#ga6e7822385cc8a1cc3b18f60352830189">More...</a><br /></td></tr>
+<tr class="separator:ga6e7822385cc8a1cc3b18f60352830189"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga088fbfa80f50569402b41be71ad66e40"><td class="memItemLeft" align="right" valign="top">RRCrtc&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">glfwGetX11Adapter</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
 <tr class="memdesc:ga088fbfa80f50569402b41be71ad66e40"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>RRCrtc</code> of the specified monitor.  <a href="group__native.html#ga088fbfa80f50569402b41be71ad66e40">More...</a><br /></td></tr>
 <tr class="separator:ga088fbfa80f50569402b41be71ad66e40"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -122,24 +129,24 @@ Functions</h2></td></tr>
 <tr class="memitem:ga55f879ab02d93367f966186b6f0133f7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a> (const char *string)</td></tr>
 <tr class="memdesc:ga55f879ab02d93367f966186b6f0133f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the current primary selection to the specified string.  <a href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">More...</a><br /></td></tr>
 <tr class="separator:ga55f879ab02d93367f966186b6f0133f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga72f23e3980b83788c70aa854eca31430"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga72f23e3980b83788c70aa854eca31430">glfwGetX11SelectionString</a> (void)</td></tr>
-<tr class="memdesc:ga72f23e3980b83788c70aa854eca31430"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the current primary selection as a string.  <a href="group__native.html#ga72f23e3980b83788c70aa854eca31430">More...</a><br /></td></tr>
-<tr class="separator:ga72f23e3980b83788c70aa854eca31430"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae084ef64dc0db140b455b1427256d3f7"><td class="memItemLeft" align="right" valign="top">const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">glfwGetX11SelectionString</a> (void)</td></tr>
+<tr class="memdesc:gae084ef64dc0db140b455b1427256d3f7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the contents of the current primary selection as a string.  <a href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">More...</a><br /></td></tr>
+<tr class="separator:gae084ef64dc0db140b455b1427256d3f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga62d884114b0abfcdc2930e89f20867e2"><td class="memItemLeft" align="right" valign="top">GLXContext&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">glfwGetGLXContext</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga62d884114b0abfcdc2930e89f20867e2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXContext</code> of the specified window.  <a href="group__native.html#ga62d884114b0abfcdc2930e89f20867e2">More...</a><br /></td></tr>
 <tr class="separator:ga62d884114b0abfcdc2930e89f20867e2"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memItemLeft" align="right" valign="top">GLXWindow&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">glfwGetGLXWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
 <tr class="memdesc:ga1ed27b8766e859a21381e8f8ce18d049"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>GLXWindow</code> of the specified window.  <a href="group__native.html#ga1ed27b8766e859a21381e8f8ce18d049">More...</a><br /></td></tr>
 <tr class="separator:ga1ed27b8766e859a21381e8f8ce18d049"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memItemLeft" align="right" valign="top">struct wl_display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">glfwGetWaylandDisplay</a> (void)</td></tr>
-<tr class="memdesc:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_display*</code> used by GLFW.  <a href="group__native.html#gaaf8118a3c877f3a6bc8e7a649519de5e">More...</a><br /></td></tr>
-<tr class="separator:gaaf8118a3c877f3a6bc8e7a649519de5e"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:gab10427a667b6cd91eec7709f7a906bd3"><td class="memItemLeft" align="right" valign="top">struct wl_output *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">glfwGetWaylandMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
-<tr class="memdesc:gab10427a667b6cd91eec7709f7a906bd3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_output*</code> of the specified monitor.  <a href="group__native.html#gab10427a667b6cd91eec7709f7a906bd3">More...</a><br /></td></tr>
-<tr class="separator:gab10427a667b6cd91eec7709f7a906bd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga4738d7aca4191363519a9a641c3ab64c"><td class="memItemLeft" align="right" valign="top">struct wl_surface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">glfwGetWaylandWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
-<tr class="memdesc:ga4738d7aca4191363519a9a641c3ab64c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the main <code>struct wl_surface*</code> of the specified window.  <a href="group__native.html#ga4738d7aca4191363519a9a641c3ab64c">More...</a><br /></td></tr>
-<tr class="separator:ga4738d7aca4191363519a9a641c3ab64c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacbe11f93ce20621de82989bbba94e62a"><td class="memItemLeft" align="right" valign="top">struct wl_display *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">glfwGetWaylandDisplay</a> (void)</td></tr>
+<tr class="memdesc:gacbe11f93ce20621de82989bbba94e62a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_display*</code> used by GLFW.  <a href="group__native.html#gacbe11f93ce20621de82989bbba94e62a">More...</a><br /></td></tr>
+<tr class="separator:gacbe11f93ce20621de82989bbba94e62a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="memItemLeft" align="right" valign="top">struct wl_output *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">glfwGetWaylandMonitor</a> (<a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *monitor)</td></tr>
+<tr class="memdesc:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>struct wl_output*</code> of the specified monitor.  <a href="group__native.html#ga4f16066bd4c59e2f99418adfcb43dd16">More...</a><br /></td></tr>
+<tr class="separator:ga4f16066bd4c59e2f99418adfcb43dd16"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5c597f2841229d9626f0811cca41ceb3"><td class="memItemLeft" align="right" valign="top">struct wl_surface *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">glfwGetWaylandWindow</a> (<a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *window)</td></tr>
+<tr class="memdesc:ga5c597f2841229d9626f0811cca41ceb3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the main <code>struct wl_surface*</code> of the specified window.  <a href="group__native.html#ga5c597f2841229d9626f0811cca41ceb3">More...</a><br /></td></tr>
+<tr class="separator:ga5c597f2841229d9626f0811cca41ceb3"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:ga1cd8d973f47aacb5532d368147cc3138"><td class="memItemLeft" align="right" valign="top">EGLDisplay&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">glfwGetEGLDisplay</a> (void)</td></tr>
 <tr class="memdesc:ga1cd8d973f47aacb5532d368147cc3138"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the <code>EGLDisplay</code> used by GLFW.  <a href="group__native.html#ga1cd8d973f47aacb5532d368147cc3138">More...</a><br /></td></tr>
 <tr class="separator:ga1cd8d973f47aacb5532d368147cc3138"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -160,14 +167,14 @@ Functions</h2></td></tr>
 <tr class="separator:ga9e47700080094eb569cb053afaa88773"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="gac84f63a3f9db145b9435e5e0dbc4183d"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac84f63a3f9db145b9435e5e0dbc4183d">&#9670;&nbsp;</a></span>glfwGetWin32Adapter()</h2>
+<a id="gad4d3e9242536c0ba6be88a98f4c73a41" name="gad4d3e9242536c0ba6be88a98f4c73a41"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gad4d3e9242536c0ba6be88a98f4c73a41">&#9670;&nbsp;</a></span>glfwGetWin32Adapter()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char* glfwGetWin32Adapter </td>
+          <td class="memname">const char * glfwGetWin32Adapter </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -176,19 +183,20 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded adapter device name (for example <code>\\.\DISPLAY1</code>) of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
 
 </div>
 </div>
-<a id="gac408b09a330749402d5d1fa1f5894dd9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gac408b09a330749402d5d1fa1f5894dd9">&#9670;&nbsp;</a></span>glfwGetWin32Monitor()</h2>
+<a id="gac845f7dbe4c1d7fdd682a3c6fdae6766" name="gac845f7dbe4c1d7fdd682a3c6fdae6766"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gac845f7dbe4c1d7fdd682a3c6fdae6766">&#9670;&nbsp;</a></span>glfwGetWin32Monitor()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char* glfwGetWin32Monitor </td>
+          <td class="memname">const char * glfwGetWin32Monitor </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -197,12 +205,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The UTF-8 encoded display device name (for example <code>\\.\DISPLAY1\Monitor0</code>) of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
 
 </div>
 </div>
-<a id="gafe5079aa79038b0079fc09d5f0a8e667"></a>
+<a id="gafe5079aa79038b0079fc09d5f0a8e667" name="gafe5079aa79038b0079fc09d5f0a8e667"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gafe5079aa79038b0079fc09d5f0a8e667">&#9670;&nbsp;</a></span>glfwGetWin32Window()</h2>
 
 <div class="memitem">
@@ -218,12 +227,16 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>HWND</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>The <code>HDC</code> associated with the window can be queried with the <a href="https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc">GetDC</a> function. <div class="fragment"><div class="line">HDC dc = GetDC(<a class="code hl_function" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a>(window));</div>
+<div class="ttc" id="agroup__native_html_gafe5079aa79038b0079fc09d5f0a8e667"><div class="ttname"><a href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a></div><div class="ttdeci">HWND glfwGetWin32Window(GLFWwindow *window)</div><div class="ttdoc">Returns the HWND of the specified window.</div></div>
+</div><!-- fragment --> This DC is private and does not need to be released.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="gadc4010d91d9cc1134d040eeb1202a143"></a>
+<a id="gadc4010d91d9cc1134d040eeb1202a143" name="gadc4010d91d9cc1134d040eeb1202a143"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gadc4010d91d9cc1134d040eeb1202a143">&#9670;&nbsp;</a></span>glfwGetWGLContext()</h2>
 
 <div class="memitem">
@@ -239,12 +252,15 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>HGLRC</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>The <code>HDC</code> associated with the window can be queried with the <a href="https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getdc">GetDC</a> function. <div class="fragment"><div class="line">HDC dc = GetDC(<a class="code hl_function" href="group__native.html#gafe5079aa79038b0079fc09d5f0a8e667">glfwGetWin32Window</a>(window));</div>
+</div><!-- fragment --> This DC is private and does not need to be released.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="gaf22f429aec4b1aab316142d66d9be3e6"></a>
+<a id="gaf22f429aec4b1aab316142d66d9be3e6" name="gaf22f429aec4b1aab316142d66d9be3e6"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf22f429aec4b1aab316142d66d9be3e6">&#9670;&nbsp;</a></span>glfwGetCocoaMonitor()</h2>
 
 <div class="memitem">
@@ -260,12 +276,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>CGDirectDisplayID</code> of the specified monitor, or <code>kCGNullDirectDisplay</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
 
 </div>
 </div>
-<a id="gac3ed9d495d0c2bb9652de5a50c648715"></a>
+<a id="gac3ed9d495d0c2bb9652de5a50c648715" name="gac3ed9d495d0c2bb9652de5a50c648715"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gac3ed9d495d0c2bb9652de5a50c648715">&#9670;&nbsp;</a></span>glfwGetCocoaWindow()</h2>
 
 <div class="memitem">
@@ -281,12 +298,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>NSWindow</code> of the specified window, or <code>nil</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga559e002e3cd63c979881770cd4dc63bc"></a>
+<a id="ga559e002e3cd63c979881770cd4dc63bc" name="ga559e002e3cd63c979881770cd4dc63bc"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga559e002e3cd63c979881770cd4dc63bc">&#9670;&nbsp;</a></span>glfwGetNSGLContext()</h2>
 
 <div class="memitem">
@@ -302,19 +320,20 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>NSOpenGLContext</code> of the specified window, or <code>nil</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga8519b66594ea3ef6eeafaa2e3ee37406"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga8519b66594ea3ef6eeafaa2e3ee37406">&#9670;&nbsp;</a></span>glfwGetX11Display()</h2>
+<a id="ga6e7822385cc8a1cc3b18f60352830189" name="ga6e7822385cc8a1cc3b18f60352830189"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga6e7822385cc8a1cc3b18f60352830189">&#9670;&nbsp;</a></span>glfwGetX11Display()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">Display* glfwGetX11Display </td>
+          <td class="memname">Display * glfwGetX11Display </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -323,12 +342,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>Display</code> used by GLFW, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga088fbfa80f50569402b41be71ad66e40"></a>
+<a id="ga088fbfa80f50569402b41be71ad66e40" name="ga088fbfa80f50569402b41be71ad66e40"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga088fbfa80f50569402b41be71ad66e40">&#9670;&nbsp;</a></span>glfwGetX11Adapter()</h2>
 
 <div class="memitem">
@@ -344,12 +364,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>RRCrtc</code> of the specified monitor, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
 
 </div>
 </div>
-<a id="gab2f8cc043905e9fa9b12bfdbbcfe874c"></a>
+<a id="gab2f8cc043905e9fa9b12bfdbbcfe874c" name="gab2f8cc043905e9fa9b12bfdbbcfe874c"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gab2f8cc043905e9fa9b12bfdbbcfe874c">&#9670;&nbsp;</a></span>glfwGetX11Monitor()</h2>
 
 <div class="memitem">
@@ -365,12 +386,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>RROutput</code> of the specified monitor, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.1. </dd></dl>
 
 </div>
 </div>
-<a id="ga90ca676322740842db446999a1b1f21d"></a>
+<a id="ga90ca676322740842db446999a1b1f21d" name="ga90ca676322740842db446999a1b1f21d"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga90ca676322740842db446999a1b1f21d">&#9670;&nbsp;</a></span>glfwGetX11Window()</h2>
 
 <div class="memitem">
@@ -386,12 +408,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>Window</code> of the specified window, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga55f879ab02d93367f966186b6f0133f7"></a>
+<a id="ga55f879ab02d93367f966186b6f0133f7" name="ga55f879ab02d93367f966186b6f0133f7"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga55f879ab02d93367f966186b6f0133f7">&#9670;&nbsp;</a></span>glfwSetX11SelectionString()</h2>
 
 <div class="memitem">
@@ -417,21 +440,21 @@ Functions</h2></td></tr>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#clipboard">Clipboard input and output</a> </dd>
 <dd>
-<a class="el" href="group__native.html#ga72f23e3980b83788c70aa854eca31430" title="Returns the contents of the current primary selection as a string.">glfwGetX11SelectionString</a> </dd>
+<a class="el" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7" title="Returns the contents of the current primary selection as a string.">glfwGetX11SelectionString</a> </dd>
 <dd>
 <a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd" title="Sets the clipboard to the specified string.">glfwSetClipboardString</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
 </div>
 </div>
-<a id="ga72f23e3980b83788c70aa854eca31430"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga72f23e3980b83788c70aa854eca31430">&#9670;&nbsp;</a></span>glfwGetX11SelectionString()</h2>
+<a id="gae084ef64dc0db140b455b1427256d3f7" name="gae084ef64dc0db140b455b1427256d3f7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gae084ef64dc0db140b455b1427256d3f7">&#9670;&nbsp;</a></span>glfwGetX11SelectionString()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char* glfwGetX11SelectionString </td>
+          <td class="memname">const char * glfwGetX11SelectionString </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -439,21 +462,21 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>If the selection is empty or if its contents cannot be converted, <code>NULL</code> is returned and a <a class="el" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">GLFW_FORMAT_UNAVAILABLE</a> error is generated.</p>
+<p >If the selection is empty or if its contents cannot be converted, <code>NULL</code> is returned and a <a class="el" href="group__errors.html#ga196e125ef261d94184e2b55c05762f14">GLFW_FORMAT_UNAVAILABLE</a> error is generated.</p>
 <dl class="section return"><dt>Returns</dt><dd>The contents of the selection as a UTF-8 encoded string, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
-<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the next call to <a class="el" href="group__native.html#ga72f23e3980b83788c70aa854eca31430">glfwGetX11SelectionString</a> or <a class="el" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a>, or until the library is terminated.</dd></dl>
+<dl class="section user"><dt>Pointer lifetime</dt><dd>The returned string is allocated and freed by GLFW. You should not free it yourself. It is valid until the next call to <a class="el" href="group__native.html#gae084ef64dc0db140b455b1427256d3f7">glfwGetX11SelectionString</a> or <a class="el" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7">glfwSetX11SelectionString</a>, or until the library is terminated.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function must only be called from the main thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="input_guide.html#clipboard">Clipboard input and output</a> </dd>
 <dd>
 <a class="el" href="group__native.html#ga55f879ab02d93367f966186b6f0133f7" title="Sets the current primary selection to the specified string.">glfwSetX11SelectionString</a> </dd>
 <dd>
-<a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94" title="Returns the contents of the clipboard as a string.">glfwGetClipboardString</a></dd></dl>
+<a class="el" href="group__input.html#ga71a5b20808ea92193d65c21b82580355" title="Returns the contents of the clipboard as a string.">glfwGetClipboardString</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
 </div>
 </div>
-<a id="ga62d884114b0abfcdc2930e89f20867e2"></a>
+<a id="ga62d884114b0abfcdc2930e89f20867e2" name="ga62d884114b0abfcdc2930e89f20867e2"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga62d884114b0abfcdc2930e89f20867e2">&#9670;&nbsp;</a></span>glfwGetGLXContext()</h2>
 
 <div class="memitem">
@@ -469,12 +492,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>GLXContext</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga1ed27b8766e859a21381e8f8ce18d049"></a>
+<a id="ga1ed27b8766e859a21381e8f8ce18d049" name="ga1ed27b8766e859a21381e8f8ce18d049"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1ed27b8766e859a21381e8f8ce18d049">&#9670;&nbsp;</a></span>glfwGetGLXWindow()</h2>
 
 <div class="memitem">
@@ -490,19 +514,20 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>GLXWindow</code> of the specified window, or <code>None</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
 </div>
-<a id="gaaf8118a3c877f3a6bc8e7a649519de5e"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gaaf8118a3c877f3a6bc8e7a649519de5e">&#9670;&nbsp;</a></span>glfwGetWaylandDisplay()</h2>
+<a id="gacbe11f93ce20621de82989bbba94e62a" name="gacbe11f93ce20621de82989bbba94e62a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#gacbe11f93ce20621de82989bbba94e62a">&#9670;&nbsp;</a></span>glfwGetWaylandDisplay()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct wl_display* glfwGetWaylandDisplay </td>
+          <td class="memname">struct wl_display * glfwGetWaylandDisplay </td>
           <td>(</td>
           <td class="paramtype">void&#160;</td>
           <td class="paramname"></td><td>)</td>
@@ -511,19 +536,20 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>struct wl_display*</code> used by GLFW, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
 </div>
-<a id="gab10427a667b6cd91eec7709f7a906bd3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#gab10427a667b6cd91eec7709f7a906bd3">&#9670;&nbsp;</a></span>glfwGetWaylandMonitor()</h2>
+<a id="ga4f16066bd4c59e2f99418adfcb43dd16" name="ga4f16066bd4c59e2f99418adfcb43dd16"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga4f16066bd4c59e2f99418adfcb43dd16">&#9670;&nbsp;</a></span>glfwGetWaylandMonitor()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct wl_output* glfwGetWaylandMonitor </td>
+          <td class="memname">struct wl_output * glfwGetWaylandMonitor </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a> *&#160;</td>
           <td class="paramname"><em>monitor</em></td><td>)</td>
@@ -532,19 +558,20 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>struct wl_output*</code> of the specified monitor, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
 </div>
-<a id="ga4738d7aca4191363519a9a641c3ab64c"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga4738d7aca4191363519a9a641c3ab64c">&#9670;&nbsp;</a></span>glfwGetWaylandWindow()</h2>
+<a id="ga5c597f2841229d9626f0811cca41ceb3" name="ga5c597f2841229d9626f0811cca41ceb3"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga5c597f2841229d9626f0811cca41ceb3">&#9670;&nbsp;</a></span>glfwGetWaylandWindow()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">struct wl_surface* glfwGetWaylandWindow </td>
+          <td class="memname">struct wl_surface * glfwGetWaylandWindow </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a> *&#160;</td>
           <td class="paramname"><em>window</em></td><td>)</td>
@@ -553,12 +580,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The main <code>struct wl_surface*</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
 </div>
-<a id="ga1cd8d973f47aacb5532d368147cc3138"></a>
+<a id="ga1cd8d973f47aacb5532d368147cc3138" name="ga1cd8d973f47aacb5532d368147cc3138"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1cd8d973f47aacb5532d368147cc3138">&#9670;&nbsp;</a></span>glfwGetEGLDisplay()</h2>
 
 <div class="memitem">
@@ -574,12 +602,14 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>EGLDisplay</code> used by GLFW, or <code>EGL_NO_DISPLAY</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Because EGL is initialized on demand, this function will return <code>EGL_NO_DISPLAY</code> until the first context has been created via EGL.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga671c5072becd085f4ab5771a9c8efcf1"></a>
+<a id="ga671c5072becd085f4ab5771a9c8efcf1" name="ga671c5072becd085f4ab5771a9c8efcf1"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga671c5072becd085f4ab5771a9c8efcf1">&#9670;&nbsp;</a></span>glfwGetEGLContext()</h2>
 
 <div class="memitem">
@@ -595,12 +625,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>EGLContext</code> of the specified window, or <code>EGL_NO_CONTEXT</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga2199b36117a6a695fec8441d8052eee6"></a>
+<a id="ga2199b36117a6a695fec8441d8052eee6" name="ga2199b36117a6a695fec8441d8052eee6"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga2199b36117a6a695fec8441d8052eee6">&#9670;&nbsp;</a></span>glfwGetEGLSurface()</h2>
 
 <div class="memitem">
@@ -616,12 +647,13 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>EGLSurface</code> of the specified window, or <code>EGL_NO_SURFACE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.0. </dd></dl>
 
 </div>
 </div>
-<a id="ga3b36e3e3dcf308b776427b6bd73cc132"></a>
+<a id="ga3b36e3e3dcf308b776427b6bd73cc132" name="ga3b36e3e3dcf308b776427b6bd73cc132"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga3b36e3e3dcf308b776427b6bd73cc132">&#9670;&nbsp;</a></span>glfwGetOSMesaColorBuffer()</h2>
 
 <div class="memitem">
@@ -675,12 +707,13 @@ Functions</h2></td></tr>
   </dd>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if successful, or <code>GLFW_FALSE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
 </div>
 </div>
-<a id="ga6b64039ffc88a7a2f57f0956c0c75d53"></a>
+<a id="ga6b64039ffc88a7a2f57f0956c0c75d53" name="ga6b64039ffc88a7a2f57f0956c0c75d53"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga6b64039ffc88a7a2f57f0956c0c75d53">&#9670;&nbsp;</a></span>glfwGetOSMesaDepthBuffer()</h2>
 
 <div class="memitem">
@@ -734,12 +767,13 @@ Functions</h2></td></tr>
   </dd>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if successful, or <code>GLFW_FALSE</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
 </div>
 </div>
-<a id="ga9e47700080094eb569cb053afaa88773"></a>
+<a id="ga9e47700080094eb569cb053afaa88773" name="ga9e47700080094eb569cb053afaa88773"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga9e47700080094eb569cb053afaa88773">&#9670;&nbsp;</a></span>glfwGetOSMesaContext()</h2>
 
 <div class="memitem">
@@ -755,6 +789,7 @@ Functions</h2></td></tr>
       </table>
 </div><div class="memdoc">
 <dl class="section return"><dt>Returns</dt><dd>The <code>OSMesaContext</code> of the specified window, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
+<dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#gacff24d2757da752ae4c80bf452356487">GLFW_NO_WINDOW_CONTEXT</a> and <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. Access is not synchronized.</dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.3. </dd></dl>
 
@@ -763,7 +798,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 26 - 25
glfw.mod/glfw/docs/html/group__shapes.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Standard cursor shapes</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -61,14 +63,13 @@ $(function() {
 <div class="header">
   <div class="summary">
 <a href="#define-members">Macros</a>  </div>
-  <div class="headertitle">
-<div class="title">Standard cursor shapes<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div>  </div>
+  <div class="headertitle"><div class="title">Standard cursor shapes<div class="ingroups"><a class="el" href="group__input.html">Input reference</a></div></div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>See <a class="el" href="input_guide.html#cursor_standard">standard cursor creation</a> for how these are used. </p>
+<p >See <a class="el" href="input_guide.html#cursor_standard">standard cursor creation</a> for how these are used. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="define-members" name="define-members"></a>
 Macros</h2></td></tr>
 <tr class="memitem:ga8ab0e717245b85506cb0eaefdea39d0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__shapes.html#ga8ab0e717245b85506cb0eaefdea39d0a">GLFW_ARROW_CURSOR</a>&#160;&#160;&#160;0x00036001</td></tr>
 <tr class="memdesc:ga8ab0e717245b85506cb0eaefdea39d0a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The regular arrow cursor shape.  <a href="group__shapes.html#ga8ab0e717245b85506cb0eaefdea39d0a">More...</a><br /></td></tr>
@@ -90,7 +91,7 @@ Macros</h2></td></tr>
 <tr class="separator:gaf024f0e1ff8366fb2b5c260509a1fce5"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Macro Definition Documentation</h2>
-<a id="ga8ab0e717245b85506cb0eaefdea39d0a"></a>
+<a id="ga8ab0e717245b85506cb0eaefdea39d0a" name="ga8ab0e717245b85506cb0eaefdea39d0a"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8ab0e717245b85506cb0eaefdea39d0a">&#9670;&nbsp;</a></span>GLFW_ARROW_CURSOR</h2>
 
 <div class="memitem">
@@ -101,11 +102,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The regular arrow cursor. </p>
+<p >The regular arrow cursor. </p>
 
 </div>
 </div>
-<a id="ga36185f4375eaada1b04e431244774c86"></a>
+<a id="ga36185f4375eaada1b04e431244774c86" name="ga36185f4375eaada1b04e431244774c86"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga36185f4375eaada1b04e431244774c86">&#9670;&nbsp;</a></span>GLFW_IBEAM_CURSOR</h2>
 
 <div class="memitem">
@@ -116,11 +117,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The text input I-beam cursor shape. </p>
+<p >The text input I-beam cursor shape. </p>
 
 </div>
 </div>
-<a id="ga8af88c0ea05ab9e8f9ac1530e8873c22"></a>
+<a id="ga8af88c0ea05ab9e8f9ac1530e8873c22" name="ga8af88c0ea05ab9e8f9ac1530e8873c22"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga8af88c0ea05ab9e8f9ac1530e8873c22">&#9670;&nbsp;</a></span>GLFW_CROSSHAIR_CURSOR</h2>
 
 <div class="memitem">
@@ -131,11 +132,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The crosshair shape. </p>
+<p >The crosshair shape. </p>
 
 </div>
 </div>
-<a id="ga1db35e20849e0837c82e3dc1fd797263"></a>
+<a id="ga1db35e20849e0837c82e3dc1fd797263" name="ga1db35e20849e0837c82e3dc1fd797263"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1db35e20849e0837c82e3dc1fd797263">&#9670;&nbsp;</a></span>GLFW_HAND_CURSOR</h2>
 
 <div class="memitem">
@@ -146,11 +147,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The hand shape. </p>
+<p >The hand shape. </p>
 
 </div>
 </div>
-<a id="gabb3eb0109f11bb808fc34659177ca962"></a>
+<a id="gabb3eb0109f11bb808fc34659177ca962" name="gabb3eb0109f11bb808fc34659177ca962"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gabb3eb0109f11bb808fc34659177ca962">&#9670;&nbsp;</a></span>GLFW_HRESIZE_CURSOR</h2>
 
 <div class="memitem">
@@ -161,11 +162,11 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The horizontal resize arrow shape. </p>
+<p >The horizontal resize arrow shape. </p>
 
 </div>
 </div>
-<a id="gaf024f0e1ff8366fb2b5c260509a1fce5"></a>
+<a id="gaf024f0e1ff8366fb2b5c260509a1fce5" name="gaf024f0e1ff8366fb2b5c260509a1fce5"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaf024f0e1ff8366fb2b5c260509a1fce5">&#9670;&nbsp;</a></span>GLFW_VRESIZE_CURSOR</h2>
 
 <div class="memitem">
@@ -176,14 +177,14 @@ Macros</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>The vertical resize arrow shape. </p>
+<p >The vertical resize arrow shape. </p>
 
 </div>
 </div>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 48 - 49
glfw.mod/glfw/docs/html/group__vulkan.html

@@ -1,10 +1,11 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
-<title>GLFW: Vulkan reference</title>
+<meta name="generator" content="Doxygen 1.9.4"/>
+<title>GLFW: Vulkan support reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
 <script type="text/javascript" src="dynsections.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -62,27 +64,26 @@ $(function() {
   <div class="summary">
 <a href="#typedef-members">Typedefs</a> &#124;
 <a href="#func-members">Functions</a>  </div>
-  <div class="headertitle">
-<div class="title">Vulkan reference</div>  </div>
+  <div class="headertitle"><div class="title">Vulkan support reference</div></div>
 </div><!--header-->
 <div class="contents">
 <a name="details" id="details"></a><h2 class="groupheader">Description</h2>
-<p>This is the reference documentation for Vulkan related functions and types. For more task-oriented information, see the <a class="el" href="vulkan_guide.html">Vulkan guide</a>. </p>
+<p >This is the reference documentation for Vulkan related functions and types. For more task-oriented information, see the <a class="el" href="vulkan_guide.html">Vulkan guide</a>. </p>
 <table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="typedef-members" name="typedef-members"></a>
 Typedefs</h2></td></tr>
 <tr class="memitem:ga70c01918dc9d233a4fbe0681a43018af"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>) (void)</td></tr>
 <tr class="memdesc:ga70c01918dc9d233a4fbe0681a43018af"><td class="mdescLeft">&#160;</td><td class="mdescRight">Vulkan API function pointer type.  <a href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">More...</a><br /></td></tr>
 <tr class="separator:ga70c01918dc9d233a4fbe0681a43018af"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
-<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
 Functions</h2></td></tr>
 <tr class="memitem:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> (void)</td></tr>
 <tr class="memdesc:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns whether the Vulkan loader and an ICD have been found.  <a href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">More...</a><br /></td></tr>
 <tr class="separator:ga2e7f30931e02464b5bc8d0d4b6f9fe2b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ga1abcbe61033958f22f63ef82008874b1"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> (uint32_t *count)</td></tr>
-<tr class="memdesc:ga1abcbe61033958f22f63ef82008874b1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Vulkan instance extensions required by GLFW.  <a href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">More...</a><br /></td></tr>
-<tr class="separator:ga1abcbe61033958f22f63ef82008874b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="memItemLeft" align="right" valign="top">const char **&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> (uint32_t *count)</td></tr>
+<tr class="memdesc:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the Vulkan instance extensions required by GLFW.  <a href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">More...</a><br /></td></tr>
+<tr class="separator:ga99ad342d82f4a3421e2864978cb6d1d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__vulkan.html#ga70c01918dc9d233a4fbe0681a43018af">GLFWvkproc</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a> (VkInstance instance, const char *procname)</td></tr>
 <tr class="memdesc:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the address of the specified Vulkan instance function.  <a href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">More...</a><br /></td></tr>
 <tr class="separator:gadf228fac94c5fd8f12423ec9af9ff1e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -94,7 +95,7 @@ Functions</h2></td></tr>
 <tr class="separator:ga1a24536bec3f80b08ead18e28e6ae965"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <h2 class="groupheader">Typedef Documentation</h2>
-<a id="ga70c01918dc9d233a4fbe0681a43018af"></a>
+<a id="ga70c01918dc9d233a4fbe0681a43018af" name="ga70c01918dc9d233a4fbe0681a43018af"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga70c01918dc9d233a4fbe0681a43018af">&#9670;&nbsp;</a></span>GLFWvkproc</h2>
 
 <div class="memitem">
@@ -105,7 +106,7 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>Generic function pointer used for returning Vulkan API function pointers without forcing a cast from a regular pointer.</p>
+<p >Generic function pointer used for returning Vulkan API function pointers without forcing a cast from a regular pointer.</p>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_proc">Querying Vulkan function pointers</a> </dd>
 <dd>
 <a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a></dd></dl>
@@ -114,7 +115,7 @@ Functions</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Function Documentation</h2>
-<a id="ga2e7f30931e02464b5bc8d0d4b6f9fe2b"></a>
+<a id="ga2e7f30931e02464b5bc8d0d4b6f9fe2b" name="ga2e7f30931e02464b5bc8d0d4b6f9fe2b"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">&#9670;&nbsp;</a></span>glfwVulkanSupported()</h2>
 
 <div class="memitem">
@@ -129,8 +130,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns whether the Vulkan loader and any minimally functional ICD have been found.</p>
-<p>The availability of a Vulkan loader and even an ICD does not by itself guarantee that surface creation or even instance creation is possible. For example, on Fermi systems Nvidia will install an ICD that provides no actual Vulkan support. Call <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check whether the extensions necessary for Vulkan surface creation are available and <a class="el" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a> to check whether a queue family of a physical device supports image presentation.</p>
+<p >This function returns whether the Vulkan loader and any minimally functional ICD have been found.</p>
+<p >The availability of a Vulkan loader and even an ICD does not by itself guarantee that surface creation or even instance creation is possible. Call <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> to check whether the extensions necessary for Vulkan surface creation are available and <a class="el" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a> to check whether a queue family of a physical device supports image presentation.</p>
 <dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if Vulkan is minimally available, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
@@ -139,14 +140,14 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="ga1abcbe61033958f22f63ef82008874b1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#ga1abcbe61033958f22f63ef82008874b1">&#9670;&nbsp;</a></span>glfwGetRequiredInstanceExtensions()</h2>
+<a id="ga99ad342d82f4a3421e2864978cb6d1d6" name="ga99ad342d82f4a3421e2864978cb6d1d6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ga99ad342d82f4a3421e2864978cb6d1d6">&#9670;&nbsp;</a></span>glfwGetRequiredInstanceExtensions()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">const char** glfwGetRequiredInstanceExtensions </td>
+          <td class="memname">const char ** glfwGetRequiredInstanceExtensions </td>
           <td>(</td>
           <td class="paramtype">uint32_t *&#160;</td>
           <td class="paramname"><em>count</em></td><td>)</td>
@@ -154,9 +155,9 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns an array of names of Vulkan instance extensions required by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the list will always contain <code>VK_KHR_surface</code>, so if you don't require any additional extensions you can pass this list directly to the <code>VkInstanceCreateInfo</code> struct.</p>
-<p>If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
-<p>If Vulkan is available but no set of extensions allowing window surface creation was found, this function returns <code>NULL</code>. You may still use Vulkan for off-screen rendering and compute work.</p>
+<p >This function returns an array of names of Vulkan instance extensions required by GLFW for creating Vulkan surfaces for GLFW windows. If successful, the list will always contain <code>VK_KHR_surface</code>, so if you don't require any additional extensions you can pass this list directly to the <code>VkInstanceCreateInfo</code> struct.</p>
+<p >If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
+<p >If Vulkan is available but no set of extensions allowing window surface creation was found, this function returns <code>NULL</code>. You may still use Vulkan for off-screen rendering and compute work.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[out]</td><td class="paramname">count</td><td>Where to store the number of extensions in the returned array. This is set to zero if an error occurred. </td></tr>
@@ -165,9 +166,7 @@ Functions</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd>An array of ASCII encoded extension names, or <code>NULL</code> if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> and <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>.</dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd>Additional extensions may be required by future versions of GLFW. You should check if any extensions you wish to enable are already in the returned array, as it is an error to specify an extension more than once in the <code>VkInstanceCreateInfo</code> struct.</dd>
-<dd>
-<b>macOS:</b> This function currently supports either the <code>VK_MVK_macos_surface</code> extension from MoltenVK or <code>VK_EXT_metal_surface</code> extension.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd>Additional extensions may be required by future versions of GLFW. You should check if any extensions you wish to enable are already in the returned array, as it is an error to specify an extension more than once in the <code>VkInstanceCreateInfo</code> struct.</dd></dl>
 <dl class="section user"><dt>Pointer lifetime</dt><dd>The returned array is allocated and freed by GLFW. You should not free it yourself. It is guaranteed to be valid only until the library is terminated.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_ext">Querying required Vulkan extensions</a> </dd>
@@ -177,7 +176,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gadf228fac94c5fd8f12423ec9af9ff1e9"></a>
+<a id="gadf228fac94c5fd8f12423ec9af9ff1e9" name="gadf228fac94c5fd8f12423ec9af9ff1e9"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gadf228fac94c5fd8f12423ec9af9ff1e9">&#9670;&nbsp;</a></span>glfwGetInstanceProcAddress()</h2>
 
 <div class="memitem">
@@ -202,15 +201,15 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns the address of the specified Vulkan core or extension function for the specified instance. If instance is set to <code>NULL</code> it can return any function exported from the Vulkan loader, including at least the following functions:</p>
+<p >This function returns the address of the specified Vulkan core or extension function for the specified instance. If instance is set to <code>NULL</code> it can return any function exported from the Vulkan loader, including at least the following functions:</p>
 <ul>
 <li><code>vkEnumerateInstanceExtensionProperties</code></li>
 <li><code>vkEnumerateInstanceLayerProperties</code></li>
 <li><code>vkCreateInstance</code></li>
 <li><code>vkGetInstanceProcAddr</code></li>
 </ul>
-<p>If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
-<p>This function is equivalent to calling <code>vkGetInstanceProcAddr</code> with a platform-specific query of the Vulkan loader as a fallback.</p>
+<p >If Vulkan is not available on the machine, this function returns <code>NULL</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
+<p >This function is equivalent to calling <code>vkGetInstanceProcAddr</code> with a platform-specific query of the Vulkan loader as a fallback.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The Vulkan instance to query, or <code>NULL</code> to retrieve functions related to instance creation. </td></tr>
@@ -227,7 +226,7 @@ Functions</h2></td></tr>
 
 </div>
 </div>
-<a id="gaff3823355cdd7e2f3f9f4d9ea9518d92"></a>
+<a id="gaff3823355cdd7e2f3f9f4d9ea9518d92" name="gaff3823355cdd7e2f3f9f4d9ea9518d92"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#gaff3823355cdd7e2f3f9f4d9ea9518d92">&#9670;&nbsp;</a></span>glfwGetPhysicalDevicePresentationSupport()</h2>
 
 <div class="memitem">
@@ -258,8 +257,8 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.</p>
-<p>If Vulkan or the required window surface creation instance extensions are not available on the machine, or if the specified instance was not created with the required extensions, this function returns <code>GLFW_FALSE</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available and <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
+<p >This function returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.</p>
+<p >If Vulkan or the required window surface creation instance extensions are not available on the machine, or if the specified instance was not created with the required extensions, this function returns <code>GLFW_FALSE</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available and <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The instance that the physical device belongs to. </td></tr>
@@ -270,14 +269,14 @@ Functions</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd><code>GLFW_TRUE</code> if the queue family supports presentation, or <code>GLFW_FALSE</code> otherwise.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> and <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a>.</dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd><b>macOS:</b> This function currently always returns <code>GLFW_TRUE</code>, as the <code>VK_MVK_macos_surface</code> extension does not provide a <code>vkGetPhysicalDevice*PresentationSupport</code> type function.</dd></dl>
+<dl class="section remark"><dt>Remarks</dt><dd><b>macOS:</b> This function currently always returns <code>GLFW_TRUE</code>, as the <code>VK_MVK_macos_surface</code> and <code>VK_EXT_metal_surface</code> extensions do not provide a <code>vkGetPhysicalDevice*PresentationSupport</code> type function.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_present">Querying for Vulkan presentation support</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
 </div>
-<a id="ga1a24536bec3f80b08ead18e28e6ae965"></a>
+<a id="ga1a24536bec3f80b08ead18e28e6ae965" name="ga1a24536bec3f80b08ead18e28e6ae965"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#ga1a24536bec3f80b08ead18e28e6ae965">&#9670;&nbsp;</a></span>glfwCreateWindowSurface()</h2>
 
 <div class="memitem">
@@ -314,11 +313,11 @@ Functions</h2></td></tr>
         </tr>
       </table>
 </div><div class="memdoc">
-<p>This function creates a Vulkan surface for the specified window.</p>
-<p>If the Vulkan loader or at least one minimally functional ICD were not found, this function returns <code>VK_ERROR_INITIALIZATION_FAILED</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
-<p>If the required window surface creation instance extensions are not available or if the specified instance was not created with these extensions enabled, this function returns <code>VK_ERROR_EXTENSION_NOT_PRESENT</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
-<p>The window surface cannot be shared with another API so the window must have been created with the <a class="el" href="window_guide.html#GLFW_CLIENT_API_attrib">client api hint</a> set to <code>GLFW_NO_API</code> otherwise it generates a <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> error and returns <code>VK_ERROR_NATIVE_WINDOW_IN_USE_KHR</code>.</p>
-<p>The window surface must be destroyed before the specified Vulkan instance. It is the responsibility of the caller to destroy the window surface. GLFW does not destroy it for you. Call <code>vkDestroySurfaceKHR</code> to destroy the surface.</p>
+<p >This function creates a Vulkan surface for the specified window.</p>
+<p >If the Vulkan loader or at least one minimally functional ICD were not found, this function returns <code>VK_ERROR_INITIALIZATION_FAILED</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> to check whether Vulkan is at least minimally available.</p>
+<p >If the required window surface creation instance extensions are not available or if the specified instance was not created with these extensions enabled, this function returns <code>VK_ERROR_EXTENSION_NOT_PRESENT</code> and generates a <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a> error. Call <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> to check what instance extensions are required.</p>
+<p >The window surface cannot be shared with another API so the window must have been created with the <a class="el" href="window_guide.html#GLFW_CLIENT_API_attrib">client api hint</a> set to <code>GLFW_NO_API</code> otherwise it generates a <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a> error and returns <code>VK_ERROR_NATIVE_WINDOW_IN_USE_KHR</code>.</p>
+<p >The window surface must be destroyed before the specified Vulkan instance. It is the responsibility of the caller to destroy the window surface. GLFW does not destroy it for you. Call <code>vkDestroySurfaceKHR</code> to destroy the surface.</p>
 <dl class="params"><dt>Parameters</dt><dd>
   <table class="params">
     <tr><td class="paramdir">[in]</td><td class="paramname">instance</td><td>The Vulkan instance to create the surface in. </td></tr>
@@ -330,15 +329,15 @@ Functions</h2></td></tr>
 </dl>
 <dl class="section return"><dt>Returns</dt><dd><code>VK_SUCCESS</code> if successful, or a Vulkan error code if an <a class="el" href="intro_guide.html#error_handling">error</a> occurred.</dd></dl>
 <dl class="section user"><dt>Errors</dt><dd>Possible errors include <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a>, <a class="el" href="group__errors.html#ga56882b290db23261cc6c053c40c2d08e">GLFW_API_UNAVAILABLE</a>, <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a> and <a class="el" href="group__errors.html#gaaf2ef9aa8202c2b82ac2d921e554c687">GLFW_INVALID_VALUE</a></dd></dl>
-<dl class="section remark"><dt>Remarks</dt><dd>If an error occurs before the creation call is made, GLFW returns the Vulkan error code most appropriate for the error. Appropriate use of <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> and <a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a> should eliminate almost all occurrences of these errors.</dd>
+<dl class="section remark"><dt>Remarks</dt><dd>If an error occurs before the creation call is made, GLFW returns the Vulkan error code most appropriate for the error. Appropriate use of <a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a> and <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a> should eliminate almost all occurrences of these errors.</dd>
 <dd>
-<b>macOS:</b> This function currently only supports the <code>VK_MVK_macos_surface</code> extension from MoltenVK.</dd>
+<b>macOS:</b> GLFW prefers the <code>VK_EXT_metal_surface</code> extension, with the <code>VK_MVK_macos_surface</code> extension as a fallback. The name of the selected extension, if any, is included in the array returned by <a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a>.</dd>
 <dd>
 <b>macOS:</b> This function creates and sets a <code>CAMetalLayer</code> instance for the window content view, which is required for MoltenVK to function.</dd></dl>
 <dl class="section user"><dt>Thread safety</dt><dd>This function may be called from any thread. For synchronization details of Vulkan objects, see the Vulkan specification.</dd></dl>
 <dl class="section see"><dt>See also</dt><dd><a class="el" href="vulkan_guide.html#vulkan_surface">Creating a Vulkan window surface</a> </dd>
 <dd>
-<a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a></dd></dl>
+<a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a></dd></dl>
 <dl class="section since"><dt>Since</dt><dd>Added in version 3.2. </dd></dl>
 
 </div>
@@ -346,7 +345,7 @@ Functions</h2></td></tr>
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 181 - 179
glfw.mod/glfw/docs/html/group__window.html


+ 23 - 21
glfw.mod/glfw/docs/html/index.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Main Page</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -58,13 +60,13 @@ $(function() {
 </iframe>
 </div>
 
-<div class="PageDoc"><div class="contents">
+<div><div class="contents">
 <div class="textblock"><h1><a class="anchor" id="main_intro"></a>
 Introduction</h1>
-<p>GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.</p>
-<p><a class="el" href="news.html#news_33">Release notes for version 3.3</a> list new features, caveats and deprecations.</p>
-<p><a class="el" href="quick_guide.html">Getting started</a> is a guide for users new to GLFW. It takes you through how to write a small but complete program.</p>
-<p>There are guides for each section of the API:</p>
+<p >GLFW is a free, Open Source, multi-platform library for OpenGL, OpenGL ES and Vulkan application development. It provides a simple, platform-independent API for creating windows, contexts and surfaces, reading input, handling events, etc.</p>
+<p ><a class="el" href="news.html#news_33">Release notes for version 3.3</a> list new features, caveats and deprecations.</p>
+<p ><a class="el" href="quick_guide.html">Getting started</a> is a guide for users new to GLFW. It takes you through how to write a small but complete program.</p>
+<p >There are guides for each section of the API:</p>
 <ul>
 <li><a class="el" href="intro_guide.html">Introduction to the API</a> – initialization, error handling and high-level design</li>
 <li><a class="el" href="window_guide.html">Window guide</a> – creating and working with windows and framebuffers</li>
@@ -73,18 +75,18 @@ Introduction</h1>
 <li><a class="el" href="monitor_guide.html">Monitor guide</a> – enumerating and working with monitors and video modes</li>
 <li><a class="el" href="input_guide.html">Input guide</a> – receiving events, polling and processing input</li>
 </ul>
-<p>Once you have written a program, see <a class="el" href="compile_guide.html">Compiling GLFW</a> and <a class="el" href="build_guide.html">Building applications</a>.</p>
-<p>The <a href="modules.html">reference documentation</a> provides more detailed information about specific functions.</p>
-<p><a class="el" href="moving_guide.html">Moving from GLFW 2 to 3</a> explains what has changed and how to update existing code to use the new API.</p>
-<p>There is a section on <a class="el" href="intro_guide.html#guarantees_limitations">Guarantees and limitations</a> for pointer lifetimes, reentrancy, thread safety, event order and backward and forward compatibility.</p>
-<p>The <a href="https://www.glfw.org/faq.html">FAQ</a> answers many common questions about the design, implementation and use of GLFW.</p>
-<p>Finally, <a class="el" href="compat_guide.html">Standards conformance</a> explains what APIs, standards and protocols GLFW uses and what happens when they are not present on a given machine.</p>
-<p>This documentation was generated with Doxygen. The sources for it are available in both the <a href="https://www.glfw.org/download.html">source distribution</a> and <a href="https://github.com/glfw/glfw">GitHub repository</a>. </p>
+<p >Once you have written a program, see <a class="el" href="compile_guide.html">Compiling GLFW</a> and <a class="el" href="build_guide.html">Building applications</a>.</p>
+<p >The <a href="modules.html">reference documentation</a> provides more detailed information about specific functions.</p>
+<p ><a class="el" href="moving_guide.html">Moving from GLFW 2 to 3</a> explains what has changed and how to update existing code to use the new API.</p>
+<p >There is a section on <a class="el" href="intro_guide.html#guarantees_limitations">Guarantees and limitations</a> for pointer lifetimes, reentrancy, thread safety, event order and backward and forward compatibility.</p>
+<p >The <a href="https://www.glfw.org/faq.html">FAQ</a> answers many common questions about the design, implementation and use of GLFW.</p>
+<p >Finally, <a class="el" href="compat_guide.html">Standards conformance</a> explains what APIs, standards and protocols GLFW uses and what happens when they are not present on a given machine.</p>
+<p >This documentation was generated with Doxygen. The sources for it are available in both the <a href="https://www.glfw.org/download.html">source distribution</a> and <a href="https://github.com/glfw/glfw">GitHub repository</a>. </p>
 </div></div><!-- PageDoc -->
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/input_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: input.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">input.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">input.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 306 - 302
glfw.mod/glfw/docs/html/input_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Input guide</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Input guide </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Input guide </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -99,7 +100,7 @@ $(function() {
 <li class="level1"><a href="#path_drop">Path drop input</a></li>
 </ul>
 </div>
-<div class="textblock"><p>This guide introduces the input related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__input.html">Input reference</a>. There are also guides for the other areas of GLFW.</p>
+<div class="textblock"><p >This guide introduces the input related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__input.html">Input reference</a>. There are also guides for the other areas of GLFW.</p>
 <ul>
 <li><a class="el" href="intro_guide.html">Introduction to the API</a></li>
 <li><a class="el" href="window_guide.html">Window guide</a></li>
@@ -107,151 +108,190 @@ $(function() {
 <li><a class="el" href="vulkan_guide.html">Vulkan guide</a></li>
 <li><a class="el" href="monitor_guide.html">Monitor guide</a></li>
 </ul>
-<p>GLFW provides many kinds of input. While some can only be polled, like time, or only received via callbacks, like scrolling, many provide both callbacks and polling. Callbacks are more work to use than polling but is less CPU intensive and guarantees that you do not miss state changes.</p>
-<p>All input callbacks receive a window handle. By using the <a class="el" href="window_guide.html#window_userptr">window user pointer</a>, you can access non-global structures or objects from your callbacks.</p>
-<p>To get a better feel for how the various events callbacks behave, run the <code>events</code> test program. It register every callback supported by GLFW and prints out all arguments provided for every event, along with time and sequence information.</p>
+<p >GLFW provides many kinds of input. While some can only be polled, like time, or only received via callbacks, like scrolling, many provide both callbacks and polling. Callbacks are more work to use than polling but is less CPU intensive and guarantees that you do not miss state changes.</p>
+<p >All input callbacks receive a window handle. By using the <a class="el" href="window_guide.html#window_userptr">window user pointer</a>, you can access non-global structures or objects from your callbacks.</p>
+<p >To get a better feel for how the various events callbacks behave, run the <code>events</code> test program. It register every callback supported by GLFW and prints out all arguments provided for every event, along with time and sequence information.</p>
 <h1><a class="anchor" id="events"></a>
 Event processing</h1>
-<p>GLFW needs to poll the window system for events both to provide input to the application and to prove to the window system that the application hasn't locked up. Event processing is normally done each frame after <a class="el" href="window_guide.html#buffer_swap">buffer swapping</a>. Even when you have no windows, event polling needs to be done in order to receive monitor and joystick connection events.</p>
-<p>There are three functions for processing pending events. <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>, processes only those events that have already been received and then returns immediately.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>();</div>
-</div><!-- fragment --><p>This is the best choice when rendering continuously, like most games do.</p>
-<p>If you only need to update the contents of the window when you receive new input, <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> is a better choice.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>();</div>
-</div><!-- fragment --><p>It puts the thread to sleep until at least one event has been received and then processes all received events. This saves a great deal of CPU cycles and is useful for, for example, editing tools.</p>
-<p>If you want to wait for events but have UI elements or other tasks that need periodic updates, <a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a> lets you specify a timeout.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a>(0.7);</div>
-</div><!-- fragment --><p>It puts the thread to sleep until at least one event has been received, or until the specified number of seconds have elapsed. It then processes any received events.</p>
-<p>If the main thread is sleeping in <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>, you can wake it from another thread by posting an empty event to the event queue with <a class="el" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>();</div>
-</div><!-- fragment --><p>Do not assume that callbacks will <em>only</em> be called in response to the above functions. While it is necessary to process events in one or more of the ways above, window systems that require GLFW to register callbacks of its own can pass events to GLFW in response to many window system function calls. GLFW will pass those events on to the application callbacks before returning.</p>
-<p>For example, on Windows the system function that <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a> is implemented with will send window size events directly to the event callback that every window has and that GLFW implements for its windows. If you have set a <a class="el" href="window_guide.html#window_size">window size callback</a> GLFW will call it in turn with the new size before everything returns back out of the <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a> call.</p>
+<p >GLFW needs to poll the window system for events both to provide input to the application and to prove to the window system that the application hasn't locked up. Event processing is normally done each frame after <a class="el" href="window_guide.html#buffer_swap">buffer swapping</a>. Even when you have no windows, event polling needs to be done in order to receive monitor and joystick connection events.</p>
+<p >There are three functions for processing pending events. <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>, processes only those events that have already been received and then returns immediately.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>();</div>
+<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
+</div><!-- fragment --><p >This is the best choice when rendering continuously, like most games do.</p>
+<p >If you only need to update the contents of the window when you receive new input, <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> is a better choice.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>();</div>
+<div class="ttc" id="agroup__window_html_ga554e37d781f0a997656c26b2c56c835e"><div class="ttname"><a href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a></div><div class="ttdeci">void glfwWaitEvents(void)</div><div class="ttdoc">Waits until events are queued and processes them.</div></div>
+</div><!-- fragment --><p >It puts the thread to sleep until at least one event has been received and then processes all received events. This saves a great deal of CPU cycles and is useful for, for example, editing tools.</p>
+<p >If you want to wait for events but have UI elements or other tasks that need periodic updates, <a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a> lets you specify a timeout.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a>(0.7);</div>
+<div class="ttc" id="agroup__window_html_ga605a178db92f1a7f1a925563ef3ea2cf"><div class="ttname"><a href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a></div><div class="ttdeci">void glfwWaitEventsTimeout(double timeout)</div><div class="ttdoc">Waits with timeout until events are queued and processes them.</div></div>
+</div><!-- fragment --><p >It puts the thread to sleep until at least one event has been received, or until the specified number of seconds have elapsed. It then processes any received events.</p>
+<p >If the main thread is sleeping in <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a>, you can wake it from another thread by posting an empty event to the event queue with <a class="el" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a>();</div>
+<div class="ttc" id="agroup__window_html_gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><div class="ttname"><a href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a></div><div class="ttdeci">void glfwPostEmptyEvent(void)</div><div class="ttdoc">Posts an empty event to the event queue.</div></div>
+</div><!-- fragment --><p >Do not assume that callbacks will <em>only</em> be called in response to the above functions. While it is necessary to process events in one or more of the ways above, window systems that require GLFW to register callbacks of its own can pass events to GLFW in response to many window system function calls. GLFW will pass those events on to the application callbacks before returning.</p>
+<p >For example, on Windows the system function that <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a> is implemented with will send window size events directly to the event callback that every window has and that GLFW implements for its windows. If you have set a <a class="el" href="window_guide.html#window_size">window size callback</a> GLFW will call it in turn with the new size before everything returns back out of the <a class="el" href="group__window.html#ga371911f12c74c504dd8d47d832d095cb">glfwSetWindowSize</a> call.</p>
 <h1><a class="anchor" id="input_keyboard"></a>
 Keyboard input</h1>
-<p>GLFW divides keyboard input into two categories; key events and character events. Key events relate to actual physical keyboard keys, whereas character events relate to the Unicode code points generated by pressing some of them.</p>
-<p>Keys and characters do not map 1:1. A single key press may produce several characters, and a single character may require several keys to produce. This may not be the case on your machine, but your users are likely not all using the same keyboard layout, input method or even operating system as you.</p>
+<p >GLFW divides keyboard input into two categories; key events and character events. Key events relate to actual physical keyboard keys, whereas character events relate to the Unicode code points generated by pressing some of them.</p>
+<p >Keys and characters do not map 1:1. A single key press may produce several characters, and a single character may require several keys to produce. This may not be the case on your machine, but your users are likely not all using the same keyboard layout, input method or even operating system as you.</p>
 <h2><a class="anchor" id="input_key"></a>
 Key input</h2>
-<p>If you wish to be notified when a physical key is pressed or released or when it repeats, set a key callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a>(window, key_callback);</div>
-</div><!-- fragment --><p>The callback function receives the <a class="el" href="group__keys.html">keyboard key</a>, platform-specific scancode, key action and <a class="el" href="group__mods.html">modifier bits</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> key_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods)</div>
+<p >If you wish to be notified when a physical key is pressed or released or when it repeats, set a key callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a>(window, key_callback);</div>
+<div class="ttc" id="agroup__input_html_ga1caf18159767e761185e49a3be019f8d"><div class="ttname"><a href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a></div><div class="ttdeci">GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)</div><div class="ttdoc">Sets the key callback.</div></div>
+</div><!-- fragment --><p >The callback function receives the <a class="el" href="group__keys.html">keyboard key</a>, platform-specific scancode, key action and <a class="el" href="group__mods.html">modifier bits</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> key_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> key, <span class="keywordtype">int</span> scancode, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (key == <a class="code" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a> &amp;&amp; action == <a class="code" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
+<div class="line">    <span class="keywordflow">if</span> (key == <a class="code hl_define" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a> &amp;&amp; action == <a class="code hl_define" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
 <div class="line">        activate_airship();</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The action is one of <code>GLFW_PRESS</code>, <code>GLFW_REPEAT</code> or <code>GLFW_RELEASE</code>. The key will be <code>GLFW_KEY_UNKNOWN</code> if GLFW lacks a key token for it, for example <em>E-mail</em> and <em>Play</em> keys.</p>
-<p>The scancode is unique for every key, regardless of whether it has a key token. Scancodes are platform-specific but consistent over time, so keys will have different scancodes depending on the platform but they are safe to save to disk. You can query the scancode for any <a class="el" href="group__keys.html">named key</a> on the current platform with <a class="el" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> scancode = <a class="code" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>(<a class="code" href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">GLFW_KEY_X</a>);</div>
+<div class="ttc" id="agroup__input_html_ga2485743d0b59df3791c45951c4195265"><div class="ttname"><a href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a></div><div class="ttdeci">#define GLFW_PRESS</div><div class="ttdoc">The key or mouse button was pressed.</div><div class="ttdef"><b>Definition:</b> glfw3.h:338</div></div>
+<div class="ttc" id="agroup__keys_html_gabf48fcc3afbe69349df432b470c96ef2"><div class="ttname"><a href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a></div><div class="ttdeci">#define GLFW_KEY_E</div><div class="ttdef"><b>Definition:</b> glfw3.h:416</div></div>
+<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1185</div></div>
+</div><!-- fragment --><p >The action is one of <code>GLFW_PRESS</code>, <code>GLFW_REPEAT</code> or <code>GLFW_RELEASE</code>. Events with <code>GLFW_PRESS</code> and <code>GLFW_RELEASE</code> actions are emitted for every key press. Most keys will also emit events with <code>GLFW_REPEAT</code> actions while a key is held down.</p>
+<p >Key events with <code>GLFW_REPEAT</code> actions are intended for text input. They are emitted at the rate set in the user's keyboard settings. At most one key is repeated even if several keys are held down. <code>GLFW_REPEAT</code> actions should not be relied on to know which keys are being held down or to drive animation. Instead you should either save the state of relevant keys based on <code>GLFW_PRESS</code> and <code>GLFW_RELEASE</code> actions, or call <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>, which provides basic cached key state.</p>
+<p >The key will be one of the existing <a class="el" href="group__keys.html">key tokens</a>, or <code>GLFW_KEY_UNKNOWN</code> if GLFW lacks a token for it, for example <em>E-mail</em> and <em>Play</em> keys.</p>
+<p >The scancode is unique for every key, regardless of whether it has a key token. Scancodes are platform-specific but consistent over time, so keys will have different scancodes depending on the platform but they are safe to save to disk. You can query the scancode for any <a class="el" href="group__keys.html">named key</a> on the current platform with <a class="el" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">int</span> scancode = <a class="code hl_function" href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a>(<a class="code hl_define" href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">GLFW_KEY_X</a>);</div>
 <div class="line">set_key_mapping(scancode, swap_weapons);</div>
-</div><!-- fragment --><p>The last reported state for every <a class="el" href="group__keys.html">named key</a> is also saved in per-window state arrays that can be polled with <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> state = <a class="code" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>(window, <a class="code" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a>);</div>
-<div class="line"><span class="keywordflow">if</span> (state == <a class="code" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
+<div class="ttc" id="agroup__input_html_ga67ddd1b7dcbbaff03e4a76c0ea67103a"><div class="ttname"><a href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a></div><div class="ttdeci">int glfwGetKeyScancode(int key)</div><div class="ttdoc">Returns the platform-specific scancode of the specified key.</div></div>
+<div class="ttc" id="agroup__keys_html_gac1c42c0bf4192cea713c55598b06b744"><div class="ttname"><a href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">GLFW_KEY_X</a></div><div class="ttdeci">#define GLFW_KEY_X</div><div class="ttdef"><b>Definition:</b> glfw3.h:435</div></div>
+</div><!-- fragment --><p >The last reported state for every <a class="el" href="group__keys.html">named key</a> is also saved in per-window state arrays that can be polled with <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> state = <a class="code hl_function" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>(window, <a class="code hl_define" href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a>);</div>
+<div class="line"><span class="keywordflow">if</span> (state == <a class="code hl_define" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
 <div class="line">{</div>
 <div class="line">    activate_airship();</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
-<p>This function only returns cached key event state. It does not poll the system for the current physical state of the key.</p>
-<p><a class="anchor" id="GLFW_STICKY_KEYS"></a>Whenever you poll state, you risk missing the state change you are looking for. If a pressed key is released again before you poll its state, you will have missed the key press. The recommended solution for this is to use a key callback, but there is also the <code>GLFW_STICKY_KEYS</code> input mode.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc">GLFW_STICKY_KEYS</a>, <a class="code" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
-</div><!-- fragment --><p>When sticky keys mode is enabled, the pollable state of a key will remain <code>GLFW_PRESS</code> until the state of that key is polled with <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>. Once it has been polled, if a key release event had been processed in the meantime, the state will reset to <code>GLFW_RELEASE</code>, otherwise it will remain <code>GLFW_PRESS</code>.</p>
-<p><a class="anchor" id="GLFW_LOCK_KEY_MODS"></a>If you wish to know what the state of the Caps Lock and Num Lock keys was when input events were generated, set the <code>GLFW_LOCK_KEY_MODS</code> input mode.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947">GLFW_LOCK_KEY_MODS</a>, <a class="code" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
-</div><!-- fragment --><p>When this input mode is enabled, any callback that receives <a class="el" href="group__mods.html">modifier bits</a> will have the <a class="el" href="group__mods.html#gaefeef8fcf825a6e43e241b337897200f">GLFW_MOD_CAPS_LOCK</a> bit set if Caps Lock was on when the event occurred and the <a class="el" href="group__mods.html#ga64e020b8a42af8376e944baf61feecbe">GLFW_MOD_NUM_LOCK</a> bit set if Num Lock was on.</p>
-<p>The <code>GLFW_KEY_LAST</code> constant holds the highest value of any <a class="el" href="group__keys.html">named key</a>.</p>
+<div class="ttc" id="agroup__input_html_gadd341da06bc8d418b4dc3a3518af9ad2"><div class="ttname"><a href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a></div><div class="ttdeci">int glfwGetKey(GLFWwindow *window, int key)</div><div class="ttdoc">Returns the last reported state of a keyboard key for the specified window.</div></div>
+</div><!-- fragment --><p >The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
+<p >This function only returns cached key event state. It does not poll the system for the current physical state of the key.</p>
+<p ><a class="anchor" id="GLFW_STICKY_KEYS"></a>Whenever you poll state, you risk missing the state change you are looking for. If a pressed key is released again before you poll its state, you will have missed the key press. The recommended solution for this is to use a key callback, but there is also the <code>GLFW_STICKY_KEYS</code> input mode.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc">GLFW_STICKY_KEYS</a>, <a class="code hl_define" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_ae3bbe2315b7691ab088159eb6c9110fc"><div class="ttname"><a href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc">GLFW_STICKY_KEYS</a></div><div class="ttdeci">#define GLFW_STICKY_KEYS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1049</div></div>
+<div class="ttc" id="agroup__init_html_ga2744fbb29b5631bb28802dbe0cf36eba"><div class="ttname"><a href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a></div><div class="ttdeci">#define GLFW_TRUE</div><div class="ttdoc">One.</div><div class="ttdef"><b>Definition:</b> glfw3.h:312</div></div>
+<div class="ttc" id="agroup__input_html_gaa92336e173da9c8834558b54ee80563b"><div class="ttname"><a href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a></div><div class="ttdeci">void glfwSetInputMode(GLFWwindow *window, int mode, int value)</div><div class="ttdoc">Sets an input option for the specified window.</div></div>
+</div><!-- fragment --><p >When sticky keys mode is enabled, the pollable state of a key will remain <code>GLFW_PRESS</code> until the state of that key is polled with <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a>. Once it has been polled, if a key release event had been processed in the meantime, the state will reset to <code>GLFW_RELEASE</code>, otherwise it will remain <code>GLFW_PRESS</code>.</p>
+<p ><a class="anchor" id="GLFW_LOCK_KEY_MODS"></a>If you wish to know what the state of the Caps Lock and Num Lock keys was when input events were generated, set the <code>GLFW_LOCK_KEY_MODS</code> input mode.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947">GLFW_LOCK_KEY_MODS</a>, <a class="code hl_define" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_a07b84de0b52143e1958f88a7d9105947"><div class="ttname"><a href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947">GLFW_LOCK_KEY_MODS</a></div><div class="ttdeci">#define GLFW_LOCK_KEY_MODS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1051</div></div>
+</div><!-- fragment --><p >When this input mode is enabled, any callback that receives <a class="el" href="group__mods.html">modifier bits</a> will have the <a class="el" href="group__mods.html#gaefeef8fcf825a6e43e241b337897200f">GLFW_MOD_CAPS_LOCK</a> bit set if Caps Lock was on when the event occurred and the <a class="el" href="group__mods.html#ga64e020b8a42af8376e944baf61feecbe">GLFW_MOD_NUM_LOCK</a> bit set if Num Lock was on.</p>
+<p >The <code>GLFW_KEY_LAST</code> constant holds the highest value of any <a class="el" href="group__keys.html">named key</a>.</p>
 <h2><a class="anchor" id="input_char"></a>
 Text input</h2>
-<p>GLFW supports text input in the form of a stream of <a href="https://en.wikipedia.org/wiki/Unicode">Unicode code points</a>, as produced by the operating system text input system. Unlike key input, text input obeys keyboard layouts and modifier keys and supports composing characters using <a href="https://en.wikipedia.org/wiki/Dead_key">dead keys</a>. Once received, you can encode the code points into UTF-8 or any other encoding you prefer.</p>
-<p>Because an <code>unsigned int</code> is 32 bits long on all platforms supported by GLFW, you can treat the code point argument as native endian UTF-32.</p>
-<p>If you wish to offer regular text input, set a character callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a>(window, character_callback);</div>
-</div><!-- fragment --><p>The callback function receives Unicode code points for key events that would have led to regular text input and generally behaves as a standard text field on that platform.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> character_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codepoint)</div>
+<p >GLFW supports text input in the form of a stream of <a href="https://en.wikipedia.org/wiki/Unicode">Unicode code points</a>, as produced by the operating system text input system. Unlike key input, text input obeys keyboard layouts and modifier keys and supports composing characters using <a href="https://en.wikipedia.org/wiki/Dead_key">dead keys</a>. Once received, you can encode the code points into UTF-8 or any other encoding you prefer.</p>
+<p >Because an <code>unsigned int</code> is 32 bits long on all platforms supported by GLFW, you can treat the code point argument as native endian UTF-32.</p>
+<p >If you wish to offer regular text input, set a character callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a>(window, character_callback);</div>
+<div class="ttc" id="agroup__input_html_gab25c4a220fd8f5717718dbc487828996"><div class="ttname"><a href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a></div><div class="ttdeci">GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)</div><div class="ttdoc">Sets the Unicode character callback.</div></div>
+</div><!-- fragment --><p >The callback function receives Unicode code points for key events that would have led to regular text input and generally behaves as a standard text field on that platform.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> character_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> codepoint)</div>
 <div class="line">{</div>
 <div class="line">}</div>
 </div><!-- fragment --><h2><a class="anchor" id="input_key_name"></a>
 Key names</h2>
-<p>If you wish to refer to keys by name, you can query the keyboard layout dependent name of printable keys with <a class="el" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a>.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* key_name = <a class="code" href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a>(<a class="code" href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">GLFW_KEY_W</a>, 0);</div>
+<p >If you wish to refer to keys by name, you can query the keyboard layout dependent name of printable keys with <a class="el" href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a>.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* key_name = <a class="code hl_function" href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a>(<a class="code hl_define" href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">GLFW_KEY_W</a>, 0);</div>
 <div class="line">show_tutorial_hint(<span class="stringliteral">&quot;Press %s to move forward&quot;</span>, key_name);</div>
-</div><!-- fragment --><p>This function can handle both <a class="el" href="input_guide.html#input_key">keys and scancodes</a>. If the specified key is <code>GLFW_KEY_UNKNOWN</code> then the scancode is used, otherwise it is ignored. This matches the behavior of the key callback, meaning the callback arguments can always be passed unmodified to this function.</p>
+<div class="ttc" id="agroup__input_html_gaeaed62e69c3bd62b7ff8f7b19913ce4f"><div class="ttname"><a href="group__input.html#gaeaed62e69c3bd62b7ff8f7b19913ce4f">glfwGetKeyName</a></div><div class="ttdeci">const char * glfwGetKeyName(int key, int scancode)</div><div class="ttdoc">Returns the layout-specific name of the specified printable key.</div></div>
+<div class="ttc" id="agroup__keys_html_gaa06a712e6202661fc03da5bdb7b6e545"><div class="ttname"><a href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">GLFW_KEY_W</a></div><div class="ttdeci">#define GLFW_KEY_W</div><div class="ttdef"><b>Definition:</b> glfw3.h:434</div></div>
+</div><!-- fragment --><p >This function can handle both <a class="el" href="input_guide.html#input_key">keys and scancodes</a>. If the specified key is <code>GLFW_KEY_UNKNOWN</code> then the scancode is used, otherwise it is ignored. This matches the behavior of the key callback, meaning the callback arguments can always be passed unmodified to this function.</p>
 <h1><a class="anchor" id="input_mouse"></a>
 Mouse input</h1>
-<p>Mouse input comes in many forms, including mouse motion, button presses and scrolling offsets. The cursor appearance can also be changed, either to a custom image or a standard cursor shape from the system theme.</p>
+<p >Mouse input comes in many forms, including mouse motion, button presses and scrolling offsets. The cursor appearance can also be changed, either to a custom image or a standard cursor shape from the system theme.</p>
 <h2><a class="anchor" id="cursor_pos"></a>
 Cursor position</h2>
-<p>If you wish to be notified when the cursor moves over the window, set a cursor position callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>(window, cursor_position_callback);</div>
-</div><!-- fragment --><p>The callback functions receives the cursor position, measured in screen coordinates but relative to the top-left corner of the window content area. On platforms that provide it, the full sub-pixel cursor position is passed on.</p>
-<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> cursor_position_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xpos, <span class="keywordtype">double</span> ypos)</div>
+<p >If you wish to be notified when the cursor moves over the window, set a cursor position callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>(window, cursor_position_callback);</div>
+<div class="ttc" id="agroup__input_html_gac1f879ab7435d54d4d79bb469fe225d7"><div class="ttname"><a href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a></div><div class="ttdeci">GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)</div><div class="ttdoc">Sets the cursor position callback.</div></div>
+</div><!-- fragment --><p >The callback functions receives the cursor position, measured in screen coordinates but relative to the top-left corner of the window content area. On platforms that provide it, the full sub-pixel cursor position is passed on.</p>
+<div class="fragment"><div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> cursor_position_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xpos, <span class="keywordtype">double</span> ypos)</div>
 <div class="line">{</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The cursor position is also saved per-window and can be polled with <a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>.</p>
+</div><!-- fragment --><p >The cursor position is also saved per-window and can be polled with <a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">double</span> xpos, ypos;</div>
-<div class="line"><a class="code" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>(window, &amp;xpos, &amp;ypos);</div>
+<div class="line"><a class="code hl_function" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>(window, &amp;xpos, &amp;ypos);</div>
+<div class="ttc" id="agroup__input_html_ga01d37b6c40133676b9cea60ca1d7c0cc"><div class="ttname"><a href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a></div><div class="ttdeci">void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)</div><div class="ttdoc">Retrieves the position of the cursor relative to the content area of the window.</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="cursor_mode"></a>
 Cursor mode</h2>
-<p><a class="anchor" id="GLFW_CURSOR"></a>The <code>GLFW_CURSOR</code> input mode provides several cursor modes for special forms of mouse motion input. By default, the cursor mode is <code>GLFW_CURSOR_NORMAL</code>, meaning the regular arrow cursor (or another cursor set with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>) is used and cursor motion is not limited.</p>
-<p>If you wish to implement mouse motion based camera controls or other input schemes that require unlimited mouse movement, set the cursor mode to <code>GLFW_CURSOR_DISABLED</code>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code" href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88">GLFW_CURSOR_DISABLED</a>);</div>
-</div><!-- fragment --><p>This will hide the cursor and lock it to the specified window. GLFW will then take care of all the details of cursor re-centering and offset calculation and providing the application with a virtual cursor position. This virtual position is provided normally via both the cursor position callback and through polling.</p>
+<p ><a class="anchor" id="GLFW_CURSOR"></a>The <code>GLFW_CURSOR</code> input mode provides several cursor modes for special forms of mouse motion input. By default, the cursor mode is <code>GLFW_CURSOR_NORMAL</code>, meaning the regular arrow cursor (or another cursor set with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>) is used and cursor motion is not limited.</p>
+<p >If you wish to implement mouse motion based camera controls or other input schemes that require unlimited mouse movement, set the cursor mode to <code>GLFW_CURSOR_DISABLED</code>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code hl_define" href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88">GLFW_CURSOR_DISABLED</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_a2315b99a329ce53e6a13a9d46fd5ca88"><div class="ttname"><a href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88">GLFW_CURSOR_DISABLED</a></div><div class="ttdeci">#define GLFW_CURSOR_DISABLED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1056</div></div>
+<div class="ttc" id="aglfw3_8h_html_aade31da5b884a84a7625c6b059b9132c"><div class="ttname"><a href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a></div><div class="ttdeci">#define GLFW_CURSOR</div><div class="ttdef"><b>Definition:</b> glfw3.h:1048</div></div>
+</div><!-- fragment --><p >This will hide the cursor and lock it to the specified window. GLFW will then take care of all the details of cursor re-centering and offset calculation and providing the application with a virtual cursor position. This virtual position is provided normally via both the cursor position callback and through polling.</p>
 <dl class="section note"><dt>Note</dt><dd>You should not implement your own version of this functionality using other features of GLFW. It is not supported and will not work as robustly as <code>GLFW_CURSOR_DISABLED</code>.</dd></dl>
 <p>If you only wish the cursor to become hidden when it is over a window but still want it to behave normally, set the cursor mode to <code>GLFW_CURSOR_HIDDEN</code>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code" href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11">GLFW_CURSOR_HIDDEN</a>);</div>
-</div><!-- fragment --><p>This mode puts no limit on the motion of the cursor.</p>
-<p>To exit out of either of these special modes, restore the <code>GLFW_CURSOR_NORMAL</code> cursor mode.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code" href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68">GLFW_CURSOR_NORMAL</a>);</div>
-</div><!-- fragment --><p><a class="anchor" id="GLFW_RAW_MOUSE_MOTION"></a></p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code hl_define" href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11">GLFW_CURSOR_HIDDEN</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_ac4d5cb9d78de8573349c58763d53bf11"><div class="ttname"><a href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11">GLFW_CURSOR_HIDDEN</a></div><div class="ttdeci">#define GLFW_CURSOR_HIDDEN</div><div class="ttdef"><b>Definition:</b> glfw3.h:1055</div></div>
+</div><!-- fragment --><p >This mode puts no limit on the motion of the cursor.</p>
+<p >To exit out of either of these special modes, restore the <code>GLFW_CURSOR_NORMAL</code> cursor mode.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a>, <a class="code hl_define" href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68">GLFW_CURSOR_NORMAL</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_ae04dd25c8577e19fa8c97368561f6c68"><div class="ttname"><a href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68">GLFW_CURSOR_NORMAL</a></div><div class="ttdeci">#define GLFW_CURSOR_NORMAL</div><div class="ttdef"><b>Definition:</b> glfw3.h:1054</div></div>
+</div><!-- fragment --><p ><a class="anchor" id="GLFW_RAW_MOUSE_MOTION"></a></p>
 <h2><a class="anchor" id="raw_mouse_motion"></a>
 Raw mouse motion</h2>
-<p>When the cursor is disabled, raw (unscaled and unaccelerated) mouse motion can be enabled if available.</p>
-<p>Raw mouse motion is closer to the actual motion of the mouse across a surface. It is not affected by the scaling and acceleration applied to the motion of the desktop cursor. That processing is suitable for a cursor while raw motion is better for controlling for example a 3D camera. Because of this, raw mouse motion is only provided when the cursor is disabled.</p>
-<p>Call <a class="el" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a> to check if the current machine provides raw motion and set the <code>GLFW_RAW_MOUSE_MOTION</code> input mode to enable it. It is disabled by default.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a>())</div>
-<div class="line">    <a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb">GLFW_RAW_MOUSE_MOTION</a>, <a class="code" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
-</div><!-- fragment --><p>If supported, raw mouse motion can be enabled or disabled per-window and at any time but it will only be provided when the cursor is disabled.</p>
+<p >When the cursor is disabled, raw (unscaled and unaccelerated) mouse motion can be enabled if available.</p>
+<p >Raw mouse motion is closer to the actual motion of the mouse across a surface. It is not affected by the scaling and acceleration applied to the motion of the desktop cursor. That processing is suitable for a cursor while raw motion is better for controlling for example a 3D camera. Because of this, raw mouse motion is only provided when the cursor is disabled.</p>
+<p >Call <a class="el" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a> to check if the current machine provides raw motion and set the <code>GLFW_RAW_MOUSE_MOTION</code> input mode to enable it. It is disabled by default.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a>())</div>
+<div class="line">    <a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb">GLFW_RAW_MOUSE_MOTION</a>, <a class="code hl_define" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_aeeda1be76a44a1fc97c1282e06281fbb"><div class="ttname"><a href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb">GLFW_RAW_MOUSE_MOTION</a></div><div class="ttdeci">#define GLFW_RAW_MOUSE_MOTION</div><div class="ttdef"><b>Definition:</b> glfw3.h:1052</div></div>
+<div class="ttc" id="agroup__input_html_gae4ee0dbd0d256183e1ea4026d897e1c2"><div class="ttname"><a href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a></div><div class="ttdeci">int glfwRawMouseMotionSupported(void)</div><div class="ttdoc">Returns whether raw mouse motion is supported.</div></div>
+</div><!-- fragment --><p >If supported, raw mouse motion can be enabled or disabled per-window and at any time but it will only be provided when the cursor is disabled.</p>
 <h2><a class="anchor" id="cursor_object"></a>
 Cursor objects</h2>
-<p>GLFW supports creating both custom and system theme cursor images, encapsulated as <a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> objects. They are created with <a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a> or <a class="el" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a> and destroyed with <a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>, or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>, if any remain.</p>
+<p >GLFW supports creating both custom and system theme cursor images, encapsulated as <a class="el" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a> objects. They are created with <a class="el" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a> or <a class="el" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a> and destroyed with <a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>, or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>, if any remain.</p>
 <h3><a class="anchor" id="cursor_custom"></a>
 Custom cursor creation</h3>
-<p>A custom cursor is created with <a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a>, which returns a handle to the created cursor object. For example, this creates a 16x16 white square cursor with the hot-spot in the upper-left corner:</p>
+<p >A custom cursor is created with <a class="el" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a>, which returns a handle to the created cursor object. For example, this creates a 16x16 white square cursor with the hot-spot in the upper-left corner:</p>
 <div class="fragment"><div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> pixels[16 * 16 * 4];</div>
 <div class="line">memset(pixels, 0xff, <span class="keyword">sizeof</span>(pixels));</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="structGLFWimage.html">GLFWimage</a> image;</div>
-<div class="line">image.<a class="code" href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">width</a> = 16;</div>
-<div class="line">image.<a class="code" href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">height</a> = 16;</div>
-<div class="line">image.<a class="code" href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">pixels</a> = pixels;</div>
+<div class="line"><a class="code hl_struct" href="structGLFWimage.html">GLFWimage</a> image;</div>
+<div class="line">image.<a class="code hl_variable" href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">width</a> = 16;</div>
+<div class="line">image.<a class="code hl_variable" href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">height</a> = 16;</div>
+<div class="line">image.<a class="code hl_variable" href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">pixels</a> = pixels;</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor = <a class="code" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a>(&amp;image, 0, 0);</div>
-</div><!-- fragment --><p>If cursor creation fails, <code>NULL</code> will be returned, so it is necessary to check the return value.</p>
-<p>The image data is 32-bit, little-endian, non-premultiplied RGBA, i.e. eight bits per channel with the red channel first. The pixels are arranged canonically as sequential rows, starting from the top-left corner.</p>
+<div class="line"><a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor = <a class="code hl_function" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a>(&amp;image, 0, 0);</div>
+<div class="ttc" id="agroup__input_html_ga556f604f73af156c0db0e97c081373c3"><div class="ttname"><a href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)</div><div class="ttdoc">Creates a custom cursor.</div></div>
+<div class="ttc" id="agroup__input_html_ga89261ae18c75e863aaf2656ecdd238f4"><div class="ttname"><a href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a></div><div class="ttdeci">struct GLFWcursor GLFWcursor</div><div class="ttdoc">Opaque cursor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1197</div></div>
+<div class="ttc" id="astructGLFWimage_html"><div class="ttname"><a href="structGLFWimage.html">GLFWimage</a></div><div class="ttdoc">Image data.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1721</div></div>
+<div class="ttc" id="astructGLFWimage_html_a0b7d95368f0c80d5e5c9875057c7dbec"><div class="ttname"><a href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">GLFWimage::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1727</div></div>
+<div class="ttc" id="astructGLFWimage_html_a0c532a5c2bb715555279b7817daba0fb"><div class="ttname"><a href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">GLFWimage::pixels</a></div><div class="ttdeci">unsigned char * pixels</div><div class="ttdef"><b>Definition:</b> glfw3.h:1730</div></div>
+<div class="ttc" id="astructGLFWimage_html_af6a71cc999fe6d3aea31dd7e9687d835"><div class="ttname"><a href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">GLFWimage::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1724</div></div>
+</div><!-- fragment --><p >If cursor creation fails, <code>NULL</code> will be returned, so it is necessary to check the return value.</p>
+<p >The image data is 32-bit, little-endian, non-premultiplied RGBA, i.e. eight bits per channel with the red channel first. The pixels are arranged canonically as sequential rows, starting from the top-left corner.</p>
 <h3><a class="anchor" id="cursor_standard"></a>
 Standard cursor creation</h3>
-<p>A cursor with a <a class="el" href="group__shapes.html">standard shape</a> from the current system cursor theme can be can be created with <a class="el" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor = <a class="code" href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a>(<a class="code" href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962">GLFW_HRESIZE_CURSOR</a>);</div>
-</div><!-- fragment --><p>These cursor objects behave in the exact same way as those created with <a class="el" href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a> except that the system cursor theme provides the actual image.</p>
+<p >A cursor with a <a class="el" href="group__shapes.html">standard shape</a> from the current system cursor theme can be can be created with <a class="el" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_typedef" href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a>* cursor = <a class="code hl_function" href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a>(<a class="code hl_define" href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962">GLFW_HRESIZE_CURSOR</a>);</div>
+<div class="ttc" id="agroup__input_html_gaf2fb2eb2c9dd842d1cef8a34e3c6403e"><div class="ttname"><a href="group__input.html#gaf2fb2eb2c9dd842d1cef8a34e3c6403e">glfwCreateStandardCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateStandardCursor(int shape)</div><div class="ttdoc">Creates a cursor with a standard shape.</div></div>
+<div class="ttc" id="agroup__shapes_html_gabb3eb0109f11bb808fc34659177ca962"><div class="ttname"><a href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962">GLFW_HRESIZE_CURSOR</a></div><div class="ttdeci">#define GLFW_HRESIZE_CURSOR</div><div class="ttdoc">The horizontal resize arrow shape.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1098</div></div>
+</div><!-- fragment --><p >These cursor objects behave in the exact same way as those created with <a class="el" href="group__input.html#ga556f604f73af156c0db0e97c081373c3">glfwCreateCursor</a> except that the system cursor theme provides the actual image.</p>
 <h3><a class="anchor" id="cursor_destruction"></a>
 Cursor destruction</h3>
-<p>When a cursor is no longer needed, destroy it with <a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>(cursor);</div>
-</div><!-- fragment --><p>Cursor destruction always succeeds. If the cursor is current for any window, that window will revert to the default cursor. This does not affect the cursor mode. All remaining cursors are destroyed when <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> is called.</p>
+<p >When a cursor is no longer needed, destroy it with <a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a>(cursor);</div>
+<div class="ttc" id="agroup__input_html_ga81b952cd1764274d0db7fb3c5a79ba6a"><div class="ttname"><a href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a></div><div class="ttdeci">void glfwDestroyCursor(GLFWcursor *cursor)</div><div class="ttdoc">Destroys a cursor.</div></div>
+</div><!-- fragment --><p >Cursor destruction always succeeds. If the cursor is current for any window, that window will revert to the default cursor. This does not affect the cursor mode. All remaining cursors are destroyed when <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> is called.</p>
 <h3><a class="anchor" id="cursor_set"></a>
 Cursor setting</h3>
-<p>A cursor can be set as current for a window with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(window, cursor);</div>
-</div><!-- fragment --><p>Once set, the cursor image will be used as long as the system cursor is over the content area of the window and the <a class="el" href="input_guide.html#cursor_mode">cursor mode</a> is set to <code>GLFW_CURSOR_NORMAL</code>.</p>
-<p>A single cursor may be set for any number of windows.</p>
-<p>To revert to the default cursor, set the cursor of that window to <code>NULL</code>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(window, NULL);</div>
-</div><!-- fragment --><p>When a cursor is destroyed, any window that has it set will revert to the default cursor. This does not affect the cursor mode.</p>
+<p >A cursor can be set as current for a window with <a class="el" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(window, cursor);</div>
+<div class="ttc" id="agroup__input_html_gad3b4f38c8d5dae036bc8fa959e18343e"><div class="ttname"><a href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a></div><div class="ttdeci">void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)</div><div class="ttdoc">Sets the cursor for the window.</div></div>
+</div><!-- fragment --><p >Once set, the cursor image will be used as long as the system cursor is over the content area of the window and the <a class="el" href="input_guide.html#cursor_mode">cursor mode</a> is set to <code>GLFW_CURSOR_NORMAL</code>.</p>
+<p >A single cursor may be set for any number of windows.</p>
+<p >To revert to the default cursor, set the cursor of that window to <code>NULL</code>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a>(window, NULL);</div>
+</div><!-- fragment --><p >When a cursor is destroyed, any window that has it set will revert to the default cursor. This does not affect the cursor mode.</p>
 <h2><a class="anchor" id="cursor_enter"></a>
 Cursor enter/leave events</h2>
-<p>If you wish to be notified when the cursor enters or leaves the content area of a window, set a cursor enter/leave callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a>(window, cursor_enter_callback);</div>
-</div><!-- fragment --><p>The callback function receives the new classification of the cursor.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> cursor_enter_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> entered)</div>
+<p >If you wish to be notified when the cursor enters or leaves the content area of a window, set a cursor enter/leave callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a>(window, cursor_enter_callback);</div>
+<div class="ttc" id="agroup__input_html_gad27f8ad0142c038a281466c0966817d8"><div class="ttname"><a href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a></div><div class="ttdeci">GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)</div><div class="ttdoc">Sets the cursor enter/leave callback.</div></div>
+</div><!-- fragment --><p >The callback function receives the new classification of the cursor.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> cursor_enter_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> entered)</div>
 <div class="line">{</div>
 <div class="line">    <span class="keywordflow">if</span> (entered)</div>
 <div class="line">    {</div>
@@ -262,175 +302,208 @@ Cursor enter/leave events</h2>
 <div class="line">        <span class="comment">// The cursor left the content area of the window</span></div>
 <div class="line">    }</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>You can query whether the cursor is currently inside the content area of the window with the <a class="el" href="window_guide.html#GLFW_HOVERED_attrib">GLFW_HOVERED</a> window attribute.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>(window, <a class="code" href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">GLFW_HOVERED</a>))</div>
+</div><!-- fragment --><p >You can query whether the cursor is currently inside the content area of the window with the <a class="el" href="window_guide.html#GLFW_HOVERED_attrib">GLFW_HOVERED</a> window attribute.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>(window, <a class="code hl_define" href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">GLFW_HOVERED</a>))</div>
 <div class="line">{</div>
 <div class="line">    highlight_interface();</div>
 <div class="line">}</div>
+<div class="ttc" id="agroup__window_html_ga8665c71c6fa3d22425c6a0e8a3f89d8a"><div class="ttname"><a href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">GLFW_HOVERED</a></div><div class="ttdeci">#define GLFW_HOVERED</div><div class="ttdoc">Mouse cursor hover window attribute.</div><div class="ttdef"><b>Definition:</b> glfw3.h:855</div></div>
+<div class="ttc" id="agroup__window_html_gacccb29947ea4b16860ebef42c2cb9337"><div class="ttname"><a href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a></div><div class="ttdeci">int glfwGetWindowAttrib(GLFWwindow *window, int attrib)</div><div class="ttdoc">Returns an attribute of the specified window.</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="input_mouse_button"></a>
 Mouse button input</h2>
-<p>If you wish to be notified when a mouse button is pressed or released, set a mouse button callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a>(window, mouse_button_callback);</div>
-</div><!-- fragment --><p>The callback function receives the <a class="el" href="group__buttons.html">mouse button</a>, button action and <a class="el" href="group__mods.html">modifier bits</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> mouse_button_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> button, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods)</div>
+<p >If you wish to be notified when a mouse button is pressed or released, set a mouse button callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a>(window, mouse_button_callback);</div>
+<div class="ttc" id="agroup__input_html_ga6ab84420974d812bee700e45284a723c"><div class="ttname"><a href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a></div><div class="ttdeci">GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)</div><div class="ttdoc">Sets the mouse button callback.</div></div>
+</div><!-- fragment --><p >The callback function receives the <a class="el" href="group__buttons.html">mouse button</a>, button action and <a class="el" href="group__mods.html">modifier bits</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> mouse_button_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> button, <span class="keywordtype">int</span> action, <span class="keywordtype">int</span> mods)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (button == <a class="code" href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">GLFW_MOUSE_BUTTON_RIGHT</a> &amp;&amp; action == <a class="code" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
+<div class="line">    <span class="keywordflow">if</span> (button == <a class="code hl_define" href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">GLFW_MOUSE_BUTTON_RIGHT</a> &amp;&amp; action == <a class="code hl_define" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
 <div class="line">        popup_menu();</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The action is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
-<p>Mouse button states for <a class="el" href="group__buttons.html">named buttons</a> are also saved in per-window state arrays that can be polled with <a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> state = <a class="code" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>(window, <a class="code" href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">GLFW_MOUSE_BUTTON_LEFT</a>);</div>
-<div class="line"><span class="keywordflow">if</span> (state == <a class="code" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
+<div class="ttc" id="agroup__buttons_html_ga3e2f2cf3c4942df73cc094247d275e74"><div class="ttname"><a href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">GLFW_MOUSE_BUTTON_RIGHT</a></div><div class="ttdeci">#define GLFW_MOUSE_BUTTON_RIGHT</div><div class="ttdef"><b>Definition:</b> glfw3.h:581</div></div>
+</div><!-- fragment --><p >The action is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
+<p >Mouse button states for <a class="el" href="group__buttons.html">named buttons</a> are also saved in per-window state arrays that can be polled with <a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> state = <a class="code hl_function" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>(window, <a class="code hl_define" href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">GLFW_MOUSE_BUTTON_LEFT</a>);</div>
+<div class="line"><span class="keywordflow">if</span> (state == <a class="code hl_define" href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a>)</div>
 <div class="line">{</div>
 <div class="line">    upgrade_cow();</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
-<p>This function only returns cached mouse button event state. It does not poll the system for the current state of the mouse button.</p>
-<p><a class="anchor" id="GLFW_STICKY_MOUSE_BUTTONS"></a>Whenever you poll state, you risk missing the state change you are looking for. If a pressed mouse button is released again before you poll its state, you will have missed the button press. The recommended solution for this is to use a mouse button callback, but there is also the <code>GLFW_STICKY_MOUSE_BUTTONS</code> input mode.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code" href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1">GLFW_STICKY_MOUSE_BUTTONS</a>, <a class="code" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
-</div><!-- fragment --><p>When sticky mouse buttons mode is enabled, the pollable state of a mouse button will remain <code>GLFW_PRESS</code> until the state of that button is polled with <a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>. Once it has been polled, if a mouse button release event had been processed in the meantime, the state will reset to <code>GLFW_RELEASE</code>, otherwise it will remain <code>GLFW_PRESS</code>.</p>
-<p>The <code>GLFW_MOUSE_BUTTON_LAST</code> constant holds the highest value of any <a class="el" href="group__buttons.html">named button</a>.</p>
+<div class="ttc" id="agroup__buttons_html_gaf37100431dcd5082d48f95ee8bc8cd56"><div class="ttname"><a href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">GLFW_MOUSE_BUTTON_LEFT</a></div><div class="ttdeci">#define GLFW_MOUSE_BUTTON_LEFT</div><div class="ttdef"><b>Definition:</b> glfw3.h:580</div></div>
+<div class="ttc" id="agroup__input_html_gac1473feacb5996c01a7a5a33b5066704"><div class="ttname"><a href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a></div><div class="ttdeci">int glfwGetMouseButton(GLFWwindow *window, int button)</div><div class="ttdoc">Returns the last reported state of a mouse button for the specified window.</div></div>
+</div><!-- fragment --><p >The returned state is one of <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
+<p >This function only returns cached mouse button event state. It does not poll the system for the current state of the mouse button.</p>
+<p ><a class="anchor" id="GLFW_STICKY_MOUSE_BUTTONS"></a>Whenever you poll state, you risk missing the state change you are looking for. If a pressed mouse button is released again before you poll its state, you will have missed the button press. The recommended solution for this is to use a mouse button callback, but there is also the <code>GLFW_STICKY_MOUSE_BUTTONS</code> input mode.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>(window, <a class="code hl_define" href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1">GLFW_STICKY_MOUSE_BUTTONS</a>, <a class="code hl_define" href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a>);</div>
+<div class="ttc" id="aglfw3_8h_html_a4d7ce8ce71030c3b04e2b78145bc59d1"><div class="ttname"><a href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1">GLFW_STICKY_MOUSE_BUTTONS</a></div><div class="ttdeci">#define GLFW_STICKY_MOUSE_BUTTONS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1050</div></div>
+</div><!-- fragment --><p >When sticky mouse buttons mode is enabled, the pollable state of a mouse button will remain <code>GLFW_PRESS</code> until the state of that button is polled with <a class="el" href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a>. Once it has been polled, if a mouse button release event had been processed in the meantime, the state will reset to <code>GLFW_RELEASE</code>, otherwise it will remain <code>GLFW_PRESS</code>.</p>
+<p >The <code>GLFW_MOUSE_BUTTON_LAST</code> constant holds the highest value of any <a class="el" href="group__buttons.html">named button</a>.</p>
 <h2><a class="anchor" id="scrolling"></a>
 Scroll input</h2>
-<p>If you wish to be notified when the user scrolls, whether with a mouse wheel or touchpad gesture, set a scroll callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>(window, scroll_callback);</div>
-</div><!-- fragment --><p>The callback function receives two-dimensional scroll offsets.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> scroll_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xoffset, <span class="keywordtype">double</span> yoffset)</div>
+<p >If you wish to be notified when the user scrolls, whether with a mouse wheel or touchpad gesture, set a scroll callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>(window, scroll_callback);</div>
+<div class="ttc" id="agroup__input_html_ga571e45a030ae4061f746ed56cb76aede"><div class="ttname"><a href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a></div><div class="ttdeci">GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)</div><div class="ttdoc">Sets the scroll callback.</div></div>
+</div><!-- fragment --><p >The callback function receives two-dimensional scroll offsets.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> scroll_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xoffset, <span class="keywordtype">double</span> yoffset)</div>
 <div class="line">{</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>A normal mouse wheel, being vertical, provides offsets along the Y-axis.</p>
+</div><!-- fragment --><p >A normal mouse wheel, being vertical, provides offsets along the Y-axis.</p>
 <h1><a class="anchor" id="joystick"></a>
 Joystick input</h1>
-<p>The joystick functions expose connected joysticks and controllers, with both referred to as joysticks. It supports up to sixteen joysticks, ranging from <code>GLFW_JOYSTICK_1</code>, <code>GLFW_JOYSTICK_2</code> up to and including <code>GLFW_JOYSTICK_16</code> or <code>GLFW_JOYSTICK_LAST</code>. You can test whether a <a class="el" href="group__joysticks.html">joystick</a> is present with <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> present = <a class="code" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>(<a class="code" href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a>);</div>
-</div><!-- fragment --><p>Each joystick has zero or more axes, zero or more buttons, zero or more hats, a human-readable name, a user pointer and an SDL compatible GUID.</p>
-<p>When GLFW is initialized, detected joysticks are added to the beginning of the array. Once a joystick is detected, it keeps its assigned ID until it is disconnected or the library is terminated, so as joysticks are connected and disconnected, there may appear gaps in the IDs.</p>
-<p>Joystick axis, button and hat state is updated when polled and does not require a window to be created or events to be processed. However, if you want joystick connection and disconnection events reliably delivered to the <a class="el" href="input_guide.html#joystick_event">joystick callback</a> then you must <a class="el" href="input_guide.html#events">process events</a>.</p>
-<p>To see all the properties of all connected joysticks in real-time, run the <code>joysticks</code> test program.</p>
+<p >The joystick functions expose connected joysticks and controllers, with both referred to as joysticks. It supports up to sixteen joysticks, ranging from <code>GLFW_JOYSTICK_1</code>, <code>GLFW_JOYSTICK_2</code> up to and including <code>GLFW_JOYSTICK_16</code> or <code>GLFW_JOYSTICK_LAST</code>. You can test whether a <a class="el" href="group__joysticks.html">joystick</a> is present with <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> present = <a class="code hl_function" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>(<a class="code hl_define" href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a>);</div>
+<div class="ttc" id="agroup__input_html_gaed0966cee139d815317f9ffcba64c9f1"><div class="ttname"><a href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a></div><div class="ttdeci">int glfwJoystickPresent(int jid)</div><div class="ttdoc">Returns whether the specified joystick is present.</div></div>
+<div class="ttc" id="agroup__joysticks_html_ga34a0443d059e9f22272cd4669073f73d"><div class="ttname"><a href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a></div><div class="ttdeci">#define GLFW_JOYSTICK_1</div><div class="ttdef"><b>Definition:</b> glfw3.h:592</div></div>
+</div><!-- fragment --><p >Each joystick has zero or more axes, zero or more buttons, zero or more hats, a human-readable name, a user pointer and an SDL compatible GUID.</p>
+<p >When GLFW is initialized, detected joysticks are added to the beginning of the array. Once a joystick is detected, it keeps its assigned ID until it is disconnected or the library is terminated, so as joysticks are connected and disconnected, there may appear gaps in the IDs.</p>
+<p >Joystick axis, button and hat state is updated when polled and does not require a window to be created or events to be processed. However, if you want joystick connection and disconnection events reliably delivered to the <a class="el" href="input_guide.html#joystick_event">joystick callback</a> then you must <a class="el" href="input_guide.html#events">process events</a>.</p>
+<p >To see all the properties of all connected joysticks in real-time, run the <code>joysticks</code> test program.</p>
 <h2><a class="anchor" id="joystick_axis"></a>
 Joystick axis states</h2>
-<p>The positions of all axes of a joystick are returned by <a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a>. See the reference documentation for the lifetime of the returned array.</p>
+<p >The positions of all axes of a joystick are returned by <a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a>. See the reference documentation for the lifetime of the returned array.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> count;</div>
-<div class="line"><span class="keyword">const</span> <span class="keywordtype">float</span>* axes = <a class="code" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a>(<a class="code" href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">GLFW_JOYSTICK_5</a>, &amp;count);</div>
-</div><!-- fragment --><p>Each element in the returned array is a value between -1.0 and 1.0.</p>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">float</span>* axes = <a class="code hl_function" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a>(<a class="code hl_define" href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">GLFW_JOYSTICK_5</a>, &amp;count);</div>
+<div class="ttc" id="agroup__input_html_gaeb1c0191d3140a233a682987c61eb408"><div class="ttname"><a href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a></div><div class="ttdeci">const float * glfwGetJoystickAxes(int jid, int *count)</div><div class="ttdoc">Returns the values of all axes of the specified joystick.</div></div>
+<div class="ttc" id="agroup__joysticks_html_gae43281bc66d3fa5089fb50c3e7a28695"><div class="ttname"><a href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">GLFW_JOYSTICK_5</a></div><div class="ttdeci">#define GLFW_JOYSTICK_5</div><div class="ttdef"><b>Definition:</b> glfw3.h:596</div></div>
+</div><!-- fragment --><p >Each element in the returned array is a value between -1.0 and 1.0.</p>
 <h2><a class="anchor" id="joystick_button"></a>
 Joystick button states</h2>
-<p>The states of all buttons of a joystick are returned by <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a>. See the reference documentation for the lifetime of the returned array.</p>
+<p >The states of all buttons of a joystick are returned by <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a>. See the reference documentation for the lifetime of the returned array.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> count;</div>
-<div class="line"><span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buttons = <a class="code" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a>(<a class="code" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a>, &amp;count);</div>
-</div><!-- fragment --><p>Each element in the returned array is either <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
-<p>For backward compatibility with earlier versions that did not have <a class="el" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>, the button array by default also includes all hats. See the reference documentation for <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a> for details.</p>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* buttons = <a class="code hl_function" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a>(<a class="code hl_define" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a>, &amp;count);</div>
+<div class="ttc" id="agroup__input_html_ga5ffe34739d3dc97efe432ed2d81d9938"><div class="ttname"><a href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickButtons(int jid, int *count)</div><div class="ttdoc">Returns the state of all buttons of the specified joystick.</div></div>
+<div class="ttc" id="agroup__joysticks_html_gae6f3eedfeb42424c2f5e3161efb0b654"><div class="ttname"><a href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a></div><div class="ttdeci">#define GLFW_JOYSTICK_3</div><div class="ttdef"><b>Definition:</b> glfw3.h:594</div></div>
+</div><!-- fragment --><p >Each element in the returned array is either <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
+<p >For backward compatibility with earlier versions that did not have <a class="el" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>, the button array by default also includes all hats. See the reference documentation for <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a> for details.</p>
 <h2><a class="anchor" id="joystick_hat"></a>
 Joystick hat states</h2>
-<p>The states of all hats are returned by <a class="el" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>. See the reference documentation for the lifetime of the returned array.</p>
+<p >The states of all hats are returned by <a class="el" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>. See the reference documentation for the lifetime of the returned array.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> count;</div>
-<div class="line"><span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* hats = <a class="code" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>(<a class="code" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a>, &amp;count);</div>
-</div><!-- fragment --><p>Each element in the returned array is one of the following:</p>
+<div class="line"><span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span>* hats = <a class="code hl_function" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>(<a class="code hl_define" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a>, &amp;count);</div>
+<div class="ttc" id="agroup__input_html_ga06e660841b3e79c54da4f54a932c5a2c"><div class="ttname"><a href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickHats(int jid, int *count)</div><div class="ttdoc">Returns the state of all hats of the specified joystick.</div></div>
+<div class="ttc" id="agroup__joysticks_html_ga20a9f4f3aaefed9ea5e66072fc588b87"><div class="ttname"><a href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a></div><div class="ttdeci">#define GLFW_JOYSTICK_7</div><div class="ttdef"><b>Definition:</b> glfw3.h:598</div></div>
+</div><!-- fragment --><p >Each element in the returned array is one of the following:</p>
 <table class="markdownTable">
 <tr class="markdownTableHead">
-<th class="markdownTableHeadNone">Name  </th><th class="markdownTableHeadNone">Value   </th></tr>
+<th class="markdownTableHeadNone">Name   </th><th class="markdownTableHeadNone">Value    </th></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_CENTERED</code>  </td><td class="markdownTableBodyNone">0   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_CENTERED</code>   </td><td class="markdownTableBodyNone">0    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_UP</code>  </td><td class="markdownTableBodyNone">1   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_UP</code>   </td><td class="markdownTableBodyNone">1    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code>  </td><td class="markdownTableBodyNone">2   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code>   </td><td class="markdownTableBodyNone">2    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_DOWN</code>  </td><td class="markdownTableBodyNone">4   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_DOWN</code>   </td><td class="markdownTableBodyNone">4    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code>  </td><td class="markdownTableBodyNone">8   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code>   </td><td class="markdownTableBodyNone">8    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT_UP</code>  </td><td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code> | <code>GLFW_HAT_UP</code>   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT_UP</code>   </td><td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code> | <code>GLFW_HAT_UP</code>    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT_DOWN</code>  </td><td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code> | <code>GLFW_HAT_DOWN</code>   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT_DOWN</code>   </td><td class="markdownTableBodyNone"><code>GLFW_HAT_RIGHT</code> | <code>GLFW_HAT_DOWN</code>    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT_UP</code>  </td><td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code> | <code>GLFW_HAT_UP</code>   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT_UP</code>   </td><td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code> | <code>GLFW_HAT_UP</code>    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT_DOWN</code>  </td><td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code> | <code>GLFW_HAT_DOWN</code>   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT_DOWN</code>   </td><td class="markdownTableBodyNone"><code>GLFW_HAT_LEFT</code> | <code>GLFW_HAT_DOWN</code>   </td></tr>
 </table>
-<p>The diagonal directions are bitwise combinations of the primary (up, right, down and left) directions and you can test for these individually by ANDing it with the corresponding direction.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (hats[2] &amp; <a class="code" href="group__hat__state.html#ga252586e3bbde75f4b0e07ad3124867f5">GLFW_HAT_RIGHT</a>)</div>
+<p >The diagonal directions are bitwise combinations of the primary (up, right, down and left) directions and you can test for these individually by ANDing it with the corresponding direction.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (hats[2] &amp; <a class="code hl_define" href="group__hat__state.html#ga252586e3bbde75f4b0e07ad3124867f5">GLFW_HAT_RIGHT</a>)</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// State of hat 2 could be right-up, right or right-down</span></div>
 <div class="line">}</div>
-</div><!-- fragment --><p>For backward compatibility with earlier versions that did not have <a class="el" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>, all hats are by default also included in the button array. See the reference documentation for <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a> for details.</p>
+<div class="ttc" id="agroup__hat__state_html_ga252586e3bbde75f4b0e07ad3124867f5"><div class="ttname"><a href="group__hat__state.html#ga252586e3bbde75f4b0e07ad3124867f5">GLFW_HAT_RIGHT</a></div><div class="ttdeci">#define GLFW_HAT_RIGHT</div><div class="ttdef"><b>Definition:</b> glfw3.h:357</div></div>
+</div><!-- fragment --><p >For backward compatibility with earlier versions that did not have <a class="el" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>, all hats are by default also included in the button array. See the reference documentation for <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a> for details.</p>
 <h2><a class="anchor" id="joystick_name"></a>
 Joystick name</h2>
-<p>The human-readable, UTF-8 encoded name of a joystick is returned by <a class="el" href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a>. See the reference documentation for the lifetime of the returned string.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code" href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a>(<a class="code" href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">GLFW_JOYSTICK_4</a>);</div>
-</div><!-- fragment --><p>Joystick names are not guaranteed to be unique. Two joysticks of the same model and make may have the same name. Only the <a class="el" href="group__joysticks.html">joystick token</a> is guaranteed to be unique, and only until that joystick is disconnected.</p>
+<p >The human-readable, UTF-8 encoded name of a joystick is returned by <a class="el" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a>. See the reference documentation for the lifetime of the returned string.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code hl_function" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a>(<a class="code hl_define" href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">GLFW_JOYSTICK_4</a>);</div>
+<div class="ttc" id="agroup__input_html_gac6a8e769e18e0bcfa9097793fc2c3978"><div class="ttname"><a href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a></div><div class="ttdeci">const char * glfwGetJoystickName(int jid)</div><div class="ttdoc">Returns the name of the specified joystick.</div></div>
+<div class="ttc" id="agroup__joysticks_html_ga97ddbcad02b7f48d74fad4ddb08fff59"><div class="ttname"><a href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">GLFW_JOYSTICK_4</a></div><div class="ttdeci">#define GLFW_JOYSTICK_4</div><div class="ttdef"><b>Definition:</b> glfw3.h:595</div></div>
+</div><!-- fragment --><p >Joystick names are not guaranteed to be unique. Two joysticks of the same model and make may have the same name. Only the <a class="el" href="group__joysticks.html">joystick ID</a> is guaranteed to be unique, and only until that joystick is disconnected.</p>
 <h2><a class="anchor" id="joystick_userptr"></a>
 Joystick user pointer</h2>
-<p>Each joystick has a user pointer that can be set with <a class="el" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a> and queried with <a class="el" href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">glfwGetJoystickUserPointer</a>. This can be used for any purpose you need and will not be modified by GLFW. The value will be kept until the joystick is disconnected or until the library is terminated.</p>
-<p>The initial value of the pointer is <code>NULL</code>.</p>
+<p >Each joystick has a user pointer that can be set with <a class="el" href="group__input.html#ga6b2f72d64d636b48a727b437cbb7489e">glfwSetJoystickUserPointer</a> and queried with <a class="el" href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">glfwGetJoystickUserPointer</a>. This can be used for any purpose you need and will not be modified by GLFW. The value will be kept until the joystick is disconnected or until the library is terminated.</p>
+<p >The initial value of the pointer is <code>NULL</code>.</p>
 <h2><a class="anchor" id="joystick_event"></a>
 Joystick configuration changes</h2>
-<p>If you wish to be notified when a joystick is connected or disconnected, set a joystick callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a>(joystick_callback);</div>
-</div><!-- fragment --><p>The callback function receives the ID of the joystick that has been connected and disconnected and the event that occurred.</p>
+<p >If you wish to be notified when a joystick is connected or disconnected, set a joystick callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a>(joystick_callback);</div>
+<div class="ttc" id="agroup__input_html_ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><div class="ttname"><a href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a></div><div class="ttdeci">GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)</div><div class="ttdoc">Sets the joystick configuration callback.</div></div>
+</div><!-- fragment --><p >The callback function receives the ID of the joystick that has been connected and disconnected and the event that occurred.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">void</span> joystick_callback(<span class="keywordtype">int</span> jid, <span class="keywordtype">int</span> event)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (event == <a class="code" href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a>)</div>
+<div class="line">    <span class="keywordflow">if</span> (event == <a class="code hl_define" href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a>)</div>
 <div class="line">    {</div>
 <div class="line">        <span class="comment">// The joystick was connected</span></div>
 <div class="line">    }</div>
-<div class="line">    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (event == <a class="code" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a>)</div>
+<div class="line">    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (event == <a class="code hl_define" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a>)</div>
 <div class="line">    {</div>
 <div class="line">        <span class="comment">// The joystick was disconnected</span></div>
 <div class="line">    }</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>For joystick connection and disconnection events to be delivered on all platforms, you need to call one of the <a class="el" href="input_guide.html#events">event processing</a> functions. Joystick disconnection may also be detected and the callback called by joystick functions. The function will then return whatever it returns for a disconnected joystick.</p>
-<p>Only <a class="el" href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a> and <a class="el" href="group__input.html#ga06290acb7ed23895bf26b8e981827ebd">glfwGetJoystickUserPointer</a> will return useful values for a disconnected joystick and only before the monitor callback returns.</p>
+<div class="ttc" id="aglfw3_8h_html_aab64b25921ef21d89252d6f0a71bfc32"><div class="ttname"><a href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a></div><div class="ttdeci">#define GLFW_DISCONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1107</div></div>
+<div class="ttc" id="aglfw3_8h_html_abe11513fd1ffbee5bb9b173f06028b9e"><div class="ttname"><a href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a></div><div class="ttdeci">#define GLFW_CONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1106</div></div>
+</div><!-- fragment --><p >For joystick connection and disconnection events to be delivered on all platforms, you need to call one of the <a class="el" href="input_guide.html#events">event processing</a> functions. Joystick disconnection may also be detected and the callback called by joystick functions. The function will then return whatever it returns for a disconnected joystick.</p>
+<p >Only <a class="el" href="group__input.html#gac6a8e769e18e0bcfa9097793fc2c3978">glfwGetJoystickName</a> and <a class="el" href="group__input.html#ga18cefd7265d1fa04f3fd38a6746db5f3">glfwGetJoystickUserPointer</a> will return useful values for a disconnected joystick and only before the monitor callback returns.</p>
 <h2><a class="anchor" id="gamepad"></a>
 Gamepad input</h2>
-<p>The joystick functions provide unlabeled axes, buttons and hats, with no indication of where they are located on the device. Their order may also vary between platforms even with the same device.</p>
-<p>To solve this problem the SDL community crowdsourced the <a href="https://github.com/gabomdq/SDL_GameControllerDB">SDL_GameControllerDB</a> project, a database of mappings from many different devices to an Xbox-like gamepad.</p>
-<p>GLFW supports this mapping format and contains a copy of the mappings available at the time of release. See <a class="el" href="input_guide.html#gamepad_mapping">Gamepad mappings</a> for how to update this at runtime. Mappings will be assigned to joysticks automatically any time a joystick is connected or the mappings are updated.</p>
-<p>You can check whether a joystick is both present and has a gamepad mapping with <a class="el" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>(<a class="code" href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">GLFW_JOYSTICK_2</a>))</div>
+<p >The joystick functions provide unlabeled axes, buttons and hats, with no indication of where they are located on the device. Their order may also vary between platforms even with the same device.</p>
+<p >To solve this problem the SDL community crowdsourced the <a href="https://github.com/gabomdq/SDL_GameControllerDB">SDL_GameControllerDB</a> project, a database of mappings from many different devices to an Xbox-like gamepad.</p>
+<p >GLFW supports this mapping format and contains a copy of the mappings available at the time of release. See <a class="el" href="input_guide.html#gamepad_mapping">Gamepad mappings</a> for how to update this at runtime. Mappings will be assigned to joysticks automatically any time a joystick is connected or the mappings are updated.</p>
+<p >You can check whether a joystick is both present and has a gamepad mapping with <a class="el" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a>(<a class="code hl_define" href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">GLFW_JOYSTICK_2</a>))</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Use as gamepad</span></div>
 <div class="line">}</div>
-</div><!-- fragment --><p>If you are only interested in gamepad input you can use this function instead of <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>.</p>
-<p>You can query the human-readable name provided by the gamepad mapping with <a class="el" href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a>. This may or may not be the same as the <a class="el" href="input_guide.html#joystick_name">joystick name</a>.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code" href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a>(<a class="code" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a>);</div>
-</div><!-- fragment --><p>To retrieve the gamepad state of a joystick, call <a class="el" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="structGLFWgamepadstate.html">GLFWgamepadstate</a> state;</div>
+<div class="ttc" id="agroup__input_html_gad0f676860f329d80f7e47e9f06a96f00"><div class="ttname"><a href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a></div><div class="ttdeci">int glfwJoystickIsGamepad(int jid)</div><div class="ttdoc">Returns whether the specified joystick has a gamepad mapping.</div></div>
+<div class="ttc" id="agroup__joysticks_html_ga6eab65ec88e65e0850ef8413504cb50c"><div class="ttname"><a href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">GLFW_JOYSTICK_2</a></div><div class="ttdeci">#define GLFW_JOYSTICK_2</div><div class="ttdef"><b>Definition:</b> glfw3.h:593</div></div>
+</div><!-- fragment --><p >If you are only interested in gamepad input you can use this function instead of <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>.</p>
+<p >You can query the human-readable name provided by the gamepad mapping with <a class="el" href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a>. This may or may not be the same as the <a class="el" href="input_guide.html#joystick_name">joystick name</a>.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code hl_function" href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a>(<a class="code hl_define" href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a>);</div>
+<div class="ttc" id="agroup__input_html_ga8aea73a1a25cc6c0486a617019f56728"><div class="ttname"><a href="group__input.html#ga8aea73a1a25cc6c0486a617019f56728">glfwGetGamepadName</a></div><div class="ttdeci">const char * glfwGetGamepadName(int jid)</div><div class="ttdoc">Returns the human-readable gamepad name for the specified joystick.</div></div>
+</div><!-- fragment --><p >To retrieve the gamepad state of a joystick, call <a class="el" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_struct" href="structGLFWgamepadstate.html">GLFWgamepadstate</a> state;</div>
 <div class="line"> </div>
-<div class="line"><span class="keywordflow">if</span> (<a class="code" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>(<a class="code" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a>, &amp;state))</div>
+<div class="line"><span class="keywordflow">if</span> (<a class="code hl_function" href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a>(<a class="code hl_define" href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a>, &amp;state))</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (state.<a class="code" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">buttons</a>[<a class="code" href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">GLFW_GAMEPAD_BUTTON_A</a>])</div>
+<div class="line">    <span class="keywordflow">if</span> (state.<a class="code hl_variable" href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">buttons</a>[<a class="code hl_define" href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">GLFW_GAMEPAD_BUTTON_A</a>])</div>
 <div class="line">    {</div>
 <div class="line">        input_jump();</div>
 <div class="line">    }</div>
 <div class="line"> </div>
-<div class="line">    input_speed(state.<a class="code" href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">axes</a>[<a class="code" href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</a>]);</div>
+<div class="line">    input_speed(state.<a class="code hl_variable" href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">axes</a>[<a class="code hl_define" href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</a>]);</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The <a class="el" href="structGLFWgamepadstate.html">GLFWgamepadstate</a> struct has two arrays; one for button states and one for axis states. The values for each button and axis are the same as for the <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a> and <a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a> functions, i.e. <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code> for buttons and -1.0 to 1.0 inclusive for axes.</p>
-<p>The sizes of the arrays and the positions within each array are fixed.</p>
-<p>The <a class="el" href="group__gamepad__buttons.html">button indices</a> are <code>GLFW_GAMEPAD_BUTTON_A</code>, <code>GLFW_GAMEPAD_BUTTON_B</code>, <code>GLFW_GAMEPAD_BUTTON_X</code>, <code>GLFW_GAMEPAD_BUTTON_Y</code>, <code>GLFW_GAMEPAD_BUTTON_LEFT_BUMPER</code>, <code>GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER</code>, <code>GLFW_GAMEPAD_BUTTON_BACK</code>, <code>GLFW_GAMEPAD_BUTTON_START</code>, <code>GLFW_GAMEPAD_BUTTON_GUIDE</code>, <code>GLFW_GAMEPAD_BUTTON_LEFT_THUMB</code>, <code>GLFW_GAMEPAD_BUTTON_RIGHT_THUMB</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_UP</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_RIGHT</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_DOWN</code> and <code>GLFW_GAMEPAD_BUTTON_DPAD_LEFT</code>.</p>
-<p>For those who prefer, there are also the <code>GLFW_GAMEPAD_BUTTON_CROSS</code>, <code>GLFW_GAMEPAD_BUTTON_CIRCLE</code>, <code>GLFW_GAMEPAD_BUTTON_SQUARE</code> and <code>GLFW_GAMEPAD_BUTTON_TRIANGLE</code> aliases for the A, B, X and Y button indices.</p>
-<p>The <a class="el" href="group__gamepad__axes.html">axis indices</a> are <code>GLFW_GAMEPAD_AXIS_LEFT_X</code>, <code>GLFW_GAMEPAD_AXIS_LEFT_Y</code>, <code>GLFW_GAMEPAD_AXIS_RIGHT_X</code>, <code>GLFW_GAMEPAD_AXIS_RIGHT_Y</code>, <code>GLFW_GAMEPAD_AXIS_LEFT_TRIGGER</code> and <code>GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</code>.</p>
-<p>The <code>GLFW_GAMEPAD_BUTTON_LAST</code> and <code>GLFW_GAMEPAD_AXIS_LAST</code> constants equal the largest available index for each array.</p>
+<div class="ttc" id="agroup__gamepad__axes_html_ga121a7d5d20589a423cd1634dd6ee6eab"><div class="ttname"><a href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</a></div><div class="ttdeci">#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</div><div class="ttdef"><b>Definition:</b> glfw3.h:653</div></div>
+<div class="ttc" id="agroup__gamepad__buttons_html_gae055a12fbf4b48b5954c8e1cd129b810"><div class="ttname"><a href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">GLFW_GAMEPAD_BUTTON_A</a></div><div class="ttdeci">#define GLFW_GAMEPAD_BUTTON_A</div><div class="ttdef"><b>Definition:</b> glfw3.h:618</div></div>
+<div class="ttc" id="agroup__input_html_gadccddea8bce6113fa459de379ddaf051"><div class="ttname"><a href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a></div><div class="ttdeci">int glfwGetGamepadState(int jid, GLFWgamepadstate *state)</div><div class="ttdoc">Retrieves the state of the specified joystick remapped as a gamepad.</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html"><div class="ttname"><a href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div><div class="ttdoc">Gamepad input state.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1745</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html_a27e9896b51c65df15fba2c7139bfdb9a"><div class="ttname"><a href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">GLFWgamepadstate::buttons</a></div><div class="ttdeci">unsigned char buttons[15]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1749</div></div>
+<div class="ttc" id="astructGLFWgamepadstate_html_a8b2c8939b1d31458de5359998375c189"><div class="ttname"><a href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">GLFWgamepadstate::axes</a></div><div class="ttdeci">float axes[6]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1753</div></div>
+</div><!-- fragment --><p >The <a class="el" href="structGLFWgamepadstate.html">GLFWgamepadstate</a> struct has two arrays; one for button states and one for axis states. The values for each button and axis are the same as for the <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a> and <a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a> functions, i.e. <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code> for buttons and -1.0 to 1.0 inclusive for axes.</p>
+<p >The sizes of the arrays and the positions within each array are fixed.</p>
+<p >The <a class="el" href="group__gamepad__buttons.html">button indices</a> are <code>GLFW_GAMEPAD_BUTTON_A</code>, <code>GLFW_GAMEPAD_BUTTON_B</code>, <code>GLFW_GAMEPAD_BUTTON_X</code>, <code>GLFW_GAMEPAD_BUTTON_Y</code>, <code>GLFW_GAMEPAD_BUTTON_LEFT_BUMPER</code>, <code>GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER</code>, <code>GLFW_GAMEPAD_BUTTON_BACK</code>, <code>GLFW_GAMEPAD_BUTTON_START</code>, <code>GLFW_GAMEPAD_BUTTON_GUIDE</code>, <code>GLFW_GAMEPAD_BUTTON_LEFT_THUMB</code>, <code>GLFW_GAMEPAD_BUTTON_RIGHT_THUMB</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_UP</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_RIGHT</code>, <code>GLFW_GAMEPAD_BUTTON_DPAD_DOWN</code> and <code>GLFW_GAMEPAD_BUTTON_DPAD_LEFT</code>.</p>
+<p >For those who prefer, there are also the <code>GLFW_GAMEPAD_BUTTON_CROSS</code>, <code>GLFW_GAMEPAD_BUTTON_CIRCLE</code>, <code>GLFW_GAMEPAD_BUTTON_SQUARE</code> and <code>GLFW_GAMEPAD_BUTTON_TRIANGLE</code> aliases for the A, B, X and Y button indices.</p>
+<p >The <a class="el" href="group__gamepad__axes.html">axis indices</a> are <code>GLFW_GAMEPAD_AXIS_LEFT_X</code>, <code>GLFW_GAMEPAD_AXIS_LEFT_Y</code>, <code>GLFW_GAMEPAD_AXIS_RIGHT_X</code>, <code>GLFW_GAMEPAD_AXIS_RIGHT_Y</code>, <code>GLFW_GAMEPAD_AXIS_LEFT_TRIGGER</code> and <code>GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</code>.</p>
+<p >The <code>GLFW_GAMEPAD_BUTTON_LAST</code> and <code>GLFW_GAMEPAD_AXIS_LAST</code> constants equal the largest available index for each array.</p>
 <h2><a class="anchor" id="gamepad_mapping"></a>
 Gamepad mappings</h2>
-<p>GLFW contains a copy of the mappings available in <a href="https://github.com/gabomdq/SDL_GameControllerDB">SDL_GameControllerDB</a> at the time of release. Newer ones can be added at runtime with <a class="el" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>.</p>
+<p >GLFW contains a copy of the mappings available in <a href="https://github.com/gabomdq/SDL_GameControllerDB">SDL_GameControllerDB</a> at the time of release. Newer ones can be added at runtime with <a class="el" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>.</p>
 <div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* mappings = load_file_contents(<span class="stringliteral">&quot;game/data/gamecontrollerdb.txt&quot;</span>);</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>(mappings);</div>
-</div><!-- fragment --><p>This function supports everything from single lines up to and including the unmodified contents of the whole <code>gamecontrollerdb.txt</code> file.</p>
-<p>Below is a description of the mapping format. Please keep in mind that <b>this description is not authoritative</b>. The format is defined by the SDL and SDL_GameControllerDB projects and their documentation and code takes precedence.</p>
-<p>Each mapping is a single line of comma-separated values describing the GUID, name and layout of the gamepad. Lines that do not begin with a hexadecimal digit are ignored.</p>
-<p>The first value is always the gamepad GUID, a 32 character long hexadecimal string that typically identifies its make, model, revision and the type of connection to the computer. When this information is not available, the GUID is generated using the gamepad name. GLFW uses the SDL 2.0.5+ GUID format but can convert from the older formats.</p>
-<p>The second value is always the human-readable name of the gamepad.</p>
-<p>All subsequent values are in the form <code>&lt;field&gt;:&lt;value&gt;</code> and describe the layout of the mapping. These fields may not all be present and may occur in any order.</p>
-<p>The button fields are <code>a</code>, <code>b</code>, <code>c</code>, <code>d</code>, <code>back</code>, <code>start</code>, <code>guide</code>, <code>dpup</code>, <code>dpright</code>, <code>dpdown</code>, <code>dpleft</code>, <code>leftshoulder</code>, <code>rightshoulder</code>, <code>leftstick</code> and <code>rightstick</code>.</p>
-<p>The axis fields are <code>leftx</code>, <code>lefty</code>, <code>rightx</code>, <code>righty</code>, <code>lefttrigger</code> and <code>righttrigger</code>.</p>
-<p>The value of an axis or button field can be a joystick button, a joystick axis, a hat bitmask or empty. Joystick buttons are specified as <code>bN</code>, for example <code>b2</code> for the third button. Joystick axes are specified as <code>aN</code>, for example <code>a7</code> for the eighth button. Joystick hat bit masks are specified as <code>hN.N</code>, for example <code>h0.8</code> for left on the first hat. More than one bit may be set in the mask.</p>
-<p>Before an axis there may be a <code>+</code> or <code>-</code> range modifier, for example <code>+a3</code> for the positive half of the fourth axis. This restricts input to only the positive or negative halves of the joystick axis. After an axis or half-axis there may be the <code>~</code> inversion modifier, for example <code>a2~</code> or <code>-a7~</code>. This negates the values of the gamepad axis.</p>
-<p>The hat bit mask match the <a class="el" href="group__hat__state.html">hat states</a> in the joystick functions.</p>
-<p>There is also the special <code>platform</code> field that specifies which platform the mapping is valid for. Possible values are <code>Windows</code>, <code>Mac OS X</code> and <code>Linux</code>.</p>
-<p>Below is an example of what a gamepad mapping might look like. It is the one built into GLFW for Xbox controllers accessed via the XInput API on Windows. This example has been broken into several lines to fit on the page, but real gamepad mappings must be a single line.</p>
+<div class="line"><a class="code hl_function" href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a>(mappings);</div>
+<div class="ttc" id="agroup__input_html_gaed5104612f2fa8e66aa6e846652ad00f"><div class="ttname"><a href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a></div><div class="ttdeci">int glfwUpdateGamepadMappings(const char *string)</div><div class="ttdoc">Adds the specified SDL_GameControllerDB gamepad mappings.</div></div>
+</div><!-- fragment --><p >This function supports everything from single lines up to and including the unmodified contents of the whole <code>gamecontrollerdb.txt</code> file.</p>
+<p >If you are compiling GLFW from source with CMake you can update the built-in mappings by building the <em>update_mappings</em> target. This runs the <code>GenerateMappings.cmake</code> CMake script, which downloads <code>gamecontrollerdb.txt</code> and regenerates the <code>mappings.h</code> header file.</p>
+<p >Below is a description of the mapping format. Please keep in mind that <b>this description is not authoritative</b>. The format is defined by the SDL and SDL_GameControllerDB projects and their documentation and code takes precedence.</p>
+<p >Each mapping is a single line of comma-separated values describing the GUID, name and layout of the gamepad. Lines that do not begin with a hexadecimal digit are ignored.</p>
+<p >The first value is always the gamepad GUID, a 32 character long hexadecimal string that typically identifies its make, model, revision and the type of connection to the computer. When this information is not available, the GUID is generated using the gamepad name. GLFW uses the SDL 2.0.5+ GUID format but can convert from the older formats.</p>
+<p >The second value is always the human-readable name of the gamepad.</p>
+<p >All subsequent values are in the form <code>&lt;field&gt;:&lt;value&gt;</code> and describe the layout of the mapping. These fields may not all be present and may occur in any order.</p>
+<p >The button fields are <code>a</code>, <code>b</code>, <code>x</code>, <code>y</code>, <code>back</code>, <code>start</code>, <code>guide</code>, <code>dpup</code>, <code>dpright</code>, <code>dpdown</code>, <code>dpleft</code>, <code>leftshoulder</code>, <code>rightshoulder</code>, <code>leftstick</code> and <code>rightstick</code>.</p>
+<p >The axis fields are <code>leftx</code>, <code>lefty</code>, <code>rightx</code>, <code>righty</code>, <code>lefttrigger</code> and <code>righttrigger</code>.</p>
+<p >The value of an axis or button field can be a joystick button, a joystick axis, a hat bitmask or empty. Joystick buttons are specified as <code>bN</code>, for example <code>b2</code> for the third button. Joystick axes are specified as <code>aN</code>, for example <code>a7</code> for the eighth button. Joystick hat bit masks are specified as <code>hN.N</code>, for example <code>h0.8</code> for left on the first hat. More than one bit may be set in the mask.</p>
+<p >Before an axis there may be a <code>+</code> or <code>-</code> range modifier, for example <code>+a3</code> for the positive half of the fourth axis. This restricts input to only the positive or negative halves of the joystick axis. After an axis or half-axis there may be the <code>~</code> inversion modifier, for example <code>a2~</code> or <code>-a7~</code>. This negates the values of the gamepad axis.</p>
+<p >The hat bit mask match the <a class="el" href="group__hat__state.html">hat states</a> in the joystick functions.</p>
+<p >There is also the special <code>platform</code> field that specifies which platform the mapping is valid for. Possible values are <code>Windows</code>, <code>Mac OS X</code> and <code>Linux</code>.</p>
+<p >Below is an example of what a gamepad mapping might look like. It is the one built into GLFW for Xbox controllers accessed via the XInput API on Windows. This example has been broken into several lines to fit on the page, but real gamepad mappings must be a single line.</p>
 <div class="fragment"><div class="line">78696e70757401000000000000000000,XInput Gamepad (GLFW),platform:Windows,a:b0,</div>
 <div class="line">b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8,</div>
 <div class="line">rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4,</div>
@@ -438,120 +511,51 @@ Gamepad mappings</h2>
 </div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>GLFW does not yet support the output range and modifiers <code>+</code> and <code>-</code> that were recently added to SDL. The input modifiers <code>+</code>, <code>-</code> and <code>~</code> are supported and described above.</dd></dl>
 <h1><a class="anchor" id="time"></a>
 Time input</h1>
-<p>GLFW provides high-resolution time input, in seconds, with <a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">double</span> seconds = <a class="code" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>();</div>
-</div><!-- fragment --><p>It returns the number of seconds since the library was initialized with <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>. The platform-specific time sources used typically have micro- or nanosecond resolution.</p>
-<p>You can modify the base time with <a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>(4.0);</div>
-</div><!-- fragment --><p>This sets the time to the specified time, in seconds, and it continues to count from there.</p>
-<p>You can also access the raw timer used to implement the functions above, with <a class="el" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>.</p>
-<div class="fragment"><div class="line">uint64_t value = <a class="code" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>();</div>
-</div><!-- fragment --><p>This value is in 1&#160;/&#160;frequency seconds. The frequency of the raw timer varies depending on the operating system and hardware. You can query the frequency, in Hz, with <a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>.</p>
-<div class="fragment"><div class="line">uint64_t frequency = <a class="code" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>();</div>
+<p >GLFW provides high-resolution time input, in seconds, with <a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">double</span> seconds = <a class="code hl_function" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a>();</div>
+<div class="ttc" id="agroup__input_html_gaa6cf4e7a77158a3b8fd00328b1720a4a"><div class="ttname"><a href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a></div><div class="ttdeci">double glfwGetTime(void)</div><div class="ttdoc">Returns the GLFW time.</div></div>
+</div><!-- fragment --><p >It returns the number of seconds since the library was initialized with <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>. The platform-specific time sources used typically have micro- or nanosecond resolution.</p>
+<p >You can modify the base time with <a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a>(4.0);</div>
+<div class="ttc" id="agroup__input_html_gaf59589ef6e8b8c8b5ad184b25afd4dc0"><div class="ttname"><a href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a></div><div class="ttdeci">void glfwSetTime(double time)</div><div class="ttdoc">Sets the GLFW time.</div></div>
+</div><!-- fragment --><p >This sets the time to the specified time, in seconds, and it continues to count from there.</p>
+<p >You can also access the raw timer used to implement the functions above, with <a class="el" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>.</p>
+<div class="fragment"><div class="line">uint64_t value = <a class="code hl_function" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a>();</div>
+<div class="ttc" id="agroup__input_html_ga09b2bd37d328e0b9456c7ec575cc26aa"><div class="ttname"><a href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a></div><div class="ttdeci">uint64_t glfwGetTimerValue(void)</div><div class="ttdoc">Returns the current value of the raw timer.</div></div>
+</div><!-- fragment --><p >This value is in 1&#160;/&#160;frequency seconds. The frequency of the raw timer varies depending on the operating system and hardware. You can query the frequency, in Hz, with <a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>.</p>
+<div class="fragment"><div class="line">uint64_t frequency = <a class="code hl_function" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a>();</div>
+<div class="ttc" id="agroup__input_html_ga3289ee876572f6e91f06df3a24824443"><div class="ttname"><a href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a></div><div class="ttdeci">uint64_t glfwGetTimerFrequency(void)</div><div class="ttdoc">Returns the frequency, in Hz, of the raw timer.</div></div>
 </div><!-- fragment --><h1><a class="anchor" id="clipboard"></a>
 Clipboard input and output</h1>
-<p>If the system clipboard contains a UTF-8 encoded string or if it can be converted to one, you can retrieve it with <a class="el" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a>. See the reference documentation for the lifetime of the returned string.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* text = <a class="code" href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a>(NULL);</div>
+<p >If the system clipboard contains a UTF-8 encoded string or if it can be converted to one, you can retrieve it with <a class="el" href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a>. See the reference documentation for the lifetime of the returned string.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* text = <a class="code hl_function" href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a>(NULL);</div>
 <div class="line"><span class="keywordflow">if</span> (text)</div>
 <div class="line">{</div>
 <div class="line">    insert_text(text);</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>If the clipboard is empty or if its contents could not be converted, <code>NULL</code> is returned.</p>
-<p>The contents of the system clipboard can be set to a UTF-8 encoded string with <a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>(NULL, <span class="stringliteral">&quot;A string with words in it&quot;</span>);</div>
+<div class="ttc" id="agroup__input_html_ga71a5b20808ea92193d65c21b82580355"><div class="ttname"><a href="group__input.html#ga71a5b20808ea92193d65c21b82580355">glfwGetClipboardString</a></div><div class="ttdeci">const char * glfwGetClipboardString(GLFWwindow *window)</div><div class="ttdoc">Returns the contents of the clipboard as a string.</div></div>
+</div><!-- fragment --><p >If the clipboard is empty or if its contents could not be converted, <code>NULL</code> is returned.</p>
+<p >The contents of the system clipboard can be set to a UTF-8 encoded string with <a class="el" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a>(NULL, <span class="stringliteral">&quot;A string with words in it&quot;</span>);</div>
+<div class="ttc" id="agroup__input_html_gaba1f022c5eb07dfac421df34cdcd31dd"><div class="ttname"><a href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a></div><div class="ttdeci">void glfwSetClipboardString(GLFWwindow *window, const char *string)</div><div class="ttdoc">Sets the clipboard to the specified string.</div></div>
 </div><!-- fragment --><h1><a class="anchor" id="path_drop"></a>
 Path drop input</h1>
-<p>If you wish to receive the paths of files and/or directories dropped on a window, set a file drop callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a>(window, drop_callback);</div>
-</div><!-- fragment --><p>The callback function receives an array of paths encoded as UTF-8.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> drop_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> count, <span class="keyword">const</span> <span class="keywordtype">char</span>** paths)</div>
+<p >If you wish to receive the paths of files and/or directories dropped on a window, set a file drop callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a>(window, drop_callback);</div>
+<div class="ttc" id="agroup__input_html_gab773f0ee0a07cff77a210cea40bc1f6b"><div class="ttname"><a href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a></div><div class="ttdeci">GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)</div><div class="ttdoc">Sets the path drop callback.</div></div>
+</div><!-- fragment --><p >The callback function receives an array of paths encoded as UTF-8.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> drop_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> count, <span class="keyword">const</span> <span class="keywordtype">char</span>** paths)</div>
 <div class="line">{</div>
 <div class="line">    <span class="keywordtype">int</span> i;</div>
 <div class="line">    <span class="keywordflow">for</span> (i = 0;  i &lt; count;  i++)</div>
 <div class="line">        handle_dropped_file(paths[i]);</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The path array and its strings are only valid until the file drop callback returns, as they may have been generated specifically for that event. You need to make a deep copy of the array if you want to keep the paths. </p>
+</div><!-- fragment --><p >The path array and its strings are only valid until the file drop callback returns, as they may have been generated specifically for that event. You need to make a deep copy of the array if you want to keep the paths. </p>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="agroup__joysticks_html_ga20a9f4f3aaefed9ea5e66072fc588b87"><div class="ttname"><a href="group__joysticks.html#ga20a9f4f3aaefed9ea5e66072fc588b87">GLFW_JOYSTICK_7</a></div><div class="ttdeci">#define GLFW_JOYSTICK_7</div><div class="ttdef"><b>Definition:</b> glfw3.h:566</div></div>
-<div class="ttc" id="agroup__input_html_gadccddea8bce6113fa459de379ddaf051"><div class="ttname"><a href="group__input.html#gadccddea8bce6113fa459de379ddaf051">glfwGetGamepadState</a></div><div class="ttdeci">int glfwGetGamepadState(int jid, GLFWgamepadstate *state)</div><div class="ttdoc">Retrieves the state of the specified joystick remapped as a gamepad.</div></div>
-<div class="ttc" id="aglfw3_8h_html_a2315b99a329ce53e6a13a9d46fd5ca88"><div class="ttname"><a href="glfw3_8h.html#a2315b99a329ce53e6a13a9d46fd5ca88">GLFW_CURSOR_DISABLED</a></div><div class="ttdeci">#define GLFW_CURSOR_DISABLED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1024</div></div>
-<div class="ttc" id="aglfw3_8h_html_ae04dd25c8577e19fa8c97368561f6c68"><div class="ttname"><a href="glfw3_8h.html#ae04dd25c8577e19fa8c97368561f6c68">GLFW_CURSOR_NORMAL</a></div><div class="ttdeci">#define GLFW_CURSOR_NORMAL</div><div class="ttdef"><b>Definition:</b> glfw3.h:1022</div></div>
-<div class="ttc" id="aglfw3_8h_html_aade31da5b884a84a7625c6b059b9132c"><div class="ttname"><a href="glfw3_8h.html#aade31da5b884a84a7625c6b059b9132c">GLFW_CURSOR</a></div><div class="ttdeci">#define GLFW_CURSOR</div><div class="ttdef"><b>Definition:</b> glfw3.h:1016</div></div>
-<div class="ttc" id="aglfw3_8h_html_ac4d5cb9d78de8573349c58763d53bf11"><div class="ttname"><a href="glfw3_8h.html#ac4d5cb9d78de8573349c58763d53bf11">GLFW_CURSOR_HIDDEN</a></div><div class="ttdeci">#define GLFW_CURSOR_HIDDEN</div><div class="ttdef"><b>Definition:</b> glfw3.h:1023</div></div>
-<div class="ttc" id="aglfw3_8h_html_ae3bbe2315b7691ab088159eb6c9110fc"><div class="ttname"><a href="glfw3_8h.html#ae3bbe2315b7691ab088159eb6c9110fc">GLFW_STICKY_KEYS</a></div><div class="ttdeci">#define GLFW_STICKY_KEYS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1017</div></div>
-<div class="ttc" id="agroup__joysticks_html_gae43281bc66d3fa5089fb50c3e7a28695"><div class="ttname"><a href="group__joysticks.html#gae43281bc66d3fa5089fb50c3e7a28695">GLFW_JOYSTICK_5</a></div><div class="ttdeci">#define GLFW_JOYSTICK_5</div><div class="ttdef"><b>Definition:</b> glfw3.h:564</div></div>
-<div class="ttc" id="agroup__input_html_gaa6cf4e7a77158a3b8fd00328b1720a4a"><div class="ttname"><a href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a></div><div class="ttdeci">double glfwGetTime(void)</div><div class="ttdoc">Returns the GLFW time.</div></div>
-<div class="ttc" id="agroup__input_html_gaed5104612f2fa8e66aa6e846652ad00f"><div class="ttname"><a href="group__input.html#gaed5104612f2fa8e66aa6e846652ad00f">glfwUpdateGamepadMappings</a></div><div class="ttdeci">int glfwUpdateGamepadMappings(const char *string)</div><div class="ttdoc">Adds the specified SDL_GameControllerDB gamepad mappings.</div></div>
-<div class="ttc" id="agroup__input_html_gafbe3e51f670320908cfe4e20d3e5559e"><div class="ttname"><a href="group__input.html#gafbe3e51f670320908cfe4e20d3e5559e">glfwGetJoystickName</a></div><div class="ttdeci">const char * glfwGetJoystickName(int jid)</div><div class="ttdoc">Returns the name of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_gac1473feacb5996c01a7a5a33b5066704"><div class="ttname"><a href="group__input.html#gac1473feacb5996c01a7a5a33b5066704">glfwGetMouseButton</a></div><div class="ttdeci">int glfwGetMouseButton(GLFWwindow *window, int button)</div><div class="ttdoc">Returns the last reported state of a mouse button for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_ga67ddd1b7dcbbaff03e4a76c0ea67103a"><div class="ttname"><a href="group__input.html#ga67ddd1b7dcbbaff03e4a76c0ea67103a">glfwGetKeyScancode</a></div><div class="ttdeci">int glfwGetKeyScancode(int key)</div><div class="ttdoc">Returns the platform-specific scancode of the specified key.</div></div>
-<div class="ttc" id="agroup__input_html_gafca356935e10135016aa49ffa464c355"><div class="ttname"><a href="group__input.html#gafca356935e10135016aa49ffa464c355">glfwCreateCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateCursor(const GLFWimage *image, int xhot, int yhot)</div><div class="ttdoc">Creates a custom cursor.</div></div>
-<div class="ttc" id="agroup__input_html_ga2485743d0b59df3791c45951c4195265"><div class="ttname"><a href="group__input.html#ga2485743d0b59df3791c45951c4195265">GLFW_PRESS</a></div><div class="ttdeci">#define GLFW_PRESS</div><div class="ttdoc">The key or mouse button was pressed.</div><div class="ttdef"><b>Definition:</b> glfw3.h:306</div></div>
-<div class="ttc" id="agroup__input_html_ga237a182e5ec0b21ce64543f3b5e7e2be"><div class="ttname"><a href="group__input.html#ga237a182e5ec0b21ce64543f3b5e7e2be">glfwGetKeyName</a></div><div class="ttdeci">const char * glfwGetKeyName(int key, int scancode)</div><div class="ttdoc">Returns the layout-specific name of the specified printable key.</div></div>
-<div class="ttc" id="astructGLFWimage_html_a0b7d95368f0c80d5e5c9875057c7dbec"><div class="ttname"><a href="structGLFWimage.html#a0b7d95368f0c80d5e5c9875057c7dbec">GLFWimage::height</a></div><div class="ttdeci">int height</div><div class="ttdef"><b>Definition:</b> glfw3.h:1694</div></div>
-<div class="ttc" id="agroup__input_html_gaa92336e173da9c8834558b54ee80563b"><div class="ttname"><a href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a></div><div class="ttdeci">void glfwSetInputMode(GLFWwindow *window, int mode, int value)</div><div class="ttdoc">Sets an input option for the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga8665c71c6fa3d22425c6a0e8a3f89d8a"><div class="ttname"><a href="group__window.html#ga8665c71c6fa3d22425c6a0e8a3f89d8a">GLFW_HOVERED</a></div><div class="ttdeci">#define GLFW_HOVERED</div><div class="ttdoc">Mouse cursor hover window attribute.</div><div class="ttdef"><b>Definition:</b> glfw3.h:823</div></div>
-<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1152</div></div>
-<div class="ttc" id="agroup__keys_html_gaa06a712e6202661fc03da5bdb7b6e545"><div class="ttname"><a href="group__keys.html#gaa06a712e6202661fc03da5bdb7b6e545">GLFW_KEY_W</a></div><div class="ttdeci">#define GLFW_KEY_W</div><div class="ttdef"><b>Definition:</b> glfw3.h:402</div></div>
-<div class="ttc" id="agroup__keys_html_gabf48fcc3afbe69349df432b470c96ef2"><div class="ttname"><a href="group__keys.html#gabf48fcc3afbe69349df432b470c96ef2">GLFW_KEY_E</a></div><div class="ttdeci">#define GLFW_KEY_E</div><div class="ttdef"><b>Definition:</b> glfw3.h:384</div></div>
-<div class="ttc" id="agroup__input_html_ga6ab84420974d812bee700e45284a723c"><div class="ttname"><a href="group__input.html#ga6ab84420974d812bee700e45284a723c">glfwSetMouseButtonCallback</a></div><div class="ttdeci">GLFWmousebuttonfun glfwSetMouseButtonCallback(GLFWwindow *window, GLFWmousebuttonfun callback)</div><div class="ttdoc">Sets the mouse button callback.</div></div>
-<div class="ttc" id="agroup__input_html_ga2d8d0634bb81c180899aeb07477a67ea"><div class="ttname"><a href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickHats(int jid, int *count)</div><div class="ttdoc">Returns the state of all hats of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_ga5c71e3533b2d384db9317fcd7661b210"><div class="ttname"><a href="group__input.html#ga5c71e3533b2d384db9317fcd7661b210">glfwGetGamepadName</a></div><div class="ttdeci">const char * glfwGetGamepadName(int jid)</div><div class="ttdoc">Returns the human-readable gamepad name for the specified joystick.</div></div>
-<div class="ttc" id="agroup__joysticks_html_ga34a0443d059e9f22272cd4669073f73d"><div class="ttname"><a href="group__joysticks.html#ga34a0443d059e9f22272cd4669073f73d">GLFW_JOYSTICK_1</a></div><div class="ttdeci">#define GLFW_JOYSTICK_1</div><div class="ttdef"><b>Definition:</b> glfw3.h:560</div></div>
-<div class="ttc" id="agroup__input_html_gaf59589ef6e8b8c8b5ad184b25afd4dc0"><div class="ttname"><a href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a></div><div class="ttdeci">void glfwSetTime(double time)</div><div class="ttdoc">Sets the GLFW time.</div></div>
-<div class="ttc" id="agroup__input_html_ga01d37b6c40133676b9cea60ca1d7c0cc"><div class="ttname"><a href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a></div><div class="ttdeci">void glfwGetCursorPos(GLFWwindow *window, double *xpos, double *ypos)</div><div class="ttdoc">Retrieves the position of the cursor relative to the content area of the window.</div></div>
-<div class="ttc" id="agroup__input_html_gad0f676860f329d80f7e47e9f06a96f00"><div class="ttname"><a href="group__input.html#gad0f676860f329d80f7e47e9f06a96f00">glfwJoystickIsGamepad</a></div><div class="ttdeci">int glfwJoystickIsGamepad(int jid)</div><div class="ttdoc">Returns whether the specified joystick has a gamepad mapping.</div></div>
-<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
-<div class="ttc" id="agroup__window_html_ga554e37d781f0a997656c26b2c56c835e"><div class="ttname"><a href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a></div><div class="ttdeci">void glfwWaitEvents(void)</div><div class="ttdoc">Waits until events are queued and processes them.</div></div>
-<div class="ttc" id="agroup__input_html_ga81b952cd1764274d0db7fb3c5a79ba6a"><div class="ttname"><a href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a></div><div class="ttdeci">void glfwDestroyCursor(GLFWcursor *cursor)</div><div class="ttdoc">Destroys a cursor.</div></div>
-<div class="ttc" id="agroup__input_html_gadb3cbf44af90a1536f519659a53bddd6"><div class="ttname"><a href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a></div><div class="ttdeci">const unsigned char * glfwGetJoystickButtons(int jid, int *count)</div><div class="ttdoc">Returns the state of all buttons of the specified joystick.</div></div>
-<div class="ttc" id="aglfw3_8h_html_a4d7ce8ce71030c3b04e2b78145bc59d1"><div class="ttname"><a href="glfw3_8h.html#a4d7ce8ce71030c3b04e2b78145bc59d1">GLFW_STICKY_MOUSE_BUTTONS</a></div><div class="ttdeci">#define GLFW_STICKY_MOUSE_BUTTONS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1018</div></div>
-<div class="ttc" id="agroup__input_html_gab25c4a220fd8f5717718dbc487828996"><div class="ttname"><a href="group__input.html#gab25c4a220fd8f5717718dbc487828996">glfwSetCharCallback</a></div><div class="ttdeci">GLFWcharfun glfwSetCharCallback(GLFWwindow *window, GLFWcharfun callback)</div><div class="ttdoc">Sets the Unicode character callback.</div></div>
-<div class="ttc" id="agroup__input_html_ga5aba1d704d9ab539282b1fbe9f18bb94"><div class="ttname"><a href="group__input.html#ga5aba1d704d9ab539282b1fbe9f18bb94">glfwGetClipboardString</a></div><div class="ttdeci">const char * glfwGetClipboardString(GLFWwindow *window)</div><div class="ttdoc">Returns the contents of the clipboard as a string.</div></div>
-<div class="ttc" id="agroup__input_html_gad27f8ad0142c038a281466c0966817d8"><div class="ttname"><a href="group__input.html#gad27f8ad0142c038a281466c0966817d8">glfwSetCursorEnterCallback</a></div><div class="ttdeci">GLFWcursorenterfun glfwSetCursorEnterCallback(GLFWwindow *window, GLFWcursorenterfun callback)</div><div class="ttdoc">Sets the cursor enter/leave callback.</div></div>
-<div class="ttc" id="agroup__input_html_gad3b4f38c8d5dae036bc8fa959e18343e"><div class="ttname"><a href="group__input.html#gad3b4f38c8d5dae036bc8fa959e18343e">glfwSetCursor</a></div><div class="ttdeci">void glfwSetCursor(GLFWwindow *window, GLFWcursor *cursor)</div><div class="ttdoc">Sets the cursor for the window.</div></div>
-<div class="ttc" id="agroup__input_html_gae4ee0dbd0d256183e1ea4026d897e1c2"><div class="ttname"><a href="group__input.html#gae4ee0dbd0d256183e1ea4026d897e1c2">glfwRawMouseMotionSupported</a></div><div class="ttdeci">int glfwRawMouseMotionSupported(void)</div><div class="ttdoc">Returns whether raw mouse motion is supported.</div></div>
-<div class="ttc" id="astructGLFWimage_html_a0c532a5c2bb715555279b7817daba0fb"><div class="ttname"><a href="structGLFWimage.html#a0c532a5c2bb715555279b7817daba0fb">GLFWimage::pixels</a></div><div class="ttdeci">unsigned char * pixels</div><div class="ttdef"><b>Definition:</b> glfw3.h:1697</div></div>
-<div class="ttc" id="agroup__gamepad__axes_html_ga121a7d5d20589a423cd1634dd6ee6eab"><div class="ttname"><a href="group__gamepad__axes.html#ga121a7d5d20589a423cd1634dd6ee6eab">GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</a></div><div class="ttdeci">#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER</div><div class="ttdef"><b>Definition:</b> glfw3.h:621</div></div>
-<div class="ttc" id="agroup__joysticks_html_ga97ddbcad02b7f48d74fad4ddb08fff59"><div class="ttname"><a href="group__joysticks.html#ga97ddbcad02b7f48d74fad4ddb08fff59">GLFW_JOYSTICK_4</a></div><div class="ttdeci">#define GLFW_JOYSTICK_4</div><div class="ttdef"><b>Definition:</b> glfw3.h:563</div></div>
-<div class="ttc" id="agroup__init_html_ga2744fbb29b5631bb28802dbe0cf36eba"><div class="ttname"><a href="group__init.html#ga2744fbb29b5631bb28802dbe0cf36eba">GLFW_TRUE</a></div><div class="ttdeci">#define GLFW_TRUE</div><div class="ttdoc">One.</div><div class="ttdef"><b>Definition:</b> glfw3.h:280</div></div>
-<div class="ttc" id="agroup__input_html_gaed0966cee139d815317f9ffcba64c9f1"><div class="ttname"><a href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a></div><div class="ttdeci">int glfwJoystickPresent(int jid)</div><div class="ttdoc">Returns whether the specified joystick is present.</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html_a27e9896b51c65df15fba2c7139bfdb9a"><div class="ttname"><a href="structGLFWgamepadstate.html#a27e9896b51c65df15fba2c7139bfdb9a">GLFWgamepadstate::buttons</a></div><div class="ttdeci">unsigned char buttons[15]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1716</div></div>
-<div class="ttc" id="aglfw3_8h_html_aab64b25921ef21d89252d6f0a71bfc32"><div class="ttname"><a href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a></div><div class="ttdeci">#define GLFW_DISCONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1075</div></div>
-<div class="ttc" id="agroup__gamepad__buttons_html_gae055a12fbf4b48b5954c8e1cd129b810"><div class="ttname"><a href="group__gamepad__buttons.html#gae055a12fbf4b48b5954c8e1cd129b810">GLFW_GAMEPAD_BUTTON_A</a></div><div class="ttdeci">#define GLFW_GAMEPAD_BUTTON_A</div><div class="ttdef"><b>Definition:</b> glfw3.h:586</div></div>
-<div class="ttc" id="agroup__input_html_ga09b2bd37d328e0b9456c7ec575cc26aa"><div class="ttname"><a href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a></div><div class="ttdeci">uint64_t glfwGetTimerValue(void)</div><div class="ttdoc">Returns the current value of the raw timer.</div></div>
-<div class="ttc" id="agroup__input_html_gac1f879ab7435d54d4d79bb469fe225d7"><div class="ttname"><a href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a></div><div class="ttdeci">GLFWcursorposfun glfwSetCursorPosCallback(GLFWwindow *window, GLFWcursorposfun callback)</div><div class="ttdoc">Sets the cursor position callback.</div></div>
-<div class="ttc" id="agroup__input_html_ga3289ee876572f6e91f06df3a24824443"><div class="ttname"><a href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a></div><div class="ttdeci">uint64_t glfwGetTimerFrequency(void)</div><div class="ttdoc">Returns the frequency, in Hz, of the raw timer.</div></div>
-<div class="ttc" id="agroup__buttons_html_gaf37100431dcd5082d48f95ee8bc8cd56"><div class="ttname"><a href="group__buttons.html#gaf37100431dcd5082d48f95ee8bc8cd56">GLFW_MOUSE_BUTTON_LEFT</a></div><div class="ttdeci">#define GLFW_MOUSE_BUTTON_LEFT</div><div class="ttdef"><b>Definition:</b> glfw3.h:548</div></div>
-<div class="ttc" id="astructGLFWimage_html_af6a71cc999fe6d3aea31dd7e9687d835"><div class="ttname"><a href="structGLFWimage.html#af6a71cc999fe6d3aea31dd7e9687d835">GLFWimage::width</a></div><div class="ttdeci">int width</div><div class="ttdef"><b>Definition:</b> glfw3.h:1691</div></div>
-<div class="ttc" id="agroup__window_html_ga605a178db92f1a7f1a925563ef3ea2cf"><div class="ttname"><a href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a></div><div class="ttdeci">void glfwWaitEventsTimeout(double timeout)</div><div class="ttdoc">Waits with timeout until events are queued and processes them.</div></div>
-<div class="ttc" id="agroup__input_html_ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c"><div class="ttname"><a href="group__input.html#ga2f60a0e5b7bd8d1b7344dc0a7cb32b4c">glfwSetJoystickCallback</a></div><div class="ttdeci">GLFWjoystickfun glfwSetJoystickCallback(GLFWjoystickfun callback)</div><div class="ttdoc">Sets the joystick configuration callback.</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html"><div class="ttname"><a href="structGLFWgamepadstate.html">GLFWgamepadstate</a></div><div class="ttdoc">Gamepad input state.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1711</div></div>
-<div class="ttc" id="agroup__joysticks_html_gae6f3eedfeb42424c2f5e3161efb0b654"><div class="ttname"><a href="group__joysticks.html#gae6f3eedfeb42424c2f5e3161efb0b654">GLFW_JOYSTICK_3</a></div><div class="ttdeci">#define GLFW_JOYSTICK_3</div><div class="ttdef"><b>Definition:</b> glfw3.h:562</div></div>
-<div class="ttc" id="agroup__input_html_ga89261ae18c75e863aaf2656ecdd238f4"><div class="ttname"><a href="group__input.html#ga89261ae18c75e863aaf2656ecdd238f4">GLFWcursor</a></div><div class="ttdeci">struct GLFWcursor GLFWcursor</div><div class="ttdoc">Opaque cursor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1164</div></div>
-<div class="ttc" id="aglfw3_8h_html_aeeda1be76a44a1fc97c1282e06281fbb"><div class="ttname"><a href="glfw3_8h.html#aeeda1be76a44a1fc97c1282e06281fbb">GLFW_RAW_MOUSE_MOTION</a></div><div class="ttdeci">#define GLFW_RAW_MOUSE_MOTION</div><div class="ttdef"><b>Definition:</b> glfw3.h:1020</div></div>
-<div class="ttc" id="agroup__input_html_gaa65f416d03ebbbb5b8db71a489fcb894"><div class="ttname"><a href="group__input.html#gaa65f416d03ebbbb5b8db71a489fcb894">glfwCreateStandardCursor</a></div><div class="ttdeci">GLFWcursor * glfwCreateStandardCursor(int shape)</div><div class="ttdoc">Creates a cursor with a standard shape.</div></div>
-<div class="ttc" id="astructGLFWgamepadstate_html_a8b2c8939b1d31458de5359998375c189"><div class="ttname"><a href="structGLFWgamepadstate.html#a8b2c8939b1d31458de5359998375c189">GLFWgamepadstate::axes</a></div><div class="ttdeci">float axes[6]</div><div class="ttdef"><b>Definition:</b> glfw3.h:1720</div></div>
-<div class="ttc" id="astructGLFWimage_html"><div class="ttname"><a href="structGLFWimage.html">GLFWimage</a></div><div class="ttdoc">Image data.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1687</div></div>
-<div class="ttc" id="agroup__shapes_html_gabb3eb0109f11bb808fc34659177ca962"><div class="ttname"><a href="group__shapes.html#gabb3eb0109f11bb808fc34659177ca962">GLFW_HRESIZE_CURSOR</a></div><div class="ttdeci">#define GLFW_HRESIZE_CURSOR</div><div class="ttdoc">The horizontal resize arrow shape.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1066</div></div>
-<div class="ttc" id="aglfw3_8h_html_abe11513fd1ffbee5bb9b173f06028b9e"><div class="ttname"><a href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a></div><div class="ttdeci">#define GLFW_CONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1074</div></div>
-<div class="ttc" id="agroup__input_html_gab773f0ee0a07cff77a210cea40bc1f6b"><div class="ttname"><a href="group__input.html#gab773f0ee0a07cff77a210cea40bc1f6b">glfwSetDropCallback</a></div><div class="ttdeci">GLFWdropfun glfwSetDropCallback(GLFWwindow *window, GLFWdropfun callback)</div><div class="ttdoc">Sets the path drop callback.</div></div>
-<div class="ttc" id="agroup__input_html_ga1caf18159767e761185e49a3be019f8d"><div class="ttname"><a href="group__input.html#ga1caf18159767e761185e49a3be019f8d">glfwSetKeyCallback</a></div><div class="ttdeci">GLFWkeyfun glfwSetKeyCallback(GLFWwindow *window, GLFWkeyfun callback)</div><div class="ttdoc">Sets the key callback.</div></div>
-<div class="ttc" id="agroup__hat__state_html_ga252586e3bbde75f4b0e07ad3124867f5"><div class="ttname"><a href="group__hat__state.html#ga252586e3bbde75f4b0e07ad3124867f5">GLFW_HAT_RIGHT</a></div><div class="ttdeci">#define GLFW_HAT_RIGHT</div><div class="ttdef"><b>Definition:</b> glfw3.h:325</div></div>
-<div class="ttc" id="agroup__joysticks_html_ga6eab65ec88e65e0850ef8413504cb50c"><div class="ttname"><a href="group__joysticks.html#ga6eab65ec88e65e0850ef8413504cb50c">GLFW_JOYSTICK_2</a></div><div class="ttdeci">#define GLFW_JOYSTICK_2</div><div class="ttdef"><b>Definition:</b> glfw3.h:561</div></div>
-<div class="ttc" id="agroup__buttons_html_ga3e2f2cf3c4942df73cc094247d275e74"><div class="ttname"><a href="group__buttons.html#ga3e2f2cf3c4942df73cc094247d275e74">GLFW_MOUSE_BUTTON_RIGHT</a></div><div class="ttdeci">#define GLFW_MOUSE_BUTTON_RIGHT</div><div class="ttdef"><b>Definition:</b> glfw3.h:549</div></div>
-<div class="ttc" id="agroup__window_html_gab5997a25187e9fd5c6f2ecbbc8dfd7e9"><div class="ttname"><a href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a></div><div class="ttdeci">void glfwPostEmptyEvent(void)</div><div class="ttdoc">Posts an empty event to the event queue.</div></div>
-<div class="ttc" id="agroup__window_html_gacccb29947ea4b16860ebef42c2cb9337"><div class="ttname"><a href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a></div><div class="ttdeci">int glfwGetWindowAttrib(GLFWwindow *window, int attrib)</div><div class="ttdoc">Returns an attribute of the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_ga571e45a030ae4061f746ed56cb76aede"><div class="ttname"><a href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a></div><div class="ttdeci">GLFWscrollfun glfwSetScrollCallback(GLFWwindow *window, GLFWscrollfun callback)</div><div class="ttdoc">Sets the scroll callback.</div></div>
-<div class="ttc" id="agroup__input_html_gadd341da06bc8d418b4dc3a3518af9ad2"><div class="ttname"><a href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a></div><div class="ttdeci">int glfwGetKey(GLFWwindow *window, int key)</div><div class="ttdoc">Returns the last reported state of a keyboard key for the specified window.</div></div>
-<div class="ttc" id="agroup__input_html_gaa8806536731e92c061bc70bcff6edbd0"><div class="ttname"><a href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a></div><div class="ttdeci">const float * glfwGetJoystickAxes(int jid, int *count)</div><div class="ttdoc">Returns the values of all axes of the specified joystick.</div></div>
-<div class="ttc" id="agroup__input_html_gaba1f022c5eb07dfac421df34cdcd31dd"><div class="ttname"><a href="group__input.html#gaba1f022c5eb07dfac421df34cdcd31dd">glfwSetClipboardString</a></div><div class="ttdeci">void glfwSetClipboardString(GLFWwindow *window, const char *string)</div><div class="ttdoc">Sets the clipboard to the specified string.</div></div>
-<div class="ttc" id="agroup__keys_html_gac1c42c0bf4192cea713c55598b06b744"><div class="ttname"><a href="group__keys.html#gac1c42c0bf4192cea713c55598b06b744">GLFW_KEY_X</a></div><div class="ttdeci">#define GLFW_KEY_X</div><div class="ttdef"><b>Definition:</b> glfw3.h:403</div></div>
-<div class="ttc" id="aglfw3_8h_html_a07b84de0b52143e1958f88a7d9105947"><div class="ttname"><a href="glfw3_8h.html#a07b84de0b52143e1958f88a7d9105947">GLFW_LOCK_KEY_MODS</a></div><div class="ttdeci">#define GLFW_LOCK_KEY_MODS</div><div class="ttdef"><b>Definition:</b> glfw3.h:1019</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/internal_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: internal.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">internal.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">internal.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 39 - 38
glfw.mod/glfw/docs/html/internals_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Internal structure</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Internal structure </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Internal structure </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -73,51 +74,51 @@ $(function() {
 <li class="level1"><a href="#internals_config">Configuration macros</a></li>
 </ul>
 </div>
-<div class="textblock"><p>There are several interfaces inside GLFW. Each interface has its own area of responsibility and its own naming conventions.</p>
+<div class="textblock"><p >There are several interfaces inside GLFW. Each interface has its own area of responsibility and its own naming conventions.</p>
 <h1><a class="anchor" id="internals_public"></a>
 Public interface</h1>
-<p>The most well-known is the public interface, described in the <a class="el" href="glfw3_8h.html" title="The header of the GLFW 3 API.">glfw3.h</a> header file. This is implemented in source files shared by all platforms and these files contain no platform-specific code. This code usually ends up calling the platform and internal interfaces to do the actual work.</p>
-<p>The public interface uses the OpenGL naming conventions except with GLFW and glfw instead of GL and gl. For struct members, where OpenGL sets no precedent, it use headless camel case.</p>
-<p>Examples: <code>glfwCreateWindow</code>, <code>GLFWwindow</code>, <code>GLFW_RED_BITS</code></p>
+<p >The most well-known is the public interface, described in the <a class="el" href="glfw3_8h.html" title="The header of the GLFW 3 API.">glfw3.h</a> header file. This is implemented in source files shared by all platforms and these files contain no platform-specific code. This code usually ends up calling the platform and internal interfaces to do the actual work.</p>
+<p >The public interface uses the OpenGL naming conventions except with GLFW and glfw instead of GL and gl. For struct members, where OpenGL sets no precedent, it use headless camel case.</p>
+<p >Examples: <code>glfwCreateWindow</code>, <code>GLFWwindow</code>, <code>GLFW_RED_BITS</code></p>
 <h1><a class="anchor" id="internals_native"></a>
 Native interface</h1>
-<p>The <a class="el" href="group__native.html">native interface</a> is a small set of publicly available but platform-specific functions, described in the <a class="el" href="glfw3native_8h.html" title="The header of the native access functions.">glfw3native.h</a> header file and used to gain access to the underlying window, context and (on some platforms) display handles used by the platform interface.</p>
-<p>The function names of the native interface are similar to those of the public interface, but embeds the name of the interface that the returned handle is from.</p>
-<p>Examples: <code>glfwGetX11Window</code>, <code>glfwGetWGLContext</code></p>
+<p >The <a class="el" href="group__native.html">native interface</a> is a small set of publicly available but platform-specific functions, described in the <a class="el" href="glfw3native_8h.html" title="The header of the native access functions.">glfw3native.h</a> header file and used to gain access to the underlying window, context and (on some platforms) display handles used by the platform interface.</p>
+<p >The function names of the native interface are similar to those of the public interface, but embeds the name of the interface that the returned handle is from.</p>
+<p >Examples: <code>glfwGetX11Window</code>, <code>glfwGetWGLContext</code></p>
 <h1><a class="anchor" id="internals_internal"></a>
 Internal interface</h1>
-<p>The internal interface consists of utility functions used by all other interfaces. It is shared code implemented in the same shared source files as the public and event interfaces. The internal interface is described in the internal.h header file.</p>
-<p>The internal interface is in charge of GLFW's global data, which it stores in a <code>_GLFWlibrary</code> struct named <code>_glfw</code>.</p>
-<p>The internal interface uses the same style as the public interface, except all global names have a leading underscore.</p>
-<p>Examples: <code>_glfwIsValidContextConfig</code>, <code>_GLFWwindow</code>, <code>_glfw.monitorCount</code></p>
+<p >The internal interface consists of utility functions used by all other interfaces. It is shared code implemented in the same shared source files as the public and event interfaces. The internal interface is described in the internal.h header file.</p>
+<p >The internal interface is in charge of GLFW's global data, which it stores in a <code>_GLFWlibrary</code> struct named <code>_glfw</code>.</p>
+<p >The internal interface uses the same style as the public interface, except all global names have a leading underscore.</p>
+<p >Examples: <code>_glfwIsValidContextConfig</code>, <code>_GLFWwindow</code>, <code>_glfw.monitorCount</code></p>
 <h1><a class="anchor" id="internals_platform"></a>
 Platform interface</h1>
-<p>The platform interface implements all platform-specific operations as a service to the public interface. This includes event processing. The platform interface is never directly called by application code and never directly calls application-provided callbacks. It is also prohibited from modifying the platform-independent part of the internal structs. Instead, it calls the event interface when events interesting to GLFW are received.</p>
-<p>The platform interface mirrors those parts of the public interface that needs to perform platform-specific operations on some or all platforms. The are also named the same except that the glfw function prefix is replaced by _glfwPlatform.</p>
-<p>Examples: <code>_glfwPlatformCreateWindow</code></p>
-<p>The platform interface also defines structs that contain platform-specific global and per-object state. Their names mirror those of the internal interface, except that an interface-specific suffix is added.</p>
-<p>Examples: <code>_GLFWwindowX11</code>, <code>_GLFWcontextWGL</code></p>
-<p>These structs are incorporated as members into the internal interface structs using special macros that name them after the specific interface used. This prevents shared code from accidentally using these members.</p>
-<p>Examples: <code>window-&gt;win32.handle</code>, <code>_glfw.x11.display</code></p>
+<p >The platform interface implements all platform-specific operations as a service to the public interface. This includes event processing. The platform interface is never directly called by application code and never directly calls application-provided callbacks. It is also prohibited from modifying the platform-independent part of the internal structs. Instead, it calls the event interface when events interesting to GLFW are received.</p>
+<p >The platform interface mirrors those parts of the public interface that needs to perform platform-specific operations on some or all platforms. The are also named the same except that the glfw function prefix is replaced by _glfwPlatform.</p>
+<p >Examples: <code>_glfwPlatformCreateWindow</code></p>
+<p >The platform interface also defines structs that contain platform-specific global and per-object state. Their names mirror those of the internal interface, except that an interface-specific suffix is added.</p>
+<p >Examples: <code>_GLFWwindowX11</code>, <code>_GLFWcontextWGL</code></p>
+<p >These structs are incorporated as members into the internal interface structs using special macros that name them after the specific interface used. This prevents shared code from accidentally using these members.</p>
+<p >Examples: <code>window-&gt;win32.handle</code>, <code>_glfw.x11.display</code></p>
 <h1><a class="anchor" id="internals_event"></a>
 Event interface</h1>
-<p>The event interface is implemented in the same shared source files as the public interface and is responsible for delivering the events it receives to the application, either via callbacks, via window state changes or both.</p>
-<p>The function names of the event interface use a <code>_glfwInput</code> prefix and the ObjectEvent pattern.</p>
-<p>Examples: <code>_glfwInputWindowFocus</code>, <code>_glfwInputCursorPos</code></p>
+<p >The event interface is implemented in the same shared source files as the public interface and is responsible for delivering the events it receives to the application, either via callbacks, via window state changes or both.</p>
+<p >The function names of the event interface use a <code>_glfwInput</code> prefix and the ObjectEvent pattern.</p>
+<p >Examples: <code>_glfwInputWindowFocus</code>, <code>_glfwInputCursorPos</code></p>
 <h1><a class="anchor" id="internals_static"></a>
 Static functions</h1>
-<p>Static functions may be used by any interface and have no prefixes or suffixes. These use headless camel case.</p>
-<p>Examples: <code>isValidElementForJoystick</code></p>
+<p >Static functions may be used by any interface and have no prefixes or suffixes. These use headless camel case.</p>
+<p >Examples: <code>isValidElementForJoystick</code></p>
 <h1><a class="anchor" id="internals_config"></a>
 Configuration macros</h1>
-<p>GLFW uses a number of configuration macros to select at compile time which interfaces and code paths to use. They are defined in the glfw_config.h header file, which is generated from the <code>glfw_config.h.in</code> file by CMake.</p>
-<p>Configuration macros the same style as tokens in the public interface, except with a leading underscore.</p>
-<p>Examples: <code>_GLFW_WIN32</code>, <code>_GLFW_BUILD_DLL</code> </p>
+<p >GLFW uses a number of configuration macros to select at compile time which interfaces and code paths to use. They are defined in the glfw_config.h header file, which is generated from the <code>glfw_config.h.in</code> file by CMake.</p>
+<p >Configuration macros the same style as tokens in the public interface, except with a leading underscore.</p>
+<p >Examples: <code>_GLFW_WIN32</code>, <code>_GLFW_BUILD_DLL</code> </p>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/intro_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: intro.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">intro.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">intro.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 116 - 115
glfw.mod/glfw/docs/html/intro_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Introduction to the API</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Introduction to the API </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Introduction to the API </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -89,8 +90,8 @@ $(function() {
 </li>
 </ul>
 </div>
-<div class="textblock"><p>This guide introduces the basic concepts of GLFW and describes initialization, error handling and API guarantees and limitations. For a broad but shallow tutorial, see <a class="el" href="quick_guide.html">Getting started</a> instead. For details on a specific function in this category, see the <a class="el" href="group__init.html">Initialization, version and error reference</a>.</p>
-<p>There are also guides for the other areas of GLFW.</p>
+<div class="textblock"><p >This guide introduces the basic concepts of GLFW and describes initialization, error handling and API guarantees and limitations. For a broad but shallow tutorial, see <a class="el" href="quick_guide.html">Getting started</a> instead. For details on a specific function in this category, see the <a class="el" href="group__init.html">Initialization, version and error reference</a>.</p>
+<p >There are also guides for the other areas of GLFW.</p>
 <ul>
 <li><a class="el" href="window_guide.html">Window guide</a></li>
 <li><a class="el" href="context_guide.html">Context guide</a></li>
@@ -100,108 +101,116 @@ $(function() {
 </ul>
 <h1><a class="anchor" id="intro_init"></a>
 Initialization and termination</h1>
-<p>Before most GLFW functions may be called, the library must be initialized. This initialization checks what features are available on the machine, enumerates monitors and joysticks, initializes the timer and performs any required platform-specific initialization.</p>
-<p>Only the following functions may be called before the library has been successfully initialized, and only from the main thread.</p>
+<p >Before most GLFW functions may be called, the library must be initialized. This initialization checks what features are available on the machine, enumerates monitors and joysticks, initializes the timer and performs any required platform-specific initialization.</p>
+<p >Only the following functions may be called before the library has been successfully initialized, and only from the main thread.</p>
 <ul>
 <li><a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></li>
-<li><a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a></li>
+<li><a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a></li>
 <li><a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a></li>
 <li><a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a></li>
 <li><a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a></li>
 <li><a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a></li>
 <li><a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></li>
 </ul>
-<p>Calling any other function before successful initialization will cause a <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> error.</p>
+<p >Calling any other function before successful initialization will cause a <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> error.</p>
 <h2><a class="anchor" id="intro_init_init"></a>
 Initializing GLFW</h2>
-<p>The library is initialized with <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>, which returns <code>GLFW_FALSE</code> if an error occurred.</p>
-<div class="fragment"><div class="line"><span class="keywordflow">if</span> (!<a class="code" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>())</div>
+<p >The library is initialized with <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>, which returns <code>GLFW_FALSE</code> if an error occurred.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (!<a class="code hl_function" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a>())</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Handle initialization failure</span></div>
 <div class="line">}</div>
-</div><!-- fragment --><p>If any part of initialization fails, any parts that succeeded are terminated as if <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> had been called. The library only needs to be initialized once and additional calls to an already initialized library will return <code>GLFW_TRUE</code> immediately.</p>
-<p>Once the library has been successfully initialized, it should be terminated before the application exits. Modern systems are very good at freeing resources allocated by programs that exit, but GLFW sometimes has to change global system settings and these might not be restored without termination.</p>
+<div class="ttc" id="agroup__init_html_ga317aac130a235ab08c6db0834907d85e"><div class="ttname"><a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a></div><div class="ttdeci">int glfwInit(void)</div><div class="ttdoc">Initializes the GLFW library.</div></div>
+</div><!-- fragment --><p >If any part of initialization fails, any parts that succeeded are terminated as if <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> had been called. The library only needs to be initialized once and additional calls to an already initialized library will return <code>GLFW_TRUE</code> immediately.</p>
+<p >Once the library has been successfully initialized, it should be terminated before the application exits. Modern systems are very good at freeing resources allocated by programs that exit, but GLFW sometimes has to change global system settings and these might not be restored without termination.</p>
 <h2><a class="anchor" id="init_hints"></a>
 Initialization hints</h2>
-<p>Initialization hints are set before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> and affect how the library behaves until termination. Hints are set with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>(<a class="code" href="group__init.html#gab9c0534709fda03ec8959201da3a9a18">GLFW_JOYSTICK_HAT_BUTTONS</a>, <a class="code" href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a>);</div>
-</div><!-- fragment --><p>The values you set hints to are never reset by GLFW, but they only take effect during initialization. Once GLFW has been initialized, any values you set will be ignored until the library is terminated and initialized again.</p>
-<p>Some hints are platform specific. These may be set on any platform but they will only affect their specific platform. Other platforms will ignore them. Setting these hints requires no platform specific headers or functions.</p>
+<p >Initialization hints are set before <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> and affect how the library behaves until termination. Hints are set with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>(<a class="code hl_define" href="group__init.html#gab9c0534709fda03ec8959201da3a9a18">GLFW_JOYSTICK_HAT_BUTTONS</a>, <a class="code hl_define" href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a>);</div>
+<div class="ttc" id="agroup__init_html_ga110fd1d3f0412822b4f1908c026f724a"><div class="ttname"><a href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a></div><div class="ttdeci">void glfwInitHint(int hint, int value)</div><div class="ttdoc">Sets the specified init hint to the desired value.</div></div>
+<div class="ttc" id="agroup__init_html_gab9c0534709fda03ec8959201da3a9a18"><div class="ttname"><a href="group__init.html#gab9c0534709fda03ec8959201da3a9a18">GLFW_JOYSTICK_HAT_BUTTONS</a></div><div class="ttdeci">#define GLFW_JOYSTICK_HAT_BUTTONS</div><div class="ttdoc">Joystick hat buttons init hint.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1115</div></div>
+<div class="ttc" id="agroup__init_html_gac877fe3b627d21ef3a0a23e0a73ba8c5"><div class="ttname"><a href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a></div><div class="ttdeci">#define GLFW_FALSE</div><div class="ttdoc">Zero.</div><div class="ttdef"><b>Definition:</b> glfw3.h:321</div></div>
+</div><!-- fragment --><p >The values you set hints to are never reset by GLFW, but they only take effect during initialization. Once GLFW has been initialized, any values you set will be ignored until the library is terminated and initialized again.</p>
+<p >Some hints are platform specific. These may be set on any platform but they will only affect their specific platform. Other platforms will ignore them. Setting these hints requires no platform specific headers or functions.</p>
 <h3><a class="anchor" id="init_hints_shared"></a>
 Shared init hints</h3>
-<p><a class="anchor" id="GLFW_JOYSTICK_HAT_BUTTONS"></a><b>GLFW_JOYSTICK_HAT_BUTTONS</b> specifies whether to also expose joystick hats as buttons, for compatibility with earlier versions of GLFW that did not have <a class="el" href="group__input.html#ga2d8d0634bb81c180899aeb07477a67ea">glfwGetJoystickHats</a>. Set this with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
+<p ><a class="anchor" id="GLFW_JOYSTICK_HAT_BUTTONS"></a><b>GLFW_JOYSTICK_HAT_BUTTONS</b> specifies whether to also expose joystick hats as buttons, for compatibility with earlier versions of GLFW that did not have <a class="el" href="group__input.html#ga06e660841b3e79c54da4f54a932c5a2c">glfwGetJoystickHats</a>. Possible values are <code>GLFW_TRUE</code> and <code>GLFW_FALSE</code>.</p>
 <h3><a class="anchor" id="init_hints_osx"></a>
 macOS specific init hints</h3>
-<p><a class="anchor" id="GLFW_COCOA_CHDIR_RESOURCES_hint"></a><b>GLFW_COCOA_CHDIR_RESOURCES</b> specifies whether to set the current directory to the application to the <code>Contents/Resources</code> subdirectory of the application's bundle, if present. Set this with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
-<p><a class="anchor" id="GLFW_COCOA_MENUBAR_hint"></a><b>GLFW_COCOA_MENUBAR</b> specifies whether to create a basic menu bar, either from a nib or manually, when the first window is created, which is when AppKit is initialized. Set this with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
+<p ><a class="anchor" id="GLFW_COCOA_CHDIR_RESOURCES_hint"></a><b>GLFW_COCOA_CHDIR_RESOURCES</b> specifies whether to set the current directory to the application to the <code>Contents/Resources</code> subdirectory of the application's bundle, if present. Set this with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
+<p ><a class="anchor" id="GLFW_COCOA_MENUBAR_hint"></a><b>GLFW_COCOA_MENUBAR</b> specifies whether to create a basic menu bar, either from a nib or manually, when the first window is created, which is when AppKit is initialized. Set this with <a class="el" href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a>.</p>
 <h3><a class="anchor" id="init_hints_values"></a>
 Supported and default values</h3>
 <table class="markdownTable">
 <tr class="markdownTableHead">
-<th class="markdownTableHeadNone">Initialization hint  </th><th class="markdownTableHeadNone">Default value  </th><th class="markdownTableHeadNone">Supported values   </th></tr>
+<th class="markdownTableHeadNone">Initialization hint   </th><th class="markdownTableHeadNone">Default value   </th><th class="markdownTableHeadNone">Supported values    </th></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><a class="el" href="intro_guide.html#GLFW_JOYSTICK_HAT_BUTTONS">GLFW_JOYSTICK_HAT_BUTTONS</a>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>   </td></tr>
+<td class="markdownTableBodyNone"><a class="el" href="intro_guide.html#GLFW_JOYSTICK_HAT_BUTTONS">GLFW_JOYSTICK_HAT_BUTTONS</a>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><a class="el" href="group__init.html#gab937983147a3158d45f88fad7129d9f2">GLFW_COCOA_CHDIR_RESOURCES</a>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>   </td></tr>
+<td class="markdownTableBodyNone"><a class="el" href="group__init.html#gab937983147a3158d45f88fad7129d9f2">GLFW_COCOA_CHDIR_RESOURCES</a>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><a class="el" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">GLFW_COCOA_MENUBAR</a>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>  </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>   </td></tr>
+<td class="markdownTableBodyNone"><a class="el" href="group__init.html#ga71e0b4ce2f2696a84a9b8c5e12dc70cf">GLFW_COCOA_MENUBAR</a>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code>   </td><td class="markdownTableBodyNone"><code>GLFW_TRUE</code> or <code>GLFW_FALSE</code>   </td></tr>
 </table>
 <h2><a class="anchor" id="intro_init_terminate"></a>
 Terminating GLFW</h2>
-<p>Before your application exits, you should terminate the GLFW library if it has been initialized. This is done with <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>();</div>
-</div><!-- fragment --><p>This will destroy any remaining window, monitor and cursor objects, restore any modified gamma ramps, re-enable the screensaver if it had been disabled and free any other resources allocated by GLFW.</p>
-<p>Once the library is terminated, it is as if it had never been initialized and you will need to initialize it again before being able to use GLFW. If the library was not initialized or had already been terminated, it return immediately.</p>
+<p >Before your application exits, you should terminate the GLFW library if it has been initialized. This is done with <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>();</div>
+<div class="ttc" id="agroup__init_html_gaaae48c0a18607ea4a4ba951d939f0901"><div class="ttname"><a href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></div><div class="ttdeci">void glfwTerminate(void)</div><div class="ttdoc">Terminates the GLFW library.</div></div>
+</div><!-- fragment --><p >This will destroy any remaining window, monitor and cursor objects, restore any modified gamma ramps, re-enable the screensaver if it had been disabled and free any other resources allocated by GLFW.</p>
+<p >Once the library is terminated, it is as if it had never been initialized and you will need to initialize it again before being able to use GLFW. If the library was not initialized or had already been terminated, it return immediately.</p>
 <h1><a class="anchor" id="error_handling"></a>
 Error handling</h1>
-<p>Some GLFW functions have return values that indicate an error, but this is often not very helpful when trying to figure out what happened or why it occurred. Other functions have no return value reserved for errors, so error notification needs a separate channel. Finally, far from all GLFW functions have return values.</p>
-<p>The last <a class="el" href="group__errors.html">error code</a> for the calling thread can be queried at any time with <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">int</span> code = <a class="code" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(NULL);</div>
+<p >Some GLFW functions have return values that indicate an error, but this is often not very helpful when trying to figure out what happened or why it occurred. Other functions have no return value reserved for errors, so error notification needs a separate channel. Finally, far from all GLFW functions have return values.</p>
+<p >The last <a class="el" href="group__errors.html">error code</a> for the calling thread can be queried at any time with <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> code = <a class="code hl_function" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(NULL);</div>
 <div class="line"> </div>
-<div class="line"><span class="keywordflow">if</span> (code != <a class="code" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a>)</div>
+<div class="line"><span class="keywordflow">if</span> (code != <a class="code hl_define" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a>)</div>
 <div class="line">    handle_error(code);</div>
-</div><!-- fragment --><p>If no error has occurred since the last call, <a class="el" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a> (zero) is returned. The error is cleared before the function returns.</p>
-<p>The error code indicates the general category of the error. Some error codes, such as <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> has only a single meaning, whereas others like <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a> are used for many different errors.</p>
-<p>GLFW often has more information about an error than its general category. You can retrieve a UTF-8 encoded human-readable description along with the error code. If no error has occurred since the last call, the description is set to <code>NULL</code>.</p>
+<div class="ttc" id="agroup__errors_html_gafa30deee5db4d69c4c93d116ed87dbf4"><div class="ttname"><a href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a></div><div class="ttdeci">#define GLFW_NO_ERROR</div><div class="ttdoc">No error has occurred.</div><div class="ttdef"><b>Definition:</b> glfw3.h:670</div></div>
+<div class="ttc" id="agroup__init_html_ga944986b4ec0b928d488141f92982aa18"><div class="ttname"><a href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a></div><div class="ttdeci">int glfwGetError(const char **description)</div><div class="ttdoc">Returns and clears the last error for the calling thread.</div></div>
+</div><!-- fragment --><p >If no error has occurred since the last call, <a class="el" href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a> (zero) is returned. The error is cleared before the function returns.</p>
+<p >The error code indicates the general category of the error. Some error codes, such as <a class="el" href="group__errors.html#ga2374ee02c177f12e1fa76ff3ed15e14a">GLFW_NOT_INITIALIZED</a> has only a single meaning, whereas others like <a class="el" href="group__errors.html#gad44162d78100ea5e87cdd38426b8c7a1">GLFW_PLATFORM_ERROR</a> are used for many different errors.</p>
+<p >GLFW often has more information about an error than its general category. You can retrieve a UTF-8 encoded human-readable description along with the error code. If no error has occurred since the last call, the description is set to <code>NULL</code>.</p>
 <div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* description;</div>
-<div class="line"><span class="keywordtype">int</span> code = <a class="code" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(&amp;description);</div>
+<div class="line"><span class="keywordtype">int</span> code = <a class="code hl_function" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>(&amp;description);</div>
 <div class="line"> </div>
 <div class="line"><span class="keywordflow">if</span> (description)</div>
 <div class="line">    display_error_message(code, description);</div>
-</div><!-- fragment --><p>The retrieved description string is only valid until the next error occurs. This means you must make a copy of it if you want to keep it.</p>
-<p>You can also set an error callback, which will be called each time an error occurs. It is set with <a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>(error_callback);</div>
-</div><!-- fragment --><p>The error callback receives the same error code and human-readable description returned by <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>.</p>
+</div><!-- fragment --><p >The retrieved description string is only valid until the next error occurs. This means you must make a copy of it if you want to keep it.</p>
+<p >You can also set an error callback, which will be called each time an error occurs. It is set with <a class="el" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a>(error_callback);</div>
+<div class="ttc" id="agroup__init_html_gaff45816610d53f0b83656092a4034f40"><div class="ttname"><a href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a></div><div class="ttdeci">GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)</div><div class="ttdoc">Sets the error callback.</div></div>
+</div><!-- fragment --><p >The error callback receives the same error code and human-readable description returned by <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">void</span> error_callback(<span class="keywordtype">int</span> code, <span class="keyword">const</span> <span class="keywordtype">char</span>* description)</div>
 <div class="line">{</div>
 <div class="line">    display_error_message(code, description);</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>The error callback is called after the error is stored, so calling <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> from within the error callback returns the same values as the callback argument.</p>
-<p>The description string passed to the callback is only valid until the error callback returns. This means you must make a copy of it if you want to keep it.</p>
-<p><b>Reported errors are never fatal.</b> As long as GLFW was successfully initialized, it will remain initialized and in a safe state until terminated regardless of how many errors occur. If an error occurs during initialization that causes <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> to fail, any part of the library that was initialized will be safely terminated.</p>
-<p>Do not rely on a currently invalid call to generate a specific error, as in the future that same call may generate a different error or become valid.</p>
+</div><!-- fragment --><p >The error callback is called after the error is stored, so calling <a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a> from within the error callback returns the same values as the callback argument.</p>
+<p >The description string passed to the callback is only valid until the error callback returns. This means you must make a copy of it if you want to keep it.</p>
+<p ><b>Reported errors are never fatal.</b> As long as GLFW was successfully initialized, it will remain initialized and in a safe state until terminated regardless of how many errors occur. If an error occurs during initialization that causes <a class="el" href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a> to fail, any part of the library that was initialized will be safely terminated.</p>
+<p >Do not rely on a currently invalid call to generate a specific error, as in the future that same call may generate a different error or become valid.</p>
 <h1><a class="anchor" id="coordinate_systems"></a>
 Coordinate systems</h1>
-<p>GLFW has two primary coordinate systems: the <em>virtual screen</em> and the window <em>content area</em> or <em>content area</em>. Both use the same unit: <em>virtual screen coordinates</em>, or just <em>screen coordinates</em>, which don't necessarily correspond to pixels.</p>
-<p><img src="spaces.svg" alt="" width="90%" class="inline"/></p>
-<p>Both the virtual screen and the content area coordinate systems have the X-axis pointing to the right and the Y-axis pointing down.</p>
-<p>Window and monitor positions are specified as the position of the upper-left corners of their content areas relative to the virtual screen, while cursor positions are specified relative to a window's content area.</p>
-<p>Because the origin of the window's content area coordinate system is also the point from which the window position is specified, you can translate content area coordinates to the virtual screen by adding the window position. The window frame, when present, extends out from the content area but does not affect the window position.</p>
-<p>Almost all positions and sizes in GLFW are measured in screen coordinates relative to one of the two origins above. This includes cursor positions, window positions and sizes, window frame sizes, monitor positions and video mode resolutions.</p>
-<p>Two exceptions are the <a class="el" href="monitor_guide.html#monitor_size">monitor physical size</a>, which is measured in millimetres, and <a class="el" href="window_guide.html#window_fbsize">framebuffer size</a>, which is measured in pixels.</p>
-<p>Pixels and screen coordinates may map 1:1 on your machine, but they won't on every other machine, for example on a Mac with a Retina display. The ratio between screen coordinates and pixels may also change at run-time depending on which monitor the window is currently considered to be on.</p>
+<p >GLFW has two primary coordinate systems: the <em>virtual screen</em> and the window <em>content area</em> or <em>content area</em>. Both use the same unit: <em>virtual screen coordinates</em>, or just <em>screen coordinates</em>, which don't necessarily correspond to pixels.</p>
+<p ><img src="spaces.svg" alt="" style="pointer-events: none;" width="90%" class="inline"/></p>
+<p >Both the virtual screen and the content area coordinate systems have the X-axis pointing to the right and the Y-axis pointing down.</p>
+<p >Window and monitor positions are specified as the position of the upper-left corners of their content areas relative to the virtual screen, while cursor positions are specified relative to a window's content area.</p>
+<p >Because the origin of the window's content area coordinate system is also the point from which the window position is specified, you can translate content area coordinates to the virtual screen by adding the window position. The window frame, when present, extends out from the content area but does not affect the window position.</p>
+<p >Almost all positions and sizes in GLFW are measured in screen coordinates relative to one of the two origins above. This includes cursor positions, window positions and sizes, window frame sizes, monitor positions and video mode resolutions.</p>
+<p >Two exceptions are the <a class="el" href="monitor_guide.html#monitor_size">monitor physical size</a>, which is measured in millimetres, and <a class="el" href="window_guide.html#window_fbsize">framebuffer size</a>, which is measured in pixels.</p>
+<p >Pixels and screen coordinates may map 1:1 on your machine, but they won't on every other machine, for example on a Mac with a Retina display. The ratio between screen coordinates and pixels may also change at run-time depending on which monitor the window is currently considered to be on.</p>
 <h1><a class="anchor" id="guarantees_limitations"></a>
 Guarantees and limitations</h1>
-<p>This section describes the conditions under which GLFW can be expected to function, barring bugs in the operating system or drivers. Use of GLFW outside of these limits may work on some platforms, or on some machines, or some of the time, or on some versions of GLFW, but it may break at any time and this will not be considered a bug.</p>
+<p >This section describes the conditions under which GLFW can be expected to function, barring bugs in the operating system or drivers. Use of GLFW outside of these limits may work on some platforms, or on some machines, or some of the time, or on some versions of GLFW, but it may break at any time and this will not be considered a bug.</p>
 <h2><a class="anchor" id="lifetime"></a>
 Pointer lifetimes</h2>
-<p>GLFW will never free any pointer you provide to it and you must never free any pointer it provides to you.</p>
-<p>Many GLFW functions return pointers to dynamically allocated structures, strings or arrays, and some callbacks are provided with strings or arrays. These are always managed by GLFW and should never be freed by the application. The lifetime of these pointers is documented for each GLFW function and callback. If you need to keep this data, you must copy it before its lifetime expires.</p>
-<p>Many GLFW functions accept pointers to structures or strings allocated by the application. These are never freed by GLFW and are always the responsibility of the application. If GLFW needs to keep the data in these structures or strings, it is copied before the function returns.</p>
-<p>Pointer lifetimes are guaranteed not to be shortened in future minor or patch releases.</p>
+<p >GLFW will never free any pointer you provide to it and you must never free any pointer it provides to you.</p>
+<p >Many GLFW functions return pointers to dynamically allocated structures, strings or arrays, and some callbacks are provided with strings or arrays. These are always managed by GLFW and should never be freed by the application. The lifetime of these pointers is documented for each GLFW function and callback. If you need to keep this data, you must copy it before its lifetime expires.</p>
+<p >Many GLFW functions accept pointers to structures or strings allocated by the application. These are never freed by GLFW and are always the responsibility of the application. If GLFW needs to keep the data in these structures or strings, it is copied before the function returns.</p>
+<p >Pointer lifetimes are guaranteed not to be shortened in future minor or patch releases.</p>
 <h2><a class="anchor" id="reentrancy"></a>
 Reentrancy</h2>
-<p>GLFW event processing and object destruction are not reentrant. This means that the following functions must not be called from any callback function:</p>
+<p >GLFW event processing and object destruction are not reentrant. This means that the following functions must not be called from any callback function:</p>
 <ul>
 <li><a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a></li>
 <li><a class="el" href="group__input.html#ga81b952cd1764274d0db7fb3c5a79ba6a">glfwDestroyCursor</a></li>
@@ -210,118 +219,110 @@ Reentrancy</h2>
 <li><a class="el" href="group__window.html#ga605a178db92f1a7f1a925563ef3ea2cf">glfwWaitEventsTimeout</a></li>
 <li><a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></li>
 </ul>
-<p>These functions may be made reentrant in future minor or patch releases, but functions not on this list will not be made non-reentrant.</p>
+<p >These functions may be made reentrant in future minor or patch releases, but functions not on this list will not be made non-reentrant.</p>
 <h2><a class="anchor" id="thread_safety"></a>
 Thread safety</h2>
-<p>Most GLFW functions must only be called from the main thread (the thread that calls main), but some may be called from any thread once the library has been initialized. Before initialization the whole library is thread-unsafe.</p>
-<p>The reference documentation for every GLFW function states whether it is limited to the main thread.</p>
-<p>Initialization, termination, event processing and the creation and destruction of windows, cursors and OpenGL and OpenGL ES contexts are all restricted to the main thread due to limitations of one or several platforms.</p>
-<p>Because event processing must be performed on the main thread, all callbacks except for the error callback will only be called on that thread. The error callback may be called on any thread, as any GLFW function may generate errors.</p>
-<p>The error code and description may be queried from any thread.</p>
+<p >Most GLFW functions must only be called from the main thread (the thread that calls main), but some may be called from any thread once the library has been initialized. Before initialization the whole library is thread-unsafe.</p>
+<p >The reference documentation for every GLFW function states whether it is limited to the main thread.</p>
+<p >Initialization, termination, event processing and the creation and destruction of windows, cursors and OpenGL and OpenGL ES contexts are all restricted to the main thread due to limitations of one or several platforms.</p>
+<p >Because event processing must be performed on the main thread, all callbacks except for the error callback will only be called on that thread. The error callback may be called on any thread, as any GLFW function may generate errors.</p>
+<p >The error code and description may be queried from any thread.</p>
 <ul>
 <li><a class="el" href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a></li>
 </ul>
-<p>Empty events may be posted from any thread.</p>
+<p >Empty events may be posted from any thread.</p>
 <ul>
 <li><a class="el" href="group__window.html#gab5997a25187e9fd5c6f2ecbbc8dfd7e9">glfwPostEmptyEvent</a></li>
 </ul>
-<p>The window user pointer and close flag may be read and written from any thread, but this is not synchronized by GLFW.</p>
+<p >The window user pointer and close flag may be read and written from any thread, but this is not synchronized by GLFW.</p>
 <ul>
-<li><a class="el" href="group__window.html#ga17807ce0f45ac3f8bb50d6dcc59a4e06">glfwGetWindowUserPointer</a></li>
+<li><a class="el" href="group__window.html#gae77a4add0d2023ca21ff1443ced01653">glfwGetWindowUserPointer</a></li>
 <li><a class="el" href="group__window.html#ga3d2fc6026e690ab31a13f78bc9fd3651">glfwSetWindowUserPointer</a></li>
 <li><a class="el" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a></li>
 <li><a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a></li>
 </ul>
-<p>These functions for working with OpenGL and OpenGL ES contexts may be called from any thread, but the window object is not synchronized by GLFW.</p>
+<p >These functions for working with OpenGL and OpenGL ES contexts may be called from any thread, but the window object is not synchronized by GLFW.</p>
 <ul>
 <li><a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a></li>
-<li><a class="el" href="group__context.html#gac84759b1f6c2d271a4fea8ae89ec980d">glfwGetCurrentContext</a></li>
+<li><a class="el" href="group__context.html#gad94e80185397a6cf5fe2ab30567af71c">glfwGetCurrentContext</a></li>
 <li><a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a></li>
 <li><a class="el" href="group__context.html#ga6d4e0cdf151b5e579bd67f13202994ed">glfwSwapInterval</a></li>
 <li><a class="el" href="group__context.html#ga87425065c011cef1ebd6aac75e059dfa">glfwExtensionSupported</a></li>
 <li><a class="el" href="group__context.html#ga35f1837e6f666781842483937612f163">glfwGetProcAddress</a></li>
 </ul>
-<p>The raw timer functions may be called from any thread.</p>
+<p >The raw timer functions may be called from any thread.</p>
 <ul>
 <li><a class="el" href="group__input.html#ga3289ee876572f6e91f06df3a24824443">glfwGetTimerFrequency</a></li>
 <li><a class="el" href="group__input.html#ga09b2bd37d328e0b9456c7ec575cc26aa">glfwGetTimerValue</a></li>
 </ul>
-<p>The regular timer may be used from any thread, but reading and writing the timer offset is not synchronized by GLFW.</p>
+<p >The regular timer may be used from any thread, but reading and writing the timer offset is not synchronized by GLFW.</p>
 <ul>
 <li><a class="el" href="group__input.html#gaa6cf4e7a77158a3b8fd00328b1720a4a">glfwGetTime</a></li>
 <li><a class="el" href="group__input.html#gaf59589ef6e8b8c8b5ad184b25afd4dc0">glfwSetTime</a></li>
 </ul>
-<p>Library version information may be queried from any thread.</p>
+<p >Library version information may be queried from any thread.</p>
 <ul>
 <li><a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></li>
-<li><a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a></li>
+<li><a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a></li>
 </ul>
-<p>All Vulkan related functions may be called from any thread.</p>
+<p >All Vulkan related functions may be called from any thread.</p>
 <ul>
 <li><a class="el" href="group__vulkan.html#ga2e7f30931e02464b5bc8d0d4b6f9fe2b">glfwVulkanSupported</a></li>
-<li><a class="el" href="group__vulkan.html#ga1abcbe61033958f22f63ef82008874b1">glfwGetRequiredInstanceExtensions</a></li>
+<li><a class="el" href="group__vulkan.html#ga99ad342d82f4a3421e2864978cb6d1d6">glfwGetRequiredInstanceExtensions</a></li>
 <li><a class="el" href="group__vulkan.html#gadf228fac94c5fd8f12423ec9af9ff1e9">glfwGetInstanceProcAddress</a></li>
 <li><a class="el" href="group__vulkan.html#gaff3823355cdd7e2f3f9f4d9ea9518d92">glfwGetPhysicalDevicePresentationSupport</a></li>
 <li><a class="el" href="group__vulkan.html#ga1a24536bec3f80b08ead18e28e6ae965">glfwCreateWindowSurface</a></li>
 </ul>
-<p>GLFW uses synchronization objects internally only to manage the per-thread context and error states. Additional synchronization is left to the application.</p>
-<p>Functions that may currently be called from any thread will always remain so, but functions that are currently limited to the main thread may be updated to allow calls from any thread in future releases.</p>
+<p >GLFW uses synchronization objects internally only to manage the per-thread context and error states. Additional synchronization is left to the application.</p>
+<p >Functions that may currently be called from any thread will always remain so, but functions that are currently limited to the main thread may be updated to allow calls from any thread in future releases.</p>
 <h2><a class="anchor" id="compatibility"></a>
 Version compatibility</h2>
-<p>GLFW uses <a href="https://semver.org/">Semantic Versioning</a>. This guarantees source and binary backward compatibility with earlier minor versions of the API. This means that you can drop in a newer version of the library and existing programs will continue to compile and existing binaries will continue to run.</p>
-<p>Once a function or constant has been added, the signature of that function or value of that constant will remain unchanged until the next major version of GLFW. No compatibility of any kind is guaranteed between major versions.</p>
-<p>Undocumented behavior, i.e. behavior that is not described in the documentation, may change at any time until it is documented.</p>
-<p>If the reference documentation and the implementation differ, the reference documentation will almost always take precedence and the implementation will be fixed in the next release. The reference documentation will also take precedence over anything stated in a guide.</p>
+<p >GLFW uses <a href="https://semver.org/">Semantic Versioning</a>. This guarantees source and binary backward compatibility with earlier minor versions of the API. This means that you can drop in a newer version of the library and existing programs will continue to compile and existing binaries will continue to run.</p>
+<p >Once a function or constant has been added, the signature of that function or value of that constant will remain unchanged until the next major version of GLFW. No compatibility of any kind is guaranteed between major versions.</p>
+<p >Undocumented behavior, i.e. behavior that is not described in the documentation, may change at any time until it is documented.</p>
+<p >If the reference documentation and the implementation differ, the reference documentation will almost always take precedence and the implementation will be fixed in the next release. The reference documentation will also take precedence over anything stated in a guide.</p>
 <h2><a class="anchor" id="event_order"></a>
 Event order</h2>
-<p>The order of arrival of related events is not guaranteed to be consistent across platforms. The exception is synthetic key and mouse button release events, which are always delivered after the window defocus event.</p>
+<p >The order of arrival of related events is not guaranteed to be consistent across platforms. The exception is synthetic key and mouse button release events, which are always delivered after the window defocus event.</p>
 <h1><a class="anchor" id="intro_version"></a>
 Version management</h1>
-<p>GLFW provides mechanisms for identifying what version of GLFW your application was compiled against as well as what version it is currently running against. If you are loading GLFW dynamically (not just linking dynamically), you can use this to verify that the library binary is compatible with your application.</p>
+<p >GLFW provides mechanisms for identifying what version of GLFW your application was compiled against as well as what version it is currently running against. If you are loading GLFW dynamically (not just linking dynamically), you can use this to verify that the library binary is compatible with your application.</p>
 <h2><a class="anchor" id="intro_version_compile"></a>
 Compile-time version</h2>
-<p>The compile-time version of GLFW is provided by the GLFW header with the <code>GLFW_VERSION_MAJOR</code>, <code>GLFW_VERSION_MINOR</code> and <code>GLFW_VERSION_REVISION</code> macros.</p>
+<p >The compile-time version of GLFW is provided by the GLFW header with the <code>GLFW_VERSION_MAJOR</code>, <code>GLFW_VERSION_MINOR</code> and <code>GLFW_VERSION_REVISION</code> macros.</p>
 <div class="fragment"><div class="line">printf(<span class="stringliteral">&quot;Compiled against GLFW %i.%i.%i\n&quot;</span>,</div>
-<div class="line">       <a class="code" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a>,</div>
-<div class="line">       <a class="code" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a>,</div>
-<div class="line">       <a class="code" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a>);</div>
+<div class="line">       <a class="code hl_define" href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a>,</div>
+<div class="line">       <a class="code hl_define" href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a>,</div>
+<div class="line">       <a class="code hl_define" href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a>);</div>
+<div class="ttc" id="agroup__init_html_ga6337d9ea43b22fc529b2bba066b4a576"><div class="ttname"><a href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a></div><div class="ttdeci">#define GLFW_VERSION_MAJOR</div><div class="ttdoc">The major version number of the GLFW header.</div><div class="ttdef"><b>Definition:</b> glfw3.h:287</div></div>
+<div class="ttc" id="agroup__init_html_gab72ae2e2035d9ea461abc3495eac0502"><div class="ttname"><a href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a></div><div class="ttdeci">#define GLFW_VERSION_REVISION</div><div class="ttdoc">The revision number of the GLFW header.</div><div class="ttdef"><b>Definition:</b> glfw3.h:301</div></div>
+<div class="ttc" id="agroup__init_html_gaf80d40f0aea7088ff337606e9c48f7a3"><div class="ttname"><a href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a></div><div class="ttdeci">#define GLFW_VERSION_MINOR</div><div class="ttdoc">The minor version number of the GLFW header.</div><div class="ttdef"><b>Definition:</b> glfw3.h:294</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="intro_version_runtime"></a>
 Run-time version</h2>
-<p>The run-time version can be retrieved with <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>, a function that may be called regardless of whether GLFW is initialized.</p>
+<p >The run-time version can be retrieved with <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>, a function that may be called regardless of whether GLFW is initialized.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> major, minor, revision;</div>
-<div class="line"><a class="code" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>(&amp;major, &amp;minor, &amp;revision);</div>
+<div class="line"><a class="code hl_function" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a>(&amp;major, &amp;minor, &amp;revision);</div>
 <div class="line"> </div>
 <div class="line">printf(<span class="stringliteral">&quot;Running against GLFW %i.%i.%i\n&quot;</span>, major, minor, revision);</div>
+<div class="ttc" id="agroup__init_html_ga9f8ffaacf3c269cc48eafbf8b9b71197"><div class="ttname"><a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></div><div class="ttdeci">void glfwGetVersion(int *major, int *minor, int *rev)</div><div class="ttdoc">Retrieves the version of the GLFW library.</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="intro_version_string"></a>
 Version string</h2>
-<p>GLFW 3 also provides a compile-time generated version string that describes the version, platform, compiler and any platform-specific compile-time options. This is primarily intended for submitting bug reports, to allow developers to see which code paths are enabled in a binary.</p>
-<p>The version string is returned by <a class="el" href="group__init.html#ga23d47dc013fce2bf58036da66079a657">glfwGetVersionString</a>, a function that may be called regardless of whether GLFW is initialized.</p>
-<p><b>Do not use the version string</b> to parse the GLFW library version. The <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> function already provides the version of the running library binary.</p>
-<p>The format of the string is as follows:</p><ul>
+<p >GLFW 3 also provides a compile-time generated version string that describes the version, platform, compiler and any platform-specific compile-time options. This is primarily intended for submitting bug reports, to allow developers to see which code paths are enabled in a binary.</p>
+<p >The version string is returned by <a class="el" href="group__init.html#ga026abd003c8e6501981ab1662062f1c0">glfwGetVersionString</a>, a function that may be called regardless of whether GLFW is initialized.</p>
+<p ><b>Do not use the version string</b> to parse the GLFW library version. The <a class="el" href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a> function already provides the version of the running library binary.</p>
+<p >The format of the string is as follows:</p><ul>
 <li>The version of GLFW</li>
 <li>The name of the window system API</li>
 <li>The name of the context creation API</li>
 <li>Any additional options or APIs</li>
 </ul>
-<p>For example, when compiling GLFW 3.0 with MinGW using the Win32 and WGL back ends, the version string may look something like this:</p>
+<p >For example, when compiling GLFW 3.0 with MinGW using the Win32 and WGL back ends, the version string may look something like this:</p>
 <div class="fragment"><div class="line">3.0.0 Win32 WGL MinGW</div>
 </div><!-- fragment --> </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="agroup__init_html_ga944986b4ec0b928d488141f92982aa18"><div class="ttname"><a href="group__init.html#ga944986b4ec0b928d488141f92982aa18">glfwGetError</a></div><div class="ttdeci">int glfwGetError(const char **description)</div><div class="ttdoc">Returns and clears the last error for the calling thread.</div></div>
-<div class="ttc" id="agroup__init_html_gaaae48c0a18607ea4a4ba951d939f0901"><div class="ttname"><a href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a></div><div class="ttdeci">void glfwTerminate(void)</div><div class="ttdoc">Terminates the GLFW library.</div></div>
-<div class="ttc" id="agroup__init_html_ga110fd1d3f0412822b4f1908c026f724a"><div class="ttname"><a href="group__init.html#ga110fd1d3f0412822b4f1908c026f724a">glfwInitHint</a></div><div class="ttdeci">void glfwInitHint(int hint, int value)</div><div class="ttdoc">Sets the specified init hint to the desired value.</div></div>
-<div class="ttc" id="agroup__init_html_gac877fe3b627d21ef3a0a23e0a73ba8c5"><div class="ttname"><a href="group__init.html#gac877fe3b627d21ef3a0a23e0a73ba8c5">GLFW_FALSE</a></div><div class="ttdeci">#define GLFW_FALSE</div><div class="ttdoc">Zero.</div><div class="ttdef"><b>Definition:</b> glfw3.h:289</div></div>
-<div class="ttc" id="agroup__init_html_gaf80d40f0aea7088ff337606e9c48f7a3"><div class="ttname"><a href="group__init.html#gaf80d40f0aea7088ff337606e9c48f7a3">GLFW_VERSION_MINOR</a></div><div class="ttdeci">#define GLFW_VERSION_MINOR</div><div class="ttdoc">The minor version number of the GLFW library.</div><div class="ttdef"><b>Definition:</b> glfw3.h:262</div></div>
-<div class="ttc" id="agroup__init_html_gab72ae2e2035d9ea461abc3495eac0502"><div class="ttname"><a href="group__init.html#gab72ae2e2035d9ea461abc3495eac0502">GLFW_VERSION_REVISION</a></div><div class="ttdeci">#define GLFW_VERSION_REVISION</div><div class="ttdoc">The revision number of the GLFW library.</div><div class="ttdef"><b>Definition:</b> glfw3.h:269</div></div>
-<div class="ttc" id="agroup__init_html_gab9c0534709fda03ec8959201da3a9a18"><div class="ttname"><a href="group__init.html#gab9c0534709fda03ec8959201da3a9a18">GLFW_JOYSTICK_HAT_BUTTONS</a></div><div class="ttdeci">#define GLFW_JOYSTICK_HAT_BUTTONS</div><div class="ttdoc">Joystick hat buttons init hint.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1083</div></div>
-<div class="ttc" id="agroup__init_html_ga317aac130a235ab08c6db0834907d85e"><div class="ttname"><a href="group__init.html#ga317aac130a235ab08c6db0834907d85e">glfwInit</a></div><div class="ttdeci">int glfwInit(void)</div><div class="ttdoc">Initializes the GLFW library.</div></div>
-<div class="ttc" id="agroup__init_html_ga6337d9ea43b22fc529b2bba066b4a576"><div class="ttname"><a href="group__init.html#ga6337d9ea43b22fc529b2bba066b4a576">GLFW_VERSION_MAJOR</a></div><div class="ttdeci">#define GLFW_VERSION_MAJOR</div><div class="ttdoc">The major version number of the GLFW library.</div><div class="ttdef"><b>Definition:</b> glfw3.h:255</div></div>
-<div class="ttc" id="agroup__init_html_gaff45816610d53f0b83656092a4034f40"><div class="ttname"><a href="group__init.html#gaff45816610d53f0b83656092a4034f40">glfwSetErrorCallback</a></div><div class="ttdeci">GLFWerrorfun glfwSetErrorCallback(GLFWerrorfun callback)</div><div class="ttdoc">Sets the error callback.</div></div>
-<div class="ttc" id="agroup__init_html_ga9f8ffaacf3c269cc48eafbf8b9b71197"><div class="ttname"><a href="group__init.html#ga9f8ffaacf3c269cc48eafbf8b9b71197">glfwGetVersion</a></div><div class="ttdeci">void glfwGetVersion(int *major, int *minor, int *rev)</div><div class="ttdoc">Retrieves the version of the GLFW library.</div></div>
-<div class="ttc" id="agroup__errors_html_gafa30deee5db4d69c4c93d116ed87dbf4"><div class="ttname"><a href="group__errors.html#gafa30deee5db4d69c4c93d116ed87dbf4">GLFW_NO_ERROR</a></div><div class="ttdeci">#define GLFW_NO_ERROR</div><div class="ttdoc">No error has occurred.</div><div class="ttdef"><b>Definition:</b> glfw3.h:638</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 0 - 1
glfw.mod/glfw/docs/html/jquery.js


+ 12 - 11
glfw.mod/glfw/docs/html/main_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: main.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">main.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">main.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 107 - 22
glfw.mod/glfw/docs/html/menu.js

@@ -1,25 +1,26 @@
 /*
- @licstart  The following is the entire license notice for the
- JavaScript code in this file.
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
 
- Copyright (C) 1997-2017 by Dimitri van Heesch
+ The MIT License (MIT)
 
- This program is free software; you can redistribute it and/or modify
- it under the terms of the GNU General Public License as published by
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
+ Copyright (C) 1997-2020 by Dimitri van Heesch
 
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- GNU General Public License for more details.
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
- You should have received a copy of the GNU General Public License along
- with this program; if not, write to the Free Software Foundation, Inc.,
- 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
 
- @licend  The above is the entire license notice
- for the JavaScript code in this file
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
  */
 function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
   function makeTree(data,relPath) {
@@ -27,7 +28,15 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
     if ('children' in data) {
       result+='<ul>';
       for (var i in data.children) {
-        result+='<li><a href="'+relPath+data.children[i].url+'">'+
+        var url;
+        var link;
+        link = data.children[i].url;
+        if (link.substring(0,1)=='^') {
+          url = link.substring(1);
+        } else {
+          url = relPath+link;
+        }
+        result+='<li><a href="'+url+'">'+
                                 data.children[i].text+'</a>'+
                                 makeTree(data.children[i],relPath)+'</li>';
       }
@@ -35,15 +44,91 @@ function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
     }
     return result;
   }
-
-  $('#main-nav').append(makeTree(menudata,relPath));
-  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  var searchBox;
   if (searchEnabled) {
     if (serverSide) {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><div class="left"><form id="FSearchBox" action="'+relPath+searchPage+'" method="get"><img id="MSearchSelect" src="'+relPath+'search/mag.png" alt=""/><input type="text" id="MSearchField" name="query" value="'+search+'" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)"></form></div><div class="right"></div></div></li>');
+      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<div class="left">'+
+                  '<form id="FSearchBox" action="'+relPath+searchPage+
+                    '" method="get"><img id="MSearchSelect" src="'+
+                    relPath+'search/mag.svg" alt=""/>'+
+                  '<input type="text" id="MSearchField" name="query" value="'+search+
+                    '" size="20" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)"'+
+                    ' onblur="searchBox.OnSearchFieldFocus(false)">'+
+                  '</form>'+
+                 '</div>'+
+                 '<div class="right"></div>'+
+                '</div>';
     } else {
-      $('#main-menu').append('<li style="float:right"><div id="MSearchBox" class="MSearchBoxInactive"><span class="left"><img id="MSearchSelect" src="'+relPath+'search/mag_sel.png" onmouseover="return searchBox.OnSearchSelectShow()" onmouseout="return searchBox.OnSearchSelectHide()" alt=""/><input type="text" id="MSearchField" value="'+search+'" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" onblur="searchBox.OnSearchFieldFocus(false)" onkeyup="searchBox.OnSearchFieldChange(event)"/></span><span class="right"><a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="'+relPath+'search/close.png" alt=""/></a></span></div></li>');
+      searchBox='<div id="MSearchBox" class="MSearchBoxInactive">'+
+                 '<span class="left">'+
+                  '<img id="MSearchSelect" src="'+relPath+
+                     'search/mag_sel.svg" onmouseover="return searchBox.OnSearchSelectShow()"'+
+                     ' onmouseout="return searchBox.OnSearchSelectHide()" alt=""/>'+
+                  '<input type="text" id="MSearchField" value="'+search+
+                    '" accesskey="S" onfocus="searchBox.OnSearchFieldFocus(true)" '+
+                    'onblur="searchBox.OnSearchFieldFocus(false)" '+
+                    'onkeyup="searchBox.OnSearchFieldChange(event)"/>'+
+                 '</span>'+
+                 '<span class="right"><a id="MSearchClose" '+
+                  'href="javascript:searchBox.CloseResultsWindow()">'+
+                  '<img id="MSearchCloseImg" border="0" src="'+relPath+
+                  'search/close.svg" alt=""/></a>'
+                 '</span>'
+                '</div>';
+    }
+  }
+
+  $('#main-nav').before('<div class="sm sm-dox"><input id="main-menu-state" type="checkbox"/>'+
+                        '<label class="main-menu-btn" for="main-menu-state">'+
+                        '<span class="main-menu-btn-icon"></span> '+
+                        'Toggle main menu visibility</label>'+
+                        '<span id="searchBoxPos1" style="position:absolute;right:8px;top:8px;height:36px;"></span>'+
+                        '</div>');
+  $('#main-nav').append(makeTree(menudata,relPath));
+  $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
+  if (searchBox) {
+    $('#main-menu').append('<li id="searchBoxPos2" style="float:right"></li>');
+  }
+  var $mainMenuState = $('#main-menu-state');
+  var prevWidth = 0;
+  if ($mainMenuState.length) {
+    function initResizableIfExists() {
+      if (typeof initResizable==='function') initResizable();
+    }
+    // animate mobile menu
+    $mainMenuState.change(function(e) {
+      var $menu = $('#main-menu');
+      var options = { duration: 250, step: initResizableIfExists };
+      if (this.checked) {
+        options['complete'] = function() { $menu.css('display', 'block') };
+        $menu.hide().slideDown(options);
+      } else {
+        options['complete'] = function() { $menu.css('display', 'none') };
+        $menu.show().slideUp(options);
+      }
+    });
+    // set default menu visibility
+    function resetState() {
+      var $menu = $('#main-menu');
+      var $mainMenuState = $('#main-menu-state');
+      var newWidth = $(window).outerWidth();
+      if (newWidth!=prevWidth) {
+        if ($(window).outerWidth()<768) {
+          $mainMenuState.prop('checked',false); $menu.hide();
+          $('#searchBoxPos1').html(searchBox);
+          $('#searchBoxPos2').hide();
+        } else {
+          $menu.show();
+          $('#searchBoxPos1').empty();
+          $('#searchBoxPos2').html(searchBox);
+          $('#searchBoxPos2').show();
+        }
+        prevWidth = newWidth;
+      }
     }
+    $(window).ready(function() { resetState(); initResizableIfExists(); });
+    $(window).resize(resetState);
   }
   $('#main-menu').smartmenus();
 }

+ 17 - 15
glfw.mod/glfw/docs/html/menudata.js

@@ -1,24 +1,26 @@
 /*
-@licstart  The following is the entire license notice for the
-JavaScript code in this file.
+ @licstart  The following is the entire license notice for the JavaScript code in this file.
 
-Copyright (C) 1997-2019 by Dimitri van Heesch
+ The MIT License (MIT)
 
-This program is free software; you can redistribute it and/or modify
-it under the terms of version 2 of the GNU General Public License as published by
-the Free Software Foundation
+ Copyright (C) 1997-2020 by Dimitri van Heesch
 
-This program is distributed in the hope that it will be useful,
-but WITHOUT ANY WARRANTY; without even the implied warranty of
-MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-GNU General Public License for more details.
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ and associated documentation files (the "Software"), to deal in the Software without restriction,
+ including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ furnished to do so, subject to the following conditions:
 
-You should have received a copy of the GNU General Public License along
-with this program; if not, write to the Free Software Foundation, Inc.,
-51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+ The above copyright notice and this permission notice shall be included in all copies or
+ substantial portions of the Software.
 
-@licend  The above is the entire license notice
-for the JavaScript code in this file
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
+ BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
+ DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+ @licend  The above is the entire license notice for the JavaScript code in this file
 */
 var menudata={children:[
 {text:"Introduction",url:"index.html"},

+ 13 - 12
glfw.mod/glfw/docs/html/modules.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 </div><!-- top -->
 <!-- window showing the filter options -->
@@ -59,8 +61,7 @@ $(function() {
 </div>
 
 <div class="header">
-  <div class="headertitle">
-<div class="title">Reference</div>  </div>
+  <div class="headertitle"><div class="title">Reference</div></div>
 </div><!--header-->
 <div class="contents">
 <div class="textblock">Here is a list of all modules:</div><div class="directory">
@@ -79,14 +80,14 @@ $(function() {
 <tr id="row_2_7_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a class="el" href="group__shapes.html" target="_self">Standard cursor shapes</a></td><td class="desc">Standard system cursor shapes </td></tr>
 <tr id="row_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__monitor.html" target="_self">Monitor reference</a></td><td class="desc">Functions and types related to monitors </td></tr>
 <tr id="row_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__native.html" target="_self">Native access</a></td><td class="desc">Functions related to accessing native handles </td></tr>
-<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__vulkan.html" target="_self">Vulkan reference</a></td><td class="desc">Functions and types related to Vulkan </td></tr>
+<tr id="row_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__vulkan.html" target="_self">Vulkan support reference</a></td><td class="desc">Functions and types related to Vulkan </td></tr>
 <tr id="row_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><a class="el" href="group__window.html" target="_self">Window reference</a></td><td class="desc">Functions and types related to windows </td></tr>
 </table>
 </div><!-- directory -->
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/monitor_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: monitor.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">monitor.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">monitor.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 90 - 89
glfw.mod/glfw/docs/html/monitor_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Monitor guide</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Monitor guide </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Monitor guide </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -80,7 +81,7 @@ $(function() {
 </li>
 </ul>
 </div>
-<div class="textblock"><p>This guide introduces the monitor related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__monitor.html">Monitor reference</a>. There are also guides for the other areas of GLFW.</p>
+<div class="textblock"><p >This guide introduces the monitor related functions of GLFW. For details on a specific function in this category, see the <a class="el" href="group__monitor.html">Monitor reference</a>. There are also guides for the other areas of GLFW.</p>
 <ul>
 <li><a class="el" href="intro_guide.html">Introduction to the API</a></li>
 <li><a class="el" href="window_guide.html">Window guide</a></li>
@@ -90,131 +91,131 @@ $(function() {
 </ul>
 <h1><a class="anchor" id="monitor_object"></a>
 Monitor objects</h1>
-<p>A monitor object represents a currently connected monitor and is represented as a pointer to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>. Monitor objects cannot be created or destroyed by the application and retain their addresses until the monitors they represent are disconnected or until the library is <a class="el" href="intro_guide.html#intro_init_terminate">terminated</a>.</p>
-<p>Each monitor has a current video mode, a list of supported video modes, a virtual position, a human-readable name, an estimated physical size and a gamma ramp. One of the monitors is the primary monitor.</p>
-<p>The virtual position of a monitor is in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a> and, together with the current video mode, describes the viewports that the connected monitors provide into the virtual desktop that spans them.</p>
-<p>To see how GLFW views your monitor setup and its available video modes, run the <code>monitors</code> test program.</p>
+<p >A monitor object represents a currently connected monitor and is represented as a pointer to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>. Monitor objects cannot be created or destroyed by the application and retain their addresses until the monitors they represent are disconnected or until the library is <a class="el" href="intro_guide.html#intro_init_terminate">terminated</a>.</p>
+<p >Each monitor has a current video mode, a list of supported video modes, a virtual position, a human-readable name, an estimated physical size and a gamma ramp. One of the monitors is the primary monitor.</p>
+<p >The virtual position of a monitor is in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a> and, together with the current video mode, describes the viewports that the connected monitors provide into the virtual desktop that spans them.</p>
+<p >To see how GLFW views your monitor setup and its available video modes, run the <code>monitors</code> test program.</p>
 <h2><a class="anchor" id="monitor_monitors"></a>
 Retrieving monitors</h2>
-<p>The primary monitor is returned by <a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a>. It is the user's preferred monitor and is usually the one with global UI elements like task bar or menu bar.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* primary = <a class="code" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a>();</div>
-</div><!-- fragment --><p>You can retrieve all currently connected monitors with <a class="el" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a>. See the reference documentation for the lifetime of the returned array.</p>
+<p >The primary monitor is returned by <a class="el" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a>. It is the user's preferred monitor and is usually the one with global UI elements like task bar or menu bar.</p>
+<div class="fragment"><div class="line"><a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* primary = <a class="code hl_function" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a>();</div>
+<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1173</div></div>
+<div class="ttc" id="agroup__monitor_html_gac3adb24947eb709e1874028272e5dfc5"><div class="ttname"><a href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
+</div><!-- fragment --><p >You can retrieve all currently connected monitors with <a class="el" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a>. See the reference documentation for the lifetime of the returned array.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> count;</div>
-<div class="line"><a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** monitors = <a class="code" href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a>(&amp;count);</div>
-</div><!-- fragment --><p>The primary monitor is always the first monitor in the returned array, but other monitors may be moved to a different index when a monitor is connected or disconnected.</p>
+<div class="line"><a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>** monitors = <a class="code hl_function" href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a>(&amp;count);</div>
+<div class="ttc" id="agroup__monitor_html_ga70b1156d5d24e9928f145d6c864369d2"><div class="ttname"><a href="group__monitor.html#ga70b1156d5d24e9928f145d6c864369d2">glfwGetMonitors</a></div><div class="ttdeci">GLFWmonitor ** glfwGetMonitors(int *count)</div><div class="ttdoc">Returns the currently connected monitors.</div></div>
+</div><!-- fragment --><p >The primary monitor is always the first monitor in the returned array, but other monitors may be moved to a different index when a monitor is connected or disconnected.</p>
 <h2><a class="anchor" id="monitor_event"></a>
 Monitor configuration changes</h2>
-<p>If you wish to be notified when a monitor is connected or disconnected, set a monitor callback.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a>(monitor_callback);</div>
-</div><!-- fragment --><p>The callback function receives the handle for the monitor that has been connected or disconnected and the event that occurred.</p>
-<div class="fragment"><div class="line"><span class="keywordtype">void</span> monitor_callback(<a class="code" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
+<p >If you wish to be notified when a monitor is connected or disconnected, set a monitor callback.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a>(monitor_callback);</div>
+<div class="ttc" id="agroup__monitor_html_gab39df645587c8518192aa746c2fb06c3"><div class="ttname"><a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a></div><div class="ttdeci">GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)</div><div class="ttdoc">Sets the monitor configuration callback.</div></div>
+</div><!-- fragment --><p >The callback function receives the handle for the monitor that has been connected or disconnected and the event that occurred.</p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> monitor_callback(<a class="code hl_typedef" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>* monitor, <span class="keywordtype">int</span> event)</div>
 <div class="line">{</div>
-<div class="line">    <span class="keywordflow">if</span> (event == <a class="code" href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a>)</div>
+<div class="line">    <span class="keywordflow">if</span> (event == <a class="code hl_define" href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a>)</div>
 <div class="line">    {</div>
 <div class="line">        <span class="comment">// The monitor was connected</span></div>
 <div class="line">    }</div>
-<div class="line">    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (event == <a class="code" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a>)</div>
+<div class="line">    <span class="keywordflow">else</span> <span class="keywordflow">if</span> (event == <a class="code hl_define" href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a>)</div>
 <div class="line">    {</div>
 <div class="line">        <span class="comment">// The monitor was disconnected</span></div>
 <div class="line">    }</div>
 <div class="line">}</div>
-</div><!-- fragment --><p>If a monitor is disconnected, all windows that are full screen on it will be switched to windowed mode before the callback is called. Only <a class="el" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a> and <a class="el" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a> will return useful values for a disconnected monitor and only before the monitor callback returns.</p>
+<div class="ttc" id="aglfw3_8h_html_aab64b25921ef21d89252d6f0a71bfc32"><div class="ttname"><a href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a></div><div class="ttdeci">#define GLFW_DISCONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1107</div></div>
+<div class="ttc" id="aglfw3_8h_html_abe11513fd1ffbee5bb9b173f06028b9e"><div class="ttname"><a href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a></div><div class="ttdeci">#define GLFW_CONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1106</div></div>
+</div><!-- fragment --><p >If a monitor is disconnected, all windows that are full screen on it will be switched to windowed mode before the callback is called. Only <a class="el" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a> and <a class="el" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a> will return useful values for a disconnected monitor and only before the monitor callback returns.</p>
 <h1><a class="anchor" id="monitor_properties"></a>
 Monitor properties</h1>
-<p>Each monitor has a current video mode, a list of supported video modes, a virtual position, a content scale, a human-readable name, a user pointer, an estimated physical size and a gamma ramp.</p>
+<p >Each monitor has a current video mode, a list of supported video modes, a virtual position, a content scale, a human-readable name, a user pointer, an estimated physical size and a gamma ramp.</p>
 <h2><a class="anchor" id="monitor_modes"></a>
 Video modes</h2>
-<p>GLFW generally does a good job selecting a suitable video mode when you create a full screen window, change its video mode or make a windowed one full screen, but it is sometimes useful to know exactly which video modes are supported.</p>
-<p>Video modes are represented as <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> structures. You can get an array of the video modes supported by a monitor with <a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a>. See the reference documentation for the lifetime of the returned array.</p>
+<p >GLFW generally does a good job selecting a suitable video mode when you create a full screen window, change its video mode or make a windowed one full screen, but it is sometimes useful to know exactly which video modes are supported.</p>
+<p >Video modes are represented as <a class="el" href="structGLFWvidmode.html">GLFWvidmode</a> structures. You can get an array of the video modes supported by a monitor with <a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a>. See the reference documentation for the lifetime of the returned array.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> count;</div>
-<div class="line"><a class="code" href="structGLFWvidmode.html">GLFWvidmode</a>* modes = <a class="code" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a>(monitor, &amp;count);</div>
-</div><!-- fragment --><p>To get the current video mode of a monitor call <a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a>. See the reference documentation for the lifetime of the returned pointer.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code" href="structGLFWvidmode.html">GLFWvidmode</a>* mode = <a class="code" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a>(monitor);</div>
-</div><!-- fragment --><p>The resolution of a video mode is specified in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a>, not pixels.</p>
+<div class="line"><a class="code hl_struct" href="structGLFWvidmode.html">GLFWvidmode</a>* modes = <a class="code hl_function" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a>(monitor, &amp;count);</div>
+<div class="ttc" id="agroup__monitor_html_gad2e24d2843cb7d6c26202cddd530fc1b"><div class="ttname"><a href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)</div><div class="ttdoc">Returns the available video modes for the specified monitor.</div></div>
+<div class="ttc" id="astructGLFWvidmode_html"><div class="ttname"><a href="structGLFWvidmode.html">GLFWvidmode</a></div><div class="ttdoc">Video mode type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1658</div></div>
+</div><!-- fragment --><p >To get the current video mode of a monitor call <a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a>. See the reference documentation for the lifetime of the returned pointer.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code hl_struct" href="structGLFWvidmode.html">GLFWvidmode</a>* mode = <a class="code hl_function" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a>(monitor);</div>
+<div class="ttc" id="agroup__monitor_html_gaba376fa7e76634b4788bddc505d6c9d5"><div class="ttname"><a href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current mode of the specified monitor.</div></div>
+</div><!-- fragment --><p >The resolution of a video mode is specified in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a>, not pixels.</p>
 <h2><a class="anchor" id="monitor_size"></a>
 Physical size</h2>
-<p>The physical size of a monitor in millimetres, or an estimation of it, can be retrieved with <a class="el" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>. This has no relation to its current <em>resolution</em>, i.e. the width and height of its current <a class="el" href="monitor_guide.html#monitor_modes">video mode</a>.</p>
+<p >The physical size of a monitor in millimetres, or an estimation of it, can be retrieved with <a class="el" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>. This has no relation to its current <em>resolution</em>, i.e. the width and height of its current <a class="el" href="monitor_guide.html#monitor_modes">video mode</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> width_mm, height_mm;</div>
-<div class="line"><a class="code" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>(monitor, &amp;width_mm, &amp;height_mm);</div>
-</div><!-- fragment --><p>While this can be used to calculate the raw DPI of a monitor, this is often not useful. Instead use the <a class="el" href="monitor_guide.html#monitor_scale">monitor content scale</a> and <a class="el" href="window_guide.html#window_scale">window content scale</a> to scale your content.</p>
+<div class="line"><a class="code hl_function" href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a>(monitor, &amp;width_mm, &amp;height_mm);</div>
+<div class="ttc" id="agroup__monitor_html_ga7d8bffc6c55539286a6bd20d32a8d7ea"><div class="ttname"><a href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a></div><div class="ttdeci">void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)</div><div class="ttdoc">Returns the physical size of the monitor.</div></div>
+</div><!-- fragment --><p >While this can be used to calculate the raw DPI of a monitor, this is often not useful. Instead use the <a class="el" href="monitor_guide.html#monitor_scale">monitor content scale</a> and <a class="el" href="window_guide.html#window_scale">window content scale</a> to scale your content.</p>
 <h2><a class="anchor" id="monitor_scale"></a>
 Content scale</h2>
-<p>The content scale for a monitor can be retrieved with <a class="el" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>.</p>
+<p >The content scale for a monitor can be retrieved with <a class="el" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">float</span> xscale, yscale;</div>
-<div class="line"><a class="code" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>(monitor, &amp;xscale, &amp;yscale);</div>
-</div><!-- fragment --><p>The content scale is the ratio between the current DPI and the platform's default DPI. This is especially important for text and any UI elements. If the pixel dimensions of your UI scaled by this look appropriate on your machine then it should appear at a reasonable size on other machines regardless of their DPI and scaling settings. This relies on the system DPI and scaling settings being somewhat correct.</p>
-<p>The content scale may depend on both the monitor resolution and pixel density and on user settings. It may be very different from the raw DPI calculated from the physical size and current resolution.</p>
+<div class="line"><a class="code hl_function" href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a>(monitor, &amp;xscale, &amp;yscale);</div>
+<div class="ttc" id="agroup__monitor_html_gad3152e84465fa620b601265ebfcdb21b"><div class="ttname"><a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a></div><div class="ttdeci">void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified monitor.</div></div>
+</div><!-- fragment --><p >The content scale is the ratio between the current DPI and the platform's default DPI. This is especially important for text and any UI elements. If the pixel dimensions of your UI scaled by this look appropriate on your machine then it should appear at a reasonable size on other machines regardless of their DPI and scaling settings. This relies on the system DPI and scaling settings being somewhat correct.</p>
+<p >The content scale may depend on both the monitor resolution and pixel density and on user settings. It may be very different from the raw DPI calculated from the physical size and current resolution.</p>
 <h2><a class="anchor" id="monitor_pos"></a>
 Virtual position</h2>
-<p>The position of the monitor on the virtual desktop, in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a>, can be retrieved with <a class="el" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>.</p>
+<p >The position of the monitor on the virtual desktop, in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a>, can be retrieved with <a class="el" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> xpos, ypos;</div>
-<div class="line"><a class="code" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>(monitor, &amp;xpos, &amp;ypos);</div>
+<div class="line"><a class="code hl_function" href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a>(monitor, &amp;xpos, &amp;ypos);</div>
+<div class="ttc" id="agroup__monitor_html_ga102f54e7acc9149edbcf0997152df8c9"><div class="ttname"><a href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a></div><div class="ttdeci">void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)</div><div class="ttdoc">Returns the position of the monitor's viewport on the virtual screen.</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="monitor_workarea"></a>
 Work area</h2>
-<p>The area of a monitor not occupied by global task bars or menu bars is the work area. This is specified in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a> and can be retrieved with <a class="el" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>.</p>
+<p >The area of a monitor not occupied by global task bars or menu bars is the work area. This is specified in <a class="el" href="intro_guide.html#coordinate_systems">screen coordinates</a> and can be retrieved with <a class="el" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>.</p>
 <div class="fragment"><div class="line"><span class="keywordtype">int</span> xpos, ypos, width, height;</div>
-<div class="line"><a class="code" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>(monitor, &amp;xpos, &amp;ypos, &amp;width, &amp;height);</div>
+<div class="line"><a class="code hl_function" href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a>(monitor, &amp;xpos, &amp;ypos, &amp;width, &amp;height);</div>
+<div class="ttc" id="agroup__monitor_html_ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"><div class="ttname"><a href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a></div><div class="ttdeci">void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)</div><div class="ttdoc">Retrieves the work area of the monitor.</div></div>
 </div><!-- fragment --><h2><a class="anchor" id="monitor_name"></a>
 Human-readable name</h2>
-<p>The human-readable, UTF-8 encoded name of a monitor is returned by <a class="el" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a>. See the reference documentation for the lifetime of the returned string.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code" href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a>(monitor);</div>
-</div><!-- fragment --><p>Monitor names are not guaranteed to be unique. Two monitors of the same model and make may have the same name. Only the monitor handle is guaranteed to be unique, and only until that monitor is disconnected.</p>
+<p >The human-readable, UTF-8 encoded name of a monitor is returned by <a class="el" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a>. See the reference documentation for the lifetime of the returned string.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <span class="keywordtype">char</span>* name = <a class="code hl_function" href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a>(monitor);</div>
+<div class="ttc" id="agroup__monitor_html_ga7af83e13489d90379588fb331b9e4b68"><div class="ttname"><a href="group__monitor.html#ga7af83e13489d90379588fb331b9e4b68">glfwGetMonitorName</a></div><div class="ttdeci">const char * glfwGetMonitorName(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the name of the specified monitor.</div></div>
+</div><!-- fragment --><p >Monitor names are not guaranteed to be unique. Two monitors of the same model and make may have the same name. Only the monitor handle is guaranteed to be unique, and only until that monitor is disconnected.</p>
 <h2><a class="anchor" id="monitor_userptr"></a>
 User pointer</h2>
-<p>Each monitor has a user pointer that can be set with <a class="el" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a> and queried with <a class="el" href="group__monitor.html#gac2d4209016b049222877f620010ed0d8">glfwGetMonitorUserPointer</a>. This can be used for any purpose you need and will not be modified by GLFW. The value will be kept until the monitor is disconnected or until the library is terminated.</p>
-<p>The initial value of the pointer is <code>NULL</code>.</p>
+<p >Each monitor has a user pointer that can be set with <a class="el" href="group__monitor.html#ga702750e24313a686d3637297b6e85fda">glfwSetMonitorUserPointer</a> and queried with <a class="el" href="group__monitor.html#ga1adbfbfb8cd58b23cfee82e574fbbdc5">glfwGetMonitorUserPointer</a>. This can be used for any purpose you need and will not be modified by GLFW. The value will be kept until the monitor is disconnected or until the library is terminated.</p>
+<p >The initial value of the pointer is <code>NULL</code>.</p>
 <h2><a class="anchor" id="monitor_gamma"></a>
 Gamma ramp</h2>
-<p>The gamma ramp of a monitor can be set with <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>, which accepts a monitor handle and a pointer to a <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> structure.</p>
-<div class="fragment"><div class="line"><a class="code" href="structGLFWgammaramp.html">GLFWgammaramp</a> ramp;</div>
+<p >The gamma ramp of a monitor can be set with <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>, which accepts a monitor handle and a pointer to a <a class="el" href="structGLFWgammaramp.html">GLFWgammaramp</a> structure.</p>
+<div class="fragment"><div class="line"><a class="code hl_struct" href="structGLFWgammaramp.html">GLFWgammaramp</a> ramp;</div>
 <div class="line"><span class="keywordtype">unsigned</span> <span class="keywordtype">short</span> red[256], green[256], blue[256];</div>
 <div class="line"> </div>
-<div class="line">ramp.<a class="code" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a> = 256;</div>
-<div class="line">ramp.<a class="code" href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">red</a> = red;</div>
-<div class="line">ramp.<a class="code" href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">green</a> = green;</div>
-<div class="line">ramp.<a class="code" href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">blue</a> = blue;</div>
+<div class="line">ramp.<a class="code hl_variable" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a> = 256;</div>
+<div class="line">ramp.<a class="code hl_variable" href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">red</a> = red;</div>
+<div class="line">ramp.<a class="code hl_variable" href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">green</a> = green;</div>
+<div class="line">ramp.<a class="code hl_variable" href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">blue</a> = blue;</div>
 <div class="line"> </div>
-<div class="line"><span class="keywordflow">for</span> (i = 0;  i &lt; ramp.<a class="code" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a>;  i++)</div>
+<div class="line"><span class="keywordflow">for</span> (i = 0;  i &lt; ramp.<a class="code hl_variable" href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">size</a>;  i++)</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Fill out gamma ramp arrays as desired</span></div>
 <div class="line">}</div>
 <div class="line"> </div>
-<div class="line"><a class="code" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>(monitor, &amp;ramp);</div>
-</div><!-- fragment --><p>The gamma ramp data is copied before the function returns, so there is no need to keep it around once the ramp has been set.</p>
-<p>It is recommended that your gamma ramp have the same size as the current gamma ramp for that monitor.</p>
-<p>The current gamma ramp for a monitor is returned by <a class="el" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a>. See the reference documentation for the lifetime of the returned structure.</p>
-<div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code" href="structGLFWgammaramp.html">GLFWgammaramp</a>* ramp = <a class="code" href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a>(monitor);</div>
-</div><!-- fragment --><p>If you wish to set a regular gamma ramp, you can have GLFW calculate it for you from the desired exponent with <a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>, which in turn calls <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> with the resulting ramp.</p>
-<div class="fragment"><div class="line"><a class="code" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>(monitor, 1.0);</div>
-</div><!-- fragment --><p>To experiment with gamma correction via the <a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a> function, run the <code>gamma</code> test program.</p>
+<div class="line"><a class="code hl_function" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a>(monitor, &amp;ramp);</div>
+<div class="ttc" id="agroup__monitor_html_ga583f0ffd0d29613d8cd172b996bbf0dd"><div class="ttname"><a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a></div><div class="ttdeci">void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)</div><div class="ttdoc">Sets the current gamma ramp for the specified monitor.</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html"><div class="ttname"><a href="structGLFWgammaramp.html">GLFWgammaramp</a></div><div class="ttdoc">Gamma ramp.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1692</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_a2cce5d968734b685623eef913e635138"><div class="ttname"><a href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">GLFWgammaramp::red</a></div><div class="ttdeci">unsigned short * red</div><div class="ttdef"><b>Definition:</b> glfw3.h:1695</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_acf0c836d0efe29c392fe8d1a1042744b"><div class="ttname"><a href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">GLFWgammaramp::blue</a></div><div class="ttdeci">unsigned short * blue</div><div class="ttdef"><b>Definition:</b> glfw3.h:1701</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_ad620e1cffbff9a32c51bca46301b59a5"><div class="ttname"><a href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">GLFWgammaramp::size</a></div><div class="ttdeci">unsigned int size</div><div class="ttdef"><b>Definition:</b> glfw3.h:1704</div></div>
+<div class="ttc" id="astructGLFWgammaramp_html_affccc6f5df47820b6562d709da3a5a3a"><div class="ttname"><a href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">GLFWgammaramp::green</a></div><div class="ttdeci">unsigned short * green</div><div class="ttdef"><b>Definition:</b> glfw3.h:1698</div></div>
+</div><!-- fragment --><p >The gamma ramp data is copied before the function returns, so there is no need to keep it around once the ramp has been set.</p>
+<p >It is recommended that your gamma ramp have the same size as the current gamma ramp for that monitor.</p>
+<p >The current gamma ramp for a monitor is returned by <a class="el" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a>. See the reference documentation for the lifetime of the returned structure.</p>
+<div class="fragment"><div class="line"><span class="keyword">const</span> <a class="code hl_struct" href="structGLFWgammaramp.html">GLFWgammaramp</a>* ramp = <a class="code hl_function" href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a>(monitor);</div>
+<div class="ttc" id="agroup__monitor_html_ga76ba90debcf0062b5c4b73052b24f96f"><div class="ttname"><a href="group__monitor.html#ga76ba90debcf0062b5c4b73052b24f96f">glfwGetGammaRamp</a></div><div class="ttdeci">const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current gamma ramp for the specified monitor.</div></div>
+</div><!-- fragment --><p >If you wish to set a regular gamma ramp, you can have GLFW calculate it for you from the desired exponent with <a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>, which in turn calls <a class="el" href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a> with the resulting ramp.</p>
+<div class="fragment"><div class="line"><a class="code hl_function" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a>(monitor, 1.0);</div>
+<div class="ttc" id="agroup__monitor_html_ga6ac582625c990220785ddd34efa3169a"><div class="ttname"><a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a></div><div class="ttdeci">void glfwSetGamma(GLFWmonitor *monitor, float gamma)</div><div class="ttdoc">Generates a gamma ramp and sets it for the specified monitor.</div></div>
+</div><!-- fragment --><p >To experiment with gamma correction via the <a class="el" href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a> function, run the <code>gamma</code> test program.</p>
 <dl class="section note"><dt>Note</dt><dd>The software controlled gamma ramp is applied <em>in addition</em> to the hardware gamma correction, which today is usually an approximation of sRGB gamma. This means that setting a perfectly linear ramp, or gamma 1.0, will produce the default (usually sRGB-like) behavior. </dd></dl>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="agroup__monitor_html_gad3152e84465fa620b601265ebfcdb21b"><div class="ttname"><a href="group__monitor.html#gad3152e84465fa620b601265ebfcdb21b">glfwGetMonitorContentScale</a></div><div class="ttdeci">void glfwGetMonitorContentScale(GLFWmonitor *monitor, float *xscale, float *yscale)</div><div class="ttdoc">Retrieves the content scale for the specified monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_gab39df645587c8518192aa746c2fb06c3"><div class="ttname"><a href="group__monitor.html#gab39df645587c8518192aa746c2fb06c3">glfwSetMonitorCallback</a></div><div class="ttdeci">GLFWmonitorfun glfwSetMonitorCallback(GLFWmonitorfun callback)</div><div class="ttdoc">Sets the monitor configuration callback.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html"><div class="ttname"><a href="structGLFWgammaramp.html">GLFWgammaramp</a></div><div class="ttdoc">Gamma ramp.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1658</div></div>
-<div class="ttc" id="agroup__monitor_html_ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0"><div class="ttname"><a href="group__monitor.html#ga7387a3bdb64bfe8ebf2b9e54f5b6c9d0">glfwGetMonitorWorkarea</a></div><div class="ttdeci">void glfwGetMonitorWorkarea(GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height)</div><div class="ttdoc">Retrieves the work area of the monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga583f0ffd0d29613d8cd172b996bbf0dd"><div class="ttname"><a href="group__monitor.html#ga583f0ffd0d29613d8cd172b996bbf0dd">glfwSetGammaRamp</a></div><div class="ttdeci">void glfwSetGammaRamp(GLFWmonitor *monitor, const GLFWgammaramp *ramp)</div><div class="ttdoc">Sets the current gamma ramp for the specified monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga79a34ee22ff080ca954a9663e4679daf"><div class="ttname"><a href="group__monitor.html#ga79a34ee22ff080ca954a9663e4679daf">glfwGetMonitorName</a></div><div class="ttdeci">const char * glfwGetMonitorName(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the name of the specified monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga721867d84c6d18d6790d64d2847ca0b1"><div class="ttname"><a href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga3fba51c8bd36491d4712aa5bd074a537"><div class="ttname"><a href="group__monitor.html#ga3fba51c8bd36491d4712aa5bd074a537">glfwGetMonitors</a></div><div class="ttdeci">GLFWmonitor ** glfwGetMonitors(int *count)</div><div class="ttdoc">Returns the currently connected monitors.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga820b0ce9a5237d645ea7cbb4bd383458"><div class="ttname"><a href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoModes(GLFWmonitor *monitor, int *count)</div><div class="ttdoc">Returns the available video modes for the specified monitor.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_affccc6f5df47820b6562d709da3a5a3a"><div class="ttname"><a href="structGLFWgammaramp.html#affccc6f5df47820b6562d709da3a5a3a">GLFWgammaramp::green</a></div><div class="ttdeci">unsigned short * green</div><div class="ttdef"><b>Definition:</b> glfw3.h:1665</div></div>
-<div class="ttc" id="aglfw3_8h_html_aab64b25921ef21d89252d6f0a71bfc32"><div class="ttname"><a href="glfw3_8h.html#aab64b25921ef21d89252d6f0a71bfc32">GLFW_DISCONNECTED</a></div><div class="ttdeci">#define GLFW_DISCONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1075</div></div>
-<div class="ttc" id="agroup__monitor_html_ga102f54e7acc9149edbcf0997152df8c9"><div class="ttname"><a href="group__monitor.html#ga102f54e7acc9149edbcf0997152df8c9">glfwGetMonitorPos</a></div><div class="ttdeci">void glfwGetMonitorPos(GLFWmonitor *monitor, int *xpos, int *ypos)</div><div class="ttdoc">Returns the position of the monitor's viewport on the virtual screen.</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_ad620e1cffbff9a32c51bca46301b59a5"><div class="ttname"><a href="structGLFWgammaramp.html#ad620e1cffbff9a32c51bca46301b59a5">GLFWgammaramp::size</a></div><div class="ttdeci">unsigned int size</div><div class="ttdef"><b>Definition:</b> glfw3.h:1671</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_a2cce5d968734b685623eef913e635138"><div class="ttname"><a href="structGLFWgammaramp.html#a2cce5d968734b685623eef913e635138">GLFWgammaramp::red</a></div><div class="ttdeci">unsigned short * red</div><div class="ttdef"><b>Definition:</b> glfw3.h:1662</div></div>
-<div class="ttc" id="agroup__monitor_html_ga7d8bffc6c55539286a6bd20d32a8d7ea"><div class="ttname"><a href="group__monitor.html#ga7d8bffc6c55539286a6bd20d32a8d7ea">glfwGetMonitorPhysicalSize</a></div><div class="ttdeci">void glfwGetMonitorPhysicalSize(GLFWmonitor *monitor, int *widthMM, int *heightMM)</div><div class="ttdoc">Returns the physical size of the monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_gab7c41deb2219bde3e1eb756ddaa9ec80"><div class="ttname"><a href="group__monitor.html#gab7c41deb2219bde3e1eb756ddaa9ec80">glfwGetGammaRamp</a></div><div class="ttdeci">const GLFWgammaramp * glfwGetGammaRamp(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current gamma ramp for the specified monitor.</div></div>
-<div class="ttc" id="aglfw3_8h_html_abe11513fd1ffbee5bb9b173f06028b9e"><div class="ttname"><a href="glfw3_8h.html#abe11513fd1ffbee5bb9b173f06028b9e">GLFW_CONNECTED</a></div><div class="ttdeci">#define GLFW_CONNECTED</div><div class="ttdef"><b>Definition:</b> glfw3.h:1074</div></div>
-<div class="ttc" id="astructGLFWgammaramp_html_acf0c836d0efe29c392fe8d1a1042744b"><div class="ttname"><a href="structGLFWgammaramp.html#acf0c836d0efe29c392fe8d1a1042744b">GLFWgammaramp::blue</a></div><div class="ttdeci">unsigned short * blue</div><div class="ttdef"><b>Definition:</b> glfw3.h:1668</div></div>
-<div class="ttc" id="astructGLFWvidmode_html"><div class="ttname"><a href="structGLFWvidmode.html">GLFWvidmode</a></div><div class="ttdoc">Video mode type.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1624</div></div>
-<div class="ttc" id="agroup__monitor_html_ga6ac582625c990220785ddd34efa3169a"><div class="ttname"><a href="group__monitor.html#ga6ac582625c990220785ddd34efa3169a">glfwSetGamma</a></div><div class="ttdeci">void glfwSetGamma(GLFWmonitor *monitor, float gamma)</div><div class="ttdoc">Generates a gamma ramp and sets it for the specified monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_gafc1bb972a921ad5b3bd5d63a95fc2d52"><div class="ttname"><a href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a></div><div class="ttdeci">const GLFWvidmode * glfwGetVideoMode(GLFWmonitor *monitor)</div><div class="ttdoc">Returns the current mode of the specified monitor.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga8d9efd1cde9426692c73fe40437d0ae3"><div class="ttname"><a href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a></div><div class="ttdeci">struct GLFWmonitor GLFWmonitor</div><div class="ttdoc">Opaque monitor object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1140</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 12 - 11
glfw.mod/glfw/docs/html/moving_8dox.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: moving.dox File Reference</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -59,14 +61,13 @@ $(function() {
 
 </div><!-- top -->
 <div class="header">
-  <div class="headertitle">
-<div class="title">moving.dox File Reference</div>  </div>
+  <div class="headertitle"><div class="title">moving.dox File Reference</div></div>
 </div><!--header-->
 <div class="contents">
 </div><!-- contents -->
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

+ 113 - 112
glfw.mod/glfw/docs/html/moving_guide.html

@@ -1,9 +1,10 @@
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
+<!DOCTYPE html>
+<html lang="en">
 <head>
 <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="viewport" content="width=device-width, initial-scale=1.0">
 <meta http-equiv="X-UA-Compatible" content="IE=9"/>
-<meta name="generator" content="Doxygen 1.8.16"/>
+<meta name="generator" content="Doxygen 1.9.4"/>
 <title>GLFW: Moving from GLFW 2 to 3</title>
 <link href="tabs.css" rel="stylesheet" type="text/css"/>
 <script type="text/javascript" src="jquery.js"></script>
@@ -27,21 +28,22 @@
 	</div>
 </div>
 <!-- end header part -->
-<!-- Generated by Doxygen 1.8.16 -->
+<!-- Generated by Doxygen 1.9.4 -->
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
-var searchBox = new SearchBox("searchBox", "search",false,'Search');
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
+var searchBox = new SearchBox("searchBox", "search",'Search','.html');
 /* @license-end */
 </script>
 <script type="text/javascript" src="menudata.js"></script>
 <script type="text/javascript" src="menu.js"></script>
 <script type="text/javascript">
-/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
+/* @license magnet:?xt=urn:btih:d3d9a9a6595521f9666a5e94cc830dab83b65699&amp;dn=expat.txt MIT */
 $(function() {
   initMenu('',true,false,'search.php','Search');
   $(document).ready(function() { init_search(); });
 });
-/* @license-end */</script>
+/* @license-end */
+</script>
 <div id="main-nav"></div>
 <!-- window showing the filter options -->
 <div id="MSearchSelectWindow"
@@ -58,9 +60,8 @@ $(function() {
 </div>
 
 </div><!-- top -->
-<div class="PageDoc"><div class="header">
-  <div class="headertitle">
-<div class="title">Moving from GLFW 2 to 3 </div>  </div>
+<div><div class="header">
+  <div class="headertitle"><div class="title">Moving from GLFW 2 to 3 </div></div>
 </div><!--header-->
 <div class="contents">
 <div class="toc"><h3>Table of Contents</h3>
@@ -96,163 +97,173 @@ $(function() {
 </li>
 </ul>
 </div>
-<div class="textblock"><p>This is a transition guide for moving from GLFW 2 to 3. It describes what has changed or been removed, but does <em>not</em> include <a class="el" href="news.html">new features</a> unless they are required when moving an existing code base onto the new API. For example, the new multi-monitor functions are required to create full screen windows with GLFW 3.</p>
+<div class="textblock"><p >This is a transition guide for moving from GLFW 2 to 3. It describes what has changed or been removed, but does <em>not</em> include <a class="el" href="news.html">new features</a> unless they are required when moving an existing code base onto the new API. For example, the new multi-monitor functions are required to create full screen windows with GLFW 3.</p>
 <h1><a class="anchor" id="moving_removed"></a>
 Changed and removed features</h1>
 <h2><a class="anchor" id="moving_renamed_files"></a>
 Renamed library and header file</h2>
-<p>The GLFW 3 header is named <a class="el" href="glfw3_8h.html">glfw3.h</a> and moved to the <code>GLFW</code> directory, to avoid collisions with the headers of other major versions. Similarly, the GLFW 3 library is named <code>glfw3,</code> except when it's installed as a shared library on Unix-like systems, where it uses the <a href="https://en.wikipedia.org/wiki/soname">soname</a> <code>libglfw.so.3</code>.</p>
+<p >The GLFW 3 header is named <a class="el" href="glfw3_8h.html">glfw3.h</a> and moved to the <code>GLFW</code> directory, to avoid collisions with the headers of other major versions. Similarly, the GLFW 3 library is named <code>glfw3,</code> except when it's installed as a shared library on Unix-like systems, where it uses the <a href="https://en.wikipedia.org/wiki/soname">soname</a> <code>libglfw.so.3</code>.</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;GL/glfw.h&gt;</span></div>
 </div><!-- fragment --></dd></dl>
 <dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
+<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_threads"></a>
 Removal of threading functions</h2>
-<p>The threading functions have been removed, including the per-thread sleep function. They were fairly primitive, under-used, poorly integrated and took time away from the focus of GLFW (i.e. context, input and window). There are better threading libraries available and native threading support is available in both <a href="https://en.cppreference.com/w/cpp/thread">C++11</a> and <a href="https://en.cppreference.com/w/c/thread">C11</a>, both of which are gaining traction.</p>
-<p>If you wish to use the C++11 or C11 facilities but your compiler doesn't yet support them, see the <a href="https://gitorious.org/tinythread/tinythreadpp">TinyThread++</a> and <a href="https://github.com/tinycthread/tinycthread">TinyCThread</a> projects created by the original author of GLFW. These libraries implement a usable subset of the threading APIs in C++11 and C11, and in fact some GLFW 3 test programs use TinyCThread.</p>
-<p>However, GLFW 3 has better support for <em>use from multiple threads</em> than GLFW 2 had. Contexts can be made current on any thread, although only a single thread at a time, and the documentation explicitly states which functions may be used from any thread and which must only be used from the main thread.</p>
+<p >The threading functions have been removed, including the per-thread sleep function. They were fairly primitive, under-used, poorly integrated and took time away from the focus of GLFW (i.e. context, input and window). There are better threading libraries available and native threading support is available in both <a href="https://en.cppreference.com/w/cpp/thread">C++11</a> and <a href="https://en.cppreference.com/w/c/thread">C11</a>, both of which are gaining traction.</p>
+<p >If you wish to use the C++11 or C11 facilities but your compiler doesn't yet support them, see the <a href="https://gitorious.org/tinythread/tinythreadpp">TinyThread++</a> and <a href="https://github.com/tinycthread/tinycthread">TinyCThread</a> projects created by the original author of GLFW. These libraries implement a usable subset of the threading APIs in C++11 and C11, and in fact some GLFW 3 test programs use TinyCThread.</p>
+<p >However, GLFW 3 has better support for <em>use from multiple threads</em> than GLFW 2 had. Contexts can be made current on any thread, although only a single thread at a time, and the documentation explicitly states which functions may be used from any thread and which must only be used from the main thread.</p>
 <dl class="section user"><dt>Removed functions</dt><dd><code>glfwSleep</code>, <code>glfwCreateThread</code>, <code>glfwDestroyThread</code>, <code>glfwWaitThread</code>, <code>glfwGetThreadID</code>, <code>glfwCreateMutex</code>, <code>glfwDestroyMutex</code>, <code>glfwLockMutex</code>, <code>glfwUnlockMutex</code>, <code>glfwCreateCond</code>, <code>glfwDestroyCond</code>, <code>glfwWaitCond</code>, <code>glfwSignalCond</code>, <code>glfwBroadcastCond</code> and <code>glfwGetNumberOfProcessors</code>.</dd></dl>
 <dl class="section user"><dt>Removed types</dt><dd><code>GLFWthreadfun</code></dd></dl>
 <h2><a class="anchor" id="moving_image"></a>
 Removal of image and texture loading</h2>
-<p>The image and texture loading functions have been removed. They only supported the Targa image format, making them mostly useful for beginner level examples. To become of sufficiently high quality to warrant keeping them in GLFW 3, they would need not only to support other formats, but also modern extensions to OpenGL texturing. This would either add a number of external dependencies (libjpeg, libpng, etc.), or force GLFW to ship with inline versions of these libraries.</p>
-<p>As there already are libraries doing this, it is unnecessary both to duplicate the work and to tie the duplicate to GLFW. The resulting library would also be platform-independent, as both OpenGL and stdio are available wherever GLFW is.</p>
+<p >The image and texture loading functions have been removed. They only supported the Targa image format, making them mostly useful for beginner level examples. To become of sufficiently high quality to warrant keeping them in GLFW 3, they would need not only to support other formats, but also modern extensions to OpenGL texturing. This would either add a number of external dependencies (libjpeg, libpng, etc.), or force GLFW to ship with inline versions of these libraries.</p>
+<p >As there already are libraries doing this, it is unnecessary both to duplicate the work and to tie the duplicate to GLFW. The resulting library would also be platform-independent, as both OpenGL and stdio are available wherever GLFW is.</p>
 <dl class="section user"><dt>Removed functions</dt><dd><code>glfwReadImage</code>, <code>glfwReadMemoryImage</code>, <code>glfwFreeImage</code>, <code>glfwLoadTexture2D</code>, <code>glfwLoadMemoryTexture2D</code> and <code>glfwLoadTextureImage2D</code>.</dd></dl>
 <h2><a class="anchor" id="moving_stdcall"></a>
 Removal of GLFWCALL macro</h2>
-<p>The <code>GLFWCALL</code> macro, which made callback functions use <a href="https://msdn.microsoft.com/en-us/library/zxk0tw93.aspx">__stdcall</a> on Windows, has been removed. GLFW is written in C, not Pascal. Removing this macro means there's one less thing for application programmers to remember, i.e. the requirement to mark all callback functions with <code>GLFWCALL</code>. It also simplifies the creation of DLLs and DLL link libraries, as there's no need to explicitly disable <code>@n</code> entry point suffixes.</p>
+<p >The <code>GLFWCALL</code> macro, which made callback functions use <a href="https://msdn.microsoft.com/en-us/library/zxk0tw93.aspx">__stdcall</a> on Windows, has been removed. GLFW is written in C, not Pascal. Removing this macro means there's one less thing for application programmers to remember, i.e. the requirement to mark all callback functions with <code>GLFWCALL</code>. It also simplifies the creation of DLLs and DLL link libraries, as there's no need to explicitly disable <code>@n</code> entry point suffixes.</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> GLFWCALL callback_function(...);</div>
 </div><!-- fragment --></dd></dl>
 <dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> callback_function(...);</div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_window_handles"></a>
 Window handle parameters</h2>
-<p>Because GLFW 3 supports multiple windows, window handle parameters have been added to all window-related GLFW functions and callbacks. The handle of a newly created window is returned by <a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a> (formerly <code>glfwOpenWindow</code>). Window handles are pointers to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>.</p>
-<dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><a class="code" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(<span class="stringliteral">&quot;New Window Title&quot;</span>);</div>
+<p >Because GLFW 3 supports multiple windows, window handle parameters have been added to all window-related GLFW functions and callbacks. The handle of a newly created window is returned by <a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a> (formerly <code>glfwOpenWindow</code>). Window handles are pointers to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>.</p>
+<dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(<span class="stringliteral">&quot;New Window Title&quot;</span>);</div>
+<div class="ttc" id="agroup__window_html_ga5d877f09e968cef7a360b513306f17ff"><div class="ttname"><a href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a></div><div class="ttdeci">void glfwSetWindowTitle(GLFWwindow *window, const char *title)</div><div class="ttdoc">Sets the title of the specified window.</div></div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><a class="code" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(window, <span class="stringliteral">&quot;New Window Title&quot;</span>);</div>
+<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a>(window, <span class="stringliteral">&quot;New Window Title&quot;</span>);</div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_monitor"></a>
 Explicit monitor selection</h2>
-<p>GLFW 3 provides support for multiple monitors. To request a full screen mode window, instead of passing <code>GLFW_FULLSCREEN</code> you specify which monitor you wish the window to use. The <a class="el" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a> function returns the monitor that GLFW 2 would have selected, but there are many other <a class="el" href="monitor_guide.html">monitor functions</a>. Monitor handles are pointers to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>.</p>
+<p >GLFW 3 provides support for multiple monitors. To request a full screen mode window, instead of passing <code>GLFW_FULLSCREEN</code> you specify which monitor you wish the window to use. The <a class="el" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a> function returns the monitor that GLFW 2 would have selected, but there are many other <a class="el" href="monitor_guide.html">monitor functions</a>. Monitor handles are pointers to the <a href="https://en.wikipedia.org/wiki/Opaque_data_type">opaque</a> type <a class="el" href="group__monitor.html#ga8d9efd1cde9426692c73fe40437d0ae3">GLFWmonitor</a>.</p>
 <dl class="section user"><dt>Old basic full screen</dt><dd><div class="fragment"><div class="line">glfwOpenWindow(640, 480, 8, 8, 8, 0, 24, 0, GLFW_FULLSCREEN);</div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New basic full screen</dt><dd><div class="fragment"><div class="line">window = <a class="code" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;My Window&quot;</span>, <a class="code" href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a>(), NULL);</div>
+<dl class="section user"><dt>New basic full screen</dt><dd><div class="fragment"><div class="line">window = <a class="code hl_function" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>(640, 480, <span class="stringliteral">&quot;My Window&quot;</span>, <a class="code hl_function" href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a>(), NULL);</div>
+<div class="ttc" id="agroup__monitor_html_gac3adb24947eb709e1874028272e5dfc5"><div class="ttname"><a href="group__monitor.html#gac3adb24947eb709e1874028272e5dfc5">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
+<div class="ttc" id="agroup__window_html_ga3555a418df92ad53f917597fe2f64aeb"><div class="ttname"><a href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
 </div><!-- fragment --></dd></dl>
 <dl class="section note"><dt>Note</dt><dd>The framebuffer bit depth parameters of <code>glfwOpenWindow</code> have been turned into <a class="el" href="window_guide.html#window_hints">window hints</a>, but as they have been given <a class="el" href="window_guide.html#window_hints_values">sane defaults</a> you rarely need to set these hints.</dd></dl>
 <h2><a class="anchor" id="moving_autopoll"></a>
 Removal of automatic event polling</h2>
-<p>GLFW 3 does not automatically poll for events in <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>, meaning you need to call <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a> or <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> yourself. Unlike buffer swap, which acts on a single window, the event processing functions act on all windows at once.</p>
+<p >GLFW 3 does not automatically poll for events in <a class="el" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>, meaning you need to call <a class="el" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a> or <a class="el" href="group__window.html#ga554e37d781f0a997656c26b2c56c835e">glfwWaitEvents</a> yourself. Unlike buffer swap, which acts on a single window, the event processing functions act on all windows at once.</p>
 <dl class="section user"><dt>Old basic main loop</dt><dd><div class="fragment"><div class="line"><span class="keywordflow">while</span> (...)</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Process input</span></div>
 <div class="line">    <span class="comment">// Render output</span></div>
-<div class="line">    <a class="code" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>();</div>
+<div class="line">    <a class="code hl_function" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>();</div>
 <div class="line">}</div>
+<div class="ttc" id="agroup__window_html_ga15a5a1ee5b3c2ca6b15ca209a12efd14"><div class="ttname"><a href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a></div><div class="ttdeci">void glfwSwapBuffers(GLFWwindow *window)</div><div class="ttdoc">Swaps the front and back buffers of the specified window.</div></div>
 </div><!-- fragment --></dd></dl>
 <dl class="section user"><dt>New basic main loop</dt><dd><div class="fragment"><div class="line"><span class="keywordflow">while</span> (...)</div>
 <div class="line">{</div>
 <div class="line">    <span class="comment">// Process input</span></div>
 <div class="line">    <span class="comment">// Render output</span></div>
-<div class="line">    <a class="code" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>(window);</div>
-<div class="line">    <a class="code" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>();</div>
+<div class="line">    <a class="code hl_function" href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a>(window);</div>
+<div class="line">    <a class="code hl_function" href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a>();</div>
 <div class="line">}</div>
+<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_context"></a>
 Explicit context management</h2>
-<p>Each GLFW 3 window has its own OpenGL context and only you, the application programmer, can know which context should be current on which thread at any given time. Therefore, GLFW 3 leaves that decision to you.</p>
-<p>This means that you need to call <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> after creating a window before you can call any OpenGL functions.</p>
+<p >Each GLFW 3 window has its own OpenGL context and only you, the application programmer, can know which context should be current on which thread at any given time. Therefore, GLFW 3 leaves that decision to you.</p>
+<p >This means that you need to call <a class="el" href="group__context.html#ga1c04dc242268f827290fe40aa1c91157">glfwMakeContextCurrent</a> after creating a window before you can call any OpenGL functions.</p>
 <h2><a class="anchor" id="moving_hidpi"></a>
 Separation of window and framebuffer sizes</h2>
-<p>Window positions and sizes now use screen coordinates, which may not be the same as pixels on machines with high-DPI monitors. This is important as OpenGL uses pixels, not screen coordinates. For example, the rectangle specified with <code>glViewport</code> needs to use pixels. Therefore, framebuffer size functions have been added. You can retrieve the size of the framebuffer of a window with <a class="el" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a> function. A framebuffer size callback has also been added, which can be set with <a class="el" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a>.</p>
-<dl class="section user"><dt>Old basic viewport setup</dt><dd><div class="fragment"><div class="line"><a class="code" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a>(&amp;width, &amp;height);</div>
+<p >Window positions and sizes now use screen coordinates, which may not be the same as pixels on machines with high-DPI monitors. This is important as OpenGL uses pixels, not screen coordinates. For example, the rectangle specified with <code>glViewport</code> needs to use pixels. Therefore, framebuffer size functions have been added. You can retrieve the size of the framebuffer of a window with <a class="el" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a> function. A framebuffer size callback has also been added, which can be set with <a class="el" href="group__window.html#gab3fb7c3366577daef18c0023e2a8591f">glfwSetFramebufferSizeCallback</a>.</p>
+<dl class="section user"><dt>Old basic viewport setup</dt><dd><div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a>(&amp;width, &amp;height);</div>
 <div class="line">glViewport(0, 0, width, height);</div>
+<div class="ttc" id="agroup__window_html_gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><div class="ttname"><a href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a></div><div class="ttdeci">void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the content area of the specified window.</div></div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New basic viewport setup</dt><dd><div class="fragment"><div class="line"><a class="code" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>(window, &amp;width, &amp;height);</div>
+<dl class="section user"><dt>New basic viewport setup</dt><dd><div class="fragment"><div class="line"><a class="code hl_function" href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a>(window, &amp;width, &amp;height);</div>
 <div class="line">glViewport(0, 0, width, height);</div>
+<div class="ttc" id="agroup__window_html_ga0e2637a4161afb283f5300c7f94785c9"><div class="ttname"><a href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a></div><div class="ttdeci">void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the framebuffer of the specified window.</div></div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_window_close"></a>
 Window closing changes</h2>
-<p>The <code>GLFW_OPENED</code> window parameter has been removed. As long as the window has not been destroyed, whether through <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>, the window is "open".</p>
-<p>A user attempting to close a window is now just an event like any other. Unlike GLFW 2, windows and contexts created with GLFW 3 will never be destroyed unless you choose them to be. Each window now has a close flag that is set to <code>GLFW_TRUE</code> when the user attempts to close that window. By default, nothing else happens and the window stays visible. It is then up to you to either destroy the window, take some other action or ignore the request.</p>
-<p>You can query the close flag at any time with <a class="el" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a> and set it at any time with <a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a>.</p>
+<p >The <code>GLFW_OPENED</code> window parameter has been removed. As long as the window has not been destroyed, whether through <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> or <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a>, the window is "open".</p>
+<p >A user attempting to close a window is now just an event like any other. Unlike GLFW 2, windows and contexts created with GLFW 3 will never be destroyed unless you choose them to be. Each window now has a close flag that is set to <code>GLFW_TRUE</code> when the user attempts to close that window. By default, nothing else happens and the window stays visible. It is then up to you to either destroy the window, take some other action or ignore the request.</p>
+<p >You can query the close flag at any time with <a class="el" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a> and set it at any time with <a class="el" href="group__window.html#ga49c449dde2a6f87d996f4daaa09d6708">glfwSetWindowShouldClose</a>.</p>
 <dl class="section user"><dt>Old basic main loop</dt><dd><div class="fragment"><div class="line"><span class="keywordflow">while</span> (glfwGetWindowParam(GLFW_OPENED))</div>
 <div class="line">{</div>
 <div class="line">    ...</div>
 <div class="line">}</div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New basic main loop</dt><dd><div class="fragment"><div class="line"><span class="keywordflow">while</span> (!<a class="code" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a>(window))</div>
+<dl class="section user"><dt>New basic main loop</dt><dd><div class="fragment"><div class="line"><span class="keywordflow">while</span> (!<a class="code hl_function" href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a>(window))</div>
 <div class="line">{</div>
 <div class="line">    ...</div>
 <div class="line">}</div>
+<div class="ttc" id="agroup__window_html_ga24e02fbfefbb81fc45320989f8140ab5"><div class="ttname"><a href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a></div><div class="ttdeci">int glfwWindowShouldClose(GLFWwindow *window)</div><div class="ttdoc">Checks the close flag of the specified window.</div></div>
 </div><!-- fragment --></dd></dl>
 <p>The close callback no longer returns a value. Instead, it is called after the close flag has been set so it can override its value, if it chooses to, before event processing completes. You may however not call <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a> from the close callback (or any other window related callback).</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">int</span> GLFWCALL window_close_callback(<span class="keywordtype">void</span>);</div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> window_close_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> window_close_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window);</div>
+<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1185</div></div>
 </div><!-- fragment --></dd></dl>
 <dl class="section note"><dt>Note</dt><dd>GLFW never clears the close flag to <code>GLFW_FALSE</code>, meaning you can use it for other reasons to close the window as well, for example the user choosing Quit from an in-game menu.</dd></dl>
 <h2><a class="anchor" id="moving_hints"></a>
 Persistent window hints</h2>
-<p>The <code>glfwOpenWindowHint</code> function has been renamed to <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>.</p>
-<p>Window hints are no longer reset to their default values on window creation, but instead retain their values until modified by <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a> or <a class="el" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a>, or until the library is terminated and re-initialized.</p>
+<p >The <code>glfwOpenWindowHint</code> function has been renamed to <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>.</p>
+<p >Window hints are no longer reset to their default values on window creation, but instead retain their values until modified by <a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a> or <a class="el" href="group__window.html#gaa77c4898dfb83344a6b4f76aa16b9a4a">glfwDefaultWindowHints</a>, or until the library is terminated and re-initialized.</p>
 <h2><a class="anchor" id="moving_video_modes"></a>
 Video mode enumeration</h2>
-<p>Video mode enumeration is now per-monitor. The <a class="el" href="group__monitor.html#ga820b0ce9a5237d645ea7cbb4bd383458">glfwGetVideoModes</a> function now returns all available modes for a specific monitor instead of requiring you to guess how large an array you need. The <code>glfwGetDesktopMode</code> function, which had poorly defined behavior, has been replaced by <a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a>, which returns the current mode of a monitor.</p>
+<p >Video mode enumeration is now per-monitor. The <a class="el" href="group__monitor.html#gad2e24d2843cb7d6c26202cddd530fc1b">glfwGetVideoModes</a> function now returns all available modes for a specific monitor instead of requiring you to guess how large an array you need. The <code>glfwGetDesktopMode</code> function, which had poorly defined behavior, has been replaced by <a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a>, which returns the current mode of a monitor.</p>
 <h2><a class="anchor" id="moving_char_up"></a>
 Removal of character actions</h2>
-<p>The action parameter of the <a class="el" href="group__input.html#gabf24451c7ceb1952bc02b17a0d5c3e5f">character callback</a> has been removed. This was an artefact of the origin of GLFW, i.e. being developed in English by a Swede. However, many keyboard layouts require more than one key to produce characters with diacritical marks. Even the Swedish keyboard layout requires this for uncommon cases like ü.</p>
+<p >The action parameter of the <a class="el" href="group__input.html#ga1ab90a55cf3f58639b893c0f4118cb6e">character callback</a> has been removed. This was an artefact of the origin of GLFW, i.e. being developed in English by a Swede. However, many keyboard layouts require more than one key to produce characters with diacritical marks. Even the Swedish keyboard layout requires this for uncommon cases like ü.</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> GLFWCALL character_callback(<span class="keywordtype">int</span> character, <span class="keywordtype">int</span> action);</div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> character_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> character);</div>
+<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> character_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">int</span> character);</div>
 </div><!-- fragment --></dd></dl>
 <h2><a class="anchor" id="moving_cursorpos"></a>
 Cursor position changes</h2>
-<p>The <code>glfwGetMousePos</code> function has been renamed to <a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>, <code>glfwSetMousePos</code> to <a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> and <code>glfwSetMousePosCallback</code> to <a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>.</p>
-<p>The cursor position is now <code>double</code> instead of <code>int</code>, both for the direct functions and for the callback. Some platforms can provide sub-pixel cursor movement and this data is now passed on to the application where available. On platforms where this is not provided, the decimal part is zero.</p>
-<p>GLFW 3 only allows you to position the cursor within a window using <a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> (formerly <code>glfwSetMousePos</code>) when that window is active. Unless the window is active, the function fails silently.</p>
+<p >The <code>glfwGetMousePos</code> function has been renamed to <a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>, <code>glfwSetMousePos</code> to <a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> and <code>glfwSetMousePosCallback</code> to <a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>.</p>
+<p >The cursor position is now <code>double</code> instead of <code>int</code>, both for the direct functions and for the callback. Some platforms can provide sub-pixel cursor movement and this data is now passed on to the application where available. On platforms where this is not provided, the decimal part is zero.</p>
+<p >GLFW 3 only allows you to position the cursor within a window using <a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a> (formerly <code>glfwSetMousePos</code>) when that window is active. Unless the window is active, the function fails silently.</p>
 <h2><a class="anchor" id="moving_wheel"></a>
 Wheel position replaced by scroll offsets</h2>
-<p>The <code>glfwGetMouseWheel</code> function has been removed. Scrolling is the input of offsets and has no absolute position. The mouse wheel callback has been replaced by a <a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">scroll callback</a> that receives two-dimensional floating point scroll offsets. This allows you to receive precise scroll data from for example modern touchpads.</p>
+<p >The <code>glfwGetMouseWheel</code> function has been removed. Scrolling is the input of offsets and has no absolute position. The mouse wheel callback has been replaced by a <a class="el" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">scroll callback</a> that receives two-dimensional floating point scroll offsets. This allows you to receive precise scroll data from for example modern touchpads.</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> GLFWCALL mouse_wheel_callback(<span class="keywordtype">int</span> position);</div>
 </div><!-- fragment --></dd></dl>
-<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> scroll_callback(<a class="code" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xoffset, <span class="keywordtype">double</span> yoffset);</div>
+<dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="keywordtype">void</span> scroll_callback(<a class="code hl_typedef" href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a>* window, <span class="keywordtype">double</span> xoffset, <span class="keywordtype">double</span> yoffset);</div>
 </div><!-- fragment --></dd></dl>
 <dl class="section user"><dt>Removed functions</dt><dd><code>glfwGetMouseWheel</code></dd></dl>
 <h2><a class="anchor" id="moving_repeat"></a>
 Key repeat action</h2>
-<p>The <code>GLFW_KEY_REPEAT</code> enable has been removed and key repeat is always enabled for both keys and characters. A new key action, <code>GLFW_REPEAT</code>, has been added to allow the <a class="el" href="group__input.html#ga0192a232a41e4e82948217c8ba94fdfd">key callback</a> to distinguish an initial key press from a repeat. Note that <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a> still returns only <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
+<p >The <code>GLFW_KEY_REPEAT</code> enable has been removed and key repeat is always enabled for both keys and characters. A new key action, <code>GLFW_REPEAT</code>, has been added to allow the <a class="el" href="group__input.html#ga5bd751b27b90f865d2ea613533f0453c">key callback</a> to distinguish an initial key press from a repeat. Note that <a class="el" href="group__input.html#gadd341da06bc8d418b4dc3a3518af9ad2">glfwGetKey</a> still returns only <code>GLFW_PRESS</code> or <code>GLFW_RELEASE</code>.</p>
 <h2><a class="anchor" id="moving_keys"></a>
 Physical key input</h2>
-<p>GLFW 3 key tokens map to physical keys, unlike in GLFW 2 where they mapped to the values generated by the current keyboard layout. The tokens are named according to the values they would have using the standard US layout, but this is only a convenience, as most programmers are assumed to know that layout. This means that (for example) <code>GLFW_KEY_LEFT_BRACKET</code> is always a single key and is the same key in the same place regardless of what keyboard layouts the users of your program has.</p>
-<p>The key input facility was never meant for text input, although using it that way worked slightly better in GLFW 2. If you were using it to input text, you should be using the character callback instead, on both GLFW 2 and 3. This will give you the characters being input, as opposed to the keys being pressed.</p>
-<p>GLFW 3 has key tokens for all keys on a standard 105 key keyboard, so instead of having to remember whether to check for &lsquo;'a&rsquo;<code>or</code>'A'<code>, you now check for </code>GLFW_KEY_A`.</p>
+<p >GLFW 3 key tokens map to physical keys, unlike in GLFW 2 where they mapped to the values generated by the current keyboard layout. The tokens are named according to the values they would have using the standard US layout, but this is only a convenience, as most programmers are assumed to know that layout. This means that (for example) <code>GLFW_KEY_LEFT_BRACKET</code> is always a single key and is the same key in the same place regardless of what keyboard layouts the users of your program has.</p>
+<p >The key input facility was never meant for text input, although using it that way worked slightly better in GLFW 2. If you were using it to input text, you should be using the character callback instead, on both GLFW 2 and 3. This will give you the characters being input, as opposed to the keys being pressed.</p>
+<p >GLFW 3 has key tokens for all keys on a standard 105 key keyboard, so instead of having to remember whether to check for <code>a</code> or <code>A</code>, you now check for <a class="el" href="group__keys.html#ga03e842608e1ea323370889d33b8f70ff">GLFW_KEY_A</a>.</p>
 <h2><a class="anchor" id="moving_joystick"></a>
 Joystick function changes</h2>
-<p>The <code>glfwGetJoystickPos</code> function has been renamed to <a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a>.</p>
-<p>The <code>glfwGetJoystickParam</code> function and the <code>GLFW_PRESENT</code>, <code>GLFW_AXES</code> and <code>GLFW_BUTTONS</code> tokens have been replaced by the <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a> function as well as axis and button counts returned by the <a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a> and <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a> functions.</p>
+<p >The <code>glfwGetJoystickPos</code> function has been renamed to <a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a>.</p>
+<p >The <code>glfwGetJoystickParam</code> function and the <code>GLFW_PRESENT</code>, <code>GLFW_AXES</code> and <code>GLFW_BUTTONS</code> tokens have been replaced by the <a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a> function as well as axis and button counts returned by the <a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a> and <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a> functions.</p>
 <h2><a class="anchor" id="moving_mbcs"></a>
 Win32 MBCS support</h2>
-<p>The Win32 port of GLFW 3 will not compile in <a href="https://msdn.microsoft.com/en-us/library/5z097dxa.aspx">MBCS mode</a>. However, because the use of the Unicode version of the Win32 API doesn't affect the process as a whole, but only those windows created using it, it's perfectly possible to call MBCS functions from other parts of the same application. Therefore, even if an application using GLFW has MBCS mode code, there's no need for GLFW itself to support it.</p>
+<p >The Win32 port of GLFW 3 will not compile in <a href="https://msdn.microsoft.com/en-us/library/5z097dxa.aspx">MBCS mode</a>. However, because the use of the Unicode version of the Win32 API doesn't affect the process as a whole, but only those windows created using it, it's perfectly possible to call MBCS functions from other parts of the same application. Therefore, even if an application using GLFW has MBCS mode code, there's no need for GLFW itself to support it.</p>
 <h2><a class="anchor" id="moving_windows"></a>
 Support for versions of Windows older than XP</h2>
-<p>All explicit support for version of Windows older than XP has been removed. There is no code that actively prevents GLFW 3 from running on these earlier versions, but it uses Win32 functions that those versions lack.</p>
-<p>Windows XP was released in 2001, and by now (January 2015) it has not only replaced almost all earlier versions of Windows, but is itself rapidly being replaced by Windows 7 and 8. The MSDN library doesn't even provide documentation for version older than Windows 2000, making it difficult to maintain compatibility with these versions even if it was deemed worth the effort.</p>
-<p>The Win32 API has also not stood still, and GLFW 3 uses many functions only present on Windows XP or later. Even supporting an OS as new as XP (new from the perspective of GLFW 2, which still supports Windows 95) requires runtime checking for a number of functions that are present only on modern version of Windows.</p>
+<p >All explicit support for version of Windows older than XP has been removed. There is no code that actively prevents GLFW 3 from running on these earlier versions, but it uses Win32 functions that those versions lack.</p>
+<p >Windows XP was released in 2001, and by now (January 2015) it has not only replaced almost all earlier versions of Windows, but is itself rapidly being replaced by Windows 7 and 8. The MSDN library doesn't even provide documentation for version older than Windows 2000, making it difficult to maintain compatibility with these versions even if it was deemed worth the effort.</p>
+<p >The Win32 API has also not stood still, and GLFW 3 uses many functions only present on Windows XP or later. Even supporting an OS as new as XP (new from the perspective of GLFW 2, which still supports Windows 95) requires runtime checking for a number of functions that are present only on modern version of Windows.</p>
 <h2><a class="anchor" id="moving_syskeys"></a>
 Capture of system-wide hotkeys</h2>
-<p>The ability to disable and capture system-wide hotkeys like Alt+Tab has been removed. Modern applications, whether they're games, scientific visualisations or something else, are nowadays expected to be good desktop citizens and allow these hotkeys to function even when running in full screen mode.</p>
+<p >The ability to disable and capture system-wide hotkeys like Alt+Tab has been removed. Modern applications, whether they're games, scientific visualisations or something else, are nowadays expected to be good desktop citizens and allow these hotkeys to function even when running in full screen mode.</p>
 <h2><a class="anchor" id="moving_terminate"></a>
 Automatic termination</h2>
-<p>GLFW 3 does not register <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> with <code>atexit</code> at initialization, because <code>exit</code> calls registered functions from the calling thread and while it is permitted to call <code>exit</code> from any thread, <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> must only be called from the main thread.</p>
-<p>To release all resources allocated by GLFW, you should call <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> yourself, from the main thread, before the program terminates. Note that this destroys all windows not already destroyed with <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>, invalidating any window handles you may still have.</p>
+<p >GLFW 3 does not register <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> with <code>atexit</code> at initialization, because <code>exit</code> calls registered functions from the calling thread and while it is permitted to call <code>exit</code> from any thread, <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> must only be called from the main thread.</p>
+<p >To release all resources allocated by GLFW, you should call <a class="el" href="group__init.html#gaaae48c0a18607ea4a4ba951d939f0901">glfwTerminate</a> yourself, from the main thread, before the program terminates. Note that this destroys all windows not already destroyed with <a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>, invalidating any window handles you may still have.</p>
 <h2><a class="anchor" id="moving_glu"></a>
 GLU header inclusion</h2>
-<p>GLFW 3 does not by default include the GLU header and GLU itself has been deprecated by <a href="https://en.wikipedia.org/wiki/Khronos_Group">Khronos</a>. <b>New projects should not use GLU</b>, but if you need it for legacy code that has been moved to GLFW 3, you can request that the GLFW header includes it by defining <a class="el" href="build_guide.html#GLFW_INCLUDE_GLU">GLFW_INCLUDE_GLU</a> before the inclusion of the GLFW header.</p>
+<p >GLFW 3 does not by default include the GLU header and GLU itself has been deprecated by <a href="https://en.wikipedia.org/wiki/Khronos_Group">Khronos</a>. <b>New projects should not use GLU</b>, but if you need it for legacy code that has been moved to GLFW 3, you can request that the GLFW header includes it by defining <a class="el" href="build_guide.html#GLFW_INCLUDE_GLU">GLFW_INCLUDE_GLU</a> before the inclusion of the GLFW header.</p>
 <dl class="section user"><dt>Old syntax</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#include &lt;GL/glfw.h&gt;</span></div>
 </div><!-- fragment --></dd></dl>
 <dl class="section user"><dt>New syntax</dt><dd><div class="fragment"><div class="line"><span class="preprocessor">#define GLFW_INCLUDE_GLU</span></div>
-<div class="line"><span class="preprocessor">#include &lt;GLFW/glfw3.h&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="glfw3_8h.html">GLFW/glfw3.h</a>&gt;</span></div>
 </div><!-- fragment --></dd></dl>
 <p>There are many libraries that offer replacements for the functionality offered by GLU. For the matrix helper functions, see math libraries like <a href="https://github.com/g-truc/glm">GLM</a> (for C++), <a href="https://github.com/datenwolf/linmath.h">linmath.h</a> (for C) and others. For the tessellation functions, see for example <a href="https://github.com/memononen/libtess2">libtess2</a>.</p>
 <h1><a class="anchor" id="moving_tables"></a>
@@ -261,105 +272,95 @@ Name change tables</h1>
 Renamed functions</h2>
 <table class="markdownTable">
 <tr class="markdownTableHead">
-<th class="markdownTableHeadNone">GLFW 2  </th><th class="markdownTableHeadNone">GLFW 3  </th><th class="markdownTableHeadNone">Notes   </th></tr>
+<th class="markdownTableHeadNone">GLFW 2   </th><th class="markdownTableHeadNone">GLFW 3   </th><th class="markdownTableHeadNone">Notes    </th></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwOpenWindow</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a>  </td><td class="markdownTableBodyNone">All channel bit depths are now hints   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwOpenWindow</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#ga3555a418df92ad53f917597fe2f64aeb">glfwCreateWindow</a>   </td><td class="markdownTableBodyNone">All channel bit depths are now hints    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwCloseWindow</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwCloseWindow</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacdf43e51376051d2c091662e9fe3d7b2">glfwDestroyWindow</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwOpenWindowHint</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>  </td><td class="markdownTableBodyNone">Now accepts all <code>GLFW_*_BITS</code> tokens   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwOpenWindowHint</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#ga7d9c8c62384b1e2821c4dc48952d2033">glfwWindowHint</a>   </td><td class="markdownTableBodyNone">Now accepts all <code>GLFW_*_BITS</code> tokens    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwEnable</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwEnable</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwDisable</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwDisable</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwGetMousePos</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetMousePos</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga01d37b6c40133676b9cea60ca1d7c0cc">glfwGetCursorPos</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwSetMousePos</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwSetMousePos</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga04b03af936d906ca123c8f4ee08b39e7">glfwSetCursorPos</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwSetMousePosCallback</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwSetMousePosCallback</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gac1f879ab7435d54d4d79bb469fe225d7">glfwSetCursorPosCallback</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwSetMouseWheelCallback</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>  </td><td class="markdownTableBodyNone">Accepts two-dimensional scroll offsets as doubles   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwSetMouseWheelCallback</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga571e45a030ae4061f746ed56cb76aede">glfwSetScrollCallback</a>   </td><td class="markdownTableBodyNone">Accepts two-dimensional scroll offsets as doubles    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwGetJoystickPos</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetJoystickPos</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwGetWindowParam</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetWindowParam</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwGetGLVersion</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>  </td><td class="markdownTableBodyNone">Use <code>GLFW_CONTEXT_VERSION_MAJOR</code>, <code>GLFW_CONTEXT_VERSION_MINOR</code> and <code>GLFW_CONTEXT_REVISION</code>   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetGLVersion</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__window.html#gacccb29947ea4b16860ebef42c2cb9337">glfwGetWindowAttrib</a>   </td><td class="markdownTableBodyNone">Use <code>GLFW_CONTEXT_VERSION_MAJOR</code>, <code>GLFW_CONTEXT_VERSION_MINOR</code> and <code>GLFW_CONTEXT_REVISION</code>    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>glfwGetDesktopMode</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__monitor.html#gafc1bb972a921ad5b3bd5d63a95fc2d52">glfwGetVideoMode</a>  </td><td class="markdownTableBodyNone">Returns the current mode of a monitor   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetDesktopMode</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__monitor.html#gaba376fa7e76634b4788bddc505d6c9d5">glfwGetVideoMode</a>   </td><td class="markdownTableBodyNone">Returns the current mode of a monitor    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>glfwGetJoystickParam</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>  </td><td class="markdownTableBodyNone">The axis and button counts are provided by <a class="el" href="group__input.html#gaa8806536731e92c061bc70bcff6edbd0">glfwGetJoystickAxes</a> and <a class="el" href="group__input.html#gadb3cbf44af90a1536f519659a53bddd6">glfwGetJoystickButtons</a>   </td></tr>
+<td class="markdownTableBodyNone"><code>glfwGetJoystickParam</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaed0966cee139d815317f9ffcba64c9f1">glfwJoystickPresent</a>   </td><td class="markdownTableBodyNone">The axis and button counts are provided by <a class="el" href="group__input.html#gaeb1c0191d3140a233a682987c61eb408">glfwGetJoystickAxes</a> and <a class="el" href="group__input.html#ga5ffe34739d3dc97efe432ed2d81d9938">glfwGetJoystickButtons</a>   </td></tr>
 </table>
 <h2><a class="anchor" id="moving_renamed_types"></a>
 Renamed types</h2>
 <table class="markdownTable">
 <tr class="markdownTableHead">
-<th class="markdownTableHeadNone">GLFW 2  </th><th class="markdownTableHeadNone">GLFW 3  </th><th class="markdownTableHeadNone">Notes   </th></tr>
+<th class="markdownTableHeadNone">GLFW 2   </th><th class="markdownTableHeadNone">GLFW 3   </th><th class="markdownTableHeadNone">Notes    </th></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFWmousewheelfun</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga4687e2199c60a18a8dd1da532e6d75c9">GLFWscrollfun</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFWmousewheelfun</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gaf656112c33de3efdb227fa58f0134cf5">GLFWscrollfun</a>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFWmouseposfun</code>  </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#ga4cfad918fa836f09541e7b9acd36686c">GLFWcursorposfun</a>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFWmouseposfun</code>   </td><td class="markdownTableBodyNone"><a class="el" href="group__input.html#gad6fae41b3ac2e4209aaa87b596c57f68">GLFWcursorposfun</a>   </td><td class="markdownTableBodyNone"></td></tr>
 </table>
 <h2><a class="anchor" id="moving_renamed_tokens"></a>
 Renamed tokens</h2>
 <table class="markdownTable">
 <tr class="markdownTableHead">
-<th class="markdownTableHeadNone">GLFW 2  </th><th class="markdownTableHeadNone">GLFW 3  </th><th class="markdownTableHeadNone">Notes   </th></tr>
+<th class="markdownTableHeadNone">GLFW 2   </th><th class="markdownTableHeadNone">GLFW 3   </th><th class="markdownTableHeadNone">Notes    </th></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_OPENGL_VERSION_MAJOR</code>  </td><td class="markdownTableBodyNone"><code>GLFW_CONTEXT_VERSION_MAJOR</code>  </td><td class="markdownTableBodyNone">Renamed as it applies to OpenGL ES as well   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_OPENGL_VERSION_MAJOR</code>   </td><td class="markdownTableBodyNone"><code>GLFW_CONTEXT_VERSION_MAJOR</code>   </td><td class="markdownTableBodyNone">Renamed as it applies to OpenGL ES as well    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_OPENGL_VERSION_MINOR</code>  </td><td class="markdownTableBodyNone"><code>GLFW_CONTEXT_VERSION_MINOR</code>  </td><td class="markdownTableBodyNone">Renamed as it applies to OpenGL ES as well   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_OPENGL_VERSION_MINOR</code>   </td><td class="markdownTableBodyNone"><code>GLFW_CONTEXT_VERSION_MINOR</code>   </td><td class="markdownTableBodyNone">Renamed as it applies to OpenGL ES as well    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_FSAA_SAMPLES</code>  </td><td class="markdownTableBodyNone"><code>GLFW_SAMPLES</code>  </td><td class="markdownTableBodyNone">Renamed to match the OpenGL API   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_FSAA_SAMPLES</code>   </td><td class="markdownTableBodyNone"><code>GLFW_SAMPLES</code>   </td><td class="markdownTableBodyNone">Renamed to match the OpenGL API    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_ACTIVE</code>  </td><td class="markdownTableBodyNone"><code>GLFW_FOCUSED</code>  </td><td class="markdownTableBodyNone">Renamed to match the window focus callback   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_ACTIVE</code>   </td><td class="markdownTableBodyNone"><code>GLFW_FOCUSED</code>   </td><td class="markdownTableBodyNone">Renamed to match the window focus callback    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_WINDOW_NO_RESIZE</code>  </td><td class="markdownTableBodyNone"><code>GLFW_RESIZABLE</code>  </td><td class="markdownTableBodyNone">The default has been inverted   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_WINDOW_NO_RESIZE</code>   </td><td class="markdownTableBodyNone"><code>GLFW_RESIZABLE</code>   </td><td class="markdownTableBodyNone">The default has been inverted    </td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_MOUSE_CURSOR</code>  </td><td class="markdownTableBodyNone"><code>GLFW_CURSOR</code>  </td><td class="markdownTableBodyNone">Used with <a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>   </td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_MOUSE_CURSOR</code>   </td><td class="markdownTableBodyNone"><code>GLFW_CURSOR</code>   </td><td class="markdownTableBodyNone">Used with <a class="el" href="group__input.html#gaa92336e173da9c8834558b54ee80563b">glfwSetInputMode</a>    </td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_ESC</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_ESCAPE</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_ESC</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_ESCAPE</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_DEL</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_DELETE</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_DEL</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_DELETE</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_PAGEUP</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_PAGE_UP</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_PAGEUP</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_PAGE_UP</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_PAGEDOWN</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_PAGE_DOWN</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_PAGEDOWN</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_PAGE_DOWN</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_KP_NUM_LOCK</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_NUM_LOCK</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_KP_NUM_LOCK</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_NUM_LOCK</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_LCTRL</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_CONTROL</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_LCTRL</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_CONTROL</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_LSHIFT</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_SHIFT</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_LSHIFT</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_SHIFT</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_LALT</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_ALT</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_LALT</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_ALT</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_LSUPER</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_SUPER</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_LSUPER</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_LEFT_SUPER</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_RCTRL</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_CONTROL</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_RCTRL</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_CONTROL</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_RSHIFT</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_SHIFT</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_RSHIFT</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_SHIFT</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowEven">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_RALT</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_ALT</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_RALT</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_ALT</code>   </td><td class="markdownTableBodyNone"></td></tr>
 <tr class="markdownTableRowOdd">
-<td class="markdownTableBodyNone"><code>GLFW_KEY_RSUPER</code>  </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_SUPER</code>  </td><td class="markdownTableBodyNone"></td></tr>
+<td class="markdownTableBodyNone"><code>GLFW_KEY_RSUPER</code>   </td><td class="markdownTableBodyNone"><code>GLFW_KEY_RIGHT_SUPER</code>   </td><td class="markdownTableBodyNone"></td></tr>
 </table>
 </div></div><!-- contents -->
 </div><!-- PageDoc -->
-<div class="ttc" id="aglfw3_8h_html"><div class="ttname"><a href="glfw3_8h.html">glfw3.h</a></div><div class="ttdoc">The header of the GLFW 3 API.</div></div>
-<div class="ttc" id="agroup__window_html_ga5d877f09e968cef7a360b513306f17ff"><div class="ttname"><a href="group__window.html#ga5d877f09e968cef7a360b513306f17ff">glfwSetWindowTitle</a></div><div class="ttdeci">void glfwSetWindowTitle(GLFWwindow *window, const char *title)</div><div class="ttdoc">Sets the title of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga3c96d80d363e67d13a41b5d1821f3242"><div class="ttname"><a href="group__window.html#ga3c96d80d363e67d13a41b5d1821f3242">GLFWwindow</a></div><div class="ttdeci">struct GLFWwindow GLFWwindow</div><div class="ttdoc">Opaque window object.</div><div class="ttdef"><b>Definition:</b> glfw3.h:1152</div></div>
-<div class="ttc" id="agroup__window_html_ga15a5a1ee5b3c2ca6b15ca209a12efd14"><div class="ttname"><a href="group__window.html#ga15a5a1ee5b3c2ca6b15ca209a12efd14">glfwSwapBuffers</a></div><div class="ttdeci">void glfwSwapBuffers(GLFWwindow *window)</div><div class="ttdoc">Swaps the front and back buffers of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga24e02fbfefbb81fc45320989f8140ab5"><div class="ttname"><a href="group__window.html#ga24e02fbfefbb81fc45320989f8140ab5">glfwWindowShouldClose</a></div><div class="ttdeci">int glfwWindowShouldClose(GLFWwindow *window)</div><div class="ttdoc">Checks the close flag of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga37bd57223967b4211d60ca1a0bf3c832"><div class="ttname"><a href="group__window.html#ga37bd57223967b4211d60ca1a0bf3c832">glfwPollEvents</a></div><div class="ttdeci">void glfwPollEvents(void)</div><div class="ttdoc">Processes all pending events.</div></div>
-<div class="ttc" id="agroup__monitor_html_ga721867d84c6d18d6790d64d2847ca0b1"><div class="ttname"><a href="group__monitor.html#ga721867d84c6d18d6790d64d2847ca0b1">glfwGetPrimaryMonitor</a></div><div class="ttdeci">GLFWmonitor * glfwGetPrimaryMonitor(void)</div><div class="ttdoc">Returns the primary monitor.</div></div>
-<div class="ttc" id="agroup__window_html_ga5c336fddf2cbb5b92f65f10fb6043344"><div class="ttname"><a href="group__window.html#ga5c336fddf2cbb5b92f65f10fb6043344">glfwCreateWindow</a></div><div class="ttdeci">GLFWwindow * glfwCreateWindow(int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share)</div><div class="ttdoc">Creates a window and its associated context.</div></div>
-<div class="ttc" id="agroup__window_html_gaeea7cbc03373a41fb51cfbf9f2a5d4c6"><div class="ttname"><a href="group__window.html#gaeea7cbc03373a41fb51cfbf9f2a5d4c6">glfwGetWindowSize</a></div><div class="ttdeci">void glfwGetWindowSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the content area of the specified window.</div></div>
-<div class="ttc" id="agroup__window_html_ga0e2637a4161afb283f5300c7f94785c9"><div class="ttname"><a href="group__window.html#ga0e2637a4161afb283f5300c7f94785c9">glfwGetFramebufferSize</a></div><div class="ttdeci">void glfwGetFramebufferSize(GLFWwindow *window, int *width, int *height)</div><div class="ttdoc">Retrieves the size of the framebuffer of the specified window.</div></div>
 <address class="footer">
 <p>
-Last update on Mon Jan 20 2020 for GLFW 3.3.2
+Last update on Fri Jul 22 2022 for GLFW 3.3.8
 </p>
 </address>
 </body>

Vissa filer visades inte eftersom för många filer har ändrats