From 7b3afcaf77f96e7d62f6cd1623ead7f17512d79f Mon Sep 17 00:00:00 2001 From: Omniscient <17525998+omnisci3nce@users.noreply.github.com> Date: Sat, 24 Feb 2024 22:47:46 +1100 Subject: repo init. partial port of existing code --- deps/glfw-3.3.8/docs/html/bc_s.png | Bin 0 -> 676 bytes deps/glfw-3.3.8/docs/html/bdwn.png | Bin 0 -> 147 bytes deps/glfw-3.3.8/docs/html/build_8dox.html | 74 + deps/glfw-3.3.8/docs/html/build_guide.html | 192 ++ deps/glfw-3.3.8/docs/html/closed.png | Bin 0 -> 132 bytes deps/glfw-3.3.8/docs/html/compat_8dox.html | 74 + deps/glfw-3.3.8/docs/html/compat_guide.html | 145 + deps/glfw-3.3.8/docs/html/compile_8dox.html | 74 + deps/glfw-3.3.8/docs/html/compile_guide.html | 216 ++ deps/glfw-3.3.8/docs/html/context_8dox.html | 74 + deps/glfw-3.3.8/docs/html/context_guide.html | 251 ++ deps/glfw-3.3.8/docs/html/deprecated.html | 81 + .../html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html | 88 + .../html/dir_4351554941a2744586042c1cf3cf139a.html | 86 + .../html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html | 84 + .../html/dir_fda32cf7bec00275262cb8799a618f76.html | 78 + deps/glfw-3.3.8/docs/html/doc.png | Bin 0 -> 746 bytes deps/glfw-3.3.8/docs/html/doxygen.css | 1841 +++++++++++ deps/glfw-3.3.8/docs/html/doxygen.svg | 26 + deps/glfw-3.3.8/docs/html/dynsections.js | 121 + deps/glfw-3.3.8/docs/html/extra.css | 1 + deps/glfw-3.3.8/docs/html/files.html | 84 + deps/glfw-3.3.8/docs/html/folderclosed.png | Bin 0 -> 616 bytes deps/glfw-3.3.8/docs/html/folderopen.png | Bin 0 -> 597 bytes deps/glfw-3.3.8/docs/html/glfw3_8h.html | 1619 +++++++++ deps/glfw-3.3.8/docs/html/glfw3_8h_source.html | 1155 +++++++ deps/glfw-3.3.8/docs/html/glfw3native_8h.html | 160 + .../docs/html/glfw3native_8h_source.html | 285 ++ deps/glfw-3.3.8/docs/html/group__buttons.html | 275 ++ deps/glfw-3.3.8/docs/html/group__context.html | 295 ++ deps/glfw-3.3.8/docs/html/group__errors.html | 297 ++ .../glfw-3.3.8/docs/html/group__gamepad__axes.html | 195 ++ .../docs/html/group__gamepad__buttons.html | 403 +++ deps/glfw-3.3.8/docs/html/group__hat__state.html | 227 ++ deps/glfw-3.3.8/docs/html/group__init.html | 545 ++++ deps/glfw-3.3.8/docs/html/group__input.html | 2228 +++++++++++++ deps/glfw-3.3.8/docs/html/group__joysticks.html | 355 ++ deps/glfw-3.3.8/docs/html/group__keys.html | 2043 ++++++++++++ deps/glfw-3.3.8/docs/html/group__mods.html | 191 ++ deps/glfw-3.3.8/docs/html/group__monitor.html | 841 +++++ deps/glfw-3.3.8/docs/html/group__native.html | 805 +++++ deps/glfw-3.3.8/docs/html/group__shapes.html | 191 ++ deps/glfw-3.3.8/docs/html/group__vulkan.html | 352 ++ deps/glfw-3.3.8/docs/html/group__window.html | 3427 ++++++++++++++++++++ deps/glfw-3.3.8/docs/html/index.html | 93 + deps/glfw-3.3.8/docs/html/input_8dox.html | 74 + deps/glfw-3.3.8/docs/html/input_guide.html | 562 ++++ deps/glfw-3.3.8/docs/html/internal_8dox.html | 74 + deps/glfw-3.3.8/docs/html/internals_guide.html | 125 + deps/glfw-3.3.8/docs/html/intro_8dox.html | 74 + deps/glfw-3.3.8/docs/html/intro_guide.html | 329 ++ deps/glfw-3.3.8/docs/html/jquery.js | 35 + deps/glfw-3.3.8/docs/html/main_8dox.html | 74 + deps/glfw-3.3.8/docs/html/menu.js | 135 + deps/glfw-3.3.8/docs/html/menudata.js | 30 + deps/glfw-3.3.8/docs/html/modules.html | 94 + deps/glfw-3.3.8/docs/html/monitor_8dox.html | 74 + deps/glfw-3.3.8/docs/html/monitor_guide.html | 222 ++ deps/glfw-3.3.8/docs/html/moving_8dox.html | 74 + deps/glfw-3.3.8/docs/html/moving_guide.html | 367 +++ deps/glfw-3.3.8/docs/html/nav_f.png | Bin 0 -> 153 bytes deps/glfw-3.3.8/docs/html/nav_g.png | Bin 0 -> 95 bytes deps/glfw-3.3.8/docs/html/nav_h.png | Bin 0 -> 98 bytes deps/glfw-3.3.8/docs/html/news.html | 614 ++++ deps/glfw-3.3.8/docs/html/news_8dox.html | 74 + deps/glfw-3.3.8/docs/html/open.png | Bin 0 -> 123 bytes deps/glfw-3.3.8/docs/html/pages.html | 92 + deps/glfw-3.3.8/docs/html/quick_8dox.html | 74 + deps/glfw-3.3.8/docs/html/quick_guide.html | 391 +++ deps/glfw-3.3.8/docs/html/search/all_0.html | 37 + deps/glfw-3.3.8/docs/html/search/all_0.js | 4 + deps/glfw-3.3.8/docs/html/search/all_1.html | 37 + deps/glfw-3.3.8/docs/html/search/all_1.js | 8 + deps/glfw-3.3.8/docs/html/search/all_10.html | 37 + deps/glfw-3.3.8/docs/html/search/all_10.js | 6 + deps/glfw-3.3.8/docs/html/search/all_11.html | 37 + deps/glfw-3.3.8/docs/html/search/all_11.js | 7 + deps/glfw-3.3.8/docs/html/search/all_2.html | 37 + deps/glfw-3.3.8/docs/html/search/all_2.js | 9 + deps/glfw-3.3.8/docs/html/search/all_3.html | 37 + deps/glfw-3.3.8/docs/html/search/all_3.js | 4 + deps/glfw-3.3.8/docs/html/search/all_4.html | 37 + deps/glfw-3.3.8/docs/html/search/all_4.js | 4 + deps/glfw-3.3.8/docs/html/search/all_5.html | 37 + deps/glfw-3.3.8/docs/html/search/all_5.js | 477 +++ deps/glfw-3.3.8/docs/html/search/all_6.html | 37 + deps/glfw-3.3.8/docs/html/search/all_6.js | 4 + deps/glfw-3.3.8/docs/html/search/all_7.html | 37 + deps/glfw-3.3.8/docs/html/search/all_7.js | 11 + deps/glfw-3.3.8/docs/html/search/all_8.html | 37 + deps/glfw-3.3.8/docs/html/search/all_8.js | 5 + deps/glfw-3.3.8/docs/html/search/all_9.html | 37 + deps/glfw-3.3.8/docs/html/search/all_9.js | 4 + deps/glfw-3.3.8/docs/html/search/all_a.html | 37 + deps/glfw-3.3.8/docs/html/search/all_a.js | 11 + deps/glfw-3.3.8/docs/html/search/all_b.html | 37 + deps/glfw-3.3.8/docs/html/search/all_b.js | 6 + deps/glfw-3.3.8/docs/html/search/all_c.html | 37 + deps/glfw-3.3.8/docs/html/search/all_c.js | 4 + deps/glfw-3.3.8/docs/html/search/all_d.html | 37 + deps/glfw-3.3.8/docs/html/search/all_d.js | 4 + deps/glfw-3.3.8/docs/html/search/all_e.html | 37 + deps/glfw-3.3.8/docs/html/search/all_e.js | 7 + deps/glfw-3.3.8/docs/html/search/all_f.html | 37 + deps/glfw-3.3.8/docs/html/search/all_f.js | 6 + deps/glfw-3.3.8/docs/html/search/classes_0.html | 37 + deps/glfw-3.3.8/docs/html/search/classes_0.js | 7 + deps/glfw-3.3.8/docs/html/search/close.svg | 31 + deps/glfw-3.3.8/docs/html/search/defines_0.html | 37 + deps/glfw-3.3.8/docs/html/search/defines_0.js | 32 + deps/glfw-3.3.8/docs/html/search/files_0.html | 37 + deps/glfw-3.3.8/docs/html/search/files_0.js | 4 + deps/glfw-3.3.8/docs/html/search/files_1.html | 37 + deps/glfw-3.3.8/docs/html/search/files_1.js | 6 + deps/glfw-3.3.8/docs/html/search/files_2.html | 37 + deps/glfw-3.3.8/docs/html/search/files_2.js | 5 + deps/glfw-3.3.8/docs/html/search/files_3.html | 37 + deps/glfw-3.3.8/docs/html/search/files_3.js | 6 + deps/glfw-3.3.8/docs/html/search/files_4.html | 37 + deps/glfw-3.3.8/docs/html/search/files_4.js | 6 + deps/glfw-3.3.8/docs/html/search/files_5.html | 37 + deps/glfw-3.3.8/docs/html/search/files_5.js | 4 + deps/glfw-3.3.8/docs/html/search/files_6.html | 37 + deps/glfw-3.3.8/docs/html/search/files_6.js | 4 + deps/glfw-3.3.8/docs/html/search/files_7.html | 37 + deps/glfw-3.3.8/docs/html/search/files_7.js | 4 + deps/glfw-3.3.8/docs/html/search/files_8.html | 37 + deps/glfw-3.3.8/docs/html/search/files_8.js | 4 + deps/glfw-3.3.8/docs/html/search/functions_0.html | 37 + deps/glfw-3.3.8/docs/html/search/functions_0.js | 146 + deps/glfw-3.3.8/docs/html/search/groups_0.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_0.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_1.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_1.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_2.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_2.js | 5 + deps/glfw-3.3.8/docs/html/search/groups_3.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_3.js | 5 + deps/glfw-3.3.8/docs/html/search/groups_4.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_4.js | 5 + deps/glfw-3.3.8/docs/html/search/groups_5.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_5.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_6.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_6.js | 6 + deps/glfw-3.3.8/docs/html/search/groups_7.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_7.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_8.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_8.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_9.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_9.js | 4 + deps/glfw-3.3.8/docs/html/search/groups_a.html | 37 + deps/glfw-3.3.8/docs/html/search/groups_a.js | 4 + deps/glfw-3.3.8/docs/html/search/mag_sel.svg | 74 + deps/glfw-3.3.8/docs/html/search/nomatches.html | 13 + deps/glfw-3.3.8/docs/html/search/pages_0.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_0.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_1.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_1.js | 5 + deps/glfw-3.3.8/docs/html/search/pages_2.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_2.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_3.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_3.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_4.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_4.js | 6 + deps/glfw-3.3.8/docs/html/search/pages_5.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_5.js | 5 + deps/glfw-3.3.8/docs/html/search/pages_6.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_6.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_7.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_7.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_8.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_8.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_9.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_9.js | 4 + deps/glfw-3.3.8/docs/html/search/pages_a.html | 37 + deps/glfw-3.3.8/docs/html/search/pages_a.js | 4 + deps/glfw-3.3.8/docs/html/search/search.css | 263 ++ deps/glfw-3.3.8/docs/html/search/search.js | 802 +++++ deps/glfw-3.3.8/docs/html/search/search_l.png | Bin 0 -> 567 bytes deps/glfw-3.3.8/docs/html/search/search_m.png | Bin 0 -> 158 bytes deps/glfw-3.3.8/docs/html/search/search_r.png | Bin 0 -> 553 bytes deps/glfw-3.3.8/docs/html/search/searchdata.js | 39 + deps/glfw-3.3.8/docs/html/search/typedefs_0.html | 37 + deps/glfw-3.3.8/docs/html/search/typedefs_0.js | 32 + deps/glfw-3.3.8/docs/html/search/variables_0.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_0.js | 4 + deps/glfw-3.3.8/docs/html/search/variables_1.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_1.js | 6 + deps/glfw-3.3.8/docs/html/search/variables_2.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_2.js | 5 + deps/glfw-3.3.8/docs/html/search/variables_3.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_3.js | 4 + deps/glfw-3.3.8/docs/html/search/variables_4.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_4.js | 4 + deps/glfw-3.3.8/docs/html/search/variables_5.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_5.js | 6 + deps/glfw-3.3.8/docs/html/search/variables_6.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_6.js | 4 + deps/glfw-3.3.8/docs/html/search/variables_7.html | 37 + deps/glfw-3.3.8/docs/html/search/variables_7.js | 4 + deps/glfw-3.3.8/docs/html/spaces.svg | 877 +++++ deps/glfw-3.3.8/docs/html/splitbar.png | Bin 0 -> 314 bytes .../docs/html/structGLFWgamepadstate.html | 129 + deps/glfw-3.3.8/docs/html/structGLFWgammaramp.html | 165 + deps/glfw-3.3.8/docs/html/structGLFWimage.html | 146 + deps/glfw-3.3.8/docs/html/structGLFWvidmode.html | 199 ++ deps/glfw-3.3.8/docs/html/sync_off.png | Bin 0 -> 853 bytes deps/glfw-3.3.8/docs/html/sync_on.png | Bin 0 -> 845 bytes deps/glfw-3.3.8/docs/html/tab_a.png | Bin 0 -> 142 bytes deps/glfw-3.3.8/docs/html/tab_b.png | Bin 0 -> 169 bytes deps/glfw-3.3.8/docs/html/tab_h.png | Bin 0 -> 177 bytes deps/glfw-3.3.8/docs/html/tab_s.png | Bin 0 -> 184 bytes deps/glfw-3.3.8/docs/html/tabs.css | 1 + deps/glfw-3.3.8/docs/html/vulkan_8dox.html | 74 + deps/glfw-3.3.8/docs/html/vulkan_guide.html | 189 ++ deps/glfw-3.3.8/docs/html/window_8dox.html | 74 + deps/glfw-3.3.8/docs/html/window_guide.html | 756 +++++ 217 files changed, 30224 insertions(+) create mode 100644 deps/glfw-3.3.8/docs/html/bc_s.png create mode 100644 deps/glfw-3.3.8/docs/html/bdwn.png create mode 100644 deps/glfw-3.3.8/docs/html/build_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/build_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/closed.png create mode 100644 deps/glfw-3.3.8/docs/html/compat_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/compat_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/compile_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/compile_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/context_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/context_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/deprecated.html create mode 100644 deps/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html create mode 100644 deps/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html create mode 100644 deps/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html create mode 100644 deps/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html create mode 100644 deps/glfw-3.3.8/docs/html/doc.png create mode 100644 deps/glfw-3.3.8/docs/html/doxygen.css create mode 100644 deps/glfw-3.3.8/docs/html/doxygen.svg create mode 100644 deps/glfw-3.3.8/docs/html/dynsections.js create mode 100644 deps/glfw-3.3.8/docs/html/extra.css create mode 100644 deps/glfw-3.3.8/docs/html/files.html create mode 100644 deps/glfw-3.3.8/docs/html/folderclosed.png create mode 100644 deps/glfw-3.3.8/docs/html/folderopen.png create mode 100644 deps/glfw-3.3.8/docs/html/glfw3_8h.html create mode 100644 deps/glfw-3.3.8/docs/html/glfw3_8h_source.html create mode 100644 deps/glfw-3.3.8/docs/html/glfw3native_8h.html create mode 100644 deps/glfw-3.3.8/docs/html/glfw3native_8h_source.html create mode 100644 deps/glfw-3.3.8/docs/html/group__buttons.html create mode 100644 deps/glfw-3.3.8/docs/html/group__context.html create mode 100644 deps/glfw-3.3.8/docs/html/group__errors.html create mode 100644 deps/glfw-3.3.8/docs/html/group__gamepad__axes.html create mode 100644 deps/glfw-3.3.8/docs/html/group__gamepad__buttons.html create mode 100644 deps/glfw-3.3.8/docs/html/group__hat__state.html create mode 100644 deps/glfw-3.3.8/docs/html/group__init.html create mode 100644 deps/glfw-3.3.8/docs/html/group__input.html create mode 100644 deps/glfw-3.3.8/docs/html/group__joysticks.html create mode 100644 deps/glfw-3.3.8/docs/html/group__keys.html create mode 100644 deps/glfw-3.3.8/docs/html/group__mods.html create mode 100644 deps/glfw-3.3.8/docs/html/group__monitor.html create mode 100644 deps/glfw-3.3.8/docs/html/group__native.html create mode 100644 deps/glfw-3.3.8/docs/html/group__shapes.html create mode 100644 deps/glfw-3.3.8/docs/html/group__vulkan.html create mode 100644 deps/glfw-3.3.8/docs/html/group__window.html create mode 100644 deps/glfw-3.3.8/docs/html/index.html create mode 100644 deps/glfw-3.3.8/docs/html/input_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/input_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/internal_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/internals_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/intro_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/intro_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/jquery.js create mode 100644 deps/glfw-3.3.8/docs/html/main_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/menu.js create mode 100644 deps/glfw-3.3.8/docs/html/menudata.js create mode 100644 deps/glfw-3.3.8/docs/html/modules.html create mode 100644 deps/glfw-3.3.8/docs/html/monitor_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/monitor_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/moving_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/moving_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/nav_f.png create mode 100644 deps/glfw-3.3.8/docs/html/nav_g.png create mode 100644 deps/glfw-3.3.8/docs/html/nav_h.png create mode 100644 deps/glfw-3.3.8/docs/html/news.html create mode 100644 deps/glfw-3.3.8/docs/html/news_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/open.png create mode 100644 deps/glfw-3.3.8/docs/html/pages.html create mode 100644 deps/glfw-3.3.8/docs/html/quick_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/quick_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_1.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_1.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_10.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_10.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_11.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_11.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_2.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_2.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_3.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_3.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_4.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_4.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_5.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_5.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_6.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_6.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_7.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_7.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_8.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_8.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_9.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_9.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_a.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_a.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_b.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_b.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_c.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_c.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_d.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_d.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_e.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_e.js create mode 100644 deps/glfw-3.3.8/docs/html/search/all_f.html create mode 100644 deps/glfw-3.3.8/docs/html/search/all_f.js create mode 100644 deps/glfw-3.3.8/docs/html/search/classes_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/classes_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/close.svg create mode 100644 deps/glfw-3.3.8/docs/html/search/defines_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/defines_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_1.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_1.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_2.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_2.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_3.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_3.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_4.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_4.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_5.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_5.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_6.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_6.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_7.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_7.js create mode 100644 deps/glfw-3.3.8/docs/html/search/files_8.html create mode 100644 deps/glfw-3.3.8/docs/html/search/files_8.js create mode 100644 deps/glfw-3.3.8/docs/html/search/functions_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/functions_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_1.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_1.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_2.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_2.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_3.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_3.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_4.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_4.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_5.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_5.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_6.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_6.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_7.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_7.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_8.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_8.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_9.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_9.js create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_a.html create mode 100644 deps/glfw-3.3.8/docs/html/search/groups_a.js create mode 100644 deps/glfw-3.3.8/docs/html/search/mag_sel.svg create mode 100644 deps/glfw-3.3.8/docs/html/search/nomatches.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_1.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_1.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_2.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_2.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_3.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_3.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_4.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_4.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_5.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_5.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_6.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_6.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_7.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_7.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_8.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_8.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_9.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_9.js create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_a.html create mode 100644 deps/glfw-3.3.8/docs/html/search/pages_a.js create mode 100644 deps/glfw-3.3.8/docs/html/search/search.css create mode 100644 deps/glfw-3.3.8/docs/html/search/search.js create mode 100644 deps/glfw-3.3.8/docs/html/search/search_l.png create mode 100644 deps/glfw-3.3.8/docs/html/search/search_m.png create mode 100644 deps/glfw-3.3.8/docs/html/search/search_r.png create mode 100644 deps/glfw-3.3.8/docs/html/search/searchdata.js create mode 100644 deps/glfw-3.3.8/docs/html/search/typedefs_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/typedefs_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_0.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_0.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_1.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_1.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_2.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_2.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_3.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_3.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_4.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_4.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_5.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_5.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_6.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_6.js create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_7.html create mode 100644 deps/glfw-3.3.8/docs/html/search/variables_7.js create mode 100644 deps/glfw-3.3.8/docs/html/spaces.svg create mode 100644 deps/glfw-3.3.8/docs/html/splitbar.png create mode 100644 deps/glfw-3.3.8/docs/html/structGLFWgamepadstate.html create mode 100644 deps/glfw-3.3.8/docs/html/structGLFWgammaramp.html create mode 100644 deps/glfw-3.3.8/docs/html/structGLFWimage.html create mode 100644 deps/glfw-3.3.8/docs/html/structGLFWvidmode.html create mode 100644 deps/glfw-3.3.8/docs/html/sync_off.png create mode 100644 deps/glfw-3.3.8/docs/html/sync_on.png create mode 100644 deps/glfw-3.3.8/docs/html/tab_a.png create mode 100644 deps/glfw-3.3.8/docs/html/tab_b.png create mode 100644 deps/glfw-3.3.8/docs/html/tab_h.png create mode 100644 deps/glfw-3.3.8/docs/html/tab_s.png create mode 100644 deps/glfw-3.3.8/docs/html/tabs.css create mode 100644 deps/glfw-3.3.8/docs/html/vulkan_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/vulkan_guide.html create mode 100644 deps/glfw-3.3.8/docs/html/window_8dox.html create mode 100644 deps/glfw-3.3.8/docs/html/window_guide.html (limited to 'deps/glfw-3.3.8/docs/html') diff --git a/deps/glfw-3.3.8/docs/html/bc_s.png b/deps/glfw-3.3.8/docs/html/bc_s.png new file mode 100644 index 0000000..224b29a Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/bc_s.png differ diff --git a/deps/glfw-3.3.8/docs/html/bdwn.png b/deps/glfw-3.3.8/docs/html/bdwn.png new file mode 100644 index 0000000..940a0b9 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/bdwn.png differ diff --git a/deps/glfw-3.3.8/docs/html/build_8dox.html b/deps/glfw-3.3.8/docs/html/build_8dox.html new file mode 100644 index 0000000..1f81575 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/build_8dox.html @@ -0,0 +1,74 @@ + + +
+ + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/build_guide.html b/deps/glfw-3.3.8/docs/html/build_guide.html new file mode 100644 index 0000000..3b09bff --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/build_guide.html @@ -0,0 +1,192 @@ + + + + + + + +This is about compiling and linking applications that use GLFW. For information on how to write such applications, start with the introductory tutorial. For information on how to compile the GLFW library itself, see Compiling GLFW.
+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.
+You should include the GLFW header in the source files where you use OpenGL or GLFW.
+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 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 that it can be included without needing any window system headers.
+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:
+If you are using an OpenGL extension loading library such as glad, 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.
+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 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.
+These macros may be defined before the inclusion of the GLFW header and affect its behavior.
+GLFW_DLL is required on Windows when using the GLFW DLL, to tell the compiler that the GLFW functions are defined in a DLL.
+The following macros control which OpenGL or OpenGL ES API header is included. Only one of these may be defined at a time.
+GLFW_INCLUDE_GLCOREARB makes the GLFW header include the modern GL/glcorearb.h
header (OpenGL/gl3.h
on macOS) instead of the regular OpenGL header.
GLFW_INCLUDE_ES1 makes the GLFW header include the OpenGL ES 1.x GLES/gl.h
header instead of the regular OpenGL header.
GLFW_INCLUDE_ES2 makes the GLFW header include the OpenGL ES 2.0 GLES2/gl2.h
header instead of the regular OpenGL header.
GLFW_INCLUDE_ES3 makes the GLFW header include the OpenGL ES 3.0 GLES3/gl3.h
header instead of the regular OpenGL header.
GLFW_INCLUDE_ES31 makes the GLFW header include the OpenGL ES 3.1 GLES3/gl31.h
header instead of the regular OpenGL header.
GLFW_INCLUDE_ES32 makes the GLFW header include the OpenGL ES 3.2 GLES3/gl32.h
header instead of the regular OpenGL header.
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, 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 above macros.
+GLFW_INCLUDE_VULKAN makes the GLFW header include the Vulkan vulkan/vulkan.h
header in addition to any selected OpenGL or OpenGL ES header.
GLFW_INCLUDE_GLEXT 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.
+GLFW_INCLUDE_GLU 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.
+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.
+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.
+A good general introduction to linking is Beginner's Guide to Linkers by David Drysdale.
+The static version of the GLFW library is named glfw3
. When using this version, it is also necessary to link with some libraries that GLFW uses.
When using MinGW to link an application with the static version of GLFW, you must also explicitly link with gdi32
. Other toolchains including MinGW-w64 include it in the set of default libraries along with other dependencies like user32
and kernel32
.
The link library for the GLFW DLL is named glfw3dll
. When compiling an application that uses the DLL version of GLFW, you need to define the GLFW_DLL macro before any inclusion of the GLFW header. This can be done either with a compiler switch or by defining it in your source code.
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 With CMake and installed GLFW binaries.
+With a few changes to your CMakeLists.txt
you can have the GLFW source tree built along with your application.
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.
+Add the root directory of the GLFW source tree to your project. This will add the glfw
target to your project.
Once GLFW has been added, link your application against the glfw
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 GLFW_DLL macro.
Note that the glfw
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 extension loader library, use the OpenGL CMake package.
If OpenGL is found, the OpenGL::GL
target is added to your project, containing library and include directory paths. Link against this like any other library.
For a minimal example of a program and GLFW sources built with CMake, see the GLFW CMake Starter on GitHub.
+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 With CMake and GLFW source.
+With a few changes to your CMakeLists.txt
you can locate the package and target files generated when GLFW is installed.
Once GLFW has been added to the project, link against it with the glfw
target. This adds the GLFW library and its link-time dependencies, the include directory for the GLFW header and, when applicable, the GLFW_DLL macro.
Note that the glfw
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 extension loader library, use the OpenGL CMake package.
If OpenGL is found, the OpenGL::GL
target is added to your project, containing library and include directory paths. Link against this like any other library.
GLFW supports pkg-config, and the glfw3.pc
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.
A typical compile and link command-line when using the static version of the GLFW library may look like this:
+If you are using the shared version of the GLFW library, omit the --static
flag.
You can also use the glfw3.pc
file without installing it first, by using the PKG_CONFIG_PATH
environment variable.
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 extension loader library, you should add the gl
pkg-config package.
If you are using the dynamic library version of GLFW, add it to the project dependencies.
+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 /System/Library/Frameworks
.
It is recommended that you use pkg-config 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 -l
and -framework
switches.
If you are using the dynamic GLFW library, which is named libglfw.3.dylib
, do:
If you are using the static library, named libglfw3.a
, substitute -lglfw3
for -lglfw
.
Note that you do not add the .framework
extension to a framework when linking against it from the command-line.
libGL.*.dylib
style OpenGL library, but that is for the X Window System and will not work with the macOS native version of GLFW. +Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/closed.png b/deps/glfw-3.3.8/docs/html/closed.png new file mode 100644 index 0000000..98cc2c9 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/closed.png differ diff --git a/deps/glfw-3.3.8/docs/html/compat_8dox.html b/deps/glfw-3.3.8/docs/html/compat_8dox.html new file mode 100644 index 0000000..64a2e2e --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/compat_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/compat_guide.html b/deps/glfw-3.3.8/docs/html/compat_guide.html new file mode 100644 index 0000000..28e42ba --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/compat_guide.html @@ -0,0 +1,145 @@ + + + + + + + +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.
+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.
+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 Inter-Client Communication Conventions Manual (ICCCM) and Extended Window Manager Hints (EWMH) standards.
+GLFW uses the _MOTIF_WM_HINTS
window property to support borderless windows. If the running window manager does not support this property, the GLFW_DECORATED
hint will have no effect.
GLFW uses the ICCCM WM_DELETE_WINDOW
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.
GLFW uses the EWMH _NET_WM_PING
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.
GLFW uses the EWMH _NET_WM_STATE_FULLSCREEN
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.
GLFW uses the EWMH _NET_WM_BYPASS_COMPOSITOR
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.
GLFW uses the clipboard manager protocol 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.
+GLFW uses the X drag-and-drop protocol to provide file drop events. If the application originating the drag does not support this protocol, drag and drop will not work.
+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.
+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.
+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.
+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.
+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 GLFW_TRANSPARENT_FRAMEBUFFER
framebuffer hint will have no effect.
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 libxkbcommon. In addition, GLFW uses some protocols from wayland-protocols to provide additional features if the compositor supports them.
+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.
+GLFW uses the xdg-shell protocol to provide better window management. This protocol is part of wayland-protocols 1.12, and mandatory at build time.
+GLFW uses the relative pointer protocol alongside the pointer constraints protocol 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.
+GLFW uses the idle inhibit protocol 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.
+GLFW uses the xdg-decoration protocol 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 viewporter protocol alongside subsurfaces. 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.
+The GLX API is the default API used to create OpenGL contexts on Unix-like systems using the X Window System.
+GLFW uses the GLX 1.3 GLXFBConfig
functions to enumerate and select framebuffer pixel formats. If GLX 1.3 is not supported, glfwInit will fail.
GLFW uses the GLX_MESA_swap_control,
GLX_EXT_swap_control
and GLX_SGI_swap_control
extensions to provide vertical retrace synchronization (or vsync), in that order of preference. Where none of these extension are available, calling glfwSwapInterval will have no effect.
GLFW uses the GLX_ARB_multisample
extension to create contexts with multisampling anti-aliasing. Where this extension is unavailable, the GLFW_SAMPLES
hint will have no effect.
GLFW uses the GLX_ARB_create_context
extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the GLFW_CONTEXT_VERSION_MAJOR
and GLFW_CONTEXT_VERSION_MINOR
hints will only be partially supported, the GLFW_OPENGL_DEBUG_CONTEXT
hint will have no effect, and setting the GLFW_OPENGL_PROFILE
or GLFW_OPENGL_FORWARD_COMPAT
hints to GLFW_TRUE
will cause glfwCreateWindow to fail.
GLFW uses the GLX_ARB_create_context_profile
extension to provide support for context profiles. Where this extension is unavailable, setting the GLFW_OPENGL_PROFILE
hint to anything but GLFW_OPENGL_ANY_PROFILE
, or setting GLFW_CLIENT_API
to anything but GLFW_OPENGL_API
or GLFW_NO_API
will cause glfwCreateWindow to fail.
GLFW uses the GLX_ARB_context_flush_control
extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the GLFW_CONTEXT_RELEASE_BEHAVIOR
hint will have no effect and the context will always be flushed when released.
GLFW uses the GLX_ARB_framebuffer_sRGB
and GLX_EXT_framebuffer_sRGB
extensions to provide support for sRGB framebuffers. Where both of these extensions are unavailable, the GLFW_SRGB_CAPABLE
hint will have no effect.
The WGL API is used to create OpenGL contexts on Microsoft Windows and other implementations of the Win32 API, such as Wine.
+GLFW uses either the WGL_EXT_extension_string
or the WGL_ARB_extension_string
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.
GLFW uses the WGL_EXT_swap_control
extension to provide vertical retrace synchronization (or vsync). Where this extension is unavailable, calling glfwSwapInterval will have no effect.
GLFW uses the WGL_ARB_pixel_format
and WGL_ARB_multisample
extensions to create contexts with multisampling anti-aliasing. Where these extensions are unavailable, the GLFW_SAMPLES
hint will have no effect.
GLFW uses the WGL_ARB_create_context
extension when available, even when creating OpenGL contexts of version 2.1 and below. Where this extension is unavailable, the GLFW_CONTEXT_VERSION_MAJOR
and GLFW_CONTEXT_VERSION_MINOR
hints will only be partially supported, the GLFW_OPENGL_DEBUG_CONTEXT
hint will have no effect, and setting the GLFW_OPENGL_PROFILE
or GLFW_OPENGL_FORWARD_COMPAT
hints to GLFW_TRUE
will cause glfwCreateWindow to fail.
GLFW uses the WGL_ARB_create_context_profile
extension to provide support for context profiles. Where this extension is unavailable, setting the GLFW_OPENGL_PROFILE
hint to anything but GLFW_OPENGL_ANY_PROFILE
will cause glfwCreateWindow to fail.
GLFW uses the WGL_ARB_context_flush_control
extension to provide control over whether a context is flushed when it is released (made non-current). Where this extension is unavailable, the GLFW_CONTEXT_RELEASE_BEHAVIOR
hint will have no effect and the context will always be flushed when released.
GLFW uses the WGL_ARB_framebuffer_sRGB
and WGL_EXT_framebuffer_sRGB
extensions to provide support for sRGB framebuffers. Where both of these extension are unavailable, the GLFW_SRGB_CAPABLE
hint will have no effect.
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.
+Because of this, on OS X 10.7 and later, the GLFW_CONTEXT_VERSION_MAJOR
and GLFW_CONTEXT_VERSION_MINOR
hints will cause glfwCreateWindow to fail if given version 3.0 or 3.1. The GLFW_OPENGL_FORWARD_COMPAT
hint must be set to GLFW_TRUE
and the GLFW_OPENGL_PROFILE
hint must be set to GLFW_OPENGL_CORE_PROFILE
when creating OpenGL 3.2 and later contexts. The GLFW_OPENGL_DEBUG_CONTEXT
and GLFW_CONTEXT_NO_ERROR
hints are ignored.
Also, on Mac OS X 10.6 and below, the GLFW_CONTEXT_VERSION_MAJOR
and GLFW_CONTEXT_VERSION_MINOR
hints will fail if given a version above 2.1, setting the GLFW_OPENGL_PROFILE
or GLFW_OPENGL_FORWARD_COMPAT
hints to a non-default value will cause glfwCreateWindow to fail and the GLFW_OPENGL_DEBUG_CONTEXT
hint is ignored.
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, glfwVulkanSupported will return GLFW_FALSE
and all other Vulkan-related functions will fail with an GLFW_API_UNAVAILABLE error.
The Vulkan WSI extensions are used to create Vulkan surfaces for GLFW windows on all supported platforms.
+GLFW uses the VK_KHR_surface
and VK_KHR_win32_surface
extensions to create surfaces on Microsoft Windows. If any of these extensions are not available, glfwGetRequiredInstanceExtensions will return an empty list and window surface creation will fail.
GLFW uses the VK_KHR_surface
and either the VK_MVK_macos_surface
or VK_EXT_metal_surface
extensions to create surfaces on macOS. If any of these extensions are not available, glfwGetRequiredInstanceExtensions will return an empty list and window surface creation will fail.
GLFW uses the VK_KHR_surface
and either the VK_KHR_xlib_surface
or VK_KHR_xcb_surface
extensions to create surfaces on X11. If VK_KHR_surface
or both VK_KHR_xlib_surface
and VK_KHR_xcb_surface
are not available, glfwGetRequiredInstanceExtensions will return an empty list and window surface creation will fail.
GLFW uses the VK_KHR_surface
and VK_KHR_wayland_surface
extensions to create surfaces on Wayland. If any of these extensions are not available, glfwGetRequiredInstanceExtensions will return an empty list and window surface creation will fail.
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/compile_8dox.html b/deps/glfw-3.3.8/docs/html/compile_8dox.html new file mode 100644 index 0000000..35f284a --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/compile_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/compile_guide.html b/deps/glfw-3.3.8/docs/html/compile_guide.html new file mode 100644 index 0000000..3a28819 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/compile_guide.html @@ -0,0 +1,216 @@ + + + + + + + +This is about compiling the GLFW library itself. For information on how to build applications that use GLFW, see Building applications.
+GLFW uses CMake 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.
+If you are on Windows and macOS you can download CMake from their site.
+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 that includes everything in this guide not specific to GLFW. It may be a useful companion to this one.
+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.
+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.
+On Debian and derivates like Ubuntu and Linux Mint the xorg-dev
meta-package pulls in the development packages for all of X11.
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.
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.
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 the required depdendencies, move on to Generating build files with CMake.
+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.
+On Debian and derivates like Ubuntu and Linux Mint you will need the libwayland-dev
, libxkbcommon-dev
, wayland-protocols
and extra-cmake-modules
packages.
On Fedora and derivatives like Red Hat you will need the wayland-devel
, libxkbcommon-devel
, wayland-protocols-devel
and extra-cmake-modules
packages.
On FreeBSD you will need the wayland
, libxkbcommon
, wayland-protocols
and kf5-extra-cmake-modules
packages.
Once you have the required depdendencies, move on to Generating build files with CMake.
+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:
+src
subdirectory)If these are the same, it is called an in-tree build, otherwise it is called an out-of-tree build.
+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.
+A common pattern when building a single configuration is to have a build directory named build
in the root of the source tree.
Start the CMake GUI and set the paths to the source and build directories described above. Then press Configure and Generate.
+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.
+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.
Once you have generated the project files or makefiles for your chosen development environment, move on to Compiling the library.
+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.
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.
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.
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.
Once you have generated the project files or makefiles for your chosen development environment, move on to Compiling the library.
+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.
+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
.
With MinGW, it is mingw32-make
.
Any CMake build directory can also be built with the cmake
command and the --build
flag.
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 application, linking it to the GLFW library. See Building applications for more information.
+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 GLFW_
prefix.
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 ccmake
ncurses GUI to set options. Some package systems like Ubuntu and other distributions based on Debian GNU/Linux have this tool in a separate cmake-curses-gui
package.
Finally, if you don't want to use any GUI, you can set options from the cmake
command-line with the -D
flag.
BUILD_SHARED_LIBS 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.
+GLFW_BUILD_EXAMPLES determines whether the GLFW examples are built along with the library.
+GLFW_BUILD_TESTS determines whether the GLFW test programs are built along with the library.
+GLFW_BUILD_DOCS determines whether the GLFW documentation is built along with the library. This is enabled by default if Doxygen is found by CMake during configuration.
+GLFW_VULKAN_STATIC determines whether to use the Vulkan loader linked directly with the application. This is disabled by default.
+USE_MSVC_RUNTIME_LIBRARY_DLL 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.
+On CMake 3.15 and later you can set the standard CMake CMAKE_MSVC_RUNTIME_LIBRARY variable instead of this GLFW-specific option.
+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. This is disabled by default, letting the operating system and driver decide.
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.
+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.
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:
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.
+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.
+When building with CMake, the glfw_config.h
configuration header is generated based on the current platform and CMake options. The GLFW CMake environment defines GLFW_USE_CONFIG_H, which causes this header to be included by internal.h
. Without this macro, GLFW will expect the necessary configuration macros to be defined on the command-line.
The window creation API is used to create windows, handle input, monitors, gamma ramps and clipboard. The options are:
+If you are building GLFW as a shared library / dynamic library / DLL then you must also define _GLFW_BUILD_DLL. Otherwise, you must not define it.
+If you are linking the Vulkan loader directly with your application then you must also define _GLFW_VULKAN_STATIC. Otherwise, GLFW will attempt to use the external version.
+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 _GLFW_VULKAN_LIBRARY, _GLFW_EGL_LIBRARY, _GLFW_GLX_LIBRARY, _GLFW_OSMESA_LIBRARY, _GLFW_OPENGL_LIBRARY, _GLFW_GLESV1_LIBRARY and _GLFW_GLESV2_LIBRARY. Otherwise, GLFW will use the built-in default names.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/context_8dox.html b/deps/glfw-3.3.8/docs/html/context_8dox.html new file mode 100644 index 0000000..89cb318 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/context_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/context_guide.html b/deps/glfw-3.3.8/docs/html/context_guide.html new file mode 100644 index 0000000..04c9c09 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/context_guide.html @@ -0,0 +1,251 @@ + + + + + + + +This guide introduces the OpenGL and OpenGL ES context related functions of GLFW. For details on a specific function in this category, see the Context reference. There are also guides for the other areas of the GLFW API.
+ +A window object encapsulates both a top-level window and an OpenGL or OpenGL ES context. It is created with glfwCreateWindow and destroyed with glfwDestroyWindow or glfwTerminate. See Window creation for more information.
+As the window and context are inseparably linked, the window object also serves as the context handle.
+To test the creation of various kinds of contexts and see their properties, run the glfwinfo
test program.
GLFW_NO_API
. For more information, see the Vulkan guide.There are a number of hints, specified using glfwWindowHint, related to what kind of context is created. See context related hints in the window guide.
+When creating a window and its OpenGL or OpenGL ES context with glfwCreateWindow, you can specify another window whose context the new one should share its objects (textures, vertex and element buffers, etc.) with.
+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.
+See the relevant chapter of the OpenGL or OpenGL ES reference documents for more information. The name and number of this chapter unfortunately varies between versions and APIs, but has at times been named Shared Objects and Multiple Contexts.
+GLFW comes with a barebones object sharing example program called sharing
.
GLFW doesn't support creating contexts without an associated window. However, contexts with hidden windows can be created with the GLFW_VISIBLE window hint.
+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.
+You should still process events as long as you have at least one window, even if none of them are visible.
+macOS: 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 GLFW_COCOA_MENUBAR init hint.
+You can disable context creation by setting the GLFW_CLIENT_API hint to GLFW_NO_API
. Windows without contexts must not be passed to glfwMakeContextCurrent or glfwSwapBuffers.
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.
+When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.
+The context of a window is made current with glfwMakeContextCurrent.
+The window of the current context is returned by glfwGetCurrentContext.
+The following GLFW functions require a context to be current. Calling any these functions without a current context will generate a GLFW_NO_CURRENT_CONTEXT error.
+ +See Buffer swapping in the window guide.
+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.
+An extension is defined by:
+GL_ARB_gl_spirv
)GL_SPIR_V_BINARY_ARB
)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 are many different affixes, like NV
for Nvidia and AMD
for, well, AMD. Any group may also use the generic EXT
affix. Lists of extensions, together with their specifications, can be found at the OpenGL Registry and OpenGL ES Registry.
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 glad and there are several others.
+The following example will use glad but all extension loader libraries work similarly.
+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 output
directory.
The --no-loader
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.
Add the generated output/src/glad.c
, output/include/glad/glad.h
and output/include/KHR/khrplatform.h
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.
Finally you need to initialize glad once you have a suitable current context.
+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.
+You can specify a minimum required OpenGL or OpenGL ES version with context hints. If your needs are more complex, you can check the actual OpenGL or OpenGL ES version with context attributes, or you can check whether a specific version is supported by the current context with the GLAD_GL_VERSION_x_x
booleans.
To check whether a specific extension is supported, use the GLAD_GL_xxx
booleans.
Do not use this technique unless it is absolutely necessary. An extension loader library will save you a ton of tedious, repetitive, error prone work.
+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 glfwExtensionSupported and glfwGetProcAddress for manual loading of extensions and new API functions.
+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.
+The glext.h
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 OpenGL Registry. There are also extension headers for the various versions of OpenGL ES at the OpenGL ES Registry. 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.
The header defines function pointer types for all functions of all extensions it 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 GLFW_INCLUDE_GLEXT before including the GLFW header.
+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 glfwExtensionSupported.
+The argument is a null terminated ASCII string with the extension name. If the extension is supported, glfwExtensionSupported returns GLFW_TRUE
, otherwise it returns GLFW_FALSE
.
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 glfwGetProcAddress.
+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.
+Now that all the pieces have been introduced, here is what they might look like when used together.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/deprecated.html b/deps/glfw-3.3.8/docs/html/deprecated.html new file mode 100644 index 0000000..f516c9a --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/deprecated.html @@ -0,0 +1,81 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html b/deps/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html new file mode 100644 index 0000000..ec0844b --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/dir_1dfd43b3952c5bc1ba15d15b12afff7b.html @@ -0,0 +1,88 @@ + + + + + + + ++Files | |
file | glfw3.h [code] |
The header of the GLFW 3 API. | |
file | glfw3native.h [code] |
The header of the native access functions. | |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html b/deps/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html new file mode 100644 index 0000000..bb36bd1 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/dir_4351554941a2744586042c1cf3cf139a.html @@ -0,0 +1,86 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html b/deps/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html new file mode 100644 index 0000000..4a9295a --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/dir_f6ba4c3dca55a8d4e7d63c8235e0ad43.html @@ -0,0 +1,84 @@ + + + + + + + ++Directories | |
directory | GLFW |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html b/deps/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html new file mode 100644 index 0000000..3464fd1 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/dir_fda32cf7bec00275262cb8799a618f76.html @@ -0,0 +1,78 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/doc.png b/deps/glfw-3.3.8/docs/html/doc.png new file mode 100644 index 0000000..17edabf Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/doc.png differ diff --git a/deps/glfw-3.3.8/docs/html/doxygen.css b/deps/glfw-3.3.8/docs/html/doxygen.css new file mode 100644 index 0000000..2010785 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/doxygen.css @@ -0,0 +1,1841 @@ +/* The standard CSS for doxygen 1.9.4 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +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; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + 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{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +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 { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +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 { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +.compoundTemplParams { + color: #4665A2; + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font: 200% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 90% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +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; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @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.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +code.JavaDocCode { + direction:ltr; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/deps/glfw-3.3.8/docs/html/doxygen.svg b/deps/glfw-3.3.8/docs/html/doxygen.svg new file mode 100644 index 0000000..d42dad5 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/doxygen.svg @@ -0,0 +1,26 @@ + + diff --git a/deps/glfw-3.3.8/docs/html/dynsections.js b/deps/glfw-3.3.8/docs/html/dynsections.js new file mode 100644 index 0000000..3174bd7 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/dynsections.js @@ -0,0 +1,121 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + 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) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l▼ glfw-3.3.8 | |
docs | |
▼ include | |
▼ GLFW | |
glfw3.h | The header of the GLFW 3 API |
glfw3native.h | The header of the native access functions |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/folderclosed.png b/deps/glfw-3.3.8/docs/html/folderclosed.png new file mode 100644 index 0000000..bb8ab35 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/folderclosed.png differ diff --git a/deps/glfw-3.3.8/docs/html/folderopen.png b/deps/glfw-3.3.8/docs/html/folderopen.png new file mode 100644 index 0000000..d6c7f67 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/folderopen.png differ diff --git a/deps/glfw-3.3.8/docs/html/glfw3_8h.html b/deps/glfw-3.3.8/docs/html/glfw3_8h.html new file mode 100644 index 0000000..b01a690 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/glfw3_8h.html @@ -0,0 +1,1619 @@ + + + + + + + +This is the header file of the GLFW 3 API. It defines all its types and declares all its functions.
+For more information about how to use this file, see Including the GLFW header file.
+Go to the source code of this file.
++Macros | |
#define | GLFW_APIENTRY_DEFINED |
#define | GLFW_TRUE 1 |
One. More... | |
#define | GLFW_FALSE 0 |
Zero. More... | |
#define | GLFW_HAT_CENTERED 0 |
#define | GLFW_HAT_UP 1 |
#define | GLFW_HAT_RIGHT 2 |
#define | GLFW_HAT_DOWN 4 |
#define | GLFW_HAT_LEFT 8 |
#define | GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP) |
#define | GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN) |
#define | GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP) |
#define | GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN) |
#define | GLFW_KEY_UNKNOWN -1 |
#define | GLFW_KEY_SPACE 32 |
#define | GLFW_KEY_APOSTROPHE 39 /* ' */ |
#define | GLFW_KEY_COMMA 44 /* , */ |
#define | GLFW_KEY_MINUS 45 /* - */ |
#define | GLFW_KEY_PERIOD 46 /* . */ |
#define | GLFW_KEY_SLASH 47 /* / */ |
#define | GLFW_KEY_0 48 |
#define | GLFW_KEY_1 49 |
#define | GLFW_KEY_2 50 |
#define | GLFW_KEY_3 51 |
#define | GLFW_KEY_4 52 |
#define | GLFW_KEY_5 53 |
#define | GLFW_KEY_6 54 |
#define | GLFW_KEY_7 55 |
#define | GLFW_KEY_8 56 |
#define | GLFW_KEY_9 57 |
#define | GLFW_KEY_SEMICOLON 59 /* ; */ |
#define | GLFW_KEY_EQUAL 61 /* = */ |
#define | GLFW_KEY_A 65 |
#define | GLFW_KEY_B 66 |
#define | GLFW_KEY_C 67 |
#define | GLFW_KEY_D 68 |
#define | GLFW_KEY_E 69 |
#define | GLFW_KEY_F 70 |
#define | GLFW_KEY_G 71 |
#define | GLFW_KEY_H 72 |
#define | GLFW_KEY_I 73 |
#define | GLFW_KEY_J 74 |
#define | GLFW_KEY_K 75 |
#define | GLFW_KEY_L 76 |
#define | GLFW_KEY_M 77 |
#define | GLFW_KEY_N 78 |
#define | GLFW_KEY_O 79 |
#define | GLFW_KEY_P 80 |
#define | GLFW_KEY_Q 81 |
#define | GLFW_KEY_R 82 |
#define | GLFW_KEY_S 83 |
#define | GLFW_KEY_T 84 |
#define | GLFW_KEY_U 85 |
#define | GLFW_KEY_V 86 |
#define | GLFW_KEY_W 87 |
#define | GLFW_KEY_X 88 |
#define | GLFW_KEY_Y 89 |
#define | GLFW_KEY_Z 90 |
#define | GLFW_KEY_LEFT_BRACKET 91 /* [ */ |
#define | GLFW_KEY_BACKSLASH 92 /* \ */ |
#define | GLFW_KEY_RIGHT_BRACKET 93 /* ] */ |
#define | GLFW_KEY_GRAVE_ACCENT 96 /* ` */ |
#define | GLFW_KEY_WORLD_1 161 /* non-US #1 */ |
#define | GLFW_KEY_WORLD_2 162 /* non-US #2 */ |
#define | GLFW_KEY_ESCAPE 256 |
#define | GLFW_KEY_ENTER 257 |
#define | GLFW_KEY_TAB 258 |
#define | GLFW_KEY_BACKSPACE 259 |
#define | GLFW_KEY_INSERT 260 |
#define | GLFW_KEY_DELETE 261 |
#define | GLFW_KEY_RIGHT 262 |
#define | GLFW_KEY_LEFT 263 |
#define | GLFW_KEY_DOWN 264 |
#define | GLFW_KEY_UP 265 |
#define | GLFW_KEY_PAGE_UP 266 |
#define | GLFW_KEY_PAGE_DOWN 267 |
#define | GLFW_KEY_HOME 268 |
#define | GLFW_KEY_END 269 |
#define | GLFW_KEY_CAPS_LOCK 280 |
#define | GLFW_KEY_SCROLL_LOCK 281 |
#define | GLFW_KEY_NUM_LOCK 282 |
#define | GLFW_KEY_PRINT_SCREEN 283 |
#define | GLFW_KEY_PAUSE 284 |
#define | GLFW_KEY_F1 290 |
#define | GLFW_KEY_F2 291 |
#define | GLFW_KEY_F3 292 |
#define | GLFW_KEY_F4 293 |
#define | GLFW_KEY_F5 294 |
#define | GLFW_KEY_F6 295 |
#define | GLFW_KEY_F7 296 |
#define | GLFW_KEY_F8 297 |
#define | GLFW_KEY_F9 298 |
#define | GLFW_KEY_F10 299 |
#define | GLFW_KEY_F11 300 |
#define | GLFW_KEY_F12 301 |
#define | GLFW_KEY_F13 302 |
#define | GLFW_KEY_F14 303 |
#define | GLFW_KEY_F15 304 |
#define | GLFW_KEY_F16 305 |
#define | GLFW_KEY_F17 306 |
#define | GLFW_KEY_F18 307 |
#define | GLFW_KEY_F19 308 |
#define | GLFW_KEY_F20 309 |
#define | GLFW_KEY_F21 310 |
#define | GLFW_KEY_F22 311 |
#define | GLFW_KEY_F23 312 |
#define | GLFW_KEY_F24 313 |
#define | GLFW_KEY_F25 314 |
#define | GLFW_KEY_KP_0 320 |
#define | GLFW_KEY_KP_1 321 |
#define | GLFW_KEY_KP_2 322 |
#define | GLFW_KEY_KP_3 323 |
#define | GLFW_KEY_KP_4 324 |
#define | GLFW_KEY_KP_5 325 |
#define | GLFW_KEY_KP_6 326 |
#define | GLFW_KEY_KP_7 327 |
#define | GLFW_KEY_KP_8 328 |
#define | GLFW_KEY_KP_9 329 |
#define | GLFW_KEY_KP_DECIMAL 330 |
#define | GLFW_KEY_KP_DIVIDE 331 |
#define | GLFW_KEY_KP_MULTIPLY 332 |
#define | GLFW_KEY_KP_SUBTRACT 333 |
#define | GLFW_KEY_KP_ADD 334 |
#define | GLFW_KEY_KP_ENTER 335 |
#define | GLFW_KEY_KP_EQUAL 336 |
#define | GLFW_KEY_LEFT_SHIFT 340 |
#define | GLFW_KEY_LEFT_CONTROL 341 |
#define | GLFW_KEY_LEFT_ALT 342 |
#define | GLFW_KEY_LEFT_SUPER 343 |
#define | GLFW_KEY_RIGHT_SHIFT 344 |
#define | GLFW_KEY_RIGHT_CONTROL 345 |
#define | GLFW_KEY_RIGHT_ALT 346 |
#define | GLFW_KEY_RIGHT_SUPER 347 |
#define | GLFW_KEY_MENU 348 |
#define | GLFW_KEY_LAST GLFW_KEY_MENU |
#define | GLFW_MOD_SHIFT 0x0001 |
If this bit is set one or more Shift keys were held down. More... | |
#define | GLFW_MOD_CONTROL 0x0002 |
If this bit is set one or more Control keys were held down. More... | |
#define | GLFW_MOD_ALT 0x0004 |
If this bit is set one or more Alt keys were held down. More... | |
#define | GLFW_MOD_SUPER 0x0008 |
If this bit is set one or more Super keys were held down. More... | |
#define | GLFW_MOD_CAPS_LOCK 0x0010 |
If this bit is set the Caps Lock key is enabled. More... | |
#define | GLFW_MOD_NUM_LOCK 0x0020 |
If this bit is set the Num Lock key is enabled. More... | |
#define | GLFW_MOUSE_BUTTON_1 0 |
#define | GLFW_MOUSE_BUTTON_2 1 |
#define | GLFW_MOUSE_BUTTON_3 2 |
#define | GLFW_MOUSE_BUTTON_4 3 |
#define | GLFW_MOUSE_BUTTON_5 4 |
#define | GLFW_MOUSE_BUTTON_6 5 |
#define | GLFW_MOUSE_BUTTON_7 6 |
#define | GLFW_MOUSE_BUTTON_8 7 |
#define | GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 |
#define | GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 |
#define | GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 |
#define | GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 |
#define | GLFW_JOYSTICK_1 0 |
#define | GLFW_JOYSTICK_2 1 |
#define | GLFW_JOYSTICK_3 2 |
#define | GLFW_JOYSTICK_4 3 |
#define | GLFW_JOYSTICK_5 4 |
#define | GLFW_JOYSTICK_6 5 |
#define | GLFW_JOYSTICK_7 6 |
#define | GLFW_JOYSTICK_8 7 |
#define | GLFW_JOYSTICK_9 8 |
#define | GLFW_JOYSTICK_10 9 |
#define | GLFW_JOYSTICK_11 10 |
#define | GLFW_JOYSTICK_12 11 |
#define | GLFW_JOYSTICK_13 12 |
#define | GLFW_JOYSTICK_14 13 |
#define | GLFW_JOYSTICK_15 14 |
#define | GLFW_JOYSTICK_16 15 |
#define | GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 |
#define | GLFW_GAMEPAD_BUTTON_A 0 |
#define | GLFW_GAMEPAD_BUTTON_B 1 |
#define | GLFW_GAMEPAD_BUTTON_X 2 |
#define | GLFW_GAMEPAD_BUTTON_Y 3 |
#define | GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4 |
#define | GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5 |
#define | GLFW_GAMEPAD_BUTTON_BACK 6 |
#define | GLFW_GAMEPAD_BUTTON_START 7 |
#define | GLFW_GAMEPAD_BUTTON_GUIDE 8 |
#define | GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9 |
#define | GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_UP 11 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14 |
#define | GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT |
#define | GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A |
#define | GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B |
#define | GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X |
#define | GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y |
#define | GLFW_GAMEPAD_AXIS_LEFT_X 0 |
#define | GLFW_GAMEPAD_AXIS_LEFT_Y 1 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_X 2 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_Y 3 |
#define | GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5 |
#define | GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER |
#define | GLFW_NO_ERROR 0 |
No error has occurred. More... | |
#define | GLFW_NOT_INITIALIZED 0x00010001 |
GLFW has not been initialized. More... | |
#define | GLFW_NO_CURRENT_CONTEXT 0x00010002 |
No context is current for this thread. More... | |
#define | GLFW_INVALID_ENUM 0x00010003 |
One of the arguments to the function was an invalid enum value. More... | |
#define | GLFW_INVALID_VALUE 0x00010004 |
One of the arguments to the function was an invalid value. More... | |
#define | GLFW_OUT_OF_MEMORY 0x00010005 |
A memory allocation failed. More... | |
#define | GLFW_API_UNAVAILABLE 0x00010006 |
GLFW could not find support for the requested API on the system. More... | |
#define | GLFW_VERSION_UNAVAILABLE 0x00010007 |
The requested OpenGL or OpenGL ES version is not available. More... | |
#define | GLFW_PLATFORM_ERROR 0x00010008 |
A platform-specific error occurred that does not match any of the more specific categories. More... | |
#define | GLFW_FORMAT_UNAVAILABLE 0x00010009 |
The requested format is not supported or available. More... | |
#define | GLFW_NO_WINDOW_CONTEXT 0x0001000A |
The specified window does not have an OpenGL or OpenGL ES context. More... | |
#define | GLFW_FOCUSED 0x00020001 |
Input focus window hint and attribute. More... | |
#define | GLFW_ICONIFIED 0x00020002 |
Window iconification window attribute. More... | |
#define | GLFW_RESIZABLE 0x00020003 |
Window resize-ability window hint and attribute. More... | |
#define | GLFW_VISIBLE 0x00020004 |
Window visibility window hint and attribute. More... | |
#define | GLFW_DECORATED 0x00020005 |
Window decoration window hint and attribute. More... | |
#define | GLFW_AUTO_ICONIFY 0x00020006 |
Window auto-iconification window hint and attribute. More... | |
#define | GLFW_FLOATING 0x00020007 |
Window decoration window hint and attribute. More... | |
#define | GLFW_MAXIMIZED 0x00020008 |
Window maximization window hint and attribute. More... | |
#define | GLFW_CENTER_CURSOR 0x00020009 |
Cursor centering window hint. More... | |
#define | GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A |
Window framebuffer transparency hint and attribute. More... | |
#define | GLFW_HOVERED 0x0002000B |
Mouse cursor hover window attribute. More... | |
#define | GLFW_FOCUS_ON_SHOW 0x0002000C |
Input focus on calling show window hint and attribute. More... | |
#define | GLFW_RED_BITS 0x00021001 |
Framebuffer bit depth hint. More... | |
#define | GLFW_GREEN_BITS 0x00021002 |
Framebuffer bit depth hint. More... | |
#define | GLFW_BLUE_BITS 0x00021003 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ALPHA_BITS 0x00021004 |
Framebuffer bit depth hint. More... | |
#define | GLFW_DEPTH_BITS 0x00021005 |
Framebuffer bit depth hint. More... | |
#define | GLFW_STENCIL_BITS 0x00021006 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_RED_BITS 0x00021007 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_GREEN_BITS 0x00021008 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_BLUE_BITS 0x00021009 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_ALPHA_BITS 0x0002100A |
Framebuffer bit depth hint. More... | |
#define | GLFW_AUX_BUFFERS 0x0002100B |
Framebuffer auxiliary buffer hint. More... | |
#define | GLFW_STEREO 0x0002100C |
OpenGL stereoscopic rendering hint. More... | |
#define | GLFW_SAMPLES 0x0002100D |
Framebuffer MSAA samples hint. More... | |
#define | GLFW_SRGB_CAPABLE 0x0002100E |
Framebuffer sRGB hint. More... | |
#define | GLFW_REFRESH_RATE 0x0002100F |
Monitor refresh rate hint. More... | |
#define | GLFW_DOUBLEBUFFER 0x00021010 |
Framebuffer double buffering hint. More... | |
#define | GLFW_CLIENT_API 0x00022001 |
Context client API hint and attribute. More... | |
#define | GLFW_CONTEXT_VERSION_MAJOR 0x00022002 |
Context client API major version hint and attribute. More... | |
#define | GLFW_CONTEXT_VERSION_MINOR 0x00022003 |
Context client API minor version hint and attribute. More... | |
#define | GLFW_CONTEXT_REVISION 0x00022004 |
Context client API revision number attribute. More... | |
#define | GLFW_CONTEXT_ROBUSTNESS 0x00022005 |
Context robustness hint and attribute. More... | |
#define | GLFW_OPENGL_FORWARD_COMPAT 0x00022006 |
OpenGL forward-compatibility hint and attribute. More... | |
#define | GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 |
Debug mode context hint and attribute. More... | |
#define | GLFW_OPENGL_PROFILE 0x00022008 |
OpenGL profile hint and attribute. More... | |
#define | GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 |
Context flush-on-release hint and attribute. More... | |
#define | GLFW_CONTEXT_NO_ERROR 0x0002200A |
Context error suppression hint and attribute. More... | |
#define | GLFW_CONTEXT_CREATION_API 0x0002200B |
Context creation API hint and attribute. More... | |
#define | GLFW_SCALE_TO_MONITOR 0x0002200C |
Window content area scaling window window hint. More... | |
#define | GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001 |
macOS specific window hint. More... | |
#define | GLFW_COCOA_FRAME_NAME 0x00023002 |
macOS specific window hint. More... | |
#define | GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003 |
macOS specific window hint. More... | |
#define | GLFW_X11_CLASS_NAME 0x00024001 |
X11 specific window hint. More... | |
#define | GLFW_X11_INSTANCE_NAME 0x00024002 |
X11 specific window hint. More... | |
#define | GLFW_NO_API 0 |
#define | GLFW_OPENGL_API 0x00030001 |
#define | GLFW_OPENGL_ES_API 0x00030002 |
#define | GLFW_NO_ROBUSTNESS 0 |
#define | GLFW_NO_RESET_NOTIFICATION 0x00031001 |
#define | GLFW_LOSE_CONTEXT_ON_RESET 0x00031002 |
#define | GLFW_OPENGL_ANY_PROFILE 0 |
#define | GLFW_OPENGL_CORE_PROFILE 0x00032001 |
#define | GLFW_OPENGL_COMPAT_PROFILE 0x00032002 |
#define | GLFW_CURSOR 0x00033001 |
#define | GLFW_STICKY_KEYS 0x00033002 |
#define | GLFW_STICKY_MOUSE_BUTTONS 0x00033003 |
#define | GLFW_LOCK_KEY_MODS 0x00033004 |
#define | GLFW_RAW_MOUSE_MOTION 0x00033005 |
#define | GLFW_CURSOR_NORMAL 0x00034001 |
#define | GLFW_CURSOR_HIDDEN 0x00034002 |
#define | GLFW_CURSOR_DISABLED 0x00034003 |
#define | GLFW_ANY_RELEASE_BEHAVIOR 0 |
#define | GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001 |
#define | GLFW_RELEASE_BEHAVIOR_NONE 0x00035002 |
#define | GLFW_NATIVE_CONTEXT_API 0x00036001 |
#define | GLFW_EGL_CONTEXT_API 0x00036002 |
#define | GLFW_OSMESA_CONTEXT_API 0x00036003 |
#define | GLFW_ARROW_CURSOR 0x00036001 |
The regular arrow cursor shape. More... | |
#define | GLFW_IBEAM_CURSOR 0x00036002 |
The text input I-beam cursor shape. More... | |
#define | GLFW_CROSSHAIR_CURSOR 0x00036003 |
The crosshair shape. More... | |
#define | GLFW_HAND_CURSOR 0x00036004 |
The hand shape. More... | |
#define | GLFW_HRESIZE_CURSOR 0x00036005 |
The horizontal resize arrow shape. More... | |
#define | GLFW_VRESIZE_CURSOR 0x00036006 |
The vertical resize arrow shape. More... | |
#define | GLFW_CONNECTED 0x00040001 |
#define | GLFW_DISCONNECTED 0x00040002 |
#define | GLFW_JOYSTICK_HAT_BUTTONS 0x00050001 |
Joystick hat buttons init hint. More... | |
#define | GLFW_COCOA_CHDIR_RESOURCES 0x00051001 |
macOS specific init hint. More... | |
#define | GLFW_COCOA_MENUBAR 0x00051002 |
macOS specific init hint. More... | |
#define | GLFW_DONT_CARE -1 |
#define | GLAPIENTRY APIENTRY |
#define | GLFW_GLAPIENTRY_DEFINED |
GLFW version macros | |
#define | GLFW_VERSION_MAJOR 3 |
The major version number of the GLFW header. More... | |
#define | GLFW_VERSION_MINOR 3 |
The minor version number of the GLFW header. More... | |
#define | GLFW_VERSION_REVISION 8 |
The revision number of the GLFW header. More... | |
Key and button actions | |
#define | GLFW_RELEASE 0 |
The key or mouse button was released. More... | |
#define | GLFW_PRESS 1 |
The key or mouse button was pressed. More... | |
#define | GLFW_REPEAT 2 |
The key was held down until it repeated. More... | |
+Typedefs | |
typedef void(* | GLFWglproc) (void) |
Client API function pointer type. More... | |
typedef void(* | GLFWvkproc) (void) |
Vulkan API function pointer type. More... | |
typedef struct GLFWmonitor | GLFWmonitor |
Opaque monitor object. More... | |
typedef struct GLFWwindow | GLFWwindow |
Opaque window object. More... | |
typedef struct GLFWcursor | GLFWcursor |
Opaque cursor object. More... | |
typedef void(* | GLFWerrorfun) (int error_code, const char *description) |
The function pointer type for error callbacks. More... | |
typedef void(* | GLFWwindowposfun) (GLFWwindow *window, int xpos, int ypos) |
The function pointer type for window position callbacks. More... | |
typedef void(* | GLFWwindowsizefun) (GLFWwindow *window, int width, int height) |
The function pointer type for window size callbacks. More... | |
typedef void(* | GLFWwindowclosefun) (GLFWwindow *window) |
The function pointer type for window close callbacks. More... | |
typedef void(* | GLFWwindowrefreshfun) (GLFWwindow *window) |
The function pointer type for window content refresh callbacks. More... | |
typedef void(* | GLFWwindowfocusfun) (GLFWwindow *window, int focused) |
The function pointer type for window focus callbacks. More... | |
typedef void(* | GLFWwindowiconifyfun) (GLFWwindow *window, int iconified) |
The function pointer type for window iconify callbacks. More... | |
typedef void(* | GLFWwindowmaximizefun) (GLFWwindow *window, int maximized) |
The function pointer type for window maximize callbacks. More... | |
typedef void(* | GLFWframebuffersizefun) (GLFWwindow *window, int width, int height) |
The function pointer type for framebuffer size callbacks. More... | |
typedef void(* | GLFWwindowcontentscalefun) (GLFWwindow *window, float xscale, float yscale) |
The function pointer type for window content scale callbacks. More... | |
typedef void(* | GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods) |
The function pointer type for mouse button callbacks. More... | |
typedef void(* | GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos) |
The function pointer type for cursor position callbacks. More... | |
typedef void(* | GLFWcursorenterfun) (GLFWwindow *window, int entered) |
The function pointer type for cursor enter/leave callbacks. More... | |
typedef void(* | GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset) |
The function pointer type for scroll callbacks. More... | |
typedef void(* | GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods) |
The function pointer type for keyboard key callbacks. More... | |
typedef void(* | GLFWcharfun) (GLFWwindow *window, unsigned int codepoint) |
The function pointer type for Unicode character callbacks. More... | |
typedef void(* | GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods) |
The function pointer type for Unicode character with modifiers callbacks. More... | |
typedef void(* | GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[]) |
The function pointer type for path drop callbacks. More... | |
typedef void(* | GLFWmonitorfun) (GLFWmonitor *monitor, int event) |
The function pointer type for monitor configuration callbacks. More... | |
typedef void(* | GLFWjoystickfun) (int jid, int event) |
The function pointer type for joystick configuration callbacks. More... | |
typedef struct GLFWvidmode | GLFWvidmode |
Video mode type. More... | |
typedef struct GLFWgammaramp | GLFWgammaramp |
Gamma ramp. More... | |
typedef struct GLFWimage | GLFWimage |
Image data. More... | |
typedef struct GLFWgamepadstate | GLFWgamepadstate |
Gamepad input state. More... | |
+Functions | |
int | glfwInit (void) |
Initializes the GLFW library. More... | |
void | glfwTerminate (void) |
Terminates the GLFW library. More... | |
void | glfwInitHint (int hint, int value) |
Sets the specified init hint to the desired value. More... | |
void | glfwGetVersion (int *major, int *minor, int *rev) |
Retrieves the version of the GLFW library. More... | |
const char * | glfwGetVersionString (void) |
Returns a string describing the compile-time configuration. More... | |
int | glfwGetError (const char **description) |
Returns and clears the last error for the calling thread. More... | |
GLFWerrorfun | glfwSetErrorCallback (GLFWerrorfun callback) |
Sets the error callback. More... | |
GLFWmonitor ** | glfwGetMonitors (int *count) |
Returns the currently connected monitors. More... | |
GLFWmonitor * | glfwGetPrimaryMonitor (void) |
Returns the primary monitor. More... | |
void | glfwGetMonitorPos (GLFWmonitor *monitor, int *xpos, int *ypos) |
Returns the position of the monitor's viewport on the virtual screen. More... | |
void | glfwGetMonitorWorkarea (GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height) |
Retrieves the work area of the monitor. More... | |
void | glfwGetMonitorPhysicalSize (GLFWmonitor *monitor, int *widthMM, int *heightMM) |
Returns the physical size of the monitor. More... | |
void | glfwGetMonitorContentScale (GLFWmonitor *monitor, float *xscale, float *yscale) |
Retrieves the content scale for the specified monitor. More... | |
const char * | glfwGetMonitorName (GLFWmonitor *monitor) |
Returns the name of the specified monitor. More... | |
void | glfwSetMonitorUserPointer (GLFWmonitor *monitor, void *pointer) |
Sets the user pointer of the specified monitor. More... | |
void * | glfwGetMonitorUserPointer (GLFWmonitor *monitor) |
Returns the user pointer of the specified monitor. More... | |
GLFWmonitorfun | glfwSetMonitorCallback (GLFWmonitorfun callback) |
Sets the monitor configuration callback. More... | |
const GLFWvidmode * | glfwGetVideoModes (GLFWmonitor *monitor, int *count) |
Returns the available video modes for the specified monitor. More... | |
const GLFWvidmode * | glfwGetVideoMode (GLFWmonitor *monitor) |
Returns the current mode of the specified monitor. More... | |
void | glfwSetGamma (GLFWmonitor *monitor, float gamma) |
Generates a gamma ramp and sets it for the specified monitor. More... | |
const GLFWgammaramp * | glfwGetGammaRamp (GLFWmonitor *monitor) |
Returns the current gamma ramp for the specified monitor. More... | |
void | glfwSetGammaRamp (GLFWmonitor *monitor, const GLFWgammaramp *ramp) |
Sets the current gamma ramp for the specified monitor. More... | |
void | glfwDefaultWindowHints (void) |
Resets all window hints to their default values. More... | |
void | glfwWindowHint (int hint, int value) |
Sets the specified window hint to the desired value. More... | |
void | glfwWindowHintString (int hint, const char *value) |
Sets the specified window hint to the desired value. More... | |
GLFWwindow * | glfwCreateWindow (int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share) |
Creates a window and its associated context. More... | |
void | glfwDestroyWindow (GLFWwindow *window) |
Destroys the specified window and its context. More... | |
int | glfwWindowShouldClose (GLFWwindow *window) |
Checks the close flag of the specified window. More... | |
void | glfwSetWindowShouldClose (GLFWwindow *window, int value) |
Sets the close flag of the specified window. More... | |
void | glfwSetWindowTitle (GLFWwindow *window, const char *title) |
Sets the title of the specified window. More... | |
void | glfwSetWindowIcon (GLFWwindow *window, int count, const GLFWimage *images) |
Sets the icon for the specified window. More... | |
void | glfwGetWindowPos (GLFWwindow *window, int *xpos, int *ypos) |
Retrieves the position of the content area of the specified window. More... | |
void | glfwSetWindowPos (GLFWwindow *window, int xpos, int ypos) |
Sets the position of the content area of the specified window. More... | |
void | glfwGetWindowSize (GLFWwindow *window, int *width, int *height) |
Retrieves the size of the content area of the specified window. More... | |
void | glfwSetWindowSizeLimits (GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight) |
Sets the size limits of the specified window. More... | |
void | glfwSetWindowAspectRatio (GLFWwindow *window, int numer, int denom) |
Sets the aspect ratio of the specified window. More... | |
void | glfwSetWindowSize (GLFWwindow *window, int width, int height) |
Sets the size of the content area of the specified window. More... | |
void | glfwGetFramebufferSize (GLFWwindow *window, int *width, int *height) |
Retrieves the size of the framebuffer of the specified window. More... | |
void | glfwGetWindowFrameSize (GLFWwindow *window, int *left, int *top, int *right, int *bottom) |
Retrieves the size of the frame of the window. More... | |
void | glfwGetWindowContentScale (GLFWwindow *window, float *xscale, float *yscale) |
Retrieves the content scale for the specified window. More... | |
float | glfwGetWindowOpacity (GLFWwindow *window) |
Returns the opacity of the whole window. More... | |
void | glfwSetWindowOpacity (GLFWwindow *window, float opacity) |
Sets the opacity of the whole window. More... | |
void | glfwIconifyWindow (GLFWwindow *window) |
Iconifies the specified window. More... | |
void | glfwRestoreWindow (GLFWwindow *window) |
Restores the specified window. More... | |
void | glfwMaximizeWindow (GLFWwindow *window) |
Maximizes the specified window. More... | |
void | glfwShowWindow (GLFWwindow *window) |
Makes the specified window visible. More... | |
void | glfwHideWindow (GLFWwindow *window) |
Hides the specified window. More... | |
void | glfwFocusWindow (GLFWwindow *window) |
Brings the specified window to front and sets input focus. More... | |
void | glfwRequestWindowAttention (GLFWwindow *window) |
Requests user attention to the specified window. More... | |
GLFWmonitor * | glfwGetWindowMonitor (GLFWwindow *window) |
Returns the monitor that the window uses for full screen mode. More... | |
void | glfwSetWindowMonitor (GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate) |
Sets the mode, monitor, video mode and placement of a window. More... | |
int | glfwGetWindowAttrib (GLFWwindow *window, int attrib) |
Returns an attribute of the specified window. More... | |
void | glfwSetWindowAttrib (GLFWwindow *window, int attrib, int value) |
Sets an attribute of the specified window. More... | |
void | glfwSetWindowUserPointer (GLFWwindow *window, void *pointer) |
Sets the user pointer of the specified window. More... | |
void * | glfwGetWindowUserPointer (GLFWwindow *window) |
Returns the user pointer of the specified window. More... | |
GLFWwindowposfun | glfwSetWindowPosCallback (GLFWwindow *window, GLFWwindowposfun callback) |
Sets the position callback for the specified window. More... | |
GLFWwindowsizefun | glfwSetWindowSizeCallback (GLFWwindow *window, GLFWwindowsizefun callback) |
Sets the size callback for the specified window. More... | |
GLFWwindowclosefun | glfwSetWindowCloseCallback (GLFWwindow *window, GLFWwindowclosefun callback) |
Sets the close callback for the specified window. More... | |
GLFWwindowrefreshfun | glfwSetWindowRefreshCallback (GLFWwindow *window, GLFWwindowrefreshfun callback) |
Sets the refresh callback for the specified window. More... | |
GLFWwindowfocusfun | glfwSetWindowFocusCallback (GLFWwindow *window, GLFWwindowfocusfun callback) |
Sets the focus callback for the specified window. More... | |
GLFWwindowiconifyfun | glfwSetWindowIconifyCallback (GLFWwindow *window, GLFWwindowiconifyfun callback) |
Sets the iconify callback for the specified window. More... | |
GLFWwindowmaximizefun | glfwSetWindowMaximizeCallback (GLFWwindow *window, GLFWwindowmaximizefun callback) |
Sets the maximize callback for the specified window. More... | |
GLFWframebuffersizefun | glfwSetFramebufferSizeCallback (GLFWwindow *window, GLFWframebuffersizefun callback) |
Sets the framebuffer resize callback for the specified window. More... | |
GLFWwindowcontentscalefun | glfwSetWindowContentScaleCallback (GLFWwindow *window, GLFWwindowcontentscalefun callback) |
Sets the window content scale callback for the specified window. More... | |
void | glfwPollEvents (void) |
Processes all pending events. More... | |
void | glfwWaitEvents (void) |
Waits until events are queued and processes them. More... | |
void | glfwWaitEventsTimeout (double timeout) |
Waits with timeout until events are queued and processes them. More... | |
void | glfwPostEmptyEvent (void) |
Posts an empty event to the event queue. More... | |
int | glfwGetInputMode (GLFWwindow *window, int mode) |
Returns the value of an input option for the specified window. More... | |
void | glfwSetInputMode (GLFWwindow *window, int mode, int value) |
Sets an input option for the specified window. More... | |
int | glfwRawMouseMotionSupported (void) |
Returns whether raw mouse motion is supported. More... | |
const char * | glfwGetKeyName (int key, int scancode) |
Returns the layout-specific name of the specified printable key. More... | |
int | glfwGetKeyScancode (int key) |
Returns the platform-specific scancode of the specified key. More... | |
int | glfwGetKey (GLFWwindow *window, int key) |
Returns the last reported state of a keyboard key for the specified window. More... | |
int | glfwGetMouseButton (GLFWwindow *window, int button) |
Returns the last reported state of a mouse button for the specified window. More... | |
void | glfwGetCursorPos (GLFWwindow *window, double *xpos, double *ypos) |
Retrieves the position of the cursor relative to the content area of the window. More... | |
void | glfwSetCursorPos (GLFWwindow *window, double xpos, double ypos) |
Sets the position of the cursor, relative to the content area of the window. More... | |
GLFWcursor * | glfwCreateCursor (const GLFWimage *image, int xhot, int yhot) |
Creates a custom cursor. More... | |
GLFWcursor * | glfwCreateStandardCursor (int shape) |
Creates a cursor with a standard shape. More... | |
void | glfwDestroyCursor (GLFWcursor *cursor) |
Destroys a cursor. More... | |
void | glfwSetCursor (GLFWwindow *window, GLFWcursor *cursor) |
Sets the cursor for the window. More... | |
GLFWkeyfun | glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback) |
Sets the key callback. More... | |
GLFWcharfun | glfwSetCharCallback (GLFWwindow *window, GLFWcharfun callback) |
Sets the Unicode character callback. More... | |
GLFWcharmodsfun | glfwSetCharModsCallback (GLFWwindow *window, GLFWcharmodsfun callback) |
Sets the Unicode character with modifiers callback. More... | |
GLFWmousebuttonfun | glfwSetMouseButtonCallback (GLFWwindow *window, GLFWmousebuttonfun callback) |
Sets the mouse button callback. More... | |
GLFWcursorposfun | glfwSetCursorPosCallback (GLFWwindow *window, GLFWcursorposfun callback) |
Sets the cursor position callback. More... | |
GLFWcursorenterfun | glfwSetCursorEnterCallback (GLFWwindow *window, GLFWcursorenterfun callback) |
Sets the cursor enter/leave callback. More... | |
GLFWscrollfun | glfwSetScrollCallback (GLFWwindow *window, GLFWscrollfun callback) |
Sets the scroll callback. More... | |
GLFWdropfun | glfwSetDropCallback (GLFWwindow *window, GLFWdropfun callback) |
Sets the path drop callback. More... | |
int | glfwJoystickPresent (int jid) |
Returns whether the specified joystick is present. More... | |
const float * | glfwGetJoystickAxes (int jid, int *count) |
Returns the values of all axes of the specified joystick. More... | |
const unsigned char * | glfwGetJoystickButtons (int jid, int *count) |
Returns the state of all buttons of the specified joystick. More... | |
const unsigned char * | glfwGetJoystickHats (int jid, int *count) |
Returns the state of all hats of the specified joystick. More... | |
const char * | glfwGetJoystickName (int jid) |
Returns the name of the specified joystick. More... | |
const char * | glfwGetJoystickGUID (int jid) |
Returns the SDL compatible GUID of the specified joystick. More... | |
void | glfwSetJoystickUserPointer (int jid, void *pointer) |
Sets the user pointer of the specified joystick. More... | |
void * | glfwGetJoystickUserPointer (int jid) |
Returns the user pointer of the specified joystick. More... | |
int | glfwJoystickIsGamepad (int jid) |
Returns whether the specified joystick has a gamepad mapping. More... | |
GLFWjoystickfun | glfwSetJoystickCallback (GLFWjoystickfun callback) |
Sets the joystick configuration callback. More... | |
int | glfwUpdateGamepadMappings (const char *string) |
Adds the specified SDL_GameControllerDB gamepad mappings. More... | |
const char * | glfwGetGamepadName (int jid) |
Returns the human-readable gamepad name for the specified joystick. More... | |
int | glfwGetGamepadState (int jid, GLFWgamepadstate *state) |
Retrieves the state of the specified joystick remapped as a gamepad. More... | |
void | glfwSetClipboardString (GLFWwindow *window, const char *string) |
Sets the clipboard to the specified string. More... | |
const char * | glfwGetClipboardString (GLFWwindow *window) |
Returns the contents of the clipboard as a string. More... | |
double | glfwGetTime (void) |
Returns the GLFW time. More... | |
void | glfwSetTime (double time) |
Sets the GLFW time. More... | |
uint64_t | glfwGetTimerValue (void) |
Returns the current value of the raw timer. More... | |
uint64_t | glfwGetTimerFrequency (void) |
Returns the frequency, in Hz, of the raw timer. More... | |
void | glfwMakeContextCurrent (GLFWwindow *window) |
Makes the context of the specified window current for the calling thread. More... | |
GLFWwindow * | glfwGetCurrentContext (void) |
Returns the window whose context is current on the calling thread. More... | |
void | glfwSwapBuffers (GLFWwindow *window) |
Swaps the front and back buffers of the specified window. More... | |
void | glfwSwapInterval (int interval) |
Sets the swap interval for the current context. More... | |
int | glfwExtensionSupported (const char *extension) |
Returns whether the specified extension is available. More... | |
GLFWglproc | glfwGetProcAddress (const char *procname) |
Returns the address of the specified function for the current context. More... | |
int | glfwVulkanSupported (void) |
Returns whether the Vulkan loader and an ICD have been found. More... | |
const char ** | glfwGetRequiredInstanceExtensions (uint32_t *count) |
Returns the Vulkan instance extensions required by GLFW. More... | |
GLFWvkproc | glfwGetInstanceProcAddress (VkInstance instance, const char *procname) |
Returns the address of the specified Vulkan instance function. More... | |
int | glfwGetPhysicalDevicePresentationSupport (VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily) |
Returns whether the specified queue family can present images. More... | |
VkResult | glfwCreateWindowSurface (VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface) |
Creates a Vulkan surface for the specified window. More... | |
#define GLFW_APIENTRY_DEFINED | +
#define GLFW_NO_API 0 | +
#define GLFW_OPENGL_API 0x00030001 | +
#define GLFW_OPENGL_ES_API 0x00030002 | +
#define GLFW_NO_ROBUSTNESS 0 | +
#define GLFW_NO_RESET_NOTIFICATION 0x00031001 | +
#define GLFW_LOSE_CONTEXT_ON_RESET 0x00031002 | +
#define GLFW_OPENGL_ANY_PROFILE 0 | +
#define GLFW_OPENGL_CORE_PROFILE 0x00032001 | +
#define GLFW_OPENGL_COMPAT_PROFILE 0x00032002 | +
#define GLFW_CURSOR 0x00033001 | +
#define GLFW_STICKY_KEYS 0x00033002 | +
#define GLFW_STICKY_MOUSE_BUTTONS 0x00033003 | +
#define GLFW_LOCK_KEY_MODS 0x00033004 | +
#define GLFW_RAW_MOUSE_MOTION 0x00033005 | +
#define GLFW_CURSOR_NORMAL 0x00034001 | +
#define GLFW_CURSOR_HIDDEN 0x00034002 | +
#define GLFW_CURSOR_DISABLED 0x00034003 | +
#define GLFW_ANY_RELEASE_BEHAVIOR 0 | +
#define GLFW_RELEASE_BEHAVIOR_FLUSH 0x00035001 | +
#define GLFW_RELEASE_BEHAVIOR_NONE 0x00035002 | +
#define GLFW_NATIVE_CONTEXT_API 0x00036001 | +
#define GLFW_EGL_CONTEXT_API 0x00036002 | +
#define GLFW_OSMESA_CONTEXT_API 0x00036003 | +
#define GLFW_CONNECTED 0x00040001 | +
#define GLFW_DISCONNECTED 0x00040002 | +
#define GLFW_DONT_CARE -1 | +
#define GLAPIENTRY APIENTRY | +
#define GLFW_GLAPIENTRY_DEFINED | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/glfw3_8h_source.html b/deps/glfw-3.3.8/docs/html/glfw3_8h_source.html new file mode 100644 index 0000000..be04039 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/glfw3_8h_source.html @@ -0,0 +1,1155 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/glfw3native_8h.html b/deps/glfw-3.3.8/docs/html/glfw3native_8h.html new file mode 100644 index 0000000..b990f15 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/glfw3native_8h.html @@ -0,0 +1,160 @@ + + + + + + + +This is the header file of the native access functions. See Native access for more information.
+Go to the source code of this file.
++Functions | |
const char * | glfwGetWin32Adapter (GLFWmonitor *monitor) |
Returns the adapter device name of the specified monitor. More... | |
const char * | glfwGetWin32Monitor (GLFWmonitor *monitor) |
Returns the display device name of the specified monitor. More... | |
HWND | glfwGetWin32Window (GLFWwindow *window) |
Returns the HWND of the specified window. More... | |
HGLRC | glfwGetWGLContext (GLFWwindow *window) |
Returns the HGLRC of the specified window. More... | |
CGDirectDisplayID | glfwGetCocoaMonitor (GLFWmonitor *monitor) |
Returns the CGDirectDisplayID of the specified monitor. More... | |
id | glfwGetCocoaWindow (GLFWwindow *window) |
Returns the NSWindow of the specified window. More... | |
id | glfwGetNSGLContext (GLFWwindow *window) |
Returns the NSOpenGLContext of the specified window. More... | |
Display * | glfwGetX11Display (void) |
Returns the Display used by GLFW. More... | |
RRCrtc | glfwGetX11Adapter (GLFWmonitor *monitor) |
Returns the RRCrtc of the specified monitor. More... | |
RROutput | glfwGetX11Monitor (GLFWmonitor *monitor) |
Returns the RROutput of the specified monitor. More... | |
Window | glfwGetX11Window (GLFWwindow *window) |
Returns the Window of the specified window. More... | |
void | glfwSetX11SelectionString (const char *string) |
Sets the current primary selection to the specified string. More... | |
const char * | glfwGetX11SelectionString (void) |
Returns the contents of the current primary selection as a string. More... | |
GLXContext | glfwGetGLXContext (GLFWwindow *window) |
Returns the GLXContext of the specified window. More... | |
GLXWindow | glfwGetGLXWindow (GLFWwindow *window) |
Returns the GLXWindow of the specified window. More... | |
struct wl_display * | glfwGetWaylandDisplay (void) |
Returns the struct wl_display* used by GLFW. More... | |
struct wl_output * | glfwGetWaylandMonitor (GLFWmonitor *monitor) |
Returns the struct wl_output* of the specified monitor. More... | |
struct wl_surface * | glfwGetWaylandWindow (GLFWwindow *window) |
Returns the main struct wl_surface* of the specified window. More... | |
EGLDisplay | glfwGetEGLDisplay (void) |
Returns the EGLDisplay used by GLFW. More... | |
EGLContext | glfwGetEGLContext (GLFWwindow *window) |
Returns the EGLContext of the specified window. More... | |
EGLSurface | glfwGetEGLSurface (GLFWwindow *window) |
Returns the EGLSurface of the specified window. More... | |
int | glfwGetOSMesaColorBuffer (GLFWwindow *window, int *width, int *height, int *format, void **buffer) |
Retrieves the color buffer associated with the specified window. More... | |
int | glfwGetOSMesaDepthBuffer (GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer) |
Retrieves the depth buffer associated with the specified window. More... | |
OSMesaContext | glfwGetOSMesaContext (GLFWwindow *window) |
Returns the OSMesaContext of the specified window. More... | |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/glfw3native_8h_source.html b/deps/glfw-3.3.8/docs/html/glfw3native_8h_source.html new file mode 100644 index 0000000..31a0c40 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/glfw3native_8h_source.html @@ -0,0 +1,285 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__buttons.html b/deps/glfw-3.3.8/docs/html/group__buttons.html new file mode 100644 index 0000000..7f1bb3d --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__buttons.html @@ -0,0 +1,275 @@ + + + + + + + +See mouse button input for how these are used.
++Macros | |
#define | GLFW_MOUSE_BUTTON_1 0 |
#define | GLFW_MOUSE_BUTTON_2 1 |
#define | GLFW_MOUSE_BUTTON_3 2 |
#define | GLFW_MOUSE_BUTTON_4 3 |
#define | GLFW_MOUSE_BUTTON_5 4 |
#define | GLFW_MOUSE_BUTTON_6 5 |
#define | GLFW_MOUSE_BUTTON_7 6 |
#define | GLFW_MOUSE_BUTTON_8 7 |
#define | GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 |
#define | GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 |
#define | GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 |
#define | GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 |
#define GLFW_MOUSE_BUTTON_1 0 | +
#define GLFW_MOUSE_BUTTON_2 1 | +
#define GLFW_MOUSE_BUTTON_3 2 | +
#define GLFW_MOUSE_BUTTON_4 3 | +
#define GLFW_MOUSE_BUTTON_5 4 | +
#define GLFW_MOUSE_BUTTON_6 5 | +
#define GLFW_MOUSE_BUTTON_7 6 | +
#define GLFW_MOUSE_BUTTON_8 7 | +
#define GLFW_MOUSE_BUTTON_LAST GLFW_MOUSE_BUTTON_8 | +
#define GLFW_MOUSE_BUTTON_LEFT GLFW_MOUSE_BUTTON_1 | +
#define GLFW_MOUSE_BUTTON_RIGHT GLFW_MOUSE_BUTTON_2 | +
#define GLFW_MOUSE_BUTTON_MIDDLE GLFW_MOUSE_BUTTON_3 | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__context.html b/deps/glfw-3.3.8/docs/html/group__context.html new file mode 100644 index 0000000..2913ea0 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__context.html @@ -0,0 +1,295 @@ + + + + + + + +This is the reference documentation for OpenGL and OpenGL ES context related functions. For more task-oriented information, see the Context guide.
++Typedefs | |
typedef void(* | GLFWglproc) (void) |
Client API function pointer type. More... | |
+Functions | |
void | glfwMakeContextCurrent (GLFWwindow *window) |
Makes the context of the specified window current for the calling thread. More... | |
GLFWwindow * | glfwGetCurrentContext (void) |
Returns the window whose context is current on the calling thread. More... | |
void | glfwSwapInterval (int interval) |
Sets the swap interval for the current context. More... | |
int | glfwExtensionSupported (const char *extension) |
Returns whether the specified extension is available. More... | |
GLFWglproc | glfwGetProcAddress (const char *procname) |
Returns the address of the specified function for the current context. More... | |
typedef void(* GLFWglproc) (void) | +
Generic function pointer used for returning client API function pointers without forcing a cast from a regular pointer.
+ +void glfwMakeContextCurrent | +( | +GLFWwindow * | +window | ) | ++ |
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.
+When moving a context between threads, you must make it non-current on the old thread before making it current on the new one.
+By default, making a context non-current implicitly forces a pipeline flush. On machines that support GL_KHR_context_flush_control
, you can control whether a context performs this flush by setting the GLFW_CONTEXT_RELEASE_BEHAVIOR hint.
The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a GLFW_NO_WINDOW_CONTEXT error.
+[in] | window | The window whose context to make current, or NULL to detach the current context. |
GLFWwindow * glfwGetCurrentContext | +( | +void | +) | ++ |
This function returns the window whose OpenGL or OpenGL ES context is current on the calling thread.
+NULL
if no window's context is current.void glfwSwapInterval | +( | +int | +interval | ) | ++ |
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 glfwSwapBuffers was called before swapping the buffers and returning. This is sometimes called vertical synchronization, vertical retrace synchronization or just vsync.
+A context that supports either of the WGL_EXT_swap_control_tear
and GLX_EXT_swap_control_tear
extensions also accepts negative 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 glfwExtensionSupported.
A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
+This function does not apply to Vulkan. If you are rendering with Vulkan, see the present mode of your swapchain instead.
+[in] | interval | The minimum number of screen updates to wait for until the buffers are swapped by glfwSwapBuffers. |
int glfwExtensionSupported | +( | +const char * | +extension | ) | ++ |
This function returns whether the specified API extension is supported by the current OpenGL or OpenGL ES context. It searches both for client API extension and context creation API extensions.
+A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
+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.
+This function does not apply to Vulkan. If you are using Vulkan, see glfwGetRequiredInstanceExtensions, vkEnumerateInstanceExtensionProperties
and vkEnumerateDeviceExtensionProperties
instead.
[in] | extension | The ASCII encoded name of the extension. |
GLFW_TRUE
if the extension is available, or GLFW_FALSE
otherwise.GLFWglproc glfwGetProcAddress | +( | +const char * | +procname | ) | ++ |
This function returns the address of the specified OpenGL or OpenGL ES core or extension function, if it is supported by the current context.
+A context must be current on the calling thread. Calling this function without a current context will cause a GLFW_NO_CURRENT_CONTEXT error.
+This function does not apply to Vulkan. If you are rendering with Vulkan, see glfwGetInstanceProcAddress, vkGetInstanceProcAddr
and vkGetDeviceProcAddr
instead.
[in] | procname | The ASCII encoded name of the function. |
NULL
if an error occurred.NULL
address despite the associated version or extension not being available. Always check the context version or extension string first.+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__errors.html b/deps/glfw-3.3.8/docs/html/group__errors.html new file mode 100644 index 0000000..3def8eb --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__errors.html @@ -0,0 +1,297 @@ + + + + + + + +See error handling for how these are used.
++Macros | |
#define | GLFW_NO_ERROR 0 |
No error has occurred. More... | |
#define | GLFW_NOT_INITIALIZED 0x00010001 |
GLFW has not been initialized. More... | |
#define | GLFW_NO_CURRENT_CONTEXT 0x00010002 |
No context is current for this thread. More... | |
#define | GLFW_INVALID_ENUM 0x00010003 |
One of the arguments to the function was an invalid enum value. More... | |
#define | GLFW_INVALID_VALUE 0x00010004 |
One of the arguments to the function was an invalid value. More... | |
#define | GLFW_OUT_OF_MEMORY 0x00010005 |
A memory allocation failed. More... | |
#define | GLFW_API_UNAVAILABLE 0x00010006 |
GLFW could not find support for the requested API on the system. More... | |
#define | GLFW_VERSION_UNAVAILABLE 0x00010007 |
The requested OpenGL or OpenGL ES version is not available. More... | |
#define | GLFW_PLATFORM_ERROR 0x00010008 |
A platform-specific error occurred that does not match any of the more specific categories. More... | |
#define | GLFW_FORMAT_UNAVAILABLE 0x00010009 |
The requested format is not supported or available. More... | |
#define | GLFW_NO_WINDOW_CONTEXT 0x0001000A |
The specified window does not have an OpenGL or OpenGL ES context. More... | |
#define GLFW_NO_ERROR 0 | +
No error has occurred.
+#define GLFW_NOT_INITIALIZED 0x00010001 | +
This occurs if a GLFW function was called that must not be called unless the library is initialized.
+#define GLFW_NO_CURRENT_CONTEXT 0x00010002 | +
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 glfwSwapInterval.
+#define GLFW_INVALID_ENUM 0x00010003 | +
One of the arguments to the function was an invalid enum value, for example requesting GLFW_RED_BITS with glfwGetWindowAttrib.
+#define GLFW_INVALID_VALUE 0x00010004 | +
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.
+Requesting a valid but unavailable OpenGL or OpenGL ES version will instead result in a GLFW_VERSION_UNAVAILABLE error.
+#define GLFW_OUT_OF_MEMORY 0x00010005 | +
A memory allocation failed.
+#define GLFW_API_UNAVAILABLE 0x00010006 | +
GLFW could not find support for the requested API on the system.
+#define GLFW_VERSION_UNAVAILABLE 0x00010007 | +
The requested OpenGL or OpenGL ES version (including any requested context or framebuffer hints) is not available on this machine.
+#define GLFW_PLATFORM_ERROR 0x00010008 | +
A platform-specific error occurred that does not match any of the more specific categories.
+#define GLFW_FORMAT_UNAVAILABLE 0x00010009 | +
If emitted during window creation, the requested pixel format is not supported.
+If emitted when querying the clipboard, the contents of the clipboard could not be converted to the requested format.
+#define GLFW_NO_WINDOW_CONTEXT 0x0001000A | +
A window that does not have an OpenGL or OpenGL ES context was passed to a function that requires it to have one.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__gamepad__axes.html b/deps/glfw-3.3.8/docs/html/group__gamepad__axes.html new file mode 100644 index 0000000..5dc84be --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__gamepad__axes.html @@ -0,0 +1,195 @@ + + + + + + + +See Gamepad input for how these are used.
++Macros | |
#define | GLFW_GAMEPAD_AXIS_LEFT_X 0 |
#define | GLFW_GAMEPAD_AXIS_LEFT_Y 1 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_X 2 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_Y 3 |
#define | GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4 |
#define | GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5 |
#define | GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER |
#define GLFW_GAMEPAD_AXIS_LEFT_X 0 | +
#define GLFW_GAMEPAD_AXIS_LEFT_Y 1 | +
#define GLFW_GAMEPAD_AXIS_RIGHT_X 2 | +
#define GLFW_GAMEPAD_AXIS_RIGHT_Y 3 | +
#define GLFW_GAMEPAD_AXIS_LEFT_TRIGGER 4 | +
#define GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER 5 | +
#define GLFW_GAMEPAD_AXIS_LAST GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__gamepad__buttons.html b/deps/glfw-3.3.8/docs/html/group__gamepad__buttons.html new file mode 100644 index 0000000..51c027d --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__gamepad__buttons.html @@ -0,0 +1,403 @@ + + + + + + + +See Gamepad input for how these are used.
++Macros | |
#define | GLFW_GAMEPAD_BUTTON_A 0 |
#define | GLFW_GAMEPAD_BUTTON_B 1 |
#define | GLFW_GAMEPAD_BUTTON_X 2 |
#define | GLFW_GAMEPAD_BUTTON_Y 3 |
#define | GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4 |
#define | GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5 |
#define | GLFW_GAMEPAD_BUTTON_BACK 6 |
#define | GLFW_GAMEPAD_BUTTON_START 7 |
#define | GLFW_GAMEPAD_BUTTON_GUIDE 8 |
#define | GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9 |
#define | GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_UP 11 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13 |
#define | GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14 |
#define | GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT |
#define | GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A |
#define | GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B |
#define | GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X |
#define | GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y |
#define GLFW_GAMEPAD_BUTTON_A 0 | +
#define GLFW_GAMEPAD_BUTTON_B 1 | +
#define GLFW_GAMEPAD_BUTTON_X 2 | +
#define GLFW_GAMEPAD_BUTTON_Y 3 | +
#define GLFW_GAMEPAD_BUTTON_LEFT_BUMPER 4 | +
#define GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER 5 | +
#define GLFW_GAMEPAD_BUTTON_BACK 6 | +
#define GLFW_GAMEPAD_BUTTON_START 7 | +
#define GLFW_GAMEPAD_BUTTON_GUIDE 8 | +
#define GLFW_GAMEPAD_BUTTON_LEFT_THUMB 9 | +
#define GLFW_GAMEPAD_BUTTON_RIGHT_THUMB 10 | +
#define GLFW_GAMEPAD_BUTTON_DPAD_UP 11 | +
#define GLFW_GAMEPAD_BUTTON_DPAD_RIGHT 12 | +
#define GLFW_GAMEPAD_BUTTON_DPAD_DOWN 13 | +
#define GLFW_GAMEPAD_BUTTON_DPAD_LEFT 14 | +
#define GLFW_GAMEPAD_BUTTON_LAST GLFW_GAMEPAD_BUTTON_DPAD_LEFT | +
#define GLFW_GAMEPAD_BUTTON_CROSS GLFW_GAMEPAD_BUTTON_A | +
#define GLFW_GAMEPAD_BUTTON_CIRCLE GLFW_GAMEPAD_BUTTON_B | +
#define GLFW_GAMEPAD_BUTTON_SQUARE GLFW_GAMEPAD_BUTTON_X | +
#define GLFW_GAMEPAD_BUTTON_TRIANGLE GLFW_GAMEPAD_BUTTON_Y | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__hat__state.html b/deps/glfw-3.3.8/docs/html/group__hat__state.html new file mode 100644 index 0000000..d08f541 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__hat__state.html @@ -0,0 +1,227 @@ + + + + + + + +See joystick hat input for how these are used.
++Macros | |
#define | GLFW_HAT_CENTERED 0 |
#define | GLFW_HAT_UP 1 |
#define | GLFW_HAT_RIGHT 2 |
#define | GLFW_HAT_DOWN 4 |
#define | GLFW_HAT_LEFT 8 |
#define | GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP) |
#define | GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN) |
#define | GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP) |
#define | GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN) |
#define GLFW_HAT_CENTERED 0 | +
#define GLFW_HAT_UP 1 | +
#define GLFW_HAT_RIGHT 2 | +
#define GLFW_HAT_DOWN 4 | +
#define GLFW_HAT_LEFT 8 | +
#define GLFW_HAT_RIGHT_UP (GLFW_HAT_RIGHT | GLFW_HAT_UP) | +
#define GLFW_HAT_RIGHT_DOWN (GLFW_HAT_RIGHT | GLFW_HAT_DOWN) | +
#define GLFW_HAT_LEFT_UP (GLFW_HAT_LEFT | GLFW_HAT_UP) | +
#define GLFW_HAT_LEFT_DOWN (GLFW_HAT_LEFT | GLFW_HAT_DOWN) | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__init.html b/deps/glfw-3.3.8/docs/html/group__init.html new file mode 100644 index 0000000..944700b --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__init.html @@ -0,0 +1,545 @@ + + + + + + + +This is the reference documentation for initialization and termination of the library, version management and error handling. For more task-oriented information, see the Introduction to the API.
++Modules | |
Error codes | |
Error codes. | |
+Macros | |
#define | GLFW_TRUE 1 |
One. More... | |
#define | GLFW_FALSE 0 |
Zero. More... | |
#define | GLFW_JOYSTICK_HAT_BUTTONS 0x00050001 |
Joystick hat buttons init hint. More... | |
#define | GLFW_COCOA_CHDIR_RESOURCES 0x00051001 |
macOS specific init hint. More... | |
#define | GLFW_COCOA_MENUBAR 0x00051002 |
macOS specific init hint. More... | |
+Typedefs | |
typedef void(* | GLFWerrorfun) (int error_code, const char *description) |
The function pointer type for error callbacks. More... | |
+Functions | |
int | glfwInit (void) |
Initializes the GLFW library. More... | |
void | glfwTerminate (void) |
Terminates the GLFW library. More... | |
void | glfwInitHint (int hint, int value) |
Sets the specified init hint to the desired value. More... | |
void | glfwGetVersion (int *major, int *minor, int *rev) |
Retrieves the version of the GLFW library. More... | |
const char * | glfwGetVersionString (void) |
Returns a string describing the compile-time configuration. More... | |
int | glfwGetError (const char **description) |
Returns and clears the last error for the calling thread. More... | |
GLFWerrorfun | glfwSetErrorCallback (GLFWerrorfun callback) |
Sets the error callback. More... | |
#define GLFW_VERSION_MAJOR 3 | +
The major version number of the GLFW header. This is incremented when the API is changed in non-compatible ways.
+ +#define GLFW_VERSION_MINOR 3 | +
The minor version number of the GLFW header. This is incremented when features are added to the API but it remains backward-compatible.
+ +#define GLFW_VERSION_REVISION 8 | +
The revision number of the GLFW header. This is incremented when a bug fix release is made that does not contain any API changes.
+ +#define GLFW_TRUE 1 | +
This is only semantic sugar for the number 1. You can instead use 1
or true
or _True
or GL_TRUE
or VK_TRUE
or anything else that is equal to one.
#define GLFW_FALSE 0 | +
This is only semantic sugar for the number 0. You can instead use 0
or false
or _False
or GL_FALSE
or VK_FALSE
or anything else that is equal to zero.
#define GLFW_JOYSTICK_HAT_BUTTONS 0x00050001 | +
Joystick hat buttons init hint.
+ +#define GLFW_COCOA_CHDIR_RESOURCES 0x00051001 | +
macOS specific init hint.
+ +#define GLFW_COCOA_MENUBAR 0x00051002 | +
macOS specific init hint.
+ +typedef void(* GLFWerrorfun) (int error_code, const char *description) | +
This is the function pointer type for error callbacks. An error callback function has the following signature:
[in] | error_code | An error code. Future releases may add more error codes. |
[in] | description | A UTF-8 encoded string describing the error. |
int glfwInit | +( | +void | +) | ++ |
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.
+If this function fails, it calls glfwTerminate before returning. If it succeeds, you should call glfwTerminate before the application exits.
+Additional calls to this function after successful initialization but before termination will return GLFW_TRUE
immediately.
GLFW_TRUE
if successful, or GLFW_FALSE
if an error occurred.Contents/Resources
subdirectory of the application's bundle, if present. This can be disabled with the GLFW_COCOA_CHDIR_RESOURCES init hint.LC_CTYPE
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.void glfwTerminate | +( | +void | +) | ++ |
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 glfwInit successfully before you will be able to use most GLFW functions.
+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 glfwInit before it returns failure.
+This function has no effect if GLFW is not initialized.
+void glfwInitHint | +( | +int | +hint, | +
+ | + | int | +value | +
+ | ) | ++ |
This function sets hints for the next initialization of GLFW.
+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.
+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.
+[in] | hint | The init hint to set. |
[in] | value | The new value of the init hint. |
void glfwGetVersion | +( | +int * | +major, | +
+ | + | int * | +minor, | +
+ | + | int * | +rev | +
+ | ) | ++ |
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.
+Any or all of the version arguments may be NULL
.
[out] | major | Where to store the major version number, or NULL . |
[out] | minor | Where to store the minor version number, or NULL . |
[out] | rev | Where to store the revision number, or NULL . |
const char * glfwGetVersionString | +( | +void | +) | ++ |
This function returns the compile-time generated version string 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 glGetString
.
Do not use the version string to parse the GLFW library version. The glfwGetVersion function provides the version of the running library binary in numerical format.
+int glfwGetError | +( | +const char ** | +description | ) | ++ |
This function returns and clears the error code 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 GLFW_NO_ERROR (zero) and the description pointer is set to NULL
.
[in] | description | Where to store the error description pointer, or NULL . |
GLFWerrorfun glfwSetErrorCallback | +( | +GLFWerrorfun | +callback | ) | ++ |
This function sets the error callback, which is called with an error code and a human-readable description each time a GLFW error occurs.
+The error code is set before the callback is called. Calling glfwGetError from the error callback will return the same value as the error code argument.
+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.
+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.
+Once set, the error callback remains set even after the library has been terminated.
+[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set.+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__input.html b/deps/glfw-3.3.8/docs/html/group__input.html new file mode 100644 index 0000000..18cf6f2 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__input.html @@ -0,0 +1,2228 @@ + + + + + + + +This is the reference documentation for input related functions and types. For more task-oriented information, see the Input guide.
++Modules | |
Gamepad axes | |
Gamepad axes. | |
Gamepad buttons | |
Gamepad buttons. | |
Joystick hat states | |
Joystick hat states. | |
Joysticks | |
Joystick IDs. | |
Keyboard keys | |
Keyboard key IDs. | |
Modifier key flags | |
Modifier key flags. | |
Mouse buttons | |
Mouse button IDs. | |
Standard cursor shapes | |
Standard system cursor shapes. | |
+Typedefs | |
typedef struct GLFWcursor | GLFWcursor |
Opaque cursor object. More... | |
typedef void(* | GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods) |
The function pointer type for mouse button callbacks. More... | |
typedef void(* | GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos) |
The function pointer type for cursor position callbacks. More... | |
typedef void(* | GLFWcursorenterfun) (GLFWwindow *window, int entered) |
The function pointer type for cursor enter/leave callbacks. More... | |
typedef void(* | GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset) |
The function pointer type for scroll callbacks. More... | |
typedef void(* | GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods) |
The function pointer type for keyboard key callbacks. More... | |
typedef void(* | GLFWcharfun) (GLFWwindow *window, unsigned int codepoint) |
The function pointer type for Unicode character callbacks. More... | |
typedef void(* | GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods) |
The function pointer type for Unicode character with modifiers callbacks. More... | |
typedef void(* | GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[]) |
The function pointer type for path drop callbacks. More... | |
typedef void(* | GLFWjoystickfun) (int jid, int event) |
The function pointer type for joystick configuration callbacks. More... | |
typedef struct GLFWgamepadstate | GLFWgamepadstate |
Gamepad input state. More... | |
+Functions | |
int | glfwGetInputMode (GLFWwindow *window, int mode) |
Returns the value of an input option for the specified window. More... | |
void | glfwSetInputMode (GLFWwindow *window, int mode, int value) |
Sets an input option for the specified window. More... | |
int | glfwRawMouseMotionSupported (void) |
Returns whether raw mouse motion is supported. More... | |
const char * | glfwGetKeyName (int key, int scancode) |
Returns the layout-specific name of the specified printable key. More... | |
int | glfwGetKeyScancode (int key) |
Returns the platform-specific scancode of the specified key. More... | |
int | glfwGetKey (GLFWwindow *window, int key) |
Returns the last reported state of a keyboard key for the specified window. More... | |
int | glfwGetMouseButton (GLFWwindow *window, int button) |
Returns the last reported state of a mouse button for the specified window. More... | |
void | glfwGetCursorPos (GLFWwindow *window, double *xpos, double *ypos) |
Retrieves the position of the cursor relative to the content area of the window. More... | |
void | glfwSetCursorPos (GLFWwindow *window, double xpos, double ypos) |
Sets the position of the cursor, relative to the content area of the window. More... | |
GLFWcursor * | glfwCreateCursor (const GLFWimage *image, int xhot, int yhot) |
Creates a custom cursor. More... | |
GLFWcursor * | glfwCreateStandardCursor (int shape) |
Creates a cursor with a standard shape. More... | |
void | glfwDestroyCursor (GLFWcursor *cursor) |
Destroys a cursor. More... | |
void | glfwSetCursor (GLFWwindow *window, GLFWcursor *cursor) |
Sets the cursor for the window. More... | |
GLFWkeyfun | glfwSetKeyCallback (GLFWwindow *window, GLFWkeyfun callback) |
Sets the key callback. More... | |
GLFWcharfun | glfwSetCharCallback (GLFWwindow *window, GLFWcharfun callback) |
Sets the Unicode character callback. More... | |
GLFWcharmodsfun | glfwSetCharModsCallback (GLFWwindow *window, GLFWcharmodsfun callback) |
Sets the Unicode character with modifiers callback. More... | |
GLFWmousebuttonfun | glfwSetMouseButtonCallback (GLFWwindow *window, GLFWmousebuttonfun callback) |
Sets the mouse button callback. More... | |
GLFWcursorposfun | glfwSetCursorPosCallback (GLFWwindow *window, GLFWcursorposfun callback) |
Sets the cursor position callback. More... | |
GLFWcursorenterfun | glfwSetCursorEnterCallback (GLFWwindow *window, GLFWcursorenterfun callback) |
Sets the cursor enter/leave callback. More... | |
GLFWscrollfun | glfwSetScrollCallback (GLFWwindow *window, GLFWscrollfun callback) |
Sets the scroll callback. More... | |
GLFWdropfun | glfwSetDropCallback (GLFWwindow *window, GLFWdropfun callback) |
Sets the path drop callback. More... | |
int | glfwJoystickPresent (int jid) |
Returns whether the specified joystick is present. More... | |
const float * | glfwGetJoystickAxes (int jid, int *count) |
Returns the values of all axes of the specified joystick. More... | |
const unsigned char * | glfwGetJoystickButtons (int jid, int *count) |
Returns the state of all buttons of the specified joystick. More... | |
const unsigned char * | glfwGetJoystickHats (int jid, int *count) |
Returns the state of all hats of the specified joystick. More... | |
const char * | glfwGetJoystickName (int jid) |
Returns the name of the specified joystick. More... | |
const char * | glfwGetJoystickGUID (int jid) |
Returns the SDL compatible GUID of the specified joystick. More... | |
void | glfwSetJoystickUserPointer (int jid, void *pointer) |
Sets the user pointer of the specified joystick. More... | |
void * | glfwGetJoystickUserPointer (int jid) |
Returns the user pointer of the specified joystick. More... | |
int | glfwJoystickIsGamepad (int jid) |
Returns whether the specified joystick has a gamepad mapping. More... | |
GLFWjoystickfun | glfwSetJoystickCallback (GLFWjoystickfun callback) |
Sets the joystick configuration callback. More... | |
int | glfwUpdateGamepadMappings (const char *string) |
Adds the specified SDL_GameControllerDB gamepad mappings. More... | |
const char * | glfwGetGamepadName (int jid) |
Returns the human-readable gamepad name for the specified joystick. More... | |
int | glfwGetGamepadState (int jid, GLFWgamepadstate *state) |
Retrieves the state of the specified joystick remapped as a gamepad. More... | |
void | glfwSetClipboardString (GLFWwindow *window, const char *string) |
Sets the clipboard to the specified string. More... | |
const char * | glfwGetClipboardString (GLFWwindow *window) |
Returns the contents of the clipboard as a string. More... | |
double | glfwGetTime (void) |
Returns the GLFW time. More... | |
void | glfwSetTime (double time) |
Sets the GLFW time. More... | |
uint64_t | glfwGetTimerValue (void) |
Returns the current value of the raw timer. More... | |
uint64_t | glfwGetTimerFrequency (void) |
Returns the frequency, in Hz, of the raw timer. More... | |
#define GLFW_RELEASE 0 | +
The key or mouse button was released.
+ +#define GLFW_PRESS 1 | +
The key or mouse button was pressed.
+ +#define GLFW_REPEAT 2 | +
The key was held down until it repeated.
+ +typedef struct GLFWcursor GLFWcursor | +
typedef void(* GLFWmousebuttonfun) (GLFWwindow *window, int button, int action, int mods) | +
This is the function pointer type for mouse button callback functions. A mouse button callback function has the following signature:
[in] | window | The window that received the event. |
[in] | button | The mouse button that was pressed or released. |
[in] | action | One of GLFW_PRESS or GLFW_RELEASE . Future releases may add more actions. |
[in] | mods | Bit field describing which modifier keys were held down. |
typedef void(* GLFWcursorposfun) (GLFWwindow *window, double xpos, double ypos) | +
This is the function pointer type for cursor position callbacks. A cursor position callback function has the following signature:
[in] | window | The window that received the event. |
[in] | xpos | The new cursor x-coordinate, relative to the left edge of the content area. |
[in] | ypos | The new cursor y-coordinate, relative to the top edge of the content area. |
GLFWmouseposfun
. typedef void(* GLFWcursorenterfun) (GLFWwindow *window, int entered) | +
This is the function pointer type for cursor enter/leave callbacks. A cursor enter/leave callback function has the following signature:
[in] | window | The window that received the event. |
[in] | entered | GLFW_TRUE if the cursor entered the window's content area, or GLFW_FALSE if it left it. |
typedef void(* GLFWscrollfun) (GLFWwindow *window, double xoffset, double yoffset) | +
This is the function pointer type for scroll callbacks. A scroll callback function has the following signature:
[in] | window | The window that received the event. |
[in] | xoffset | The scroll offset along the x-axis. |
[in] | yoffset | The scroll offset along the y-axis. |
GLFWmousewheelfun
. typedef void(* GLFWkeyfun) (GLFWwindow *window, int key, int scancode, int action, int mods) | +
This is the function pointer type for keyboard key callbacks. A keyboard key callback function has the following signature:
[in] | window | The window that received the event. |
[in] | key | The keyboard key that was pressed or released. |
[in] | scancode | The system-specific scancode of the key. |
[in] | action | GLFW_PRESS , GLFW_RELEASE or GLFW_REPEAT . Future releases may add more actions. |
[in] | mods | Bit field describing which modifier keys were held down. |
typedef void(* GLFWcharfun) (GLFWwindow *window, unsigned int codepoint) | +
This is the function pointer type for Unicode character callbacks. A Unicode character callback function has the following signature:
[in] | window | The window that received the event. |
[in] | codepoint | The Unicode code point of the character. |
typedef void(* GLFWcharmodsfun) (GLFWwindow *window, unsigned int codepoint, int mods) | +
This is the function pointer type for Unicode character with modifiers callbacks. It is called for each input character, regardless of what modifier keys are held down. A Unicode character with modifiers callback function has the following signature:
[in] | window | The window that received the event. |
[in] | codepoint | The Unicode code point of the character. |
[in] | mods | Bit field describing which modifier keys were held down. |
typedef void(* GLFWdropfun) (GLFWwindow *window, int path_count, const char *paths[]) | +
This is the function pointer type for path drop callbacks. A path drop callback function has the following signature:
[in] | window | The window that received the event. |
[in] | path_count | The number of dropped paths. |
[in] | paths | The UTF-8 encoded file and/or directory path names. |
typedef void(* GLFWjoystickfun) (int jid, int event) | +
This is the function pointer type for joystick configuration callbacks. A joystick configuration callback function has the following signature:
[in] | jid | The joystick that was connected or disconnected. |
[in] | event | One of GLFW_CONNECTED or GLFW_DISCONNECTED . Future releases may add more events. |
typedef struct GLFWgamepadstate GLFWgamepadstate | +
This describes the input state of a gamepad.
+int glfwGetInputMode | +( | +GLFWwindow * | +window, | +
+ | + | int | +mode | +
+ | ) | ++ |
This function returns the value of an input option for the specified window. The mode must be one of GLFW_CURSOR, GLFW_STICKY_KEYS, GLFW_STICKY_MOUSE_BUTTONS, GLFW_LOCK_KEY_MODS or GLFW_RAW_MOUSE_MOTION.
+[in] | window | The window to query. |
[in] | mode | One of GLFW_CURSOR , GLFW_STICKY_KEYS , GLFW_STICKY_MOUSE_BUTTONS , GLFW_LOCK_KEY_MODS or GLFW_RAW_MOUSE_MOTION . |
void glfwSetInputMode | +( | +GLFWwindow * | +window, | +
+ | + | int | +mode, | +
+ | + | int | +value | +
+ | ) | ++ |
This function sets an input mode option for the specified window. The mode must be one of GLFW_CURSOR, GLFW_STICKY_KEYS, GLFW_STICKY_MOUSE_BUTTONS, GLFW_LOCK_KEY_MODS or GLFW_RAW_MOUSE_MOTION.
+If the mode is GLFW_CURSOR
, the value must be one of the following cursor modes:
GLFW_CURSOR_NORMAL
makes the cursor visible and behaving normally.GLFW_CURSOR_HIDDEN
makes the cursor invisible when it is over the content area of the window but does not restrict the cursor from leaving.GLFW_CURSOR_DISABLED
hides and grabs the cursor, providing virtual and unlimited cursor movement. This is useful for implementing for example 3D camera controls.If the mode is GLFW_STICKY_KEYS
, the value must be either GLFW_TRUE
to enable sticky keys, or GLFW_FALSE
to disable it. If sticky keys are enabled, a key press will ensure that glfwGetKey returns GLFW_PRESS
the next time it is called even if the key had been released before the call. This is useful when you are only interested in whether keys have been pressed but not when or in which order.
If the mode is GLFW_STICKY_MOUSE_BUTTONS
, the value must be either GLFW_TRUE
to enable sticky mouse buttons, or GLFW_FALSE
to disable it. If sticky mouse buttons are enabled, a mouse button press will ensure that glfwGetMouseButton returns GLFW_PRESS
the next time it is called even if the mouse button had been released before the call. This is useful when you are only interested in whether mouse buttons have been pressed but not when or in which order.
If the mode is GLFW_LOCK_KEY_MODS
, the value must be either GLFW_TRUE
to enable lock key modifier bits, or GLFW_FALSE
to disable them. If enabled, callbacks that receive modifier bits will also have the GLFW_MOD_CAPS_LOCK bit set when the event was generated with Caps Lock on, and the GLFW_MOD_NUM_LOCK bit when Num Lock was on.
If the mode is GLFW_RAW_MOUSE_MOTION
, the value must be either GLFW_TRUE
to enable raw (unscaled and unaccelerated) mouse motion when the cursor is disabled, or GLFW_FALSE
to disable it. If raw motion is not supported, attempting to set this will emit GLFW_PLATFORM_ERROR. Call glfwRawMouseMotionSupported to check for support.
[in] | window | The window whose input mode to set. |
[in] | mode | One of GLFW_CURSOR , GLFW_STICKY_KEYS , GLFW_STICKY_MOUSE_BUTTONS , GLFW_LOCK_KEY_MODS or GLFW_RAW_MOUSE_MOTION . |
[in] | value | The new value of the specified input mode. |
glfwEnable
and glfwDisable
. int glfwRawMouseMotionSupported | +( | +void | +) | ++ |
This function returns whether raw mouse motion is supported on the current system. This status does not change after GLFW has been initialized so you only need to check this once. If you attempt to enable raw motion on a system that does not support it, GLFW_PLATFORM_ERROR will be emitted.
+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.
+GLFW_TRUE
if raw mouse motion is supported on the current machine, or GLFW_FALSE
otherwise.const char * glfwGetKeyName | +( | +int | +key, | +
+ | + | int | +scancode | +
+ | ) | ++ |
This function returns the name of the specified printable key, encoded as UTF-8. This is typically the character that key would produce without any modifier keys, intended for displaying key bindings to the user. For dead keys, it is typically the diacritic it would add to a character.
+Do not use this function for text input. You will break text input for many languages even if it happens to work for yours.
+If the key is GLFW_KEY_UNKNOWN
, the scancode is used to identify the key, otherwise the scancode is ignored. If you specify a non-printable key, or GLFW_KEY_UNKNOWN
and a scancode that maps to a non-printable key, this function returns NULL
but does not emit an error.
This behavior allows you to always pass in the arguments in the key callback without modification.
+The printable keys are:
GLFW_KEY_APOSTROPHE
GLFW_KEY_COMMA
GLFW_KEY_MINUS
GLFW_KEY_PERIOD
GLFW_KEY_SLASH
GLFW_KEY_SEMICOLON
GLFW_KEY_EQUAL
GLFW_KEY_LEFT_BRACKET
GLFW_KEY_RIGHT_BRACKET
GLFW_KEY_BACKSLASH
GLFW_KEY_WORLD_1
GLFW_KEY_WORLD_2
GLFW_KEY_0
to GLFW_KEY_9
GLFW_KEY_A
to GLFW_KEY_Z
GLFW_KEY_KP_0
to GLFW_KEY_KP_9
GLFW_KEY_KP_DECIMAL
GLFW_KEY_KP_DIVIDE
GLFW_KEY_KP_MULTIPLY
GLFW_KEY_KP_SUBTRACT
GLFW_KEY_KP_ADD
GLFW_KEY_KP_EQUAL
Names for printable keys depend on keyboard layout, while names for non-printable keys are the same across layouts but depend on the application language and should be localized along with other user interface text.
+[in] | key | The key to query, or GLFW_KEY_UNKNOWN . |
[in] | scancode | The scancode of the key to query. |
NULL
.int glfwGetKeyScancode | +( | +int | +key | ) | ++ |
This function returns the platform-specific scancode of the specified key.
+If the key is GLFW_KEY_UNKNOWN
or does not exist on the keyboard this method will return -1
.
[in] | key | Any named key. |
-1
if an error occurred.int glfwGetKey | +( | +GLFWwindow * | +window, | +
+ | + | int | +key | +
+ | ) | ++ |
This function returns the last state reported for the specified key to the specified window. The returned state is one of GLFW_PRESS
or GLFW_RELEASE
. The action GLFW_REPEAT
is only reported to the key callback.
If the GLFW_STICKY_KEYS input mode is enabled, this function returns GLFW_PRESS
the first time you call it for a key that was pressed, even if that key has already been released.
The key functions deal with physical keys, with key tokens named after their use on the standard US keyboard layout. If you want to input text, use the Unicode character callback instead.
+The modifier key bit masks are not key tokens and cannot be used with this function.
+Do not use this function to implement text input.
+[in] | window | The desired window. |
[in] | key | The desired keyboard key. GLFW_KEY_UNKNOWN is not a valid key for this function. |
GLFW_PRESS
or GLFW_RELEASE
.int glfwGetMouseButton | +( | +GLFWwindow * | +window, | +
+ | + | int | +button | +
+ | ) | ++ |
This function returns the last state reported for the specified mouse button to the specified window. The returned state is one of GLFW_PRESS
or GLFW_RELEASE
.
If the GLFW_STICKY_MOUSE_BUTTONS input mode is enabled, this function returns GLFW_PRESS
the first time you call it for a mouse button that was pressed, even if that mouse button has already been released.
[in] | window | The desired window. |
[in] | button | The desired mouse button. |
GLFW_PRESS
or GLFW_RELEASE
.void glfwGetCursorPos | +( | +GLFWwindow * | +window, | +
+ | + | double * | +xpos, | +
+ | + | double * | +ypos | +
+ | ) | ++ |
This function returns the position of the cursor, in screen coordinates, relative to the upper-left corner of the content area of the specified window.
+If the cursor is disabled (with GLFW_CURSOR_DISABLED
) then the cursor position is unbounded and limited only by the minimum and maximum values of a double
.
The coordinate can be converted to their integer equivalents with the floor
function. Casting directly to an integer type works for positive coordinates, but fails for negative ones.
Any or all of the position arguments may be NULL
. If an error occurs, all non-NULL
position arguments will be set to zero.
[in] | window | The desired window. |
[out] | xpos | Where to store the cursor x-coordinate, relative to the left edge of the content area, or NULL . |
[out] | ypos | Where to store the cursor y-coordinate, relative to the to top edge of the content area, or NULL . |
glfwGetMousePos
. void glfwSetCursorPos | +( | +GLFWwindow * | +window, | +
+ | + | double | +xpos, | +
+ | + | double | +ypos | +
+ | ) | ++ |
This function sets the position, in screen coordinates, of the cursor relative to the upper-left corner of the content area of the specified window. The window must have input focus. If the window does not have input focus when this function is called, it fails silently.
+Do not use this function to implement things like camera controls. GLFW already provides the GLFW_CURSOR_DISABLED
cursor mode that hides the cursor, transparently re-centers it and provides unconstrained cursor motion. See glfwSetInputMode for more information.
If the cursor mode is GLFW_CURSOR_DISABLED
then the cursor position is unconstrained and limited only by the minimum and maximum values of a double
.
[in] | window | The desired window. |
[in] | xpos | The desired x-coordinate, relative to the left edge of the content area. |
[in] | ypos | The desired y-coordinate, relative to the top edge of the content area. |
GLFW_CURSOR_DISABLED
, otherwise it will do nothing.glfwSetMousePos
. GLFWcursor * glfwCreateCursor | +( | +const GLFWimage * | +image, | +
+ | + | int | +xhot, | +
+ | + | int | +yhot | +
+ | ) | ++ |
Creates a new custom cursor image that can be set for a window with glfwSetCursor. The cursor can be destroyed with glfwDestroyCursor. Any remaining cursors are destroyed by glfwTerminate.
+The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight bits per channel with the red channel first. They are arranged canonically as packed sequential rows, starting from the top-left corner.
+The cursor hotspot is specified in pixels, relative to the upper-left corner of the cursor image. Like all other coordinate systems in GLFW, the X-axis points to the right and the Y-axis points down.
+[in] | image | The desired cursor image. |
[in] | xhot | The desired x-coordinate, in pixels, of the cursor hotspot. |
[in] | yhot | The desired y-coordinate, in pixels, of the cursor hotspot. |
NULL
if an error occurred.GLFWcursor * glfwCreateStandardCursor | +( | +int | +shape | ) | ++ |
Returns a cursor with a standard shape, that can be set for a window with glfwSetCursor.
+[in] | shape | One of the standard shapes. |
NULL
if an error occurred.void glfwDestroyCursor | +( | +GLFWcursor * | +cursor | ) | ++ |
This function destroys a cursor previously created with glfwCreateCursor. Any remaining cursors will be destroyed by glfwTerminate.
+If the specified cursor is current for any window, that window will be reverted to the default cursor. This does not affect the cursor mode.
+[in] | cursor | The cursor object to destroy. |
void glfwSetCursor | +( | +GLFWwindow * | +window, | +
+ | + | GLFWcursor * | +cursor | +
+ | ) | ++ |
This function sets the cursor image to be used when the cursor is over the content area of the specified window. The set cursor will only be visible when the cursor mode of the window is GLFW_CURSOR_NORMAL
.
On some platforms, the set cursor may not be visible unless the window also has input focus.
+[in] | window | The window to set the cursor for. |
[in] | cursor | The cursor to set, or NULL to switch back to the default arrow cursor. |
GLFWkeyfun glfwSetKeyCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWkeyfun | +callback | +
+ | ) | ++ |
This function sets the key callback of the specified window, which is called when a key is pressed, repeated or released.
+The key functions deal with physical keys, with layout independent key tokens named after their values in the standard US keyboard layout. If you want to input text, use the character callback instead.
+When a window loses input focus, it will generate synthetic key release events for all pressed keys. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the focus loss event has been processed, i.e. after the window focus callback has been called.
+The scancode of a key is specific to that platform or sometimes even to that machine. Scancodes are intended to allow users to bind keys that don't have a GLFW key token. Such keys have key
set to GLFW_KEY_UNKNOWN
, their state is not saved and so it cannot be queried with glfwGetKey.
Sometimes GLFW needs to generate synthetic key events, in which case the scancode may be zero.
+[in] | window | The window whose callback to set. |
[in] | callback | The new key callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWcharfun glfwSetCharCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWcharfun | +callback | +
+ | ) | ++ |
This function sets the character callback of the specified window, which is called when a Unicode character is input.
+The character callback is intended for Unicode text input. As it deals with characters, it is keyboard layout dependent, whereas the key callback is not. Characters do not map 1:1 to physical keys, as a key may produce zero, one or more characters. If you want to know whether a specific physical key was pressed or released, see the key callback instead.
+The character callback behaves as system text input normally does and will not be called if modifier keys are held down that would prevent normal text input on that platform, for example a Super (Command) key on macOS or Alt key on Windows.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWcharmodsfun glfwSetCharModsCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWcharmodsfun | +callback | +
+ | ) | ++ |
This function sets the character with modifiers callback of the specified window, which is called when a Unicode character is input regardless of what modifier keys are used.
+The character with modifiers callback is intended for implementing custom Unicode character input. For regular Unicode text input, see the character callback. Like the character callback, the character with modifiers callback deals with characters and is keyboard layout dependent. Characters do not map 1:1 to physical keys, as a key may produce zero, one or more characters. If you want to know whether a specific physical key was pressed or released, see the key callback instead.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or an error occurred.GLFWmousebuttonfun glfwSetMouseButtonCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWmousebuttonfun | +callback | +
+ | ) | ++ |
This function sets the mouse button callback of the specified window, which is called when a mouse button is pressed or released.
+When a window loses input focus, it will generate synthetic mouse button release events for all pressed mouse buttons. You can tell these events from user-generated events by the fact that the synthetic ones are generated after the focus loss event has been processed, i.e. after the window focus callback has been called.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWcursorposfun glfwSetCursorPosCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWcursorposfun | +callback | +
+ | ) | ++ |
This function sets the cursor position callback of the specified window, which is called when the cursor is moved. The callback is provided with the position, in screen coordinates, relative to the upper-left corner of the content area of the window.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.glfwSetMousePosCallback
. GLFWcursorenterfun glfwSetCursorEnterCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWcursorenterfun | +callback | +
+ | ) | ++ |
This function sets the cursor boundary crossing callback of the specified window, which is called when the cursor enters or leaves the content area of the window.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWscrollfun glfwSetScrollCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWscrollfun | +callback | +
+ | ) | ++ |
This function sets the scroll callback of the specified window, which is called when a scrolling device is used, such as a mouse wheel or scrolling area of a touchpad.
+The scroll callback receives all scrolling input, like that from a mouse wheel or a touchpad scrolling area.
+[in] | window | The window whose callback to set. |
[in] | callback | The new scroll callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.glfwSetMouseWheelCallback
. GLFWdropfun glfwSetDropCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWdropfun | +callback | +
+ | ) | ++ |
This function sets the path drop callback of the specified window, which is called when one or more dragged paths are dropped on the window.
+Because the path array and its strings may have been generated specifically for that event, they are not guaranteed to be valid after the callback has returned. If you wish to use them after the callback returns, you need to make a deep copy.
+[in] | window | The window whose callback to set. |
[in] | callback | The new file drop callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.int glfwJoystickPresent | +( | +int | +jid | ) | ++ |
This function returns whether the specified joystick is present.
+There is no need to call this function before other functions that accept a joystick ID, as they all check for presence before performing any other work.
+[in] | jid | The joystick to query. |
GLFW_TRUE
if the joystick is present, or GLFW_FALSE
otherwise.glfwGetJoystickParam
. const float * glfwGetJoystickAxes | +( | +int | +jid, | +
+ | + | int * | +count | +
+ | ) | ++ |
This function returns the values of all axes of the specified joystick. Each element in the array is a value between -1.0 and 1.0.
+If the specified joystick is not present this function will return NULL
but will not generate an error. This can be used instead of first calling glfwJoystickPresent.
[in] | jid | The joystick to query. |
[out] | count | Where to store the number of axis values in the returned array. This is set to zero if the joystick is not present or an error occurred. |
NULL
if the joystick is not present or an error occurred.glfwGetJoystickPos
. const unsigned char * glfwGetJoystickButtons | +( | +int | +jid, | +
+ | + | int * | +count | +
+ | ) | ++ |
This function returns the state of all buttons of the specified joystick. Each element in the array is either GLFW_PRESS
or GLFW_RELEASE
.
For backward compatibility with earlier versions that did not have glfwGetJoystickHats, the button array also includes all hats, each represented as four buttons. The hats are in the same order as returned by glfwGetJoystickHats and are in the order up, right, down and left. To disable these extra buttons, set the GLFW_JOYSTICK_HAT_BUTTONS init hint before initialization.
+If the specified joystick is not present this function will return NULL
but will not generate an error. This can be used instead of first calling glfwJoystickPresent.
[in] | jid | The joystick to query. |
[out] | count | Where to store the number of button states in the returned array. This is set to zero if the joystick is not present or an error occurred. |
NULL
if the joystick is not present or an error occurred.const unsigned char * glfwGetJoystickHats | +( | +int | +jid, | +
+ | + | int * | +count | +
+ | ) | ++ |
This function returns the state of all hats of the specified joystick. Each element in the array is one of the following values:
+Name | Value |
---|---|
GLFW_HAT_CENTERED | 0 |
GLFW_HAT_UP | 1 |
GLFW_HAT_RIGHT | 2 |
GLFW_HAT_DOWN | 4 |
GLFW_HAT_LEFT | 8 |
GLFW_HAT_RIGHT_UP | GLFW_HAT_RIGHT | GLFW_HAT_UP |
GLFW_HAT_RIGHT_DOWN | GLFW_HAT_RIGHT | GLFW_HAT_DOWN |
GLFW_HAT_LEFT_UP | GLFW_HAT_LEFT | GLFW_HAT_UP |
GLFW_HAT_LEFT_DOWN | GLFW_HAT_LEFT | GLFW_HAT_DOWN |
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.
+If the specified joystick is not present this function will return NULL
but will not generate an error. This can be used instead of first calling glfwJoystickPresent.
[in] | jid | The joystick to query. |
[out] | count | Where to store the number of hat states in the returned array. This is set to zero if the joystick is not present or an error occurred. |
NULL
if the joystick is not present or an error occurred.const char * glfwGetJoystickName | +( | +int | +jid | ) | ++ |
This function returns the name, encoded as UTF-8, of the specified joystick. The returned string is allocated and freed by GLFW. You should not free it yourself.
+If the specified joystick is not present this function will return NULL
but will not generate an error. This can be used instead of first calling glfwJoystickPresent.
[in] | jid | The joystick to query. |
NULL
if the joystick is not present or an error occurred.const char * glfwGetJoystickGUID | +( | +int | +jid | ) | ++ |
This function returns the SDL compatible GUID, as a UTF-8 encoded hexadecimal string, of the specified joystick. The returned string is allocated and freed by GLFW. You should not free it yourself.
+The GUID is what connects a joystick to a gamepad mapping. A connected joystick will always have a GUID even if there is no gamepad mapping assigned to it.
+If the specified joystick is not present this function will return NULL
but will not generate an error. This can be used instead of first calling glfwJoystickPresent.
The GUID uses the format introduced in SDL 2.0.5. This GUID tries to uniquely identify the make and model of a joystick but does not identify a specific unit, e.g. all wired Xbox 360 controllers will have the same GUID on that platform. The GUID for a unit may vary between platforms depending on what hardware information the platform specific APIs provide.
+[in] | jid | The joystick to query. |
NULL
if the joystick is not present or an error occurred.void glfwSetJoystickUserPointer | +( | +int | +jid, | +
+ | + | void * | +pointer | +
+ | ) | ++ |
This function sets the user-defined pointer of the specified joystick. The current value is retained until the joystick is disconnected. The initial value is NULL
.
This function may be called from the joystick callback, even for a joystick that is being disconnected.
+[in] | jid | The joystick whose pointer to set. |
[in] | pointer | The new value. |
void * glfwGetJoystickUserPointer | +( | +int | +jid | ) | ++ |
This function returns the current value of the user-defined pointer of the specified joystick. The initial value is NULL
.
This function may be called from the joystick callback, even for a joystick that is being disconnected.
+[in] | jid | The joystick whose pointer to return. |
int glfwJoystickIsGamepad | +( | +int | +jid | ) | ++ |
This function returns whether the specified joystick is both present and has a gamepad mapping.
+If the specified joystick is present but does not have a gamepad mapping this function will return GLFW_FALSE
but will not generate an error. Call glfwJoystickPresent to check if a joystick is present regardless of whether it has a mapping.
[in] | jid | The joystick to query. |
GLFW_TRUE
if a joystick is both present and has a gamepad mapping, or GLFW_FALSE
otherwise.GLFWjoystickfun glfwSetJoystickCallback | +( | +GLFWjoystickfun | +callback | ) | ++ |
This function sets the joystick configuration callback, or removes the currently set callback. This is called when a joystick is connected to or disconnected from the system.
+For joystick connection and disconnection events to be delivered on all platforms, you need to call one of the event processing functions. Joystick disconnection may also be detected and the callback called by joystick functions. The function will then return whatever it returns if the joystick is not present.
+[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.int glfwUpdateGamepadMappings | +( | +const char * | +string | ) | ++ |
This function parses the specified ASCII encoded string and updates the internal list with any gamepad mappings it finds. This string may contain either a single gamepad mapping or many mappings separated by newlines. The parser supports the full format of the gamecontrollerdb.txt
source file including empty lines and comments.
See Gamepad mappings for a description of the format.
+If there is already a gamepad mapping for a given GUID in the internal list, it will be replaced by the one passed to this function. If the library is terminated and re-initialized the internal list will revert to the built-in default.
+[in] | string | The string containing the gamepad mappings. |
GLFW_TRUE
if successful, or GLFW_FALSE
if an error occurred.const char * glfwGetGamepadName | +( | +int | +jid | ) | ++ |
This function returns the human-readable name of the gamepad from the gamepad mapping assigned to the specified joystick.
+If the specified joystick is not present or does not have a gamepad mapping this function will return NULL
but will not generate an error. Call glfwJoystickPresent to check whether it is present regardless of whether it has a mapping.
[in] | jid | The joystick to query. |
NULL
if the joystick is not present, does not have a mapping or an error occurred.int glfwGetGamepadState | +( | +int | +jid, | +
+ | + | GLFWgamepadstate * | +state | +
+ | ) | ++ |
This function retrieves the state of the specified joystick remapped to an Xbox-like gamepad.
+If the specified joystick is not present or does not have a gamepad mapping this function will return GLFW_FALSE
but will not generate an error. Call glfwJoystickPresent to check whether it is present regardless of whether it has a mapping.
The Guide button may not be available for input as it is often hooked by the system or the Steam client.
+Not all devices have all the buttons or axes provided by GLFWgamepadstate. Unavailable buttons and axes will always report GLFW_RELEASE
and 0.0 respectively.
[in] | jid | The joystick to query. |
[out] | state | The gamepad input state of the joystick. |
GLFW_TRUE
if successful, or GLFW_FALSE
if no joystick is connected, it has no gamepad mapping or an error occurred.void glfwSetClipboardString | +( | +GLFWwindow * | +window, | +
+ | + | const char * | +string | +
+ | ) | ++ |
This function sets the system clipboard to the specified, UTF-8 encoded string.
+[in] | window | Deprecated. Any valid window or NULL . |
[in] | string | A UTF-8 encoded string. |
const char * glfwGetClipboardString | +( | +GLFWwindow * | +window | ) | ++ |
This function returns the contents of the system clipboard, if it contains or is convertible to a UTF-8 encoded string. If the clipboard is empty or if its contents cannot be converted, NULL
is returned and a GLFW_FORMAT_UNAVAILABLE error is generated.
[in] | window | Deprecated. Any valid window or NULL . |
NULL
if an error occurred.double glfwGetTime | +( | +void | +) | ++ |
This function returns the current GLFW time, in seconds. Unless the time has been set using glfwSetTime it measures time elapsed since GLFW was initialized.
+This function and glfwSetTime are helper functions on top of glfwGetTimerFrequency and glfwGetTimerValue.
+The resolution of the timer is system dependent, but is usually on the order of a few micro- or nanoseconds. It uses the highest-resolution monotonic time source on each supported platform.
+void glfwSetTime | +( | +double | +time | ) | ++ |
This function sets the current GLFW time, in seconds. The value must be a positive finite number less than or equal to 18446744073.0, which is approximately 584.5 years.
+This function and glfwGetTime are helper functions on top of glfwGetTimerFrequency and glfwGetTimerValue.
+[in] | time | The new value, in seconds. |
uint64_t glfwGetTimerValue | +( | +void | +) | ++ |
This function returns the current value of the raw timer, measured in 1 / frequency seconds. To get the frequency, call glfwGetTimerFrequency.
+uint64_t glfwGetTimerFrequency | +( | +void | +) | ++ |
This function returns the frequency, in Hz, of the raw timer.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__joysticks.html b/deps/glfw-3.3.8/docs/html/group__joysticks.html new file mode 100644 index 0000000..34f86b2 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__joysticks.html @@ -0,0 +1,355 @@ + + + + + + + +See joystick input for how these are used.
++Macros | |
#define | GLFW_JOYSTICK_1 0 |
#define | GLFW_JOYSTICK_2 1 |
#define | GLFW_JOYSTICK_3 2 |
#define | GLFW_JOYSTICK_4 3 |
#define | GLFW_JOYSTICK_5 4 |
#define | GLFW_JOYSTICK_6 5 |
#define | GLFW_JOYSTICK_7 6 |
#define | GLFW_JOYSTICK_8 7 |
#define | GLFW_JOYSTICK_9 8 |
#define | GLFW_JOYSTICK_10 9 |
#define | GLFW_JOYSTICK_11 10 |
#define | GLFW_JOYSTICK_12 11 |
#define | GLFW_JOYSTICK_13 12 |
#define | GLFW_JOYSTICK_14 13 |
#define | GLFW_JOYSTICK_15 14 |
#define | GLFW_JOYSTICK_16 15 |
#define | GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 |
#define GLFW_JOYSTICK_1 0 | +
#define GLFW_JOYSTICK_2 1 | +
#define GLFW_JOYSTICK_3 2 | +
#define GLFW_JOYSTICK_4 3 | +
#define GLFW_JOYSTICK_5 4 | +
#define GLFW_JOYSTICK_6 5 | +
#define GLFW_JOYSTICK_7 6 | +
#define GLFW_JOYSTICK_8 7 | +
#define GLFW_JOYSTICK_9 8 | +
#define GLFW_JOYSTICK_10 9 | +
#define GLFW_JOYSTICK_11 10 | +
#define GLFW_JOYSTICK_12 11 | +
#define GLFW_JOYSTICK_13 12 | +
#define GLFW_JOYSTICK_14 13 | +
#define GLFW_JOYSTICK_15 14 | +
#define GLFW_JOYSTICK_16 15 | +
#define GLFW_JOYSTICK_LAST GLFW_JOYSTICK_16 | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__keys.html b/deps/glfw-3.3.8/docs/html/group__keys.html new file mode 100644 index 0000000..f899864 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__keys.html @@ -0,0 +1,2043 @@ + + + + + + + +See key input for how these are used.
+These key codes are inspired by the USB HID Usage Tables v1.12 (p. 53-60), but re-arranged to map to 7-bit ASCII for printable keys (function keys are put in the 256+ range).
+The naming of the key codes follow these rules:
+Macros | |
#define | GLFW_KEY_UNKNOWN -1 |
#define | GLFW_KEY_SPACE 32 |
#define | GLFW_KEY_APOSTROPHE 39 /* ' */ |
#define | GLFW_KEY_COMMA 44 /* , */ |
#define | GLFW_KEY_MINUS 45 /* - */ |
#define | GLFW_KEY_PERIOD 46 /* . */ |
#define | GLFW_KEY_SLASH 47 /* / */ |
#define | GLFW_KEY_0 48 |
#define | GLFW_KEY_1 49 |
#define | GLFW_KEY_2 50 |
#define | GLFW_KEY_3 51 |
#define | GLFW_KEY_4 52 |
#define | GLFW_KEY_5 53 |
#define | GLFW_KEY_6 54 |
#define | GLFW_KEY_7 55 |
#define | GLFW_KEY_8 56 |
#define | GLFW_KEY_9 57 |
#define | GLFW_KEY_SEMICOLON 59 /* ; */ |
#define | GLFW_KEY_EQUAL 61 /* = */ |
#define | GLFW_KEY_A 65 |
#define | GLFW_KEY_B 66 |
#define | GLFW_KEY_C 67 |
#define | GLFW_KEY_D 68 |
#define | GLFW_KEY_E 69 |
#define | GLFW_KEY_F 70 |
#define | GLFW_KEY_G 71 |
#define | GLFW_KEY_H 72 |
#define | GLFW_KEY_I 73 |
#define | GLFW_KEY_J 74 |
#define | GLFW_KEY_K 75 |
#define | GLFW_KEY_L 76 |
#define | GLFW_KEY_M 77 |
#define | GLFW_KEY_N 78 |
#define | GLFW_KEY_O 79 |
#define | GLFW_KEY_P 80 |
#define | GLFW_KEY_Q 81 |
#define | GLFW_KEY_R 82 |
#define | GLFW_KEY_S 83 |
#define | GLFW_KEY_T 84 |
#define | GLFW_KEY_U 85 |
#define | GLFW_KEY_V 86 |
#define | GLFW_KEY_W 87 |
#define | GLFW_KEY_X 88 |
#define | GLFW_KEY_Y 89 |
#define | GLFW_KEY_Z 90 |
#define | GLFW_KEY_LEFT_BRACKET 91 /* [ */ |
#define | GLFW_KEY_BACKSLASH 92 /* \ */ |
#define | GLFW_KEY_RIGHT_BRACKET 93 /* ] */ |
#define | GLFW_KEY_GRAVE_ACCENT 96 /* ` */ |
#define | GLFW_KEY_WORLD_1 161 /* non-US #1 */ |
#define | GLFW_KEY_WORLD_2 162 /* non-US #2 */ |
#define | GLFW_KEY_ESCAPE 256 |
#define | GLFW_KEY_ENTER 257 |
#define | GLFW_KEY_TAB 258 |
#define | GLFW_KEY_BACKSPACE 259 |
#define | GLFW_KEY_INSERT 260 |
#define | GLFW_KEY_DELETE 261 |
#define | GLFW_KEY_RIGHT 262 |
#define | GLFW_KEY_LEFT 263 |
#define | GLFW_KEY_DOWN 264 |
#define | GLFW_KEY_UP 265 |
#define | GLFW_KEY_PAGE_UP 266 |
#define | GLFW_KEY_PAGE_DOWN 267 |
#define | GLFW_KEY_HOME 268 |
#define | GLFW_KEY_END 269 |
#define | GLFW_KEY_CAPS_LOCK 280 |
#define | GLFW_KEY_SCROLL_LOCK 281 |
#define | GLFW_KEY_NUM_LOCK 282 |
#define | GLFW_KEY_PRINT_SCREEN 283 |
#define | GLFW_KEY_PAUSE 284 |
#define | GLFW_KEY_F1 290 |
#define | GLFW_KEY_F2 291 |
#define | GLFW_KEY_F3 292 |
#define | GLFW_KEY_F4 293 |
#define | GLFW_KEY_F5 294 |
#define | GLFW_KEY_F6 295 |
#define | GLFW_KEY_F7 296 |
#define | GLFW_KEY_F8 297 |
#define | GLFW_KEY_F9 298 |
#define | GLFW_KEY_F10 299 |
#define | GLFW_KEY_F11 300 |
#define | GLFW_KEY_F12 301 |
#define | GLFW_KEY_F13 302 |
#define | GLFW_KEY_F14 303 |
#define | GLFW_KEY_F15 304 |
#define | GLFW_KEY_F16 305 |
#define | GLFW_KEY_F17 306 |
#define | GLFW_KEY_F18 307 |
#define | GLFW_KEY_F19 308 |
#define | GLFW_KEY_F20 309 |
#define | GLFW_KEY_F21 310 |
#define | GLFW_KEY_F22 311 |
#define | GLFW_KEY_F23 312 |
#define | GLFW_KEY_F24 313 |
#define | GLFW_KEY_F25 314 |
#define | GLFW_KEY_KP_0 320 |
#define | GLFW_KEY_KP_1 321 |
#define | GLFW_KEY_KP_2 322 |
#define | GLFW_KEY_KP_3 323 |
#define | GLFW_KEY_KP_4 324 |
#define | GLFW_KEY_KP_5 325 |
#define | GLFW_KEY_KP_6 326 |
#define | GLFW_KEY_KP_7 327 |
#define | GLFW_KEY_KP_8 328 |
#define | GLFW_KEY_KP_9 329 |
#define | GLFW_KEY_KP_DECIMAL 330 |
#define | GLFW_KEY_KP_DIVIDE 331 |
#define | GLFW_KEY_KP_MULTIPLY 332 |
#define | GLFW_KEY_KP_SUBTRACT 333 |
#define | GLFW_KEY_KP_ADD 334 |
#define | GLFW_KEY_KP_ENTER 335 |
#define | GLFW_KEY_KP_EQUAL 336 |
#define | GLFW_KEY_LEFT_SHIFT 340 |
#define | GLFW_KEY_LEFT_CONTROL 341 |
#define | GLFW_KEY_LEFT_ALT 342 |
#define | GLFW_KEY_LEFT_SUPER 343 |
#define | GLFW_KEY_RIGHT_SHIFT 344 |
#define | GLFW_KEY_RIGHT_CONTROL 345 |
#define | GLFW_KEY_RIGHT_ALT 346 |
#define | GLFW_KEY_RIGHT_SUPER 347 |
#define | GLFW_KEY_MENU 348 |
#define | GLFW_KEY_LAST GLFW_KEY_MENU |
#define GLFW_KEY_UNKNOWN -1 | +
#define GLFW_KEY_SPACE 32 | +
#define GLFW_KEY_APOSTROPHE 39 /* ' */ | +
#define GLFW_KEY_COMMA 44 /* , */ | +
#define GLFW_KEY_MINUS 45 /* - */ | +
#define GLFW_KEY_PERIOD 46 /* . */ | +
#define GLFW_KEY_SLASH 47 /* / */ | +
#define GLFW_KEY_0 48 | +
#define GLFW_KEY_1 49 | +
#define GLFW_KEY_2 50 | +
#define GLFW_KEY_3 51 | +
#define GLFW_KEY_4 52 | +
#define GLFW_KEY_5 53 | +
#define GLFW_KEY_6 54 | +
#define GLFW_KEY_7 55 | +
#define GLFW_KEY_8 56 | +
#define GLFW_KEY_9 57 | +
#define GLFW_KEY_SEMICOLON 59 /* ; */ | +
#define GLFW_KEY_EQUAL 61 /* = */ | +
#define GLFW_KEY_A 65 | +
#define GLFW_KEY_B 66 | +
#define GLFW_KEY_C 67 | +
#define GLFW_KEY_D 68 | +
#define GLFW_KEY_E 69 | +
#define GLFW_KEY_F 70 | +
#define GLFW_KEY_G 71 | +
#define GLFW_KEY_H 72 | +
#define GLFW_KEY_I 73 | +
#define GLFW_KEY_J 74 | +
#define GLFW_KEY_K 75 | +
#define GLFW_KEY_L 76 | +
#define GLFW_KEY_M 77 | +
#define GLFW_KEY_N 78 | +
#define GLFW_KEY_O 79 | +
#define GLFW_KEY_P 80 | +
#define GLFW_KEY_Q 81 | +
#define GLFW_KEY_R 82 | +
#define GLFW_KEY_S 83 | +
#define GLFW_KEY_T 84 | +
#define GLFW_KEY_U 85 | +
#define GLFW_KEY_V 86 | +
#define GLFW_KEY_W 87 | +
#define GLFW_KEY_X 88 | +
#define GLFW_KEY_Y 89 | +
#define GLFW_KEY_Z 90 | +
#define GLFW_KEY_LEFT_BRACKET 91 /* [ */ | +
#define GLFW_KEY_BACKSLASH 92 /* \ */ | +
#define GLFW_KEY_RIGHT_BRACKET 93 /* ] */ | +
#define GLFW_KEY_GRAVE_ACCENT 96 /* ` */ | +
#define GLFW_KEY_WORLD_1 161 /* non-US #1 */ | +
#define GLFW_KEY_WORLD_2 162 /* non-US #2 */ | +
#define GLFW_KEY_ESCAPE 256 | +
#define GLFW_KEY_ENTER 257 | +
#define GLFW_KEY_TAB 258 | +
#define GLFW_KEY_BACKSPACE 259 | +
#define GLFW_KEY_INSERT 260 | +
#define GLFW_KEY_DELETE 261 | +
#define GLFW_KEY_RIGHT 262 | +
#define GLFW_KEY_LEFT 263 | +
#define GLFW_KEY_DOWN 264 | +
#define GLFW_KEY_UP 265 | +
#define GLFW_KEY_PAGE_UP 266 | +
#define GLFW_KEY_PAGE_DOWN 267 | +
#define GLFW_KEY_HOME 268 | +
#define GLFW_KEY_END 269 | +
#define GLFW_KEY_CAPS_LOCK 280 | +
#define GLFW_KEY_SCROLL_LOCK 281 | +
#define GLFW_KEY_NUM_LOCK 282 | +
#define GLFW_KEY_PRINT_SCREEN 283 | +
#define GLFW_KEY_PAUSE 284 | +
#define GLFW_KEY_F1 290 | +
#define GLFW_KEY_F2 291 | +
#define GLFW_KEY_F3 292 | +
#define GLFW_KEY_F4 293 | +
#define GLFW_KEY_F5 294 | +
#define GLFW_KEY_F6 295 | +
#define GLFW_KEY_F7 296 | +
#define GLFW_KEY_F8 297 | +
#define GLFW_KEY_F9 298 | +
#define GLFW_KEY_F10 299 | +
#define GLFW_KEY_F11 300 | +
#define GLFW_KEY_F12 301 | +
#define GLFW_KEY_F13 302 | +
#define GLFW_KEY_F14 303 | +
#define GLFW_KEY_F15 304 | +
#define GLFW_KEY_F16 305 | +
#define GLFW_KEY_F17 306 | +
#define GLFW_KEY_F18 307 | +
#define GLFW_KEY_F19 308 | +
#define GLFW_KEY_F20 309 | +
#define GLFW_KEY_F21 310 | +
#define GLFW_KEY_F22 311 | +
#define GLFW_KEY_F23 312 | +
#define GLFW_KEY_F24 313 | +
#define GLFW_KEY_F25 314 | +
#define GLFW_KEY_KP_0 320 | +
#define GLFW_KEY_KP_1 321 | +
#define GLFW_KEY_KP_2 322 | +
#define GLFW_KEY_KP_3 323 | +
#define GLFW_KEY_KP_4 324 | +
#define GLFW_KEY_KP_5 325 | +
#define GLFW_KEY_KP_6 326 | +
#define GLFW_KEY_KP_7 327 | +
#define GLFW_KEY_KP_8 328 | +
#define GLFW_KEY_KP_9 329 | +
#define GLFW_KEY_KP_DECIMAL 330 | +
#define GLFW_KEY_KP_DIVIDE 331 | +
#define GLFW_KEY_KP_MULTIPLY 332 | +
#define GLFW_KEY_KP_SUBTRACT 333 | +
#define GLFW_KEY_KP_ADD 334 | +
#define GLFW_KEY_KP_ENTER 335 | +
#define GLFW_KEY_KP_EQUAL 336 | +
#define GLFW_KEY_LEFT_SHIFT 340 | +
#define GLFW_KEY_LEFT_CONTROL 341 | +
#define GLFW_KEY_LEFT_ALT 342 | +
#define GLFW_KEY_LEFT_SUPER 343 | +
#define GLFW_KEY_RIGHT_SHIFT 344 | +
#define GLFW_KEY_RIGHT_CONTROL 345 | +
#define GLFW_KEY_RIGHT_ALT 346 | +
#define GLFW_KEY_RIGHT_SUPER 347 | +
#define GLFW_KEY_MENU 348 | +
#define GLFW_KEY_LAST GLFW_KEY_MENU | +
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__mods.html b/deps/glfw-3.3.8/docs/html/group__mods.html new file mode 100644 index 0000000..94fc54d --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__mods.html @@ -0,0 +1,191 @@ + + + + + + + +See key input for how these are used.
++Macros | |
#define | GLFW_MOD_SHIFT 0x0001 |
If this bit is set one or more Shift keys were held down. More... | |
#define | GLFW_MOD_CONTROL 0x0002 |
If this bit is set one or more Control keys were held down. More... | |
#define | GLFW_MOD_ALT 0x0004 |
If this bit is set one or more Alt keys were held down. More... | |
#define | GLFW_MOD_SUPER 0x0008 |
If this bit is set one or more Super keys were held down. More... | |
#define | GLFW_MOD_CAPS_LOCK 0x0010 |
If this bit is set the Caps Lock key is enabled. More... | |
#define | GLFW_MOD_NUM_LOCK 0x0020 |
If this bit is set the Num Lock key is enabled. More... | |
#define GLFW_MOD_SHIFT 0x0001 | +
If this bit is set one or more Shift keys were held down.
+ +#define GLFW_MOD_CONTROL 0x0002 | +
If this bit is set one or more Control keys were held down.
+ +#define GLFW_MOD_ALT 0x0004 | +
If this bit is set one or more Alt keys were held down.
+ +#define GLFW_MOD_SUPER 0x0008 | +
If this bit is set one or more Super keys were held down.
+ +#define GLFW_MOD_CAPS_LOCK 0x0010 | +
If this bit is set the Caps Lock key is enabled and the GLFW_LOCK_KEY_MODS input mode is set.
+ +#define GLFW_MOD_NUM_LOCK 0x0020 | +
If this bit is set the Num Lock key is enabled and the GLFW_LOCK_KEY_MODS input mode is set.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__monitor.html b/deps/glfw-3.3.8/docs/html/group__monitor.html new file mode 100644 index 0000000..4df6209 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__monitor.html @@ -0,0 +1,841 @@ + + + + + + + +This is the reference documentation for monitor related functions and types. For more task-oriented information, see the Monitor guide.
++Typedefs | |
typedef struct GLFWmonitor | GLFWmonitor |
Opaque monitor object. More... | |
typedef void(* | GLFWmonitorfun) (GLFWmonitor *monitor, int event) |
The function pointer type for monitor configuration callbacks. More... | |
typedef struct GLFWvidmode | GLFWvidmode |
Video mode type. More... | |
typedef struct GLFWgammaramp | GLFWgammaramp |
Gamma ramp. More... | |
+Functions | |
GLFWmonitor ** | glfwGetMonitors (int *count) |
Returns the currently connected monitors. More... | |
GLFWmonitor * | glfwGetPrimaryMonitor (void) |
Returns the primary monitor. More... | |
void | glfwGetMonitorPos (GLFWmonitor *monitor, int *xpos, int *ypos) |
Returns the position of the monitor's viewport on the virtual screen. More... | |
void | glfwGetMonitorWorkarea (GLFWmonitor *monitor, int *xpos, int *ypos, int *width, int *height) |
Retrieves the work area of the monitor. More... | |
void | glfwGetMonitorPhysicalSize (GLFWmonitor *monitor, int *widthMM, int *heightMM) |
Returns the physical size of the monitor. More... | |
void | glfwGetMonitorContentScale (GLFWmonitor *monitor, float *xscale, float *yscale) |
Retrieves the content scale for the specified monitor. More... | |
const char * | glfwGetMonitorName (GLFWmonitor *monitor) |
Returns the name of the specified monitor. More... | |
void | glfwSetMonitorUserPointer (GLFWmonitor *monitor, void *pointer) |
Sets the user pointer of the specified monitor. More... | |
void * | glfwGetMonitorUserPointer (GLFWmonitor *monitor) |
Returns the user pointer of the specified monitor. More... | |
GLFWmonitorfun | glfwSetMonitorCallback (GLFWmonitorfun callback) |
Sets the monitor configuration callback. More... | |
const GLFWvidmode * | glfwGetVideoModes (GLFWmonitor *monitor, int *count) |
Returns the available video modes for the specified monitor. More... | |
const GLFWvidmode * | glfwGetVideoMode (GLFWmonitor *monitor) |
Returns the current mode of the specified monitor. More... | |
void | glfwSetGamma (GLFWmonitor *monitor, float gamma) |
Generates a gamma ramp and sets it for the specified monitor. More... | |
const GLFWgammaramp * | glfwGetGammaRamp (GLFWmonitor *monitor) |
Returns the current gamma ramp for the specified monitor. More... | |
void | glfwSetGammaRamp (GLFWmonitor *monitor, const GLFWgammaramp *ramp) |
Sets the current gamma ramp for the specified monitor. More... | |
typedef struct GLFWmonitor GLFWmonitor | +
typedef void(* GLFWmonitorfun) (GLFWmonitor *monitor, int event) | +
This is the function pointer type for monitor configuration callbacks. A monitor callback function has the following signature:
[in] | monitor | The monitor that was connected or disconnected. |
[in] | event | One of GLFW_CONNECTED or GLFW_DISCONNECTED . Future releases may add more events. |
typedef struct GLFWvidmode GLFWvidmode | +
This describes a single video mode.
+typedef struct GLFWgammaramp GLFWgammaramp | +
This describes the gamma ramp for a monitor.
+GLFWmonitor ** glfwGetMonitors | +( | +int * | +count | ) | ++ |
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 NULL
.
[out] | count | Where to store the number of monitors in the returned array. This is set to zero if an error occurred. |
NULL
if no monitors were found or if an error occurred.GLFWmonitor * glfwGetPrimaryMonitor | +( | +void | +) | ++ |
This function returns the primary monitor. This is usually the monitor where elements like the task bar or global menu bar are located.
+NULL
if no monitors were found or if an error occurred.void glfwGetMonitorPos | +( | +GLFWmonitor * | +monitor, | +
+ | + | int * | +xpos, | +
+ | + | int * | +ypos | +
+ | ) | ++ |
This function returns the position, in screen coordinates, of the upper-left corner of the specified monitor.
+Any or all of the position arguments may be NULL
. If an error occurs, all non-NULL
position arguments will be set to zero.
[in] | monitor | The monitor to query. |
[out] | xpos | Where to store the monitor x-coordinate, or NULL . |
[out] | ypos | Where to store the monitor y-coordinate, or NULL . |
void glfwGetMonitorWorkarea | +( | +GLFWmonitor * | +monitor, | +
+ | + | int * | +xpos, | +
+ | + | int * | +ypos, | +
+ | + | int * | +width, | +
+ | + | int * | +height | +
+ | ) | ++ |
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.
+Any or all of the position and size arguments may be NULL
. If an error occurs, all non-NULL
position and size arguments will be set to zero.
[in] | monitor | The monitor to query. |
[out] | xpos | Where to store the monitor x-coordinate, or NULL . |
[out] | ypos | Where to store the monitor y-coordinate, or NULL . |
[out] | width | Where to store the monitor width, or NULL . |
[out] | height | Where to store the monitor height, or NULL . |
void glfwGetMonitorPhysicalSize | +( | +GLFWmonitor * | +monitor, | +
+ | + | int * | +widthMM, | +
+ | + | int * | +heightMM | +
+ | ) | ++ |
This function returns the size, in millimetres, of the display area of the specified monitor.
+Some systems do not provide accurate monitor size information, either because the monitor EDID data is incorrect or because the driver does not report it accurately.
+Any or all of the size arguments may be NULL
. If an error occurs, all non-NULL
size arguments will be set to zero.
[in] | monitor | The monitor to query. |
[out] | widthMM | Where to store the width, in millimetres, of the monitor's display area, or NULL . |
[out] | heightMM | Where to store the height, in millimetres, of the monitor's display area, or NULL . |
void glfwGetMonitorContentScale | +( | +GLFWmonitor * | +monitor, | +
+ | + | float * | +xscale, | +
+ | + | float * | +yscale | +
+ | ) | ++ |
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.
+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.
+[in] | monitor | The monitor to query. |
[out] | xscale | Where to store the x-axis content scale, or NULL . |
[out] | yscale | Where to store the y-axis content scale, or NULL . |
const char * glfwGetMonitorName | +( | +GLFWmonitor * | +monitor | ) | ++ |
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.
+[in] | monitor | The monitor to query. |
NULL
if an error occurred.void glfwSetMonitorUserPointer | +( | +GLFWmonitor * | +monitor, | +
+ | + | void * | +pointer | +
+ | ) | ++ |
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 NULL
.
This function may be called from the monitor callback, even for a monitor that is being disconnected.
+[in] | monitor | The monitor whose pointer to set. |
[in] | pointer | The new value. |
void * glfwGetMonitorUserPointer | +( | +GLFWmonitor * | +monitor | ) | ++ |
This function returns the current value of the user-defined pointer of the specified monitor. The initial value is NULL
.
This function may be called from the monitor callback, even for a monitor that is being disconnected.
+[in] | monitor | The monitor whose pointer to return. |
GLFWmonitorfun glfwSetMonitorCallback | +( | +GLFWmonitorfun | +callback | ) | ++ |
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.
+[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.const GLFWvidmode * glfwGetVideoModes | +( | +GLFWmonitor * | +monitor, | +
+ | + | int * | +count | +
+ | ) | ++ |
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.
+[in] | monitor | The monitor to query. |
[out] | count | Where to store the number of video modes in the returned array. This is set to zero if an error occurred. |
NULL
if an error occurred.const GLFWvidmode * glfwGetVideoMode | +( | +GLFWmonitor * | +monitor | ) | ++ |
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.
+[in] | monitor | The monitor to query. |
NULL
if an error occurred.glfwGetDesktopMode
. void glfwSetGamma | +( | +GLFWmonitor * | +monitor, | +
+ | + | float | +gamma | +
+ | ) | ++ |
This function generates an appropriately sized gamma ramp from the specified exponent and then calls glfwSetGammaRamp with it. The value must be a finite number greater than zero.
+The software controlled gamma ramp is applied in addition 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.
+For gamma correct rendering with OpenGL or OpenGL ES, see the GLFW_SRGB_CAPABLE hint.
+[in] | monitor | The monitor whose gamma ramp to set. |
[in] | gamma | The desired exponent. |
const GLFWgammaramp * glfwGetGammaRamp | +( | +GLFWmonitor * | +monitor | ) | ++ |
This function returns the current gamma ramp of the specified monitor.
+[in] | monitor | The monitor to query. |
NULL
if an error occurred.NULL
.void glfwSetGammaRamp | +( | +GLFWmonitor * | +monitor, | +
+ | + | const GLFWgammaramp * | +ramp | +
+ | ) | ++ |
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 glfwTerminate.
+The software controlled gamma ramp is applied in addition 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.
+For gamma correct rendering with OpenGL or OpenGL ES, see the GLFW_SRGB_CAPABLE hint.
+[in] | monitor | The monitor whose gamma ramp to set. |
[in] | ramp | The gamma ramp to use. |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__native.html b/deps/glfw-3.3.8/docs/html/group__native.html new file mode 100644 index 0000000..5adef3b --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__native.html @@ -0,0 +1,805 @@ + + + + + + + +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.
+Before the inclusion of glfw3native.h, you may define zero or more window system API macro and zero or more context creation API macros.
+The chosen backends must match those the library was compiled for. Failure to do this will cause a link-time error.
+The available window API macros are:
GLFW_EXPOSE_NATIVE_WIN32
GLFW_EXPOSE_NATIVE_COCOA
GLFW_EXPOSE_NATIVE_X11
GLFW_EXPOSE_NATIVE_WAYLAND
The available context API macros are:
GLFW_EXPOSE_NATIVE_WGL
GLFW_EXPOSE_NATIVE_NSGL
GLFW_EXPOSE_NATIVE_GLX
GLFW_EXPOSE_NATIVE_EGL
GLFW_EXPOSE_NATIVE_OSMESA
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.
+If you do not want the platform-specific headers to be included, define GLFW_NATIVE_INCLUDE_NONE
before including the glfw3native.h header.
+Functions | |
const char * | glfwGetWin32Adapter (GLFWmonitor *monitor) |
Returns the adapter device name of the specified monitor. More... | |
const char * | glfwGetWin32Monitor (GLFWmonitor *monitor) |
Returns the display device name of the specified monitor. More... | |
HWND | glfwGetWin32Window (GLFWwindow *window) |
Returns the HWND of the specified window. More... | |
HGLRC | glfwGetWGLContext (GLFWwindow *window) |
Returns the HGLRC of the specified window. More... | |
CGDirectDisplayID | glfwGetCocoaMonitor (GLFWmonitor *monitor) |
Returns the CGDirectDisplayID of the specified monitor. More... | |
id | glfwGetCocoaWindow (GLFWwindow *window) |
Returns the NSWindow of the specified window. More... | |
id | glfwGetNSGLContext (GLFWwindow *window) |
Returns the NSOpenGLContext of the specified window. More... | |
Display * | glfwGetX11Display (void) |
Returns the Display used by GLFW. More... | |
RRCrtc | glfwGetX11Adapter (GLFWmonitor *monitor) |
Returns the RRCrtc of the specified monitor. More... | |
RROutput | glfwGetX11Monitor (GLFWmonitor *monitor) |
Returns the RROutput of the specified monitor. More... | |
Window | glfwGetX11Window (GLFWwindow *window) |
Returns the Window of the specified window. More... | |
void | glfwSetX11SelectionString (const char *string) |
Sets the current primary selection to the specified string. More... | |
const char * | glfwGetX11SelectionString (void) |
Returns the contents of the current primary selection as a string. More... | |
GLXContext | glfwGetGLXContext (GLFWwindow *window) |
Returns the GLXContext of the specified window. More... | |
GLXWindow | glfwGetGLXWindow (GLFWwindow *window) |
Returns the GLXWindow of the specified window. More... | |
struct wl_display * | glfwGetWaylandDisplay (void) |
Returns the struct wl_display* used by GLFW. More... | |
struct wl_output * | glfwGetWaylandMonitor (GLFWmonitor *monitor) |
Returns the struct wl_output* of the specified monitor. More... | |
struct wl_surface * | glfwGetWaylandWindow (GLFWwindow *window) |
Returns the main struct wl_surface* of the specified window. More... | |
EGLDisplay | glfwGetEGLDisplay (void) |
Returns the EGLDisplay used by GLFW. More... | |
EGLContext | glfwGetEGLContext (GLFWwindow *window) |
Returns the EGLContext of the specified window. More... | |
EGLSurface | glfwGetEGLSurface (GLFWwindow *window) |
Returns the EGLSurface of the specified window. More... | |
int | glfwGetOSMesaColorBuffer (GLFWwindow *window, int *width, int *height, int *format, void **buffer) |
Retrieves the color buffer associated with the specified window. More... | |
int | glfwGetOSMesaDepthBuffer (GLFWwindow *window, int *width, int *height, int *bytesPerValue, void **buffer) |
Retrieves the depth buffer associated with the specified window. More... | |
OSMesaContext | glfwGetOSMesaContext (GLFWwindow *window) |
Returns the OSMesaContext of the specified window. More... | |
const char * glfwGetWin32Adapter | +( | +GLFWmonitor * | +monitor | ) | ++ |
\\.\DISPLAY1
) of the specified monitor, or NULL
if an error occurred.const char * glfwGetWin32Monitor | +( | +GLFWmonitor * | +monitor | ) | ++ |
\\.\DISPLAY1\Monitor0
) of the specified monitor, or NULL
if an error occurred.HWND glfwGetWin32Window | +( | +GLFWwindow * | +window | ) | ++ |
HWND
of the specified window, or NULL
if an error occurred.HDC
associated with the window can be queried with the GetDC function. HGLRC glfwGetWGLContext | +( | +GLFWwindow * | +window | ) | ++ |
HGLRC
of the specified window, or NULL
if an error occurred.HDC
associated with the window can be queried with the GetDC function. CGDirectDisplayID glfwGetCocoaMonitor | +( | +GLFWmonitor * | +monitor | ) | ++ |
CGDirectDisplayID
of the specified monitor, or kCGNullDirectDisplay
if an error occurred.id glfwGetCocoaWindow | +( | +GLFWwindow * | +window | ) | ++ |
NSWindow
of the specified window, or nil
if an error occurred.id glfwGetNSGLContext | +( | +GLFWwindow * | +window | ) | ++ |
NSOpenGLContext
of the specified window, or nil
if an error occurred.Display * glfwGetX11Display | +( | +void | +) | ++ |
Display
used by GLFW, or NULL
if an error occurred.RRCrtc glfwGetX11Adapter | +( | +GLFWmonitor * | +monitor | ) | ++ |
RRCrtc
of the specified monitor, or None
if an error occurred.RROutput glfwGetX11Monitor | +( | +GLFWmonitor * | +monitor | ) | ++ |
RROutput
of the specified monitor, or None
if an error occurred.Window glfwGetX11Window | +( | +GLFWwindow * | +window | ) | ++ |
Window
of the specified window, or None
if an error occurred.void glfwSetX11SelectionString | +( | +const char * | +string | ) | ++ |
[in] | string | A UTF-8 encoded string. |
const char * glfwGetX11SelectionString | +( | +void | +) | ++ |
If the selection is empty or if its contents cannot be converted, NULL
is returned and a GLFW_FORMAT_UNAVAILABLE error is generated.
NULL
if an error occurred.GLXContext glfwGetGLXContext | +( | +GLFWwindow * | +window | ) | ++ |
GLXContext
of the specified window, or NULL
if an error occurred.GLXWindow glfwGetGLXWindow | +( | +GLFWwindow * | +window | ) | ++ |
GLXWindow
of the specified window, or None
if an error occurred.struct wl_display * glfwGetWaylandDisplay | +( | +void | +) | ++ |
struct wl_display*
used by GLFW, or NULL
if an error occurred.struct wl_output * glfwGetWaylandMonitor | +( | +GLFWmonitor * | +monitor | ) | ++ |
struct wl_output*
of the specified monitor, or NULL
if an error occurred.struct wl_surface * glfwGetWaylandWindow | +( | +GLFWwindow * | +window | ) | ++ |
struct wl_surface*
of the specified window, or NULL
if an error occurred.EGLDisplay glfwGetEGLDisplay | +( | +void | +) | ++ |
EGLDisplay
used by GLFW, or EGL_NO_DISPLAY
if an error occurred.EGL_NO_DISPLAY
until the first context has been created via EGL.EGLContext glfwGetEGLContext | +( | +GLFWwindow * | +window | ) | ++ |
EGLContext
of the specified window, or EGL_NO_CONTEXT
if an error occurred.EGLSurface glfwGetEGLSurface | +( | +GLFWwindow * | +window | ) | ++ |
EGLSurface
of the specified window, or EGL_NO_SURFACE
if an error occurred.int glfwGetOSMesaColorBuffer | +( | +GLFWwindow * | +window, | +
+ | + | int * | +width, | +
+ | + | int * | +height, | +
+ | + | int * | +format, | +
+ | + | void ** | +buffer | +
+ | ) | ++ |
[in] | window | The window whose color buffer to retrieve. |
[out] | width | Where to store the width of the color buffer, or NULL . |
[out] | height | Where to store the height of the color buffer, or NULL . |
[out] | format | Where to store the OSMesa pixel format of the color buffer, or NULL . |
[out] | buffer | Where to store the address of the color buffer, or NULL . |
GLFW_TRUE
if successful, or GLFW_FALSE
if an error occurred.int glfwGetOSMesaDepthBuffer | +( | +GLFWwindow * | +window, | +
+ | + | int * | +width, | +
+ | + | int * | +height, | +
+ | + | int * | +bytesPerValue, | +
+ | + | void ** | +buffer | +
+ | ) | ++ |
[in] | window | The window whose depth buffer to retrieve. |
[out] | width | Where to store the width of the depth buffer, or NULL . |
[out] | height | Where to store the height of the depth buffer, or NULL . |
[out] | bytesPerValue | Where to store the number of bytes per depth buffer element, or NULL . |
[out] | buffer | Where to store the address of the depth buffer, or NULL . |
GLFW_TRUE
if successful, or GLFW_FALSE
if an error occurred.OSMesaContext glfwGetOSMesaContext | +( | +GLFWwindow * | +window | ) | ++ |
OSMesaContext
of the specified window, or NULL
if an error occurred.+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__shapes.html b/deps/glfw-3.3.8/docs/html/group__shapes.html new file mode 100644 index 0000000..f5c1c20 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__shapes.html @@ -0,0 +1,191 @@ + + + + + + + +See standard cursor creation for how these are used.
++Macros | |
#define | GLFW_ARROW_CURSOR 0x00036001 |
The regular arrow cursor shape. More... | |
#define | GLFW_IBEAM_CURSOR 0x00036002 |
The text input I-beam cursor shape. More... | |
#define | GLFW_CROSSHAIR_CURSOR 0x00036003 |
The crosshair shape. More... | |
#define | GLFW_HAND_CURSOR 0x00036004 |
The hand shape. More... | |
#define | GLFW_HRESIZE_CURSOR 0x00036005 |
The horizontal resize arrow shape. More... | |
#define | GLFW_VRESIZE_CURSOR 0x00036006 |
The vertical resize arrow shape. More... | |
#define GLFW_ARROW_CURSOR 0x00036001 | +
The regular arrow cursor.
+ +#define GLFW_IBEAM_CURSOR 0x00036002 | +
The text input I-beam cursor shape.
+ +#define GLFW_CROSSHAIR_CURSOR 0x00036003 | +
The crosshair shape.
+ +#define GLFW_HAND_CURSOR 0x00036004 | +
The hand shape.
+ +#define GLFW_HRESIZE_CURSOR 0x00036005 | +
The horizontal resize arrow shape.
+ +#define GLFW_VRESIZE_CURSOR 0x00036006 | +
The vertical resize arrow shape.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__vulkan.html b/deps/glfw-3.3.8/docs/html/group__vulkan.html new file mode 100644 index 0000000..f80f4a9 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__vulkan.html @@ -0,0 +1,352 @@ + + + + + + + +This is the reference documentation for Vulkan related functions and types. For more task-oriented information, see the Vulkan guide.
++Typedefs | |
typedef void(* | GLFWvkproc) (void) |
Vulkan API function pointer type. More... | |
+Functions | |
int | glfwVulkanSupported (void) |
Returns whether the Vulkan loader and an ICD have been found. More... | |
const char ** | glfwGetRequiredInstanceExtensions (uint32_t *count) |
Returns the Vulkan instance extensions required by GLFW. More... | |
GLFWvkproc | glfwGetInstanceProcAddress (VkInstance instance, const char *procname) |
Returns the address of the specified Vulkan instance function. More... | |
int | glfwGetPhysicalDevicePresentationSupport (VkInstance instance, VkPhysicalDevice device, uint32_t queuefamily) |
Returns whether the specified queue family can present images. More... | |
VkResult | glfwCreateWindowSurface (VkInstance instance, GLFWwindow *window, const VkAllocationCallbacks *allocator, VkSurfaceKHR *surface) |
Creates a Vulkan surface for the specified window. More... | |
typedef void(* GLFWvkproc) (void) | +
Generic function pointer used for returning Vulkan API function pointers without forcing a cast from a regular pointer.
+ +int glfwVulkanSupported | +( | +void | +) | ++ |
This function returns whether the Vulkan loader and any minimally functional ICD have been found.
+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 glfwGetRequiredInstanceExtensions to check whether the extensions necessary for Vulkan surface creation are available and glfwGetPhysicalDevicePresentationSupport to check whether a queue family of a physical device supports image presentation.
+GLFW_TRUE
if Vulkan is minimally available, or GLFW_FALSE
otherwise.const char ** glfwGetRequiredInstanceExtensions | +( | +uint32_t * | +count | ) | ++ |
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 VK_KHR_surface
, so if you don't require any additional extensions you can pass this list directly to the VkInstanceCreateInfo
struct.
If Vulkan is not available on the machine, this function returns NULL
and generates a GLFW_API_UNAVAILABLE error. Call glfwVulkanSupported to check whether Vulkan is at least minimally available.
If Vulkan is available but no set of extensions allowing window surface creation was found, this function returns NULL
. You may still use Vulkan for off-screen rendering and compute work.
[out] | count | Where to store the number of extensions in the returned array. This is set to zero if an error occurred. |
NULL
if an error occurred.VkInstanceCreateInfo
struct.GLFWvkproc glfwGetInstanceProcAddress | +( | +VkInstance | +instance, | +
+ | + | const char * | +procname | +
+ | ) | ++ |
This function returns the address of the specified Vulkan core or extension function for the specified instance. If instance is set to NULL
it can return any function exported from the Vulkan loader, including at least the following functions:
vkEnumerateInstanceExtensionProperties
vkEnumerateInstanceLayerProperties
vkCreateInstance
vkGetInstanceProcAddr
If Vulkan is not available on the machine, this function returns NULL
and generates a GLFW_API_UNAVAILABLE error. Call glfwVulkanSupported to check whether Vulkan is at least minimally available.
This function is equivalent to calling vkGetInstanceProcAddr
with a platform-specific query of the Vulkan loader as a fallback.
[in] | instance | The Vulkan instance to query, or NULL to retrieve functions related to instance creation. |
[in] | procname | The ASCII encoded name of the function. |
NULL
if an error occurred.int glfwGetPhysicalDevicePresentationSupport | +( | +VkInstance | +instance, | +
+ | + | VkPhysicalDevice | +device, | +
+ | + | uint32_t | +queuefamily | +
+ | ) | ++ |
This function returns whether the specified queue family of the specified physical device supports presentation to the platform GLFW was built for.
+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 GLFW_FALSE
and generates a GLFW_API_UNAVAILABLE error. Call glfwVulkanSupported to check whether Vulkan is at least minimally available and glfwGetRequiredInstanceExtensions to check what instance extensions are required.
[in] | instance | The instance that the physical device belongs to. |
[in] | device | The physical device that the queue family belongs to. |
[in] | queuefamily | The index of the queue family to query. |
GLFW_TRUE
if the queue family supports presentation, or GLFW_FALSE
otherwise.GLFW_TRUE
, as the VK_MVK_macos_surface
and VK_EXT_metal_surface
extensions do not provide a vkGetPhysicalDevice*PresentationSupport
type function.VkResult glfwCreateWindowSurface | +( | +VkInstance | +instance, | +
+ | + | GLFWwindow * | +window, | +
+ | + | const VkAllocationCallbacks * | +allocator, | +
+ | + | VkSurfaceKHR * | +surface | +
+ | ) | ++ |
This function creates a Vulkan surface for the specified window.
+If the Vulkan loader or at least one minimally functional ICD were not found, this function returns VK_ERROR_INITIALIZATION_FAILED
and generates a GLFW_API_UNAVAILABLE error. Call glfwVulkanSupported to check whether Vulkan is at least minimally available.
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 VK_ERROR_EXTENSION_NOT_PRESENT
and generates a GLFW_API_UNAVAILABLE error. Call glfwGetRequiredInstanceExtensions to check what instance extensions are required.
The window surface cannot be shared with another API so the window must have been created with the client api hint set to GLFW_NO_API
otherwise it generates a GLFW_INVALID_VALUE error and returns VK_ERROR_NATIVE_WINDOW_IN_USE_KHR
.
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 vkDestroySurfaceKHR
to destroy the surface.
[in] | instance | The Vulkan instance to create the surface in. |
[in] | window | The window to create the surface for. |
[in] | allocator | The allocator to use, or NULL to use the default allocator. |
[out] | surface | Where to store the handle of the surface. This is set to VK_NULL_HANDLE if an error occurred. |
VK_SUCCESS
if successful, or a Vulkan error code if an error occurred.VK_EXT_metal_surface
extension, with the VK_MVK_macos_surface
extension as a fallback. The name of the selected extension, if any, is included in the array returned by glfwGetRequiredInstanceExtensions.CAMetalLayer
instance for the window content view, which is required for MoltenVK to function.+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/group__window.html b/deps/glfw-3.3.8/docs/html/group__window.html new file mode 100644 index 0000000..0a44b40 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/group__window.html @@ -0,0 +1,3427 @@ + + + + + + + +This is the reference documentation for window related functions and types, including creation, deletion and event polling. For more task-oriented information, see the Window guide.
++Macros | |
#define | GLFW_FOCUSED 0x00020001 |
Input focus window hint and attribute. More... | |
#define | GLFW_ICONIFIED 0x00020002 |
Window iconification window attribute. More... | |
#define | GLFW_RESIZABLE 0x00020003 |
Window resize-ability window hint and attribute. More... | |
#define | GLFW_VISIBLE 0x00020004 |
Window visibility window hint and attribute. More... | |
#define | GLFW_DECORATED 0x00020005 |
Window decoration window hint and attribute. More... | |
#define | GLFW_AUTO_ICONIFY 0x00020006 |
Window auto-iconification window hint and attribute. More... | |
#define | GLFW_FLOATING 0x00020007 |
Window decoration window hint and attribute. More... | |
#define | GLFW_MAXIMIZED 0x00020008 |
Window maximization window hint and attribute. More... | |
#define | GLFW_CENTER_CURSOR 0x00020009 |
Cursor centering window hint. More... | |
#define | GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A |
Window framebuffer transparency hint and attribute. More... | |
#define | GLFW_HOVERED 0x0002000B |
Mouse cursor hover window attribute. More... | |
#define | GLFW_FOCUS_ON_SHOW 0x0002000C |
Input focus on calling show window hint and attribute. More... | |
#define | GLFW_RED_BITS 0x00021001 |
Framebuffer bit depth hint. More... | |
#define | GLFW_GREEN_BITS 0x00021002 |
Framebuffer bit depth hint. More... | |
#define | GLFW_BLUE_BITS 0x00021003 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ALPHA_BITS 0x00021004 |
Framebuffer bit depth hint. More... | |
#define | GLFW_DEPTH_BITS 0x00021005 |
Framebuffer bit depth hint. More... | |
#define | GLFW_STENCIL_BITS 0x00021006 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_RED_BITS 0x00021007 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_GREEN_BITS 0x00021008 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_BLUE_BITS 0x00021009 |
Framebuffer bit depth hint. More... | |
#define | GLFW_ACCUM_ALPHA_BITS 0x0002100A |
Framebuffer bit depth hint. More... | |
#define | GLFW_AUX_BUFFERS 0x0002100B |
Framebuffer auxiliary buffer hint. More... | |
#define | GLFW_STEREO 0x0002100C |
OpenGL stereoscopic rendering hint. More... | |
#define | GLFW_SAMPLES 0x0002100D |
Framebuffer MSAA samples hint. More... | |
#define | GLFW_SRGB_CAPABLE 0x0002100E |
Framebuffer sRGB hint. More... | |
#define | GLFW_REFRESH_RATE 0x0002100F |
Monitor refresh rate hint. More... | |
#define | GLFW_DOUBLEBUFFER 0x00021010 |
Framebuffer double buffering hint. More... | |
#define | GLFW_CLIENT_API 0x00022001 |
Context client API hint and attribute. More... | |
#define | GLFW_CONTEXT_VERSION_MAJOR 0x00022002 |
Context client API major version hint and attribute. More... | |
#define | GLFW_CONTEXT_VERSION_MINOR 0x00022003 |
Context client API minor version hint and attribute. More... | |
#define | GLFW_CONTEXT_REVISION 0x00022004 |
Context client API revision number attribute. More... | |
#define | GLFW_CONTEXT_ROBUSTNESS 0x00022005 |
Context robustness hint and attribute. More... | |
#define | GLFW_OPENGL_FORWARD_COMPAT 0x00022006 |
OpenGL forward-compatibility hint and attribute. More... | |
#define | GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 |
Debug mode context hint and attribute. More... | |
#define | GLFW_OPENGL_PROFILE 0x00022008 |
OpenGL profile hint and attribute. More... | |
#define | GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 |
Context flush-on-release hint and attribute. More... | |
#define | GLFW_CONTEXT_NO_ERROR 0x0002200A |
Context error suppression hint and attribute. More... | |
#define | GLFW_CONTEXT_CREATION_API 0x0002200B |
Context creation API hint and attribute. More... | |
#define | GLFW_SCALE_TO_MONITOR 0x0002200C |
Window content area scaling window window hint. More... | |
#define | GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001 |
macOS specific window hint. More... | |
#define | GLFW_COCOA_FRAME_NAME 0x00023002 |
macOS specific window hint. More... | |
#define | GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003 |
macOS specific window hint. More... | |
#define | GLFW_X11_CLASS_NAME 0x00024001 |
X11 specific window hint. More... | |
#define | GLFW_X11_INSTANCE_NAME 0x00024002 |
X11 specific window hint. More... | |
+Typedefs | |
typedef struct GLFWwindow | GLFWwindow |
Opaque window object. More... | |
typedef void(* | GLFWwindowposfun) (GLFWwindow *window, int xpos, int ypos) |
The function pointer type for window position callbacks. More... | |
typedef void(* | GLFWwindowsizefun) (GLFWwindow *window, int width, int height) |
The function pointer type for window size callbacks. More... | |
typedef void(* | GLFWwindowclosefun) (GLFWwindow *window) |
The function pointer type for window close callbacks. More... | |
typedef void(* | GLFWwindowrefreshfun) (GLFWwindow *window) |
The function pointer type for window content refresh callbacks. More... | |
typedef void(* | GLFWwindowfocusfun) (GLFWwindow *window, int focused) |
The function pointer type for window focus callbacks. More... | |
typedef void(* | GLFWwindowiconifyfun) (GLFWwindow *window, int iconified) |
The function pointer type for window iconify callbacks. More... | |
typedef void(* | GLFWwindowmaximizefun) (GLFWwindow *window, int maximized) |
The function pointer type for window maximize callbacks. More... | |
typedef void(* | GLFWframebuffersizefun) (GLFWwindow *window, int width, int height) |
The function pointer type for framebuffer size callbacks. More... | |
typedef void(* | GLFWwindowcontentscalefun) (GLFWwindow *window, float xscale, float yscale) |
The function pointer type for window content scale callbacks. More... | |
typedef struct GLFWimage | GLFWimage |
Image data. More... | |
+Functions | |
void | glfwDefaultWindowHints (void) |
Resets all window hints to their default values. More... | |
void | glfwWindowHint (int hint, int value) |
Sets the specified window hint to the desired value. More... | |
void | glfwWindowHintString (int hint, const char *value) |
Sets the specified window hint to the desired value. More... | |
GLFWwindow * | glfwCreateWindow (int width, int height, const char *title, GLFWmonitor *monitor, GLFWwindow *share) |
Creates a window and its associated context. More... | |
void | glfwDestroyWindow (GLFWwindow *window) |
Destroys the specified window and its context. More... | |
int | glfwWindowShouldClose (GLFWwindow *window) |
Checks the close flag of the specified window. More... | |
void | glfwSetWindowShouldClose (GLFWwindow *window, int value) |
Sets the close flag of the specified window. More... | |
void | glfwSetWindowTitle (GLFWwindow *window, const char *title) |
Sets the title of the specified window. More... | |
void | glfwSetWindowIcon (GLFWwindow *window, int count, const GLFWimage *images) |
Sets the icon for the specified window. More... | |
void | glfwGetWindowPos (GLFWwindow *window, int *xpos, int *ypos) |
Retrieves the position of the content area of the specified window. More... | |
void | glfwSetWindowPos (GLFWwindow *window, int xpos, int ypos) |
Sets the position of the content area of the specified window. More... | |
void | glfwGetWindowSize (GLFWwindow *window, int *width, int *height) |
Retrieves the size of the content area of the specified window. More... | |
void | glfwSetWindowSizeLimits (GLFWwindow *window, int minwidth, int minheight, int maxwidth, int maxheight) |
Sets the size limits of the specified window. More... | |
void | glfwSetWindowAspectRatio (GLFWwindow *window, int numer, int denom) |
Sets the aspect ratio of the specified window. More... | |
void | glfwSetWindowSize (GLFWwindow *window, int width, int height) |
Sets the size of the content area of the specified window. More... | |
void | glfwGetFramebufferSize (GLFWwindow *window, int *width, int *height) |
Retrieves the size of the framebuffer of the specified window. More... | |
void | glfwGetWindowFrameSize (GLFWwindow *window, int *left, int *top, int *right, int *bottom) |
Retrieves the size of the frame of the window. More... | |
void | glfwGetWindowContentScale (GLFWwindow *window, float *xscale, float *yscale) |
Retrieves the content scale for the specified window. More... | |
float | glfwGetWindowOpacity (GLFWwindow *window) |
Returns the opacity of the whole window. More... | |
void | glfwSetWindowOpacity (GLFWwindow *window, float opacity) |
Sets the opacity of the whole window. More... | |
void | glfwIconifyWindow (GLFWwindow *window) |
Iconifies the specified window. More... | |
void | glfwRestoreWindow (GLFWwindow *window) |
Restores the specified window. More... | |
void | glfwMaximizeWindow (GLFWwindow *window) |
Maximizes the specified window. More... | |
void | glfwShowWindow (GLFWwindow *window) |
Makes the specified window visible. More... | |
void | glfwHideWindow (GLFWwindow *window) |
Hides the specified window. More... | |
void | glfwFocusWindow (GLFWwindow *window) |
Brings the specified window to front and sets input focus. More... | |
void | glfwRequestWindowAttention (GLFWwindow *window) |
Requests user attention to the specified window. More... | |
GLFWmonitor * | glfwGetWindowMonitor (GLFWwindow *window) |
Returns the monitor that the window uses for full screen mode. More... | |
void | glfwSetWindowMonitor (GLFWwindow *window, GLFWmonitor *monitor, int xpos, int ypos, int width, int height, int refreshRate) |
Sets the mode, monitor, video mode and placement of a window. More... | |
int | glfwGetWindowAttrib (GLFWwindow *window, int attrib) |
Returns an attribute of the specified window. More... | |
void | glfwSetWindowAttrib (GLFWwindow *window, int attrib, int value) |
Sets an attribute of the specified window. More... | |
void | glfwSetWindowUserPointer (GLFWwindow *window, void *pointer) |
Sets the user pointer of the specified window. More... | |
void * | glfwGetWindowUserPointer (GLFWwindow *window) |
Returns the user pointer of the specified window. More... | |
GLFWwindowposfun | glfwSetWindowPosCallback (GLFWwindow *window, GLFWwindowposfun callback) |
Sets the position callback for the specified window. More... | |
GLFWwindowsizefun | glfwSetWindowSizeCallback (GLFWwindow *window, GLFWwindowsizefun callback) |
Sets the size callback for the specified window. More... | |
GLFWwindowclosefun | glfwSetWindowCloseCallback (GLFWwindow *window, GLFWwindowclosefun callback) |
Sets the close callback for the specified window. More... | |
GLFWwindowrefreshfun | glfwSetWindowRefreshCallback (GLFWwindow *window, GLFWwindowrefreshfun callback) |
Sets the refresh callback for the specified window. More... | |
GLFWwindowfocusfun | glfwSetWindowFocusCallback (GLFWwindow *window, GLFWwindowfocusfun callback) |
Sets the focus callback for the specified window. More... | |
GLFWwindowiconifyfun | glfwSetWindowIconifyCallback (GLFWwindow *window, GLFWwindowiconifyfun callback) |
Sets the iconify callback for the specified window. More... | |
GLFWwindowmaximizefun | glfwSetWindowMaximizeCallback (GLFWwindow *window, GLFWwindowmaximizefun callback) |
Sets the maximize callback for the specified window. More... | |
GLFWframebuffersizefun | glfwSetFramebufferSizeCallback (GLFWwindow *window, GLFWframebuffersizefun callback) |
Sets the framebuffer resize callback for the specified window. More... | |
GLFWwindowcontentscalefun | glfwSetWindowContentScaleCallback (GLFWwindow *window, GLFWwindowcontentscalefun callback) |
Sets the window content scale callback for the specified window. More... | |
void | glfwPollEvents (void) |
Processes all pending events. More... | |
void | glfwWaitEvents (void) |
Waits until events are queued and processes them. More... | |
void | glfwWaitEventsTimeout (double timeout) |
Waits with timeout until events are queued and processes them. More... | |
void | glfwPostEmptyEvent (void) |
Posts an empty event to the event queue. More... | |
void | glfwSwapBuffers (GLFWwindow *window) |
Swaps the front and back buffers of the specified window. More... | |
#define GLFW_FOCUSED 0x00020001 | +
Input focus window hint or window attribute.
+ +#define GLFW_ICONIFIED 0x00020002 | +
Window iconification window attribute.
+ +#define GLFW_RESIZABLE 0x00020003 | +
Window resize-ability window hint and window attribute.
+ +#define GLFW_VISIBLE 0x00020004 | +
Window visibility window hint and window attribute.
+ +#define GLFW_DECORATED 0x00020005 | +
Window decoration window hint and window attribute.
+ +#define GLFW_AUTO_ICONIFY 0x00020006 | +
Window auto-iconification window hint and window attribute.
+ +#define GLFW_FLOATING 0x00020007 | +
Window decoration window hint and window attribute.
+ +#define GLFW_MAXIMIZED 0x00020008 | +
Window maximization window hint and window attribute.
+ +#define GLFW_CENTER_CURSOR 0x00020009 | +
Cursor centering window hint.
+ +#define GLFW_TRANSPARENT_FRAMEBUFFER 0x0002000A | +
Window framebuffer transparency window hint and window attribute.
+ +#define GLFW_HOVERED 0x0002000B | +
Mouse cursor hover window attribute.
+ +#define GLFW_FOCUS_ON_SHOW 0x0002000C | +
Input focus window hint or window attribute.
+ +#define GLFW_RED_BITS 0x00021001 | +
Framebuffer bit depth hint.
+ +#define GLFW_GREEN_BITS 0x00021002 | +
Framebuffer bit depth hint.
+ +#define GLFW_BLUE_BITS 0x00021003 | +
Framebuffer bit depth hint.
+ +#define GLFW_ALPHA_BITS 0x00021004 | +
Framebuffer bit depth hint.
+ +#define GLFW_DEPTH_BITS 0x00021005 | +
Framebuffer bit depth hint.
+ +#define GLFW_STENCIL_BITS 0x00021006 | +
Framebuffer bit depth hint.
+ +#define GLFW_ACCUM_RED_BITS 0x00021007 | +
Framebuffer bit depth hint.
+ +#define GLFW_ACCUM_GREEN_BITS 0x00021008 | +
Framebuffer bit depth hint.
+ +#define GLFW_ACCUM_BLUE_BITS 0x00021009 | +
Framebuffer bit depth hint.
+ +#define GLFW_ACCUM_ALPHA_BITS 0x0002100A | +
Framebuffer bit depth hint.
+ +#define GLFW_AUX_BUFFERS 0x0002100B | +
Framebuffer auxiliary buffer hint.
+ +#define GLFW_STEREO 0x0002100C | +
OpenGL stereoscopic rendering hint.
+ +#define GLFW_SAMPLES 0x0002100D | +
Framebuffer MSAA samples hint.
+ +#define GLFW_SRGB_CAPABLE 0x0002100E | +
Framebuffer sRGB hint.
+ +#define GLFW_REFRESH_RATE 0x0002100F | +
Monitor refresh rate hint.
+ +#define GLFW_DOUBLEBUFFER 0x00021010 | +
Framebuffer double buffering hint.
+ +#define GLFW_CONTEXT_VERSION_MAJOR 0x00022002 | +
#define GLFW_CONTEXT_VERSION_MINOR 0x00022003 | +
#define GLFW_CONTEXT_REVISION 0x00022004 | +
Context client API revision number attribute.
+ +#define GLFW_CONTEXT_ROBUSTNESS 0x00022005 | +
#define GLFW_OPENGL_FORWARD_COMPAT 0x00022006 | +
#define GLFW_OPENGL_DEBUG_CONTEXT 0x00022007 | +
#define GLFW_CONTEXT_RELEASE_BEHAVIOR 0x00022009 | +
#define GLFW_CONTEXT_NO_ERROR 0x0002200A | +
#define GLFW_CONTEXT_CREATION_API 0x0002200B | +
#define GLFW_SCALE_TO_MONITOR 0x0002200C | +
#define GLFW_COCOA_RETINA_FRAMEBUFFER 0x00023001 | +
#define GLFW_COCOA_FRAME_NAME 0x00023002 | +
#define GLFW_COCOA_GRAPHICS_SWITCHING 0x00023003 | +
#define GLFW_X11_CLASS_NAME 0x00024001 | +
#define GLFW_X11_INSTANCE_NAME 0x00024002 | +
typedef struct GLFWwindow GLFWwindow | +
typedef void(* GLFWwindowposfun) (GLFWwindow *window, int xpos, int ypos) | +
This is the function pointer type for window position callbacks. A window position callback function has the following signature:
[in] | window | The window that was moved. |
[in] | xpos | The new x-coordinate, in screen coordinates, of the upper-left corner of the content area of the window. |
[in] | ypos | The new y-coordinate, in screen coordinates, of the upper-left corner of the content area of the window. |
typedef void(* GLFWwindowsizefun) (GLFWwindow *window, int width, int height) | +
This is the function pointer type for window size callbacks. A window size callback function has the following signature:
[in] | window | The window that was resized. |
[in] | width | The new width, in screen coordinates, of the window. |
[in] | height | The new height, in screen coordinates, of the window. |
typedef void(* GLFWwindowclosefun) (GLFWwindow *window) | +
This is the function pointer type for window close callbacks. A window close callback function has the following signature:
[in] | window | The window that the user attempted to close. |
typedef void(* GLFWwindowrefreshfun) (GLFWwindow *window) | +
This is the function pointer type for window content refresh callbacks. A window content refresh callback function has the following signature:
[in] | window | The window whose content needs to be refreshed. |
typedef void(* GLFWwindowfocusfun) (GLFWwindow *window, int focused) | +
This is the function pointer type for window focus callbacks. A window focus callback function has the following signature:
[in] | window | The window that gained or lost input focus. |
[in] | focused | GLFW_TRUE if the window was given input focus, or GLFW_FALSE if it lost it. |
typedef void(* GLFWwindowiconifyfun) (GLFWwindow *window, int iconified) | +
This is the function pointer type for window iconify callbacks. A window iconify callback function has the following signature:
[in] | window | The window that was iconified or restored. |
[in] | iconified | GLFW_TRUE if the window was iconified, or GLFW_FALSE if it was restored. |
typedef void(* GLFWwindowmaximizefun) (GLFWwindow *window, int maximized) | +
This is the function pointer type for window maximize callbacks. A window maximize callback function has the following signature:
[in] | window | The window that was maximized or restored. |
[in] | maximized | GLFW_TRUE if the window was maximized, or GLFW_FALSE if it was restored. |
typedef void(* GLFWframebuffersizefun) (GLFWwindow *window, int width, int height) | +
This is the function pointer type for framebuffer size callbacks. A framebuffer size callback function has the following signature:
[in] | window | The window whose framebuffer was resized. |
[in] | width | The new width, in pixels, of the framebuffer. |
[in] | height | The new height, in pixels, of the framebuffer. |
typedef void(* GLFWwindowcontentscalefun) (GLFWwindow *window, float xscale, float yscale) | +
This is the function pointer type for window content scale callbacks. A window content scale callback function has the following signature:
[in] | window | The window whose content scale changed. |
[in] | xscale | The new x-axis content scale of the window. |
[in] | yscale | The new y-axis content scale of the window. |
This describes a single 2D image. See the documentation for each related function what the expected pixel format is.
+void glfwDefaultWindowHints | +( | +void | +) | ++ |
This function resets all window hints to their default values.
+void glfwWindowHint | +( | +int | +hint, | +
+ | + | int | +value | +
+ | ) | ++ |
This function sets hints for the next call to glfwCreateWindow. The hints, once set, retain their values until changed by a call to this function or glfwDefaultWindowHints, or until the library is terminated.
+Only integer value hints can be set with this function. String value hints are set with glfwWindowHintString.
+This function does not check whether the specified hint values are valid. If you set hints to invalid values this will instead be reported by the next call to glfwCreateWindow.
+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.
+[in] | hint | The window hint to set. |
[in] | value | The new value of the window hint. |
glfwOpenWindowHint
. void glfwWindowHintString | +( | +int | +hint, | +
+ | + | const char * | +value | +
+ | ) | ++ |
This function sets hints for the next call to glfwCreateWindow. The hints, once set, retain their values until changed by a call to this function or glfwDefaultWindowHints, or until the library is terminated.
+Only string type hints can be set with this function. Integer value hints are set with glfwWindowHint.
+This function does not check whether the specified hint values are valid. If you set hints to invalid values this will instead be reported by the next call to glfwCreateWindow.
+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.
+[in] | hint | The window hint to set. |
[in] | value | The new value of the window hint. |
GLFWwindow * glfwCreateWindow | +( | +int | +width, | +
+ | + | int | +height, | +
+ | + | const char * | +title, | +
+ | + | GLFWmonitor * | +monitor, | +
+ | + | GLFWwindow * | +share | +
+ | ) | ++ |
This function creates a window and its associated OpenGL or OpenGL ES context. Most of the options controlling how the window and its context should be created are specified with window hints.
+Successful creation does not change which context is current. Before you can use the newly created context, you need to make it current. For information about the share
parameter, see Context object sharing.
The created window, framebuffer and context may differ from what you requested, as not all parameters and hints are hard constraints. This includes the size of the window, especially for full screen windows. To query the actual attributes of the created window, framebuffer and context, see glfwGetWindowAttrib, glfwGetWindowSize and glfwGetFramebufferSize.
+To create a full screen window, you need to specify the monitor the window will cover. If no monitor is specified, the window will be windowed mode. Unless you have a way for the user to choose a specific monitor, it is recommended that you pick the primary monitor. For more information on how to query connected monitors, see Retrieving monitors.
+For full screen windows, the specified size becomes the resolution of the window's desired video mode. As long as a full screen window is not iconified, the supported video mode most closely matching the desired video mode is set for the specified monitor. For more information about full screen windows, including the creation of so called windowed full screen or borderless full screen windows, see "Windowed full screen" windows.
+Once you have created the window, you can switch it between windowed and full screen mode with glfwSetWindowMonitor. This will not affect its OpenGL or OpenGL ES context.
+By default, newly created windows use the placement recommended by the window system. To create the window at a specific position, make it initially invisible using the GLFW_VISIBLE window hint, set its position and then show it.
+As long as at least one full screen window is not iconified, the screensaver is prohibited from starting.
+Window systems put limits on window sizes. Very large or very small window dimensions may be overridden by the window system on creation. Check the actual size after creation.
+The swap interval is not set during window creation and the initial value may vary depending on driver settings and defaults.
+[in] | width | The desired width, in screen coordinates, of the window. This must be greater than zero. |
[in] | height | The desired height, in screen coordinates, of the window. This must be greater than zero. |
[in] | title | The initial, UTF-8 encoded window title. |
[in] | monitor | The monitor to use for full screen mode, or NULL for windowed mode. |
[in] | share | The window whose context to share resources with, or NULL to not share resources. |
NULL
if an error occurred.GLFW_ICON,
it will be set as the initial icon for the window. If no such icon is present, the IDI_APPLICATION
icon will be used instead. To set a different icon, see glfwSetWindowIcon.MainMenu.nib
it is loaded and assumed to contain a menu bar. Otherwise a minimal menu bar is created manually with common commands like Hide, Quit and About. The About entry opens a minimal about dialog with information from the application's bundle. Menu bar creation can be disabled entirely with the GLFW_COCOA_MENUBAR init hint.GLFW_TRUE
and the NSHighResolutionCapable
key is enabled in the application bundle's Info.plist
. For more information, see High Resolution Guidelines for OS X in the Mac Developer Library. The GLFW test and example programs use a custom Info.plist
template for this, which can be found as CMake/MacOSXBundleInfo.plist.in
in the source tree.WM_CLASS
window property will by default be set to the window title passed to this function. The instance part will use the contents of the RESOURCE_NAME
environment variable, if present and not empty, or fall back to the window title. Set the GLFW_X11_CLASS_NAME and GLFW_X11_INSTANCE_NAME window hints to override this.glfwOpenWindow
. void glfwDestroyWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function destroys the specified window and its context. On calling this function, no further callbacks will be called for that window.
+If the context of the specified window is current on the main thread, it is detached before being destroyed.
+[in] | window | The window to destroy. |
glfwCloseWindow
. int glfwWindowShouldClose | +( | +GLFWwindow * | +window | ) | ++ |
This function returns the value of the close flag of the specified window.
+[in] | window | The window to query. |
void glfwSetWindowShouldClose | +( | +GLFWwindow * | +window, | +
+ | + | int | +value | +
+ | ) | ++ |
This function sets the value of the close flag of the specified window. This can be used to override the user's attempt to close the window, or to signal that it should be closed.
+[in] | window | The window whose flag to change. |
[in] | value | The new value. |
void glfwSetWindowTitle | +( | +GLFWwindow * | +window, | +
+ | + | const char * | +title | +
+ | ) | ++ |
This function sets the window title, encoded as UTF-8, of the specified window.
+[in] | window | The window whose title to change. |
[in] | title | The UTF-8 encoded window title. |
void glfwSetWindowIcon | +( | +GLFWwindow * | +window, | +
+ | + | int | +count, | +
+ | + | const GLFWimage * | +images | +
+ | ) | ++ |
This function sets the icon of the specified window. If passed an array of candidate images, those of or closest to the sizes desired by the system are selected. If no images are specified, the window reverts to its default icon.
+The pixels are 32-bit, little-endian, non-premultiplied RGBA, i.e. eight bits per channel with the red channel first. They are arranged canonically as packed sequential rows, starting from the top-left corner.
+The desired image sizes varies depending on platform and system settings. The selected images will be rescaled as needed. Good sizes include 16x16, 32x32 and 48x48.
+[in] | window | The window whose icon to set. |
[in] | count | The number of images in the specified array, or zero to revert to the default window icon. |
[in] | images | The images to create the icon from. This is ignored if count is zero. |
void glfwGetWindowPos | +( | +GLFWwindow * | +window, | +
+ | + | int * | +xpos, | +
+ | + | int * | +ypos | +
+ | ) | ++ |
This function retrieves the position, in screen coordinates, of the upper-left corner of the content area of the specified window.
+Any or all of the position arguments may be NULL
. If an error occurs, all non-NULL
position arguments will be set to zero.
[in] | window | The window to query. |
[out] | xpos | Where to store the x-coordinate of the upper-left corner of the content area, or NULL . |
[out] | ypos | Where to store the y-coordinate of the upper-left corner of the content area, or NULL . |
void glfwSetWindowPos | +( | +GLFWwindow * | +window, | +
+ | + | int | +xpos, | +
+ | + | int | +ypos | +
+ | ) | ++ |
This function sets the position, in screen coordinates, of the upper-left corner of the content area of the specified windowed mode window. If the window is a full screen window, this function does nothing.
+Do not use this function to move an already visible window unless you have very good reasons for doing so, as it will confuse and annoy the user.
+The window manager may put limits on what positions are allowed. GLFW cannot and should not override these limits.
+[in] | window | The window to query. |
[in] | xpos | The x-coordinate of the upper-left corner of the content area. |
[in] | ypos | The y-coordinate of the upper-left corner of the content area. |
void glfwGetWindowSize | +( | +GLFWwindow * | +window, | +
+ | + | int * | +width, | +
+ | + | int * | +height | +
+ | ) | ++ |
This function retrieves the size, in screen coordinates, of the content area of the specified window. If you wish to retrieve the size of the framebuffer of the window in pixels, see glfwGetFramebufferSize.
+Any or all of the size arguments may be NULL
. If an error occurs, all non-NULL
size arguments will be set to zero.
[in] | window | The window whose size to retrieve. |
[out] | width | Where to store the width, in screen coordinates, of the content area, or NULL . |
[out] | height | Where to store the height, in screen coordinates, of the content area, or NULL . |
void glfwSetWindowSizeLimits | +( | +GLFWwindow * | +window, | +
+ | + | int | +minwidth, | +
+ | + | int | +minheight, | +
+ | + | int | +maxwidth, | +
+ | + | int | +maxheight | +
+ | ) | ++ |
This function sets the size limits of the content area of the specified window. If the window is full screen, the size limits only take effect once it is made windowed. If the window is not resizable, this function does nothing.
+The size limits are applied immediately to a windowed mode window and may cause it to be resized.
+The maximum dimensions must be greater than or equal to the minimum dimensions and all must be greater than or equal to zero.
+[in] | window | The window to set limits for. |
[in] | minwidth | The minimum width, in screen coordinates, of the content area, or GLFW_DONT_CARE . |
[in] | minheight | The minimum height, in screen coordinates, of the content area, or GLFW_DONT_CARE . |
[in] | maxwidth | The maximum width, in screen coordinates, of the content area, or GLFW_DONT_CARE . |
[in] | maxheight | The maximum height, in screen coordinates, of the content area, or GLFW_DONT_CARE . |
void glfwSetWindowAspectRatio | +( | +GLFWwindow * | +window, | +
+ | + | int | +numer, | +
+ | + | int | +denom | +
+ | ) | ++ |
This function sets the required aspect ratio of the content area of the specified window. If the window is full screen, the aspect ratio only takes effect once it is made windowed. If the window is not resizable, this function does nothing.
+The aspect ratio is specified as a numerator and a denominator and both values must be greater than zero. For example, the common 16:9 aspect ratio is specified as 16 and 9, respectively.
+If the numerator and denominator is set to GLFW_DONT_CARE
then the aspect ratio limit is disabled.
The aspect ratio is applied immediately to a windowed mode window and may cause it to be resized.
+[in] | window | The window to set limits for. |
[in] | numer | The numerator of the desired aspect ratio, or GLFW_DONT_CARE . |
[in] | denom | The denominator of the desired aspect ratio, or GLFW_DONT_CARE . |
void glfwSetWindowSize | +( | +GLFWwindow * | +window, | +
+ | + | int | +width, | +
+ | + | int | +height | +
+ | ) | ++ |
This function sets the size, in screen coordinates, of the content area of the specified window.
+For full screen windows, this function updates the resolution of its desired video mode and switches to the video mode closest to it, without affecting the window's context. As the context is unaffected, the bit depths of the framebuffer remain unchanged.
+If you wish to update the refresh rate of the desired video mode in addition to its resolution, see glfwSetWindowMonitor.
+The window manager may put limits on what sizes are allowed. GLFW cannot and should not override these limits.
+[in] | window | The window to resize. |
[in] | width | The desired width, in screen coordinates, of the window content area. |
[in] | height | The desired height, in screen coordinates, of the window content area. |
void glfwGetFramebufferSize | +( | +GLFWwindow * | +window, | +
+ | + | int * | +width, | +
+ | + | int * | +height | +
+ | ) | ++ |
This function retrieves the size, in pixels, of the framebuffer of the specified window. If you wish to retrieve the size of the window in screen coordinates, see glfwGetWindowSize.
+Any or all of the size arguments may be NULL
. If an error occurs, all non-NULL
size arguments will be set to zero.
[in] | window | The window whose framebuffer to query. |
[out] | width | Where to store the width, in pixels, of the framebuffer, or NULL . |
[out] | height | Where to store the height, in pixels, of the framebuffer, or NULL . |
void glfwGetWindowFrameSize | +( | +GLFWwindow * | +window, | +
+ | + | int * | +left, | +
+ | + | int * | +top, | +
+ | + | int * | +right, | +
+ | + | int * | +bottom | +
+ | ) | ++ |
This function retrieves the size, in screen coordinates, of each edge of the frame of the specified window. This size includes the title bar, if the window has one. The size of the frame may vary depending on the window-related hints used to create it.
+Because this function retrieves the size of each window frame edge and not the offset along a particular coordinate axis, the retrieved values will always be zero or positive.
+Any or all of the size arguments may be NULL
. If an error occurs, all non-NULL
size arguments will be set to zero.
[in] | window | The window whose frame size to query. |
[out] | left | Where to store the size, in screen coordinates, of the left edge of the window frame, or NULL . |
[out] | top | Where to store the size, in screen coordinates, of the top edge of the window frame, or NULL . |
[out] | right | Where to store the size, in screen coordinates, of the right edge of the window frame, or NULL . |
[out] | bottom | Where to store the size, in screen coordinates, of the bottom edge of the window frame, or NULL . |
void glfwGetWindowContentScale | +( | +GLFWwindow * | +window, | +
+ | + | float * | +xscale, | +
+ | + | float * | +yscale | +
+ | ) | ++ |
This function retrieves the content scale for the specified window. 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.
+On systems where each monitors can have its own content scale, the window content scale will depend on which monitor the system considers the window to be on.
+[in] | window | The window to query. |
[out] | xscale | Where to store the x-axis content scale, or NULL . |
[out] | yscale | Where to store the y-axis content scale, or NULL . |
float glfwGetWindowOpacity | +( | +GLFWwindow * | +window | ) | ++ |
This function returns the opacity of the window, including any decorations.
+The opacity (or alpha) value is a positive finite number between zero and one, where zero is fully transparent and one is fully opaque. If the system does not support whole window transparency, this function always returns one.
+The initial opacity value for newly created windows is one.
+[in] | window | The window to query. |
void glfwSetWindowOpacity | +( | +GLFWwindow * | +window, | +
+ | + | float | +opacity | +
+ | ) | ++ |
This function sets the opacity of the window, including any decorations.
+The opacity (or alpha) value is a positive finite number between zero and one, where zero is fully transparent and one is fully opaque.
+The initial opacity value for newly created windows is one.
+A window created with framebuffer transparency may not use whole window transparency. The results of doing this are undefined.
+[in] | window | The window to set the opacity for. |
[in] | opacity | The desired opacity of the specified window. |
void glfwIconifyWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function iconifies (minimizes) the specified window if it was previously restored. If the window is already iconified, this function does nothing.
+If the specified window is a full screen window, GLFW restores the original video mode of the monitor. The window's desired video mode is set again when the window is restored.
+[in] | window | The window to iconify. |
void glfwRestoreWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function restores the specified window if it was previously iconified (minimized) or maximized. If the window is already restored, this function does nothing.
+If the specified window is an iconified full screen window, its desired video mode is set again for its monitor when the window is restored.
+[in] | window | The window to restore. |
void glfwMaximizeWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function maximizes the specified window if it was previously not maximized. If the window is already maximized, this function does nothing.
+If the specified window is a full screen window, this function does nothing.
+[in] | window | The window to maximize. |
void glfwShowWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function makes the specified window visible if it was previously hidden. If the window is already visible or is in full screen mode, this function does nothing.
+By default, windowed mode windows are focused when shown Set the GLFW_FOCUS_ON_SHOW window hint to change this behavior for all newly created windows, or change the behavior for an existing window with glfwSetWindowAttrib.
+[in] | window | The window to make visible. |
void glfwHideWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function hides the specified window if it was previously visible. If the window is already hidden or is in full screen mode, this function does nothing.
+[in] | window | The window to hide. |
void glfwFocusWindow | +( | +GLFWwindow * | +window | ) | ++ |
This function brings the specified window to front and sets input focus. The window should already be visible and not iconified.
+By default, both windowed and full screen mode windows are focused when initially created. Set the GLFW_FOCUSED to disable this behavior.
+Also by default, windowed mode windows are focused when shown with glfwShowWindow. Set the GLFW_FOCUS_ON_SHOW to disable this behavior.
+Do not use this function to steal focus from other applications unless you are certain that is what the user wants. Focus stealing can be extremely disruptive.
+For a less disruptive way of getting the user's attention, see attention requests.
+[in] | window | The window to give input focus. |
void glfwRequestWindowAttention | +( | +GLFWwindow * | +window | ) | ++ |
This function requests user attention to the specified window. On platforms where this is not supported, attention is requested to the application as a whole.
+Once the user has given attention, usually by focusing the window or application, the system will end the request automatically.
+[in] | window | The window to request attention to. |
GLFWmonitor * glfwGetWindowMonitor | +( | +GLFWwindow * | +window | ) | ++ |
This function returns the handle of the monitor that the specified window is in full screen on.
+[in] | window | The window to query. |
NULL
if the window is in windowed mode or an error occurred.void glfwSetWindowMonitor | +( | +GLFWwindow * | +window, | +
+ | + | GLFWmonitor * | +monitor, | +
+ | + | int | +xpos, | +
+ | + | int | +ypos, | +
+ | + | int | +width, | +
+ | + | int | +height, | +
+ | + | int | +refreshRate | +
+ | ) | ++ |
This function sets the monitor that the window uses for full screen mode or, if the monitor is NULL
, makes it windowed mode.
When setting a monitor, this function updates the width, height and refresh rate of the desired video mode and switches to the video mode closest to it. The window position is ignored when setting a monitor.
+When the monitor is NULL
, the position, width and height are used to place the window content area. The refresh rate is ignored when no monitor is specified.
If you only wish to update the resolution of a full screen window or the size of a windowed mode window, see glfwSetWindowSize.
+When a window transitions from full screen to windowed mode, this function restores any previous window settings such as whether it is decorated, floating, resizable, has size or aspect ratio limits, etc.
+[in] | window | The window whose monitor, size or video mode to set. |
[in] | monitor | The desired monitor, or NULL to set windowed mode. |
[in] | xpos | The desired x-coordinate of the upper-left corner of the content area. |
[in] | ypos | The desired y-coordinate of the upper-left corner of the content area. |
[in] | width | The desired with, in screen coordinates, of the content area or video mode. |
[in] | height | The desired height, in screen coordinates, of the content area or video mode. |
[in] | refreshRate | The desired refresh rate, in Hz, of the video mode, or GLFW_DONT_CARE . |
int glfwGetWindowAttrib | +( | +GLFWwindow * | +window, | +
+ | + | int | +attrib | +
+ | ) | ++ |
This function returns the value of an attribute of the specified window or its OpenGL or OpenGL ES context.
+[in] | window | The window to query. |
[in] | attrib | The window attribute whose value to return. |
GLFW_FALSE
.glfwGetWindowParam
and glfwGetGLVersion
. void glfwSetWindowAttrib | +( | +GLFWwindow * | +window, | +
+ | + | int | +attrib, | +
+ | + | int | +value | +
+ | ) | ++ |
This function sets the value of an attribute of the specified window.
+The supported attributes are GLFW_DECORATED, GLFW_RESIZABLE, GLFW_FLOATING, GLFW_AUTO_ICONIFY and GLFW_FOCUS_ON_SHOW.
+Some of these attributes are ignored for full screen windows. The new value will take effect if the window is later made windowed.
+Some of these attributes are ignored for windowed mode windows. The new value will take effect if the window is later made full screen.
+[in] | window | The window to set the attribute for. |
[in] | attrib | A supported window attribute. |
[in] | value | GLFW_TRUE or GLFW_FALSE . |
void glfwSetWindowUserPointer | +( | +GLFWwindow * | +window, | +
+ | + | void * | +pointer | +
+ | ) | ++ |
This function sets the user-defined pointer of the specified window. The current value is retained until the window is destroyed. The initial value is NULL
.
[in] | window | The window whose pointer to set. |
[in] | pointer | The new value. |
void * glfwGetWindowUserPointer | +( | +GLFWwindow * | +window | ) | ++ |
This function returns the current value of the user-defined pointer of the specified window. The initial value is NULL
.
[in] | window | The window whose pointer to return. |
GLFWwindowposfun glfwSetWindowPosCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowposfun | +callback | +
+ | ) | ++ |
This function sets the position callback of the specified window, which is called when the window is moved. The callback is provided with the position, in screen coordinates, of the upper-left corner of the content area of the window.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowsizefun glfwSetWindowSizeCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowsizefun | +callback | +
+ | ) | ++ |
This function sets the size callback of the specified window, which is called when the window is resized. The callback is provided with the size, in screen coordinates, of the content area of the window.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowclosefun glfwSetWindowCloseCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowclosefun | +callback | +
+ | ) | ++ |
This function sets the close callback of the specified window, which is called when the user attempts to close the window, for example by clicking the close widget in the title bar.
+The close flag is set before this callback is called, but you can modify it at any time with glfwSetWindowShouldClose.
+The close callback is not triggered by glfwDestroyWindow.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowrefreshfun glfwSetWindowRefreshCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowrefreshfun | +callback | +
+ | ) | ++ |
This function sets the refresh callback of the specified window, which is called when the content area of the window needs to be redrawn, for example if the window has been exposed after having been covered by another window.
+On compositing window systems such as Aero, Compiz, Aqua or Wayland, where the window contents are saved off-screen, this callback may be called only very infrequently or never at all.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowfocusfun glfwSetWindowFocusCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowfocusfun | +callback | +
+ | ) | ++ |
This function sets the focus callback of the specified window, which is called when the window gains or loses input focus.
+After the focus callback is called for a window that lost input focus, synthetic key and mouse button release events will be generated for all such that had been pressed. For more information, see glfwSetKeyCallback and glfwSetMouseButtonCallback.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowiconifyfun glfwSetWindowIconifyCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowiconifyfun | +callback | +
+ | ) | ++ |
This function sets the iconification callback of the specified window, which is called when the window is iconified or restored.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowmaximizefun glfwSetWindowMaximizeCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowmaximizefun | +callback | +
+ | ) | ++ |
This function sets the maximization callback of the specified window, which is called when the window is maximized or restored.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWframebuffersizefun glfwSetFramebufferSizeCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWframebuffersizefun | +callback | +
+ | ) | ++ |
This function sets the framebuffer resize callback of the specified window, which is called when the framebuffer of the specified window is resized.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.GLFWwindowcontentscalefun glfwSetWindowContentScaleCallback | +( | +GLFWwindow * | +window, | +
+ | + | GLFWwindowcontentscalefun | +callback | +
+ | ) | ++ |
This function sets the window content scale callback of the specified window, which is called when the content scale of the specified window changes.
+[in] | window | The window whose callback to set. |
[in] | callback | The new callback, or NULL to remove the currently set callback. |
NULL
if no callback was set or the library had not been initialized.void glfwPollEvents | +( | +void | +) | ++ |
This function processes only those events that are already in the event queue and then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.
+On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the window refresh callback to redraw the contents of your window when necessary during such operations.
+Do not assume that callbacks you set will only be called in response to event processing functions like this one. While it is necessary to poll for events, 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.
+Event processing is not required for joystick input to work.
+void glfwWaitEvents | +( | +void | +) | ++ |
This function puts the calling thread to sleep until at least one event is available in the event queue. Once one or more events are available, it behaves exactly like glfwPollEvents, i.e. the events in the queue are processed and the function then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.
+Since not all events are associated with callbacks, this function may return without a callback having been called even if you are monitoring all callbacks.
+On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the window refresh callback to redraw the contents of your window when necessary during such operations.
+Do not assume that callbacks you set will only be called in response to event processing functions like this one. While it is necessary to poll for events, 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.
+Event processing is not required for joystick input to work.
+void glfwWaitEventsTimeout | +( | +double | +timeout | ) | ++ |
This function puts the calling thread to sleep until at least one event is available in the event queue, or until the specified timeout is reached. If one or more events are available, it behaves exactly like glfwPollEvents, i.e. the events in the queue are processed and the function then returns immediately. Processing events will cause the window and input callbacks associated with those events to be called.
+The timeout value must be a positive finite number.
+Since not all events are associated with callbacks, this function may return without a callback having been called even if you are monitoring all callbacks.
+On some platforms, a window move, resize or menu operation will cause event processing to block. This is due to how event processing is designed on those platforms. You can use the window refresh callback to redraw the contents of your window when necessary during such operations.
+Do not assume that callbacks you set will only be called in response to event processing functions like this one. While it is necessary to poll for events, 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.
+Event processing is not required for joystick input to work.
+[in] | timeout | The maximum amount of time, in seconds, to wait. |
void glfwPostEmptyEvent | +( | +void | +) | ++ |
This function posts an empty event from the current thread to the event queue, causing glfwWaitEvents or glfwWaitEventsTimeout to return.
+void glfwSwapBuffers | +( | +GLFWwindow * | +window | ) | ++ |
This function swaps the front and back buffers of the specified window when rendering with OpenGL or OpenGL ES. If the swap interval is greater than zero, the GPU driver waits the specified number of screen updates before swapping the buffers.
+The specified window must have an OpenGL or OpenGL ES context. Specifying a window without a context will generate a GLFW_NO_WINDOW_CONTEXT error.
+This function does not apply to Vulkan. If you are rendering with Vulkan, see vkQueuePresentKHR
instead.
[in] | window | The window whose buffers to swap. |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/index.html b/deps/glfw-3.3.8/docs/html/index.html new file mode 100644 index 0000000..072fcc5 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/index.html @@ -0,0 +1,93 @@ + + + + + + + +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.
+Release notes for version 3.3 list new features, caveats and deprecations.
+Getting started is a guide for users new to GLFW. It takes you through how to write a small but complete program.
+There are guides for each section of the API:
+Once you have written a program, see Compiling GLFW and Building applications.
+The reference documentation provides more detailed information about specific functions.
+Moving from GLFW 2 to 3 explains what has changed and how to update existing code to use the new API.
+There is a section on Guarantees and limitations for pointer lifetimes, reentrancy, thread safety, event order and backward and forward compatibility.
+The FAQ answers many common questions about the design, implementation and use of GLFW.
+Finally, Standards conformance explains what APIs, standards and protocols GLFW uses and what happens when they are not present on a given machine.
+This documentation was generated with Doxygen. The sources for it are available in both the source distribution and GitHub repository.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/input_8dox.html b/deps/glfw-3.3.8/docs/html/input_8dox.html new file mode 100644 index 0000000..3765672 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/input_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/input_guide.html b/deps/glfw-3.3.8/docs/html/input_guide.html new file mode 100644 index 0000000..9c8c25f --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/input_guide.html @@ -0,0 +1,562 @@ + + + + + + + +This guide introduces the input related functions of GLFW. For details on a specific function in this category, see the Input reference. There are also guides for the other areas of GLFW.
+ +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.
+All input callbacks receive a window handle. By using the window user pointer, you can access non-global structures or objects from your callbacks.
+To get a better feel for how the various events callbacks behave, run the events
test program. It register every callback supported by GLFW and prints out all arguments provided for every event, along with time and sequence information.
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 buffer swapping. Even when you have no windows, event polling needs to be done in order to receive monitor and joystick connection events.
+There are three functions for processing pending events. glfwPollEvents, processes only those events that have already been received and then returns immediately.
+This is the best choice when rendering continuously, like most games do.
+If you only need to update the contents of the window when you receive new input, glfwWaitEvents is a better choice.
+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.
+If you want to wait for events but have UI elements or other tasks that need periodic updates, glfwWaitEventsTimeout lets you specify a timeout.
+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.
+If the main thread is sleeping in glfwWaitEvents, you can wake it from another thread by posting an empty event to the event queue with glfwPostEmptyEvent.
+Do not assume that callbacks will only 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.
+For example, on Windows the system function that glfwSetWindowSize 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 window size callback GLFW will call it in turn with the new size before everything returns back out of the glfwSetWindowSize call.
+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.
+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.
+If you wish to be notified when a physical key is pressed or released or when it repeats, set a key callback.
+The callback function receives the keyboard key, platform-specific scancode, key action and modifier bits.
+The action is one of GLFW_PRESS
, GLFW_REPEAT
or GLFW_RELEASE
. Events with GLFW_PRESS
and GLFW_RELEASE
actions are emitted for every key press. Most keys will also emit events with GLFW_REPEAT
actions while a key is held down.
Key events with GLFW_REPEAT
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. GLFW_REPEAT
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 GLFW_PRESS
and GLFW_RELEASE
actions, or call glfwGetKey, which provides basic cached key state.
The key will be one of the existing key tokens, or GLFW_KEY_UNKNOWN
if GLFW lacks a token for it, for example E-mail and Play keys.
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 named key on the current platform with glfwGetKeyScancode.
+The last reported state for every named key is also saved in per-window state arrays that can be polled with glfwGetKey.
+The returned state is one of GLFW_PRESS
or GLFW_RELEASE
.
This function only returns cached key event state. It does not poll the system for the current physical state of the key.
+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 GLFW_STICKY_KEYS
input mode.
When sticky keys mode is enabled, the pollable state of a key will remain GLFW_PRESS
until the state of that key is polled with glfwGetKey. Once it has been polled, if a key release event had been processed in the meantime, the state will reset to GLFW_RELEASE
, otherwise it will remain GLFW_PRESS
.
If you wish to know what the state of the Caps Lock and Num Lock keys was when input events were generated, set the GLFW_LOCK_KEY_MODS
input mode.
When this input mode is enabled, any callback that receives modifier bits will have the GLFW_MOD_CAPS_LOCK bit set if Caps Lock was on when the event occurred and the GLFW_MOD_NUM_LOCK bit set if Num Lock was on.
+The GLFW_KEY_LAST
constant holds the highest value of any named key.
GLFW supports text input in the form of a stream of Unicode code points, 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 dead keys. Once received, you can encode the code points into UTF-8 or any other encoding you prefer.
+Because an unsigned int
is 32 bits long on all platforms supported by GLFW, you can treat the code point argument as native endian UTF-32.
If you wish to offer regular text input, set a character callback.
+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.
+If you wish to refer to keys by name, you can query the keyboard layout dependent name of printable keys with glfwGetKeyName.
+This function can handle both keys and scancodes. If the specified key is GLFW_KEY_UNKNOWN
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.
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.
+If you wish to be notified when the cursor moves over the window, set a cursor position callback.
+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.
+The cursor position is also saved per-window and can be polled with glfwGetCursorPos.
+The GLFW_CURSOR
input mode provides several cursor modes for special forms of mouse motion input. By default, the cursor mode is GLFW_CURSOR_NORMAL
, meaning the regular arrow cursor (or another cursor set with glfwSetCursor) is used and cursor motion is not limited.
If you wish to implement mouse motion based camera controls or other input schemes that require unlimited mouse movement, set the cursor mode to GLFW_CURSOR_DISABLED
.
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.
+GLFW_CURSOR_DISABLED
.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 GLFW_CURSOR_HIDDEN
.
This mode puts no limit on the motion of the cursor.
+To exit out of either of these special modes, restore the GLFW_CURSOR_NORMAL
cursor mode.
When the cursor is disabled, raw (unscaled and unaccelerated) mouse motion can be enabled if available.
+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.
+Call glfwRawMouseMotionSupported to check if the current machine provides raw motion and set the GLFW_RAW_MOUSE_MOTION
input mode to enable it. It is disabled by default.
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.
+GLFW supports creating both custom and system theme cursor images, encapsulated as GLFWcursor objects. They are created with glfwCreateCursor or glfwCreateStandardCursor and destroyed with glfwDestroyCursor, or glfwTerminate, if any remain.
+A custom cursor is created with glfwCreateCursor, 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:
+If cursor creation fails, NULL
will be returned, so it is necessary to check the return value.
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.
+A cursor with a standard shape from the current system cursor theme can be can be created with glfwCreateStandardCursor.
+These cursor objects behave in the exact same way as those created with glfwCreateCursor except that the system cursor theme provides the actual image.
+When a cursor is no longer needed, destroy it with glfwDestroyCursor.
+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 glfwTerminate is called.
+A cursor can be set as current for a window with glfwSetCursor.
+Once set, the cursor image will be used as long as the system cursor is over the content area of the window and the cursor mode is set to GLFW_CURSOR_NORMAL
.
A single cursor may be set for any number of windows.
+To revert to the default cursor, set the cursor of that window to NULL
.
When a cursor is destroyed, any window that has it set will revert to the default cursor. This does not affect the cursor mode.
+If you wish to be notified when the cursor enters or leaves the content area of a window, set a cursor enter/leave callback.
+The callback function receives the new classification of the cursor.
+You can query whether the cursor is currently inside the content area of the window with the GLFW_HOVERED window attribute.
+If you wish to be notified when a mouse button is pressed or released, set a mouse button callback.
+The callback function receives the mouse button, button action and modifier bits.
+The action is one of GLFW_PRESS
or GLFW_RELEASE
.
Mouse button states for named buttons are also saved in per-window state arrays that can be polled with glfwGetMouseButton.
+The returned state is one of GLFW_PRESS
or GLFW_RELEASE
.
This function only returns cached mouse button event state. It does not poll the system for the current state of the mouse button.
+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 GLFW_STICKY_MOUSE_BUTTONS
input mode.
When sticky mouse buttons mode is enabled, the pollable state of a mouse button will remain GLFW_PRESS
until the state of that button is polled with glfwGetMouseButton. Once it has been polled, if a mouse button release event had been processed in the meantime, the state will reset to GLFW_RELEASE
, otherwise it will remain GLFW_PRESS
.
The GLFW_MOUSE_BUTTON_LAST
constant holds the highest value of any named button.
If you wish to be notified when the user scrolls, whether with a mouse wheel or touchpad gesture, set a scroll callback.
+The callback function receives two-dimensional scroll offsets.
+A normal mouse wheel, being vertical, provides offsets along the Y-axis.
+The joystick functions expose connected joysticks and controllers, with both referred to as joysticks. It supports up to sixteen joysticks, ranging from GLFW_JOYSTICK_1
, GLFW_JOYSTICK_2
up to and including GLFW_JOYSTICK_16
or GLFW_JOYSTICK_LAST
. You can test whether a joystick is present with glfwJoystickPresent.
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.
+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.
+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 joystick callback then you must process events.
+To see all the properties of all connected joysticks in real-time, run the joysticks
test program.
The positions of all axes of a joystick are returned by glfwGetJoystickAxes. See the reference documentation for the lifetime of the returned array.
+Each element in the returned array is a value between -1.0 and 1.0.
+The states of all buttons of a joystick are returned by glfwGetJoystickButtons. See the reference documentation for the lifetime of the returned array.
+Each element in the returned array is either GLFW_PRESS
or GLFW_RELEASE
.
For backward compatibility with earlier versions that did not have glfwGetJoystickHats, the button array by default also includes all hats. See the reference documentation for glfwGetJoystickButtons for details.
+The states of all hats are returned by glfwGetJoystickHats. See the reference documentation for the lifetime of the returned array.
+Each element in the returned array is one of the following:
+Name | Value |
---|---|
GLFW_HAT_CENTERED | 0 |
GLFW_HAT_UP | 1 |
GLFW_HAT_RIGHT | 2 |
GLFW_HAT_DOWN | 4 |
GLFW_HAT_LEFT | 8 |
GLFW_HAT_RIGHT_UP | GLFW_HAT_RIGHT | GLFW_HAT_UP |
GLFW_HAT_RIGHT_DOWN | GLFW_HAT_RIGHT | GLFW_HAT_DOWN |
GLFW_HAT_LEFT_UP | GLFW_HAT_LEFT | GLFW_HAT_UP |
GLFW_HAT_LEFT_DOWN | GLFW_HAT_LEFT | GLFW_HAT_DOWN |
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.
+For backward compatibility with earlier versions that did not have glfwGetJoystickHats, all hats are by default also included in the button array. See the reference documentation for glfwGetJoystickButtons for details.
+The human-readable, UTF-8 encoded name of a joystick is returned by glfwGetJoystickName. See the reference documentation for the lifetime of the returned string.
+Joystick names are not guaranteed to be unique. Two joysticks of the same model and make may have the same name. Only the joystick ID is guaranteed to be unique, and only until that joystick is disconnected.
+Each joystick has a user pointer that can be set with glfwSetJoystickUserPointer and queried with glfwGetJoystickUserPointer. 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.
+The initial value of the pointer is NULL
.
If you wish to be notified when a joystick is connected or disconnected, set a joystick callback.
+The callback function receives the ID of the joystick that has been connected and disconnected and the event that occurred.
+For joystick connection and disconnection events to be delivered on all platforms, you need to call one of the event processing 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.
+Only glfwGetJoystickName and glfwGetJoystickUserPointer will return useful values for a disconnected joystick and only before the monitor callback returns.
+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.
+To solve this problem the SDL community crowdsourced the SDL_GameControllerDB project, a database of mappings from many different devices to an Xbox-like gamepad.
+GLFW supports this mapping format and contains a copy of the mappings available at the time of release. See Gamepad mappings 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.
+You can check whether a joystick is both present and has a gamepad mapping with glfwJoystickIsGamepad.
+If you are only interested in gamepad input you can use this function instead of glfwJoystickPresent.
+You can query the human-readable name provided by the gamepad mapping with glfwGetGamepadName. This may or may not be the same as the joystick name.
+To retrieve the gamepad state of a joystick, call glfwGetGamepadState.
+The GLFWgamepadstate 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 glfwGetJoystickButtons and glfwGetJoystickAxes functions, i.e. GLFW_PRESS
or GLFW_RELEASE
for buttons and -1.0 to 1.0 inclusive for axes.
The sizes of the arrays and the positions within each array are fixed.
+The button indices are GLFW_GAMEPAD_BUTTON_A
, GLFW_GAMEPAD_BUTTON_B
, GLFW_GAMEPAD_BUTTON_X
, GLFW_GAMEPAD_BUTTON_Y
, GLFW_GAMEPAD_BUTTON_LEFT_BUMPER
, GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER
, GLFW_GAMEPAD_BUTTON_BACK
, GLFW_GAMEPAD_BUTTON_START
, GLFW_GAMEPAD_BUTTON_GUIDE
, GLFW_GAMEPAD_BUTTON_LEFT_THUMB
, GLFW_GAMEPAD_BUTTON_RIGHT_THUMB
, GLFW_GAMEPAD_BUTTON_DPAD_UP
, GLFW_GAMEPAD_BUTTON_DPAD_RIGHT
, GLFW_GAMEPAD_BUTTON_DPAD_DOWN
and GLFW_GAMEPAD_BUTTON_DPAD_LEFT
.
For those who prefer, there are also the GLFW_GAMEPAD_BUTTON_CROSS
, GLFW_GAMEPAD_BUTTON_CIRCLE
, GLFW_GAMEPAD_BUTTON_SQUARE
and GLFW_GAMEPAD_BUTTON_TRIANGLE
aliases for the A, B, X and Y button indices.
The axis indices are GLFW_GAMEPAD_AXIS_LEFT_X
, GLFW_GAMEPAD_AXIS_LEFT_Y
, GLFW_GAMEPAD_AXIS_RIGHT_X
, GLFW_GAMEPAD_AXIS_RIGHT_Y
, GLFW_GAMEPAD_AXIS_LEFT_TRIGGER
and GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER
.
The GLFW_GAMEPAD_BUTTON_LAST
and GLFW_GAMEPAD_AXIS_LAST
constants equal the largest available index for each array.
GLFW contains a copy of the mappings available in SDL_GameControllerDB at the time of release. Newer ones can be added at runtime with glfwUpdateGamepadMappings.
+This function supports everything from single lines up to and including the unmodified contents of the whole gamecontrollerdb.txt
file.
If you are compiling GLFW from source with CMake you can update the built-in mappings by building the update_mappings target. This runs the GenerateMappings.cmake
CMake script, which downloads gamecontrollerdb.txt
and regenerates the mappings.h
header file.
Below is a description of the mapping format. Please keep in mind that this description is not authoritative. The format is defined by the SDL and SDL_GameControllerDB projects and their documentation and code takes precedence.
+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.
+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.
+The second value is always the human-readable name of the gamepad.
+All subsequent values are in the form <field>:<value>
and describe the layout of the mapping. These fields may not all be present and may occur in any order.
The button fields are a
, b
, x
, y
, back
, start
, guide
, dpup
, dpright
, dpdown
, dpleft
, leftshoulder
, rightshoulder
, leftstick
and rightstick
.
The axis fields are leftx
, lefty
, rightx
, righty
, lefttrigger
and righttrigger
.
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 bN
, for example b2
for the third button. Joystick axes are specified as aN
, for example a7
for the eighth button. Joystick hat bit masks are specified as hN.N
, for example h0.8
for left on the first hat. More than one bit may be set in the mask.
Before an axis there may be a +
or -
range modifier, for example +a3
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 ~
inversion modifier, for example a2~
or -a7~
. This negates the values of the gamepad axis.
The hat bit mask match the hat states in the joystick functions.
+There is also the special platform
field that specifies which platform the mapping is valid for. Possible values are Windows
, Mac OS X
and Linux
.
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.
++
and -
that were recently added to SDL. The input modifiers +
, -
and ~
are supported and described above.GLFW provides high-resolution time input, in seconds, with glfwGetTime.
+It returns the number of seconds since the library was initialized with glfwInit. The platform-specific time sources used typically have micro- or nanosecond resolution.
+You can modify the base time with glfwSetTime.
+This sets the time to the specified time, in seconds, and it continues to count from there.
+You can also access the raw timer used to implement the functions above, with glfwGetTimerValue.
+This value is in 1 / frequency seconds. The frequency of the raw timer varies depending on the operating system and hardware. You can query the frequency, in Hz, with glfwGetTimerFrequency.
+If the system clipboard contains a UTF-8 encoded string or if it can be converted to one, you can retrieve it with glfwGetClipboardString. See the reference documentation for the lifetime of the returned string.
+If the clipboard is empty or if its contents could not be converted, NULL
is returned.
The contents of the system clipboard can be set to a UTF-8 encoded string with glfwSetClipboardString.
+If you wish to receive the paths of files and/or directories dropped on a window, set a file drop callback.
+The callback function receives an array of paths encoded as UTF-8.
+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.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/internal_8dox.html b/deps/glfw-3.3.8/docs/html/internal_8dox.html new file mode 100644 index 0000000..9c401ab --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/internal_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/internals_guide.html b/deps/glfw-3.3.8/docs/html/internals_guide.html new file mode 100644 index 0000000..6d96b4d --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/internals_guide.html @@ -0,0 +1,125 @@ + + + + + + + +There are several interfaces inside GLFW. Each interface has its own area of responsibility and its own naming conventions.
+The most well-known is the public interface, described in the glfw3.h 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.
+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.
+Examples: glfwCreateWindow
, GLFWwindow
, GLFW_RED_BITS
The native interface is a small set of publicly available but platform-specific functions, described in the glfw3native.h header file and used to gain access to the underlying window, context and (on some platforms) display handles used by the platform interface.
+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.
+Examples: glfwGetX11Window
, glfwGetWGLContext
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.
+The internal interface is in charge of GLFW's global data, which it stores in a _GLFWlibrary
struct named _glfw
.
The internal interface uses the same style as the public interface, except all global names have a leading underscore.
+Examples: _glfwIsValidContextConfig
, _GLFWwindow
, _glfw.monitorCount
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.
+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.
+Examples: _glfwPlatformCreateWindow
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.
+Examples: _GLFWwindowX11
, _GLFWcontextWGL
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.
+Examples: window->win32.handle
, _glfw.x11.display
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.
+The function names of the event interface use a _glfwInput
prefix and the ObjectEvent pattern.
Examples: _glfwInputWindowFocus
, _glfwInputCursorPos
Static functions may be used by any interface and have no prefixes or suffixes. These use headless camel case.
+Examples: isValidElementForJoystick
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 glfw_config.h.in
file by CMake.
Configuration macros the same style as tokens in the public interface, except with a leading underscore.
+Examples: _GLFW_WIN32
, _GLFW_BUILD_DLL
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/intro_8dox.html b/deps/glfw-3.3.8/docs/html/intro_8dox.html new file mode 100644 index 0000000..6bf836e --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/intro_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/intro_guide.html b/deps/glfw-3.3.8/docs/html/intro_guide.html new file mode 100644 index 0000000..7ca3f1e --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/intro_guide.html @@ -0,0 +1,329 @@ + + + + + + + +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 Getting started instead. For details on a specific function in this category, see the Initialization, version and error reference.
+There are also guides for the other areas of GLFW.
+ +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.
+Only the following functions may be called before the library has been successfully initialized, and only from the main thread.
+Calling any other function before successful initialization will cause a GLFW_NOT_INITIALIZED error.
+The library is initialized with glfwInit, which returns GLFW_FALSE
if an error occurred.
If any part of initialization fails, any parts that succeeded are terminated as if glfwTerminate had been called. The library only needs to be initialized once and additional calls to an already initialized library will return GLFW_TRUE
immediately.
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.
+Initialization hints are set before glfwInit and affect how the library behaves until termination. Hints are set with glfwInitHint.
+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.
+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.
+GLFW_JOYSTICK_HAT_BUTTONS specifies whether to also expose joystick hats as buttons, for compatibility with earlier versions of GLFW that did not have glfwGetJoystickHats. Possible values are GLFW_TRUE
and GLFW_FALSE
.
GLFW_COCOA_CHDIR_RESOURCES specifies whether to set the current directory to the application to the Contents/Resources
subdirectory of the application's bundle, if present. Set this with glfwInitHint.
GLFW_COCOA_MENUBAR 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 glfwInitHint.
+Initialization hint | Default value | Supported values |
---|---|---|
GLFW_JOYSTICK_HAT_BUTTONS | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_COCOA_CHDIR_RESOURCES | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_COCOA_MENUBAR | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
Before your application exits, you should terminate the GLFW library if it has been initialized. This is done with glfwTerminate.
+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.
+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.
+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.
+The last error code for the calling thread can be queried at any time with glfwGetError.
+If no error has occurred since the last call, GLFW_NO_ERROR (zero) is returned. The error is cleared before the function returns.
+The error code indicates the general category of the error. Some error codes, such as GLFW_NOT_INITIALIZED has only a single meaning, whereas others like GLFW_PLATFORM_ERROR are used for many different errors.
+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 NULL
.
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.
+You can also set an error callback, which will be called each time an error occurs. It is set with glfwSetErrorCallback.
+The error callback receives the same error code and human-readable description returned by glfwGetError.
+The error callback is called after the error is stored, so calling glfwGetError from within the error callback returns the same values as the callback argument.
+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.
+Reported errors are never fatal. 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 glfwInit to fail, any part of the library that was initialized will be safely terminated.
+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.
+GLFW has two primary coordinate systems: the virtual screen and the window content area or content area. Both use the same unit: virtual screen coordinates, or just screen coordinates, which don't necessarily correspond to pixels.
+ +Both the virtual screen and the content area coordinate systems have the X-axis pointing to the right and the Y-axis pointing down.
+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.
+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.
+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.
+Two exceptions are the monitor physical size, which is measured in millimetres, and framebuffer size, which is measured in pixels.
+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.
+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.
+GLFW will never free any pointer you provide to it and you must never free any pointer it provides to you.
+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.
+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.
+Pointer lifetimes are guaranteed not to be shortened in future minor or patch releases.
+GLFW event processing and object destruction are not reentrant. This means that the following functions must not be called from any callback function:
+These functions may be made reentrant in future minor or patch releases, but functions not on this list will not be made non-reentrant.
+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.
+The reference documentation for every GLFW function states whether it is limited to the main thread.
+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.
+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.
+The error code and description may be queried from any thread.
+Empty events may be posted from any thread.
+ +The window user pointer and close flag may be read and written from any thread, but this is not synchronized by GLFW.
+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.
+The raw timer functions may be called from any thread.
+ +The regular timer may be used from any thread, but reading and writing the timer offset is not synchronized by GLFW.
+ +Library version information may be queried from any thread.
+ +All Vulkan related functions may be called from any thread.
+GLFW uses synchronization objects internally only to manage the per-thread context and error states. Additional synchronization is left to the application.
+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.
+GLFW uses Semantic Versioning. 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.
+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.
+Undocumented behavior, i.e. behavior that is not described in the documentation, may change at any time until it is documented.
+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.
+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.
+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.
+The compile-time version of GLFW is provided by the GLFW header with the GLFW_VERSION_MAJOR
, GLFW_VERSION_MINOR
and GLFW_VERSION_REVISION
macros.
The run-time version can be retrieved with glfwGetVersion, a function that may be called regardless of whether GLFW is initialized.
+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.
+The version string is returned by glfwGetVersionString, a function that may be called regardless of whether GLFW is initialized.
+Do not use the version string to parse the GLFW library version. The glfwGetVersion function already provides the version of the running library binary.
+The format of the string is as follows:
For example, when compiling GLFW 3.0 with MinGW using the Win32 and WGL back ends, the version string may look something like this:
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/jquery.js b/deps/glfw-3.3.8/docs/html/jquery.js new file mode 100644 index 0000000..c9ed3d9 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/menu.js b/deps/glfw-3.3.8/docs/html/menu.js new file mode 100644 index 0000000..818b859 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/menu.js @@ -0,0 +1,135 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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: + + The above copyright notice and this permission notice shall be included in all copies or + substantial portions of the Software. + + 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) { + var result=''; + if ('children' in data) { + result+='Context reference | Functions and types related to OpenGL and OpenGL ES contexts |
▼Initialization, version and error reference | Functions and types related to initialization and error handling |
Error codes | Error codes |
▼Input reference | Functions and types related to input handling |
Gamepad axes | Gamepad axes |
Gamepad buttons | Gamepad buttons |
Joystick hat states | Joystick hat states |
Joysticks | Joystick IDs |
Keyboard keys | Keyboard key IDs |
Modifier key flags | Modifier key flags |
Mouse buttons | Mouse button IDs |
Standard cursor shapes | Standard system cursor shapes |
Monitor reference | Functions and types related to monitors |
Native access | Functions related to accessing native handles |
Vulkan support reference | Functions and types related to Vulkan |
Window reference | Functions and types related to windows |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/monitor_8dox.html b/deps/glfw-3.3.8/docs/html/monitor_8dox.html new file mode 100644 index 0000000..82aff6b --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/monitor_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/monitor_guide.html b/deps/glfw-3.3.8/docs/html/monitor_guide.html new file mode 100644 index 0000000..76f47a5 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/monitor_guide.html @@ -0,0 +1,222 @@ + + + + + + + +This guide introduces the monitor related functions of GLFW. For details on a specific function in this category, see the Monitor reference. There are also guides for the other areas of GLFW.
+ +A monitor object represents a currently connected monitor and is represented as a pointer to the opaque type GLFWmonitor. 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 terminated.
+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.
+The virtual position of a monitor is in screen coordinates and, together with the current video mode, describes the viewports that the connected monitors provide into the virtual desktop that spans them.
+To see how GLFW views your monitor setup and its available video modes, run the monitors
test program.
The primary monitor is returned by glfwGetPrimaryMonitor. It is the user's preferred monitor and is usually the one with global UI elements like task bar or menu bar.
+You can retrieve all currently connected monitors with glfwGetMonitors. See the reference documentation for the lifetime of the returned array.
+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.
+If you wish to be notified when a monitor is connected or disconnected, set a monitor callback.
+The callback function receives the handle for the monitor that has been connected or disconnected and the event that occurred.
+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 glfwGetMonitorName and glfwGetMonitorUserPointer will return useful values for a disconnected monitor and only before the monitor callback returns.
+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.
+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.
+Video modes are represented as GLFWvidmode structures. You can get an array of the video modes supported by a monitor with glfwGetVideoModes. See the reference documentation for the lifetime of the returned array.
+To get the current video mode of a monitor call glfwGetVideoMode. See the reference documentation for the lifetime of the returned pointer.
+The resolution of a video mode is specified in screen coordinates, not pixels.
+The physical size of a monitor in millimetres, or an estimation of it, can be retrieved with glfwGetMonitorPhysicalSize. This has no relation to its current resolution, i.e. the width and height of its current video mode.
+While this can be used to calculate the raw DPI of a monitor, this is often not useful. Instead use the monitor content scale and window content scale to scale your content.
+The content scale for a monitor can be retrieved with glfwGetMonitorContentScale.
+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.
+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.
+The position of the monitor on the virtual desktop, in screen coordinates, can be retrieved with glfwGetMonitorPos.
+The area of a monitor not occupied by global task bars or menu bars is the work area. This is specified in screen coordinates and can be retrieved with glfwGetMonitorWorkarea.
+The human-readable, UTF-8 encoded name of a monitor is returned by glfwGetMonitorName. See the reference documentation for the lifetime of the returned string.
+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.
+Each monitor has a user pointer that can be set with glfwSetMonitorUserPointer and queried with glfwGetMonitorUserPointer. 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.
+The initial value of the pointer is NULL
.
The gamma ramp of a monitor can be set with glfwSetGammaRamp, which accepts a monitor handle and a pointer to a GLFWgammaramp structure.
+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.
+It is recommended that your gamma ramp have the same size as the current gamma ramp for that monitor.
+The current gamma ramp for a monitor is returned by glfwGetGammaRamp. See the reference documentation for the lifetime of the returned structure.
+If you wish to set a regular gamma ramp, you can have GLFW calculate it for you from the desired exponent with glfwSetGamma, which in turn calls glfwSetGammaRamp with the resulting ramp.
+To experiment with gamma correction via the glfwSetGamma function, run the gamma
test program.
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/moving_8dox.html b/deps/glfw-3.3.8/docs/html/moving_8dox.html new file mode 100644 index 0000000..4d3a225 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/moving_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/moving_guide.html b/deps/glfw-3.3.8/docs/html/moving_guide.html new file mode 100644 index 0000000..d8b1a2b --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/moving_guide.html @@ -0,0 +1,367 @@ + + + + + + + +This is a transition guide for moving from GLFW 2 to 3. It describes what has changed or been removed, but does not include new features 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.
+The GLFW 3 header is named glfw3.h and moved to the GLFW
directory, to avoid collisions with the headers of other major versions. Similarly, the GLFW 3 library is named glfw3,
except when it's installed as a shared library on Unix-like systems, where it uses the soname libglfw.so.3
.
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 C++11 and C11, both of which are gaining traction.
+If you wish to use the C++11 or C11 facilities but your compiler doesn't yet support them, see the TinyThread++ and TinyCThread 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.
+However, GLFW 3 has better support for use from multiple threads 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.
+glfwSleep
, glfwCreateThread
, glfwDestroyThread
, glfwWaitThread
, glfwGetThreadID
, glfwCreateMutex
, glfwDestroyMutex
, glfwLockMutex
, glfwUnlockMutex
, glfwCreateCond
, glfwDestroyCond
, glfwWaitCond
, glfwSignalCond
, glfwBroadcastCond
and glfwGetNumberOfProcessors
.GLFWthreadfun
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.
+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.
+glfwReadImage
, glfwReadMemoryImage
, glfwFreeImage
, glfwLoadTexture2D
, glfwLoadMemoryTexture2D
and glfwLoadTextureImage2D
.The GLFWCALL
macro, which made callback functions use __stdcall 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 GLFWCALL
. It also simplifies the creation of DLLs and DLL link libraries, as there's no need to explicitly disable @n
entry point suffixes.
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 glfwCreateWindow (formerly glfwOpenWindow
). Window handles are pointers to the opaque type GLFWwindow.
GLFW 3 provides support for multiple monitors. To request a full screen mode window, instead of passing GLFW_FULLSCREEN
you specify which monitor you wish the window to use. The glfwGetPrimaryMonitor function returns the monitor that GLFW 2 would have selected, but there are many other monitor functions. Monitor handles are pointers to the opaque type GLFWmonitor.
glfwOpenWindow
have been turned into window hints, but as they have been given sane defaults you rarely need to set these hints.GLFW 3 does not automatically poll for events in glfwSwapBuffers, meaning you need to call glfwPollEvents or glfwWaitEvents yourself. Unlike buffer swap, which acts on a single window, the event processing functions act on all windows at once.
+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.
+This means that you need to call glfwMakeContextCurrent after creating a window before you can call any OpenGL functions.
+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 glViewport
needs to use pixels. Therefore, framebuffer size functions have been added. You can retrieve the size of the framebuffer of a window with glfwGetFramebufferSize function. A framebuffer size callback has also been added, which can be set with glfwSetFramebufferSizeCallback.
The GLFW_OPENED
window parameter has been removed. As long as the window has not been destroyed, whether through glfwDestroyWindow or glfwTerminate, the window is "open".
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 GLFW_TRUE
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.
You can query the close flag at any time with glfwWindowShouldClose and set it at any time with glfwSetWindowShouldClose.
+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 glfwDestroyWindow from the close callback (or any other window related callback).
+GLFW_FALSE
, 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.The glfwOpenWindowHint
function has been renamed to glfwWindowHint.
Window hints are no longer reset to their default values on window creation, but instead retain their values until modified by glfwWindowHint or glfwDefaultWindowHints, or until the library is terminated and re-initialized.
+Video mode enumeration is now per-monitor. The glfwGetVideoModes function now returns all available modes for a specific monitor instead of requiring you to guess how large an array you need. The glfwGetDesktopMode
function, which had poorly defined behavior, has been replaced by glfwGetVideoMode, which returns the current mode of a monitor.
The action parameter of the character callback 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 ü.
+The glfwGetMousePos
function has been renamed to glfwGetCursorPos, glfwSetMousePos
to glfwSetCursorPos and glfwSetMousePosCallback
to glfwSetCursorPosCallback.
The cursor position is now double
instead of int
, 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.
GLFW 3 only allows you to position the cursor within a window using glfwSetCursorPos (formerly glfwSetMousePos
) when that window is active. Unless the window is active, the function fails silently.
The glfwGetMouseWheel
function has been removed. Scrolling is the input of offsets and has no absolute position. The mouse wheel callback has been replaced by a scroll callback that receives two-dimensional floating point scroll offsets. This allows you to receive precise scroll data from for example modern touchpads.
glfwGetMouseWheel
The GLFW_KEY_REPEAT
enable has been removed and key repeat is always enabled for both keys and characters. A new key action, GLFW_REPEAT
, has been added to allow the key callback to distinguish an initial key press from a repeat. Note that glfwGetKey still returns only GLFW_PRESS
or GLFW_RELEASE
.
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) GLFW_KEY_LEFT_BRACKET
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.
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.
+GLFW 3 has key tokens for all keys on a standard 105 key keyboard, so instead of having to remember whether to check for a
or A
, you now check for GLFW_KEY_A.
The glfwGetJoystickPos
function has been renamed to glfwGetJoystickAxes.
The glfwGetJoystickParam
function and the GLFW_PRESENT
, GLFW_AXES
and GLFW_BUTTONS
tokens have been replaced by the glfwJoystickPresent function as well as axis and button counts returned by the glfwGetJoystickAxes and glfwGetJoystickButtons functions.
The Win32 port of GLFW 3 will not compile in MBCS mode. 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.
+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.
+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.
+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.
+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.
+GLFW 3 does not register glfwTerminate with atexit
at initialization, because exit
calls registered functions from the calling thread and while it is permitted to call exit
from any thread, glfwTerminate must only be called from the main thread.
To release all resources allocated by GLFW, you should call glfwTerminate yourself, from the main thread, before the program terminates. Note that this destroys all windows not already destroyed with glfwDestroyWindow, invalidating any window handles you may still have.
+GLFW 3 does not by default include the GLU header and GLU itself has been deprecated by Khronos. New projects should not use GLU, 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 GLFW_INCLUDE_GLU before the inclusion of the GLFW header.
+There are many libraries that offer replacements for the functionality offered by GLU. For the matrix helper functions, see math libraries like GLM (for C++), linmath.h (for C) and others. For the tessellation functions, see for example libtess2.
+GLFW 2 | GLFW 3 | Notes |
---|---|---|
glfwOpenWindow | glfwCreateWindow | All channel bit depths are now hints |
glfwCloseWindow | glfwDestroyWindow | |
glfwOpenWindowHint | glfwWindowHint | Now accepts all GLFW_*_BITS tokens |
glfwEnable | glfwSetInputMode | |
glfwDisable | glfwSetInputMode | |
glfwGetMousePos | glfwGetCursorPos | |
glfwSetMousePos | glfwSetCursorPos | |
glfwSetMousePosCallback | glfwSetCursorPosCallback | |
glfwSetMouseWheelCallback | glfwSetScrollCallback | Accepts two-dimensional scroll offsets as doubles |
glfwGetJoystickPos | glfwGetJoystickAxes | |
glfwGetWindowParam | glfwGetWindowAttrib | |
glfwGetGLVersion | glfwGetWindowAttrib | Use GLFW_CONTEXT_VERSION_MAJOR , GLFW_CONTEXT_VERSION_MINOR and GLFW_CONTEXT_REVISION |
glfwGetDesktopMode | glfwGetVideoMode | Returns the current mode of a monitor |
glfwGetJoystickParam | glfwJoystickPresent | The axis and button counts are provided by glfwGetJoystickAxes and glfwGetJoystickButtons |
GLFW 2 | GLFW 3 | Notes |
---|---|---|
GLFWmousewheelfun | GLFWscrollfun | |
GLFWmouseposfun | GLFWcursorposfun |
GLFW 2 | GLFW 3 | Notes |
---|---|---|
GLFW_OPENGL_VERSION_MAJOR | GLFW_CONTEXT_VERSION_MAJOR | Renamed as it applies to OpenGL ES as well |
GLFW_OPENGL_VERSION_MINOR | GLFW_CONTEXT_VERSION_MINOR | Renamed as it applies to OpenGL ES as well |
GLFW_FSAA_SAMPLES | GLFW_SAMPLES | Renamed to match the OpenGL API |
GLFW_ACTIVE | GLFW_FOCUSED | Renamed to match the window focus callback |
GLFW_WINDOW_NO_RESIZE | GLFW_RESIZABLE | The default has been inverted |
GLFW_MOUSE_CURSOR | GLFW_CURSOR | Used with glfwSetInputMode |
GLFW_KEY_ESC | GLFW_KEY_ESCAPE | |
GLFW_KEY_DEL | GLFW_KEY_DELETE | |
GLFW_KEY_PAGEUP | GLFW_KEY_PAGE_UP | |
GLFW_KEY_PAGEDOWN | GLFW_KEY_PAGE_DOWN | |
GLFW_KEY_KP_NUM_LOCK | GLFW_KEY_NUM_LOCK | |
GLFW_KEY_LCTRL | GLFW_KEY_LEFT_CONTROL | |
GLFW_KEY_LSHIFT | GLFW_KEY_LEFT_SHIFT | |
GLFW_KEY_LALT | GLFW_KEY_LEFT_ALT | |
GLFW_KEY_LSUPER | GLFW_KEY_LEFT_SUPER | |
GLFW_KEY_RCTRL | GLFW_KEY_RIGHT_CONTROL | |
GLFW_KEY_RSHIFT | GLFW_KEY_RIGHT_SHIFT | |
GLFW_KEY_RALT | GLFW_KEY_RIGHT_ALT | |
GLFW_KEY_RSUPER | GLFW_KEY_RIGHT_SUPER |
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/nav_f.png b/deps/glfw-3.3.8/docs/html/nav_f.png new file mode 100644 index 0000000..72a58a5 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/nav_f.png differ diff --git a/deps/glfw-3.3.8/docs/html/nav_g.png b/deps/glfw-3.3.8/docs/html/nav_g.png new file mode 100644 index 0000000..2093a23 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/nav_g.png differ diff --git a/deps/glfw-3.3.8/docs/html/nav_h.png b/deps/glfw-3.3.8/docs/html/nav_h.png new file mode 100644 index 0000000..33389b1 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/nav_h.png differ diff --git a/deps/glfw-3.3.8/docs/html/news.html b/deps/glfw-3.3.8/docs/html/news.html new file mode 100644 index 0000000..0bf7e28 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/news.html @@ -0,0 +1,614 @@ + + + + + + + +These are the release notes for version 3.3. For a more detailed view including all fixed bugs see the version history.
+Please review the caveats, deprecations and removals if your project was written against an earlier version of GLFW 3.
+GLFW can now remap game controllers to a standard Xbox-like layout using a built-in copy of SDL_GameControllerDB. Call glfwJoystickIsGamepad to check if a joystick has a mapping, glfwGetGamepadState to retrieve its input state, glfwUpdateGamepadMappings to add newer mappings and glfwGetGamepadName and glfwGetJoystickGUID for mapping related information.
+For more information see Gamepad input.
+GLFW now supports MoltenVK, a Vulkan implementation on top of the Metal API, and its VK_MVK_macos_surface
window surface creation extension. MoltenVK is included in the macOS Vulkan SDK.
For more information see Vulkan guide.
+GLFW now provides content scales for windows and monitors, i.e. the ratio between their current DPI and the platform's default DPI, with glfwGetWindowContentScale and glfwGetMonitorContentScale.
+Changes of the content scale of a window can be received with the window content scale callback, set with glfwSetWindowContentScaleCallback.
+The GLFW_SCALE_TO_MONITOR window hint enables automatic resizing of a window by the content scale of the monitor it is placed, on platforms like Windows where this is necessary. This takes effect both on creation and when the window is moved between monitors. It is related to but different from GLFW_COCOA_RETINA_FRAMEBUFFER.
+For more information see Window content scale.
+GLFW now supports changing the GLFW_DECORATED, GLFW_RESIZABLE, GLFW_FLOATING, GLFW_AUTO_ICONIFY and GLFW_FOCUS_ON_SHOW attributes for existing windows with glfwSetWindowAttrib.
+For more information see Window attributes.
+GLFW now supports raw (unscaled and unaccelerated) mouse motion in disabled cursor mode with the GLFW_RAW_MOUSE_MOTION input mode. Raw mouse motion input is not yet implemented on macOS. Call glfwRawMouseMotionSupported to check if GLFW can provide raw mouse motion on the current system.
+For more information see Raw mouse motion.
+GLFW can now return the state of hats (i.e. POVs or D-pads) of a joystick with glfwGetJoystickHats. For compatibility, hats are also exposed as buttons. This can be disabled with the GLFW_JOYSTICK_HAT_BUTTONS initialization hint.
+For more information see Joystick hat states.
+GLFW now supports querying the last error code for the calling thread and its human-readable description with glfwGetError. This can be used instead of or together with the error callback.
+For more information see Error handling.
+GLFW now supports setting library initialization hints with glfwInitHint. These must be set before initialization to take effect. Some of these hints are platform specific but are safe to set on any platform.
+For more information see Initialization hints.
+GLFW now supports requesting user attention with glfwRequestWindowAttention. Where possible this calls attention to the specified window. On platforms like macOS it calls attention to the whole application.
+For more information see Window attention request.
+GLFW now supports notifying the application that the window has been maximized glfwSetWindowMaximizeCallback. This is called both when the window was maximized by the user and when it was done with glfwMaximizeWindow.
+For more information see Window maximization.
+GLFW now supports querying the work area of a monitor, i.e. the area not occupied by task bars or global menu bars, with glfwGetMonitorWorkarea. On platforms that lack this concept, the whole area of the monitor is returned.
+For more information see Work area.
+GLFW now supports the creation of windows with transparent framebuffers on systems with desktop compositing enabled with the GLFW_TRANSPARENT_FRAMEBUFFER window hint and attribute. This hint must be set before window creation and leaves any window decorations opaque.
+GLFW now also supports whole window transparency with glfwGetWindowOpacity and glfwSetWindowOpacity. This value controls the opacity of the whole window including decorations and unlike framebuffer transparency can be changed at any time after window creation.
+For more information see Window transparency.
+GLFW now supports querying the platform dependent scancode of any physical key with glfwGetKeyScancode.
+For more information see Key input.
+GLFW now supports controlling whether the cursor is centered over newly created full screen windows with the GLFW_CENTER_CURSOR window hint. It is enabled by default.
+GLFW now supports polling whether the cursor is hovering over the window content area with the GLFW_HOVERED window attribute. This attribute corresponds to the cursor enter/leave event.
+GLFW now has the GLFW_FOCUS_ON_SHOW window hint and attribute for controlling whether a window gets input focus when shown. It is enabled by default. It applies both when creating an visible window with glfwCreateWindow and when showing it with glfwShowWindow.
+This is a workaround for GLFW 3.0 lacking glfwFocusWindow and will be corrected in the next major version.
+For more information see Window visibility.
+GLFW now supports setting and querying user pointers for connected monitors and joysticks with glfwSetMonitorUserPointer, glfwGetMonitorUserPointer, glfwSetJoystickUserPointer and glfwGetJoystickUserPointer.
+For more information see User pointer and Joystick user pointer.
+GLFW will now load a MainMenu.nib
file if found in the Contents/Resources
directory of the application bundle, as a way to replace the GLFW menu bar without recompiling GLFW. This behavior can be disabled with the GLFW_COCOA_MENUBAR initialization hint.
The context hint GLFW_SRGB_CAPABLE now supports OpenGL ES via WGL_EXT_colorspace
, the context hint GLFW_CONTEXT_NO_ERROR now supports WGL_ARB_create_context_no_error
and GLX_ARB_create_context_no_error
, the context hint GLFW_CONTEXT_RELEASE_BEHAVIOR now supports EGL_KHR_context_flush_control
and glfwGetProcAddress now supports EGL_KHR_get_all_proc_addresses
.
GLFW now supports creating off-screen OpenGL contexts using OSMesa by setting GLFW_CONTEXT_CREATION_API to GLFW_OSMESA_CONTEXT_API
. Native access function have been added to retrieve the OSMesa color and depth buffers.
There is also a new null backend that uses OSMesa as its native context creation API, intended for automated testing. This backend does not provide input.
+The way joystick elements are arranged have changed to match SDL2 in order to support SDL_GameControllerDB mappings. The layout of joysticks may change again if required for compatibility with SDL2. If you need a known and stable layout for game controllers, see if you can switch to Gamepad input.
+Existing code that depends on a specific joystick layout will likely have to be updated.
+The glfwWaitEvents and glfwWaitEventsTimeout functions no longer need a window to be created to wait for events. Before version 3.3 these functions would return immediately if there were no user-created windows. On platforms where only windows can receive events, an internal helper window is used.
+Existing code that depends on the earlier behavior will likely have to be updated.
+The documentation for versions before 3.3 stated that a gamma ramp size of 256 would always be accepted. This was never the case on X11 and could lead to artifacts on macOS. The glfwSetGamma function has been updated to always generate a ramp of the correct size.
+Existing code that hardcodes a size of 256 should be updated to use the size of the current ramp of a monitor when setting a new ramp for that monitor.
+GLFW no longer applies any deadzone to the input state received from the XInput API. This was never done for any other platform joystick API so this change makes the behavior more consistent but you will need to apply your own deadzone if desired.
+GLFW now supports reading clipboard text via the INCR
method, which removes the limit on how much text can be read with glfwGetClipboardString. However, writing via this method is not yet supported, so you may not be able to write a very large string with glfwSetClipboardString even if you read it from the clipboard earlier.
The exact size limit for writing to the clipboard is negotiated with each receiving application but is at least several tens of kilobytes. Note that only the read limit has changed. Any string that could be written before still can be.
+GLFW now loads all X11 extension libraries at initialization. The only X11 library you need to link against is libX11
. The header files for the extension libraries are still required for compilation.
Existing projects and makefiles that link GLFW directly against the extension libraries should still build correctly but will add these libraries as load-time dependencies.
+The minimum CMake version has been raised from 2.8.12 to 3.0. This is only a requirement of the GLFW CMake files. The GLFW source files do not depend on CMake.
+GLFW no longer supports framebuffer transparency enabled via GLFW_TRANSPARENT_FRAMEBUFFER on Windows 7 if DWM transparency is off (the Transparency setting under Personalization > Window Color).
+Starting with GLFW 3.3.7, events posted with glfwPostEmptyEvent now use a separate unnamed pipe instead of sending an X11 client event to the helper window.
+The character with modifiers callback set with glfwSetCharModsCallback has been deprecated and should if possible not be used.
+Existing code should still work but further bug fixes will likely not be made. The callback will be removed in the next major version.
+The window parameter of the clipboard functions glfwGetClipboardString and glfwSetClipboardString has been deprecated and is no longer used on any platform. On platforms where the clipboard must be owned by a specific window, an internal helper window is used.
+Existing code should still work unless it depends on a specific window owning the clipboard. New code may pass NULL
as the window argument. The parameter will be removed in a future release.
The GLFW_USE_RETINA
, GLFW_USE_CHDIR
and GLFW_USE_MENUBAR
CMake options and the _GLFW_USE_RETINA
, _GLFW_USE_CHDIR
and _GLFW_USE_MENUBAR
compile-time macros have been removed.
These options and macros are replaced by the window hint GLFW_COCOA_RETINA_FRAMEBUFFER and the init hints GLFW_COCOA_CHDIR_RESOURCES and GLFW_COCOA_MENUBAR.
+Existing projects and makefiles that set these options or define these macros during compilation of GLFW will still build but it will have no effect and the default behaviors will be used.
+The GLFW test programs that previously depended on the LunarG Vulkan SDK now instead uses a Vulkan loader generated by glad2. This means the GLFW CMake files no longer look for the Vulkan SDK.
+Existing CMake projects that depended on the Vulkan SDK cache variables from GLFW will need to call find_package(Vulkan)
themselves. CMake 3.7 and later already comes with a Vulkan find module similar to the one GLFW previously included.
The LIB_SUFFIX
CMake option has been removed. GLFW now uses the GNUInstallDirs CMake package to handle platform specific details like the library directory suffix and the LIB_SUFFIX
CMake option has been removed.
Existing projects and makefiles that set the LIB_SUFFIX
option will use the suffix chosen by the GNUInstallDirs package and the option will be ignored.
Support for the wl_shell protocol has been removed and GLFW now only supports the XDG-Shell protocol. If your Wayland compositor does not support XDG-Shell then GLFW will fail to initialize.
+The experimental Mir support has been completely removed as the Mir project has implemented support for the Wayland protocol and is recommending that applications use that instead.
+Existing projects and makefiles that select Mir when compiling GLFW will fail. Use Wayland or X11 instead.
+These are the release notes for version 3.2. For a more detailed view including all fixed bugs see the version history.
+GLFW now supports basic integration with Vulkan with glfwVulkanSupported, glfwGetRequiredInstanceExtensions, glfwGetInstanceProcAddress, glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface. Vulkan header inclusion can be selected with GLFW_INCLUDE_VULKAN.
+GLFW now supports switching between windowed and full screen modes and updating the monitor and desired resolution and refresh rate of full screen windows with glfwSetWindowMonitor.
+GLFW now supports window maximization with glfwMaximizeWindow and the GLFW_MAXIMIZED window hint and attribute.
+GLFW now supports giving windows input focus with glfwFocusWindow.
+GLFW now supports setting both absolute and relative window size limits with glfwSetWindowSizeLimits and glfwSetWindowAspectRatio.
+GLFW now supports querying the localized name of printable keys with glfwGetKeyName, either by key token or by scancode.
+GLFW now supports waiting for events for a set amount of time with glfwWaitEventsTimeout.
+GLFW now supports setting the icon of windows with glfwSetWindowIcon.
+GLFW now supports raw timer values with glfwGetTimerValue and glfwGetTimerFrequency.
+GLFW now supports notifying when a joystick has been connected or disconnected with glfwSetJoystickCallback.
+GLFW now supports creating windows without a OpenGL or OpenGL ES context by setting the GLFW_CLIENT_API hint to GLFW_NO_API
.
GLFW now supports selecting and querying the context creation API at run-time with the GLFW_CONTEXT_CREATION_API hint and attribute.
+GLFW now supports creating and querying OpenGL and OpenGL ES contexts that do not emit errors with the GLFW_CONTEXT_NO_ERROR hint, provided the machine supports the GL_KHR_no_error
extension.
GLFW now supports being used as a config-file package from other projects for easy linking with the library and its dependencies.
+These are the release notes for version 3.1. For a more detailed view including all fixed bugs see the version history.
+GLFW now supports creating and setting both custom cursor images and standard cursor shapes. They are created with glfwCreateCursor or glfwCreateStandardCursor, set with glfwSetCursor and destroyed with glfwDestroyCursor.
+GLFW now provides a callback for receiving the paths of files and directories dropped onto GLFW windows. The callback is set with glfwSetDropCallback.
+GLFW now provides the glfwPostEmptyEvent function for posting an empty event from another thread to the main thread event queue, causing glfwWaitEvents to return.
+GLFW now supports querying the size, on each side, of the frame around the content area of a window, with glfwGetWindowFrameSize.
+GLFW now supports disabling auto-iconification of full screen windows with the GLFW_AUTO_ICONIFY window hint. This is intended for people building multi-monitor installations, where you need windows to stay in full screen despite losing input focus.
+GLFW now supports floating windows, also called topmost or always on top, for easier debugging with the GLFW_FLOATING window hint and attribute.
+GLFW now supports preventing a windowed mode window from gaining input focus on creation, with the GLFW_FOCUSED window hint.
+GLFW now queries the window input focus, visibility and iconification attributes and the cursor position directly instead of returning cached data.
+GLFW now provides a callback for character events with modifier key bits. The callback is set with glfwSetCharModsCallback. Unlike the regular character callback, this will report character events that will not result in a character being input, for example if the Control key is held down.
+GLFW now supports the creation of single buffered windows, with the GLFW_DOUBLEBUFFER hint.
+GLFW now includes the extension header appropriate for the chosen OpenGL or OpenGL ES header when GLFW_INCLUDE_GLEXT is defined. GLFW does not provide these headers. They must be provided by your development environment or your OpenGL or OpenGL ES SDK.
+GLFW now supports controlling and querying whether the pipeline is flushed when a context is made non-current, with the GLFW_CONTEXT_RELEASE_BEHAVIOR hint and attribute, provided the machine supports the GL_KHR_context_flush_control
extension.
GLFW now has an experimental Wayland display protocol backend that can be selected on Linux with a CMake option.
+GLFW now has an experimental Mir display server backend that can be selected on Linux with a CMake option.
+These are the release notes for version 3.0. For a more detailed view including all fixed bugs see the version history.
+GLFW now uses the CMake build system instead of the various makefiles and project files used by earlier versions. CMake is available for all platforms supported by GLFW, is present in most package systems and can generate makefiles and/or project files for most popular development environments.
+For more information on how to use CMake, see the CMake manual.
+GLFW now supports the creation of multiple windows, each with their own OpenGL or OpenGL ES context, and all window functions now take a window handle. Event callbacks are now per-window and are provided with the handle of the window that received the event. The glfwMakeContextCurrent function has been added to select which context is current on a given thread.
+GLFW now explicitly supports multiple monitors. They can be enumerated with glfwGetMonitors, queried with glfwGetVideoModes, glfwGetMonitorPos, glfwGetMonitorName and glfwGetMonitorPhysicalSize, and specified at window creation to make the newly created window full screen on that specific monitor.
+All string arguments to GLFW functions and all strings returned by GLFW now use the UTF-8 encoding. This includes the window title, error string, clipboard text, monitor and joystick names as well as the extension function arguments (as ASCII is a subset of UTF-8).
+GLFW now supports reading and writing plain text to and from the system clipboard, with the glfwGetClipboardString and glfwSetClipboardString functions.
+GLFW now supports setting and reading back the gamma ramp of monitors, with the glfwGetGammaRamp and glfwSetGammaRamp functions. There is also glfwSetGamma, which generates a ramp from a gamma value and then sets it.
+GLFW now supports the creation of OpenGL ES contexts, by setting the GLFW_CLIENT_API hint to GLFW_OPENGL_ES_API
, where creation of such contexts are supported. Note that GLFW does not implement OpenGL ES, so your driver must provide support in a way usable by GLFW. Modern Nvidia and Intel drivers support creation of OpenGL ES context using the GLX and WGL APIs, while AMD provides an EGL implementation instead.
GLFW now has an experimental EGL context creation back end that can be selected through CMake options.
+GLFW now supports high-DPI monitors on both Windows and macOS, giving windows full resolution framebuffers where other UI elements are scaled up. To achieve this, glfwGetFramebufferSize and glfwSetFramebufferSizeCallback have been added. These work with pixels, while the rest of the GLFW API works with screen coordinates. This is important as OpenGL uses pixels, not screen coordinates.
+GLFW now has an error callback, which can provide your application with much more detailed diagnostics than was previously possible. The callback is passed an error code and a description string.
+Each window now has a user-defined pointer, retrieved with glfwGetWindowUserPointer and set with glfwSetWindowUserPointer, to make it easier to integrate GLFW into C++ code.
+Each window now has a callback for iconification and restoration events, which is set with glfwSetWindowIconifyCallback.
+Each window now has a callback for position events, which is set with glfwSetWindowPosCallback.
+The position of a window can now be retrieved using glfwGetWindowPos.
+Each windows now has a callback for focus events, which is set with glfwSetWindowFocusCallback.
+Each window now has a callback for when the mouse cursor enters or leaves its content area, which is set with glfwSetCursorEnterCallback.
+The title of a window is now specified at creation time, as one of the arguments to glfwCreateWindow.
+Windows can now be hidden with glfwHideWindow, shown using glfwShowWindow and created initially hidden with the GLFW_VISIBLE window hint and attribute. This allows for off-screen rendering in a way compatible with most drivers, as well as moving a window to a specific position before showing it.
+Windowed mode windows can now be created without decorations, e.g. things like a frame, a title bar, with the GLFW_DECORATED window hint and attribute. This allows for the creation of things like splash screens.
+Modifier key bit mask parameters have been added to the mouse button and key callbacks.
+A scancode parameter has been added to the key callback. Keys that don't have a key token still get passed on with the key parameter set to GLFW_KEY_UNKNOWN
. These scancodes will vary between machines and are intended to be used for key bindings.
The name of a joystick can now be retrieved using glfwGetJoystickName.
+You are reading it.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/news_8dox.html b/deps/glfw-3.3.8/docs/html/news_8dox.html new file mode 100644 index 0000000..e200170 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/news_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/open.png b/deps/glfw-3.3.8/docs/html/open.png new file mode 100644 index 0000000..30f75c7 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/open.png differ diff --git a/deps/glfw-3.3.8/docs/html/pages.html b/deps/glfw-3.3.8/docs/html/pages.html new file mode 100644 index 0000000..6f2d4eb --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/pages.html @@ -0,0 +1,92 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/quick_8dox.html b/deps/glfw-3.3.8/docs/html/quick_8dox.html new file mode 100644 index 0000000..f65bd4c --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/quick_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/quick_guide.html b/deps/glfw-3.3.8/docs/html/quick_guide.html new file mode 100644 index 0000000..6a31489 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/quick_guide.html @@ -0,0 +1,391 @@ + + + + + + + +This guide takes you through writing a simple application using GLFW 3. The application will create a window and OpenGL context, render a rotating triangle and exit when the user closes the window or presses Escape. This guide will introduce a few of the most commonly used functions, but there are many more.
+This guide assumes no experience with earlier versions of GLFW. If you have used GLFW 2 in the past, read Moving from GLFW 2 to 3, as some functions behave differently in GLFW 3.
+In the source files of your application where you use GLFW, you need to include its header file.
+This header provides all the constants, types and function prototypes of the GLFW API.
+By default it also includes the OpenGL header from your development environment. On some platforms this header only supports older versions of OpenGL. The most extreme case is Windows, where it typically only supports OpenGL 1.2.
+Most programs will instead use an extension loader library and include its header. This example uses files generated by glad. The GLFW header can detect most such headers if they are included first and will then not include the one from your development environment.
+To make sure there will be no header conflicts, you can define GLFW_INCLUDE_NONE before the GLFW header to explicitly disable inclusion of the development environment header. This also allows the two headers to be included in any order.
+Before you can use most GLFW functions, the library must be initialized. On successful initialization, GLFW_TRUE
is returned. If an error occurred, GLFW_FALSE
is returned.
Note that GLFW_TRUE
and GLFW_FALSE
are and will always be one and zero.
When you are done using GLFW, typically just before the application exits, you need to terminate GLFW.
+This destroys any remaining windows and releases any other resources allocated by GLFW. After this call, you must initialize GLFW again before using any GLFW functions that require it.
+Most events are reported through callbacks, whether it's a key being pressed, a GLFW window being moved, or an error occurring. Callbacks are C functions (or C++ static methods) that are called by GLFW with arguments describing the event.
+In case a GLFW function fails, an error is reported to the GLFW error callback. You can receive these reports with an error callback. This function must have the signature below but may do anything permitted in other callbacks.
+Callback functions must be set, so GLFW knows to call them. The function to set the error callback is one of the few GLFW functions that may be called before initialization, which lets you be notified of errors both during and after initialization.
+The window and its OpenGL context are created with a single call to glfwCreateWindow, which returns a handle to the created combined window and context object
+This creates a 640 by 480 windowed mode window with an OpenGL context. If window or OpenGL context creation fails, NULL
will be returned. You should always check the return value. While window creation rarely fails, context creation depends on properly installed drivers and may fail even on machines with the necessary hardware.
By default, the OpenGL context GLFW creates may have any version. You can require a minimum OpenGL version by setting the GLFW_CONTEXT_VERSION_MAJOR
and GLFW_CONTEXT_VERSION_MINOR
hints before creation. If the required minimum version is not supported on the machine, context (and window) creation fails.
The window handle is passed to all window related functions and is provided to along to all window related callbacks, so they can tell which window received the event.
+When a window and context is no longer needed, destroy it.
+Once this function is called, no more events will be delivered for that window and its handle becomes invalid.
+Before you can use the OpenGL API, you must have a current OpenGL context.
+The context will remain current until you make another context current or until the window owning the current context is destroyed.
+If you are using an extension loader library to access modern OpenGL then this is when to initialize it, as the loader needs a current context to load from. This example uses glad, but the same rule applies to all such libraries.
+Each window has a flag indicating whether the window should be closed.
+When the user attempts to close the window, either by pressing the close widget in the title bar or using a key combination like Alt+F4, this flag is set to 1. Note that the window isn't actually closed, so you are expected to monitor this flag and either destroy the window or give some kind of feedback to the user.
+You can be notified when the user is attempting to close the window by setting a close callback with glfwSetWindowCloseCallback. The callback will be called immediately after the close flag has been set.
+You can also set it yourself with glfwSetWindowShouldClose. This can be useful if you want to interpret other kinds of input as closing the window, like for example pressing the Escape key.
+Each window has a large number of callbacks that can be set to receive all the various kinds of events. To receive key press and release events, create a key callback function.
+The key callback, like other window related callbacks, are set per-window.
+In order for event callbacks to be called when events occur, you need to process events as described below.
+Once you have a current OpenGL context, you can use OpenGL normally. In this tutorial, a multi-colored rotating triangle will be rendered. The framebuffer size needs to be retrieved for glViewport
.
You can also set a framebuffer size callback using glfwSetFramebufferSizeCallback and be notified when the size changes.
+The details of how to render with OpenGL is outside the scope of this tutorial, but there are many excellent resources for learning modern OpenGL. Here are a few of them:
+ +These all happen to use GLFW, but OpenGL itself works the same whatever API you use to create the window and context.
+To create smooth animation, a time source is needed. GLFW provides a timer that returns the number of seconds since initialization. The time source used is the most accurate on each platform and generally has micro- or nanosecond resolution.
+GLFW windows by default use double buffering. That means that each window has two rendering buffers; a front buffer and a back buffer. The front buffer is the one being displayed and the back buffer the one you render to.
+When the entire frame has been rendered, the buffers need to be swapped with one another, so the back buffer becomes the front buffer and vice versa.
+The swap interval indicates how many frames to wait until swapping the buffers, commonly known as vsync. By default, the swap interval is zero, meaning buffer swapping will occur immediately. On fast machines, many of those frames will never be seen, as the screen is still only updated typically 60-75 times per second, so this wastes a lot of CPU and GPU cycles.
+Also, because the buffers will be swapped in the middle the screen update, leading to screen tearing.
+For these reasons, applications will typically want to set the swap interval to one. It can be set to higher values, but this is usually not recommended, because of the input latency it leads to.
+This function acts on the current context and will fail unless a context is current.
+GLFW needs to communicate regularly with the window system both in order to receive events and to show that the application hasn't locked up. Event processing must be done regularly while you have visible windows and is normally done each frame after buffer swapping.
+There are two methods for processing pending events; polling and waiting. This example will use event polling, which processes only those events that have already been received and then returns immediately.
+This is the best choice when rendering continually, like most games do. If instead you only need to update your rendering once you have received new input, glfwWaitEvents is a better choice. It waits until at least one event has been received, putting the thread to sleep in the meantime, and then processes all received events. This saves a great deal of CPU cycles and is useful for, for example, many kinds of editing tools.
+Now that you know how to initialize GLFW, create a window and poll for keyboard input, it's possible to create a simple program.
+This program creates a 640 by 480 windowed mode window and starts a loop that clears the screen, renders a triangle and processes events until the user either presses Escape or closes the window.
+The program above can be found in the source package as examples/simple.c
and is compiled along with all other examples when you build GLFW. If you built GLFW from the source package then you already have this as simple.exe
on Windows, simple
on Linux or simple.app
on macOS.
This tutorial used only a few of the many functions GLFW provides. There are guides for each of the areas covered by GLFW. Each guide will introduce all the functions for that category.
+ +You can access reference documentation for any GLFW function by clicking it and the reference for each function links to related functions and guide sections.
+The tutorial ends here. Once you have written a program that uses GLFW, you will need to compile and link it. How to do that depends on the development environment you are using and is best explained by the documentation for that environment. To learn about the details that are specific to GLFW, see Building applications.
++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/search/all_0.html b/deps/glfw-3.3.8/docs/html/search/all_0.html new file mode 100644 index 0000000..bb9e364 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/search/all_0.html @@ -0,0 +1,37 @@ + + +Gamepad input state. + More...
+ +#include <glfw3.h>
+Data Fields | |
unsigned char | buttons [15] |
float | axes [6] |
This describes the input state of a gamepad.
+unsigned char GLFWgamepadstate::buttons[15] | +
The states of each gamepad button, GLFW_PRESS
or GLFW_RELEASE
.
float GLFWgamepadstate::axes[6] | +
The states of each gamepad axis, in the range -1.0 to 1.0 inclusive.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/structGLFWgammaramp.html b/deps/glfw-3.3.8/docs/html/structGLFWgammaramp.html new file mode 100644 index 0000000..310d1cc --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/structGLFWgammaramp.html @@ -0,0 +1,165 @@ + + + + + + + +Gamma ramp. + More...
+ +#include <glfw3.h>
+Data Fields | |
unsigned short * | red |
unsigned short * | green |
unsigned short * | blue |
unsigned int | size |
This describes the gamma ramp for a monitor.
+unsigned short* GLFWgammaramp::red | +
An array of value describing the response of the red channel.
+ +unsigned short* GLFWgammaramp::green | +
An array of value describing the response of the green channel.
+ +unsigned short* GLFWgammaramp::blue | +
An array of value describing the response of the blue channel.
+ +unsigned int GLFWgammaramp::size | +
The number of elements in each array.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/structGLFWimage.html b/deps/glfw-3.3.8/docs/html/structGLFWimage.html new file mode 100644 index 0000000..672209d --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/structGLFWimage.html @@ -0,0 +1,146 @@ + + + + + + + +Image data. + More...
+ +#include <glfw3.h>
+Data Fields | |
int | width |
int | height |
unsigned char * | pixels |
This describes a single 2D image. See the documentation for each related function what the expected pixel format is.
+int GLFWimage::width | +
The width, in pixels, of this image.
+ +int GLFWimage::height | +
The height, in pixels, of this image.
+ +unsigned char* GLFWimage::pixels | +
The pixel data of this image, arranged left-to-right, top-to-bottom.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/structGLFWvidmode.html b/deps/glfw-3.3.8/docs/html/structGLFWvidmode.html new file mode 100644 index 0000000..c367377 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/structGLFWvidmode.html @@ -0,0 +1,199 @@ + + + + + + + +Video mode type. + More...
+ +#include <glfw3.h>
+Data Fields | |
int | width |
int | height |
int | redBits |
int | greenBits |
int | blueBits |
int | refreshRate |
This describes a single video mode.
+int GLFWvidmode::width | +
The width, in screen coordinates, of the video mode.
+ +int GLFWvidmode::height | +
The height, in screen coordinates, of the video mode.
+ +int GLFWvidmode::redBits | +
The bit depth of the red channel of the video mode.
+ +int GLFWvidmode::greenBits | +
The bit depth of the green channel of the video mode.
+ +int GLFWvidmode::blueBits | +
The bit depth of the blue channel of the video mode.
+ +int GLFWvidmode::refreshRate | +
The refresh rate, in Hz, of the video mode.
+ ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/sync_off.png b/deps/glfw-3.3.8/docs/html/sync_off.png new file mode 100644 index 0000000..3b443fc Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/sync_off.png differ diff --git a/deps/glfw-3.3.8/docs/html/sync_on.png b/deps/glfw-3.3.8/docs/html/sync_on.png new file mode 100644 index 0000000..e08320f Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/sync_on.png differ diff --git a/deps/glfw-3.3.8/docs/html/tab_a.png b/deps/glfw-3.3.8/docs/html/tab_a.png new file mode 100644 index 0000000..3b725c4 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/tab_a.png differ diff --git a/deps/glfw-3.3.8/docs/html/tab_b.png b/deps/glfw-3.3.8/docs/html/tab_b.png new file mode 100644 index 0000000..e2b4a86 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/tab_b.png differ diff --git a/deps/glfw-3.3.8/docs/html/tab_h.png b/deps/glfw-3.3.8/docs/html/tab_h.png new file mode 100644 index 0000000..fd5cb70 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/tab_h.png differ diff --git a/deps/glfw-3.3.8/docs/html/tab_s.png b/deps/glfw-3.3.8/docs/html/tab_s.png new file mode 100644 index 0000000..ab478c9 Binary files /dev/null and b/deps/glfw-3.3.8/docs/html/tab_s.png differ diff --git a/deps/glfw-3.3.8/docs/html/tabs.css b/deps/glfw-3.3.8/docs/html/tabs.css new file mode 100644 index 0000000..00d1c60 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:#666;-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0 1px 1px rgba(255,255,255,0.9);color:#283a5d;outline:0}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:rgba(255,255,255,0.5);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:url("tab_b.png");line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:#283a5d transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox a:hover span.sub-arrow{border-color:white transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent #555;border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:white;text-shadow:0 1px 1px black}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent white}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:url("tab_b.png")}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:#fff}} \ No newline at end of file diff --git a/deps/glfw-3.3.8/docs/html/vulkan_8dox.html b/deps/glfw-3.3.8/docs/html/vulkan_8dox.html new file mode 100644 index 0000000..a4fb097 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/vulkan_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/vulkan_guide.html b/deps/glfw-3.3.8/docs/html/vulkan_guide.html new file mode 100644 index 0000000..1159aa0 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/vulkan_guide.html @@ -0,0 +1,189 @@ + + + + + + + +This guide is intended to fill the gaps between the official Vulkan resources and the rest of the GLFW documentation and is not a replacement for either. It assumes some familiarity with Vulkan concepts like loaders, devices, queues and surfaces and leaves it to the Vulkan documentation to explain the details of Vulkan functions.
+To develop for Vulkan you should download the LunarG Vulkan SDK for your platform. Apart from headers and link libraries, they also provide the validation layers necessary for development.
+The Vulkan Tutorial has more information on how to use GLFW and Vulkan. The Khronos Vulkan Samples also use GLFW, although with a small framework in between.
+For details on a specific Vulkan support function, see the Vulkan support reference. There are also guides for the other areas of the GLFW API.
+ +By default, GLFW will look for the Vulkan loader on demand at runtime via its standard name (vulkan-1.dll
on Windows, libvulkan.so.1
on Linux and other Unix-like systems and libvulkan.1.dylib
on macOS). This means that GLFW does not need to be linked against the loader. However, it also means that if you are using the static library form of the Vulkan loader GLFW will either fail to find it or (worse) use the wrong one.
The GLFW_VULKAN_STATIC CMake option makes GLFW call the Vulkan loader directly instead of dynamically loading it at runtime. Not linking against the Vulkan loader will then be a compile-time error.
+macOS: To make your application be redistributable you will need to set up the application bundle according to the LunarG SDK documentation. This is explained in more detail in the SDK documentation for macOS.
+To include the Vulkan header, define GLFW_INCLUDE_VULKAN before including the GLFW header.
+If you instead want to include the Vulkan header from a custom location or use your own custom Vulkan header then do this before the GLFW header.
+Unless a Vulkan header is included, either by the GLFW header or above it, any GLFW functions that take or return Vulkan types will not be declared.
+The VK_USE_PLATFORM_*_KHR
macros do not need to be defined for the Vulkan part of GLFW to work. Define them only if you are using these extensions directly.
If you are linking directly against the Vulkan loader then you can skip this section. The canonical desktop loader library exports all Vulkan core and Khronos extension functions, allowing them to be called directly.
+If you are loading the Vulkan loader dynamically instead of linking directly against it, you can check for the availability of a loader and ICD with glfwVulkanSupported.
+This function returns GLFW_TRUE
if the Vulkan loader and any minimally functional ICD was found.
If one or both were not found, calling any other Vulkan related GLFW function will generate a GLFW_API_UNAVAILABLE error.
+To load any Vulkan core or extension function from the found loader, call glfwGetInstanceProcAddress. To load functions needed for instance creation, pass NULL
as the instance.
Once you have created an instance, you can load from it all other Vulkan core functions and functions from any instance extensions you enabled.
+This function in turn calls vkGetInstanceProcAddr
. If that fails, the function falls back to a platform-specific query of the Vulkan loader (i.e. dlsym
or GetProcAddress
). If that also fails, the function returns NULL
. For more information about vkGetInstanceProcAddr
, see the Vulkan documentation.
Vulkan also provides vkGetDeviceProcAddr
for loading device-specific versions of Vulkan function. This function can be retrieved from an instance with glfwGetInstanceProcAddress.
Device-specific functions may execute a little bit faster, due to not having to dispatch internally based on the device passed to them. For more information about vkGetDeviceProcAddr
, see the Vulkan documentation.
To do anything useful with Vulkan you need to create an instance. If you want to use Vulkan to render to a window, you must enable the instance extensions GLFW requires to create Vulkan surfaces.
+To query the instance extensions required, call glfwGetRequiredInstanceExtensions.
+These extensions must all be enabled when creating instances that are going to be passed to glfwGetPhysicalDevicePresentationSupport and glfwCreateWindowSurface. The set of extensions will vary depending on platform and may also vary depending on graphics drivers and other factors.
+If it fails it will return NULL
and GLFW will not be able to create Vulkan window surfaces. You can still use Vulkan for off-screen rendering and compute work.
If successful the returned array will always include VK_KHR_surface
, so if you don't require any additional extensions you can pass this list directly to the VkInstanceCreateInfo
struct.
Additional extensions may be required by future versions of GLFW. You should check whether 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 VkInstanceCreateInfo
struct.
macOS: MoltenVK is (as of July 2022) not yet a fully conformant implementation of Vulkan. As of Vulkan SDK 1.3.216.0, this means you must also enable the VK_KHR_portability_enumeration
instance extension and set the VK_INSTANCE_CREATE_ENUMERATE_PORTABILITY_BIT_KHR
bit in the instance creation info flags for MoltenVK to show up in the list of physical devices. For more information, see the Vulkan and MoltenVK documentation.
Not every queue family of every Vulkan device can present images to surfaces. To check whether a specific queue family of a physical device supports image presentation without first having to create a window and surface, call glfwGetPhysicalDevicePresentationSupport.
+The VK_KHR_surface
extension additionally provides the vkGetPhysicalDeviceSurfaceSupportKHR
function, which performs the same test on an existing Vulkan surface.
Unless you will be using OpenGL or OpenGL ES with the same window as Vulkan, there is no need to create a context. You can disable context creation with the GLFW_CLIENT_API hint.
+See Windows without contexts for more information.
+You can create a Vulkan surface (as defined by the VK_KHR_surface
extension) for a GLFW window with glfwCreateWindowSurface.
If an OpenGL or OpenGL ES context was created on the window, the context has ownership of the presentation on the window and a Vulkan surface cannot be created.
+It is your responsibility to destroy the surface. GLFW does not destroy it for you. Call vkDestroySurfaceKHR
function from the same extension to destroy it.
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/window_8dox.html b/deps/glfw-3.3.8/docs/html/window_8dox.html new file mode 100644 index 0000000..3ca2913 --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/window_8dox.html @@ -0,0 +1,74 @@ + + + + + + + ++Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + diff --git a/deps/glfw-3.3.8/docs/html/window_guide.html b/deps/glfw-3.3.8/docs/html/window_guide.html new file mode 100644 index 0000000..f7d0c2c --- /dev/null +++ b/deps/glfw-3.3.8/docs/html/window_guide.html @@ -0,0 +1,756 @@ + + + + + + + +This guide introduces the window related functions of GLFW. For details on a specific function in this category, see the Window reference. There are also guides for the other areas of GLFW.
+ +The GLFWwindow object encapsulates both a window and a context. They are created with glfwCreateWindow and destroyed with glfwDestroyWindow, or glfwTerminate, if any remain. As the window and context are inseparably linked, the object pointer is used as both a context and window handle.
+To see the event stream provided to the various window related callbacks, run the events
test program.
A window and its OpenGL or OpenGL ES context are created with glfwCreateWindow, which returns a handle to the created window object. For example, this creates a 640 by 480 windowed mode window:
+If window creation fails, NULL
will be returned, so it is necessary to check the return value.
The window handle is passed to all window related functions and is provided to along with all input events, so event handlers can tell which window received the event.
+To create a full screen window, you need to specify which monitor the window should use. In most cases, the user's primary monitor is a good choice. For more information about retrieving monitors, see Retrieving monitors.
+Full screen windows cover the entire display area of a monitor, have no border or decorations.
+Windowed mode windows can be made full screen by setting a monitor with glfwSetWindowMonitor, and full screen ones can be made windowed by unsetting it with the same function.
+Each field of the GLFWvidmode structure corresponds to a function parameter or window hint and combine to form the desired video mode for that window. The supported video mode most closely matching the desired video mode will be set for the chosen monitor as long as the window has input focus. For more information about retrieving video modes, see Video modes.
+Video mode field | Corresponds to |
---|---|
GLFWvidmode.width | width parameter of glfwCreateWindow |
GLFWvidmode.height | height parameter of glfwCreateWindow |
GLFWvidmode.redBits | GLFW_RED_BITS hint |
GLFWvidmode.greenBits | GLFW_GREEN_BITS hint |
GLFWvidmode.blueBits | GLFW_BLUE_BITS hint |
GLFWvidmode.refreshRate | GLFW_REFRESH_RATE hint |
Once you have a full screen window, you can change its resolution, refresh rate and monitor with glfwSetWindowMonitor. If you only need change its resolution you can also call glfwSetWindowSize. In all cases, the new video mode will be selected the same way as the video mode chosen by glfwCreateWindow. If the window has an OpenGL or OpenGL ES context, it will be unaffected.
+By default, the original video mode of the monitor will be restored and the window iconified if it loses input focus, to allow the user to switch back to the desktop. This behavior can be disabled with the GLFW_AUTO_ICONIFY window hint, for example if you wish to simultaneously cover multiple monitors with full screen windows.
+If a monitor is disconnected, all windows that are full screen on that monitor will be switched to windowed mode. See Monitor configuration changes for more information.
+If the closest match for the desired video mode is the current one, the video mode will not be changed, making window creation faster and application switching much smoother. This is sometimes called windowed full screen or borderless full screen window and counts as a full screen window. To create such a window, request the current video mode.
+This also works for windowed mode windows that are made full screen.
+Note that glfwGetVideoMode returns the current video mode of a monitor, so if you already have a full screen window on that monitor that you want to make windowed full screen, you need to have saved the desktop resolution before.
+When a window is no longer needed, destroy it with glfwDestroyWindow.
+Window destruction always succeeds. Before the actual destruction, all callbacks are removed so no further events will be delivered for the window. All windows remaining when glfwTerminate is called are destroyed as well.
+When a full screen window is destroyed, the original video mode of its monitor is restored, but the gamma ramp is left untouched.
+There are a number of hints that can be set before the creation of a window and context. Some affect the window itself, others affect the framebuffer or context. These hints are set to their default values each time the library is initialized with glfwInit. Integer value hints can be set individually with glfwWindowHint and string value hints with glfwWindowHintString. You can reset all at once to their defaults with glfwDefaultWindowHints.
+Some hints are platform specific. These are always valid to 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 calls.
+Some window hints are hard constraints. These must match the available capabilities exactly for window and context creation to succeed. Hints that are not hard constraints are matched as closely as possible, but the resulting context and framebuffer may differ from what these hints requested.
+The following hints are always hard constraints:
+The following additional hints are hard constraints when requesting an OpenGL context, but are ignored when requesting an OpenGL ES context:
+GLFW_RESIZABLE specifies whether the windowed mode window will be resizable by the user. The window will still be resizable using the glfwSetWindowSize function. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen and undecorated windows.
GLFW_VISIBLE specifies whether the windowed mode window will be initially visible. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen windows.
GLFW_DECORATED specifies whether the windowed mode window will have window decorations such as a border, a close widget, etc. An undecorated window will not be resizable by the user but will still allow the user to generate close events on some platforms. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen windows.
GLFW_FOCUSED specifies whether the windowed mode window will be given input focus when created. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen and initially hidden windows.
GLFW_AUTO_ICONIFY specifies whether the full screen window will automatically iconify and restore the previous video mode on input focus loss. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for windowed mode windows.
GLFW_FLOATING specifies whether the windowed mode window will be floating above other regular windows, also called topmost or always-on-top. This is intended primarily for debugging purposes and cannot be used to implement proper full screen windows. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen windows.
GLFW_MAXIMIZED specifies whether the windowed mode window will be maximized when created. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for full screen windows.
GLFW_CENTER_CURSOR specifies whether the cursor should be centered over newly created full screen windows. Possible values are GLFW_TRUE
and GLFW_FALSE
. This hint is ignored for windowed mode windows.
GLFW_TRANSPARENT_FRAMEBUFFER specifies whether the window framebuffer will be transparent. If enabled and supported by the system, the window framebuffer alpha channel will be used to combine the framebuffer with the background. This does not affect window decorations. Possible values are GLFW_TRUE
and GLFW_FALSE
.
GLFW_FOCUS_ON_SHOW specifies whether the window will be given input focus when glfwShowWindow is called. Possible values are GLFW_TRUE
and GLFW_FALSE
.
GLFW_SCALE_TO_MONITOR specified whether the window content area should be resized based on the monitor content scale of any monitor it is placed on. This includes the initial placement when the window is created. Possible values are GLFW_TRUE
and GLFW_FALSE
.
This hint only has an effect on platforms where screen coordinates and pixels always map 1:1 such as Windows and X11. On platforms like macOS the resolution of the framebuffer is changed independently of the window size.
+GLFW_RED_BITS, GLFW_GREEN_BITS, GLFW_BLUE_BITS, GLFW_ALPHA_BITS, GLFW_DEPTH_BITS and GLFW_STENCIL_BITS specify the desired bit depths of the various components of the default framebuffer. A value of GLFW_DONT_CARE
means the application has no preference.
GLFW_ACCUM_RED_BITS, GLFW_ACCUM_GREEN_BITS, GLFW_ACCUM_BLUE_BITS and GLFW_ACCUM_ALPHA_BITS specify the desired bit depths of the various components of the accumulation buffer. A value of GLFW_DONT_CARE
means the application has no preference.
Accumulation buffers are a legacy OpenGL feature and should not be used in new code.
+GLFW_AUX_BUFFERS specifies the desired number of auxiliary buffers. A value of GLFW_DONT_CARE
means the application has no preference.
Auxiliary buffers are a legacy OpenGL feature and should not be used in new code.
+GLFW_STEREO specifies whether to use OpenGL stereoscopic rendering. Possible values are GLFW_TRUE
and GLFW_FALSE
. This is a hard constraint.
GLFW_SAMPLES specifies the desired number of samples to use for multisampling. Zero disables multisampling. A value of GLFW_DONT_CARE
means the application has no preference.
GLFW_SRGB_CAPABLE specifies whether the framebuffer should be sRGB capable. Possible values are GLFW_TRUE
and GLFW_FALSE
.
GL_FRAMEBUFFER_SRGB
enable will control sRGB rendering. By default, sRGB rendering will be disabled.GLFW_DOUBLEBUFFER specifies whether the framebuffer should be double buffered. You nearly always want to use double buffering. This is a hard constraint. Possible values are GLFW_TRUE
and GLFW_FALSE
.
GLFW_REFRESH_RATE specifies the desired refresh rate for full screen windows. A value of GLFW_DONT_CARE
means the highest available refresh rate will be used. This hint is ignored for windowed mode windows.
GLFW_CLIENT_API specifies which client API to create the context for. Possible values are GLFW_OPENGL_API
, GLFW_OPENGL_ES_API
and GLFW_NO_API
. This is a hard constraint.
GLFW_CONTEXT_CREATION_API specifies which context creation API to use to create the context. Possible values are GLFW_NATIVE_CONTEXT_API
, GLFW_EGL_CONTEXT_API
and GLFW_OSMESA_CONTEXT_API
. This is a hard constraint. If no client API is requested, this hint is ignored.
An extension loader library that assumes it knows which API was used to create the current context may fail if you change this hint. This can be resolved by having it load functions via glfwGetProcAddress.
+GLFW_CONTEXT_VERSION_MAJOR and GLFW_CONTEXT_VERSION_MINOR specify the client API version that the created context must be compatible with. The exact behavior of these hints depend on the requested client API.
+While there is no way to ask the driver for a context of the highest supported version, GLFW will attempt to provide this when you ask for a version 1.0 context, which is the default for these hints.
+Do not confuse these hints with GLFW_VERSION_MAJOR and GLFW_VERSION_MINOR, which provide the API version of the GLFW header.
+GLFW_OPENGL_FORWARD_COMPAT specifies whether the OpenGL context should be forward-compatible, i.e. one where all functionality deprecated in the requested version of OpenGL is removed. This must only be used if the requested OpenGL version is 3.0 or above. If OpenGL ES is requested, this hint is ignored.
+Forward-compatibility is described in detail in the OpenGL Reference Manual.
+GLFW_OPENGL_DEBUG_CONTEXT specifies whether the context should be created in debug mode, which may provide additional error and diagnostic reporting functionality. Possible values are GLFW_TRUE
and GLFW_FALSE
.
Debug contexts for OpenGL and OpenGL ES are described in detail by the GL_KHR_debug extension.
+GLFW_OPENGL_PROFILE specifies which OpenGL profile to create the context for. Possible values are one of GLFW_OPENGL_CORE_PROFILE
or GLFW_OPENGL_COMPAT_PROFILE
, or GLFW_OPENGL_ANY_PROFILE
to not request a specific profile. If requesting an OpenGL version below 3.2, GLFW_OPENGL_ANY_PROFILE
must be used. If OpenGL ES is requested, this hint is ignored.
OpenGL profiles are described in detail in the OpenGL Reference Manual.
+GLFW_CONTEXT_ROBUSTNESS specifies the robustness strategy to be used by the context. This can be one of GLFW_NO_RESET_NOTIFICATION
or GLFW_LOSE_CONTEXT_ON_RESET
, or GLFW_NO_ROBUSTNESS
to not request a robustness strategy.
GLFW_CONTEXT_RELEASE_BEHAVIOR specifies the release behavior to be used by the context. Possible values are one of GLFW_ANY_RELEASE_BEHAVIOR
, GLFW_RELEASE_BEHAVIOR_FLUSH
or GLFW_RELEASE_BEHAVIOR_NONE
. If the behavior is GLFW_ANY_RELEASE_BEHAVIOR
, the default behavior of the context creation API will be used. If the behavior is GLFW_RELEASE_BEHAVIOR_FLUSH
, the pipeline will be flushed whenever the context is released from being the current one. If the behavior is GLFW_RELEASE_BEHAVIOR_NONE
, the pipeline will not be flushed on release.
Context release behaviors are described in detail by the GL_KHR_context_flush_control extension.
+GLFW_CONTEXT_NO_ERROR specifies whether errors should be generated by the context. Possible values are GLFW_TRUE
and GLFW_FALSE
. If enabled, situations that would have generated errors instead cause undefined behavior.
The no error mode for OpenGL and OpenGL ES is described in detail by the GL_KHR_no_error extension.
+GLFW_COCOA_RETINA_FRAMEBUFFER specifies whether to use full resolution framebuffers on Retina displays. Possible values are GLFW_TRUE
and GLFW_FALSE
. This is ignored on other platforms.
GLFW_COCOA_FRAME_NAME specifies the UTF-8 encoded name to use for autosaving the window frame, or if empty disables frame autosaving for the window. This is ignored on other platforms. This is set with glfwWindowHintString.
+GLFW_COCOA_GRAPHICS_SWITCHING specifies whether to in Automatic Graphics Switching, i.e. to allow the system to choose the integrated GPU for the OpenGL context and move it between GPUs if necessary or whether to force it to always run on the discrete GPU. This only affects systems with both integrated and discrete GPUs. Possible values are GLFW_TRUE
and GLFW_FALSE
. This is ignored on other platforms.
Simpler programs and tools may want to enable this to save power, while games and other applications performing advanced rendering will want to leave it disabled.
+A bundled application that wishes to participate in Automatic Graphics Switching should also declare this in its Info.plist
by setting the NSSupportsAutomaticGraphicsSwitching
key to true
.
GLFW_X11_CLASS_NAME and GLFW_X11_INSTANCE_NAME specifies the desired ASCII encoded class and instance parts of the ICCCM WM_CLASS
window property. These are set with glfwWindowHintString.
Window hint | Default value | Supported values |
---|---|---|
GLFW_RESIZABLE | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_VISIBLE | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_DECORATED | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_FOCUSED | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_AUTO_ICONIFY | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_FLOATING | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_MAXIMIZED | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_CENTER_CURSOR | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_TRANSPARENT_FRAMEBUFFER | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_FOCUS_ON_SHOW | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_SCALE_TO_MONITOR | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_RED_BITS | 8 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_GREEN_BITS | 8 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_BLUE_BITS | 8 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_ALPHA_BITS | 8 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_DEPTH_BITS | 24 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_STENCIL_BITS | 8 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_ACCUM_RED_BITS | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_ACCUM_GREEN_BITS | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_ACCUM_BLUE_BITS | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_ACCUM_ALPHA_BITS | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_AUX_BUFFERS | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_SAMPLES | 0 | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_REFRESH_RATE | GLFW_DONT_CARE | 0 to INT_MAX or GLFW_DONT_CARE |
GLFW_STEREO | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_SRGB_CAPABLE | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_DOUBLEBUFFER | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_CLIENT_API | GLFW_OPENGL_API | GLFW_OPENGL_API , GLFW_OPENGL_ES_API or GLFW_NO_API |
GLFW_CONTEXT_CREATION_API | GLFW_NATIVE_CONTEXT_API | GLFW_NATIVE_CONTEXT_API , GLFW_EGL_CONTEXT_API or GLFW_OSMESA_CONTEXT_API |
GLFW_CONTEXT_VERSION_MAJOR | 1 | Any valid major version number of the chosen client API |
GLFW_CONTEXT_VERSION_MINOR | 0 | Any valid minor version number of the chosen client API |
GLFW_CONTEXT_ROBUSTNESS | GLFW_NO_ROBUSTNESS | GLFW_NO_ROBUSTNESS , GLFW_NO_RESET_NOTIFICATION or GLFW_LOSE_CONTEXT_ON_RESET |
GLFW_CONTEXT_RELEASE_BEHAVIOR | GLFW_ANY_RELEASE_BEHAVIOR | GLFW_ANY_RELEASE_BEHAVIOR , GLFW_RELEASE_BEHAVIOR_FLUSH or GLFW_RELEASE_BEHAVIOR_NONE |
GLFW_OPENGL_FORWARD_COMPAT | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_OPENGL_DEBUG_CONTEXT | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_OPENGL_PROFILE | GLFW_OPENGL_ANY_PROFILE | GLFW_OPENGL_ANY_PROFILE , GLFW_OPENGL_COMPAT_PROFILE or GLFW_OPENGL_CORE_PROFILE |
GLFW_COCOA_RETINA_FRAMEBUFFER | GLFW_TRUE | GLFW_TRUE or GLFW_FALSE |
GLFW_COCOA_FRAME_NAME | "" | A UTF-8 encoded frame autosave name |
GLFW_COCOA_GRAPHICS_SWITCHING | GLFW_FALSE | GLFW_TRUE or GLFW_FALSE |
GLFW_X11_CLASS_NAME | "" | An ASCII encoded WM_CLASS class name |
GLFW_X11_INSTANCE_NAME | "" | An ASCII encoded WM_CLASS instance name |
See Event processing.
+Each window has a user pointer that can be set with glfwSetWindowUserPointer and queried with glfwGetWindowUserPointer. This can be used for any purpose you need and will not be modified by GLFW throughout the life-time of the window.
+The initial value of the pointer is NULL
.
When the user attempts to close the window, for example by clicking the close widget or using a key chord like Alt+F4, the close flag of the window is set. The window is however not actually destroyed and, unless you watch for this state change, nothing further happens.
+The current state of the close flag is returned by glfwWindowShouldClose and can be set or cleared directly with glfwSetWindowShouldClose. A common pattern is to use the close flag as a main loop condition.
+If you wish to be notified when the user attempts to close a window, set a close callback.
+The callback function is called directly after the close flag has been set. It can be used for example to filter close requests and clear the close flag again unless certain conditions are met.
+The size of a window can be changed with glfwSetWindowSize. For windowed mode windows, this sets the size, in screen coordinates of the content area or content area of the window. The window system may impose limits on window size.
+For full screen windows, the specified size becomes the new resolution of the window's desired video mode. The video mode most closely matching the new desired video mode is set immediately. The window is resized to fit the resolution of the set video mode.
+If you wish to be notified when a window is resized, whether by the user, the system or your own code, set a size callback.
+The callback function receives the new size, in screen coordinates, of the content area of the window when the window is resized.
+There is also glfwGetWindowSize for directly retrieving the current size of a window.
+glViewport
or other pixel-based OpenGL calls. The window size is in screen coordinates, not pixels. Use the framebuffer size, which is in pixels, for pixel-based calls.The above functions work with the size of the content area, but decorated windows typically have title bars and window frames around this rectangle. You can retrieve the extents of these with glfwGetWindowFrameSize.
+The returned values are the distances, in screen coordinates, from the edges of the content area to the corresponding edges of the full window. As they are distances and not coordinates, they are always zero or positive.
+While the size of a window is measured in screen coordinates, OpenGL works with pixels. The size you pass into glViewport
, for example, should be in pixels. On some machines screen coordinates and pixels are the same, but on others they will not be. There is a second set of functions to retrieve the size, in pixels, of the framebuffer of a window.
If you wish to be notified when the framebuffer of a window is resized, whether by the user or the system, set a size callback.
+The callback function receives the new size of the framebuffer when it is resized, which can for example be used to update the OpenGL viewport.
+There is also glfwGetFramebufferSize for directly retrieving the current size of the framebuffer of a window.
+The size of a framebuffer may change independently of the size of a window, for example if the window is dragged between a regular monitor and a high-DPI one.
+The content scale for a window can be retrieved with glfwGetWindowContentScale.
+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.
+On systems where each monitors can have its own content scale, the window content scale will depend on which monitor the system considers the window to be on.
+If you wish to be notified when the content scale of a window changes, whether because of a system setting change or because it was moved to a monitor with a different scale, set a content scale callback.
+The callback function receives the new content scale of the window.
+On platforms where pixels and screen coordinates always map 1:1, the window will need to be resized to appear the same size when it is moved to a monitor with a different content scale. To have this done automatically both when the window is created and when its content scale later changes, set the GLFW_SCALE_TO_MONITOR window hint.
+The minimum and maximum size of the content area of a windowed mode window can be enforced with glfwSetWindowSizeLimits. The user may resize the window to any size and aspect ratio within the specified limits, unless the aspect ratio is also set.
+To specify only a minimum size or only a maximum one, set the other pair to GLFW_DONT_CARE
.
To disable size limits for a window, set them all to GLFW_DONT_CARE
.
The aspect ratio of the content area of a windowed mode window can be enforced with glfwSetWindowAspectRatio. The user may resize the window freely unless size limits are also set, but the size will be constrained to maintain the aspect ratio.
+The aspect ratio is specified as a numerator and denominator, corresponding to the width and height, respectively. If you want a window to maintain its current aspect ratio, use its current size as the ratio.
+To disable the aspect ratio limit for a window, set both terms to GLFW_DONT_CARE
.
You can have both size limits and aspect ratio set for a window, but the results are undefined if they conflict.
+The position of a windowed-mode window can be changed with glfwSetWindowPos. This moves the window so that the upper-left corner of its content area has the specified screen coordinates. The window system may put limitations on window placement.
+If you wish to be notified when a window is moved, whether by the user, the system or your own code, set a position callback.
+The callback function receives the new position, in screen coordinates, of the upper-left corner of the content area when the window is moved.
+There is also glfwGetWindowPos for directly retrieving the current position of the content area of the window.
+All GLFW windows have a title, although undecorated or full screen windows may not display it or only display it in a task bar or similar interface. You can set a UTF-8 encoded window title with glfwSetWindowTitle.
+The specified string is copied before the function returns, so there is no need to keep it around.
+As long as your source file is encoded as UTF-8, you can use any Unicode characters directly in the source.
+If you are using C++11 or C11, you can use a UTF-8 string literal.
+Decorated windows have icons on some platforms. You can set this icon by specifying a list of candidate images with glfwSetWindowIcon.
+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.
+To revert to the default window icon, pass in an empty image array.
+Full screen windows are associated with a specific monitor. You can get the handle for this monitor with glfwGetWindowMonitor.
+This monitor handle is one of those returned by glfwGetMonitors.
+For windowed mode windows, this function returns NULL
. This is how to tell full screen windows from windowed mode windows.
You can move windows between monitors or between full screen and windowed mode with glfwSetWindowMonitor. When making a window full screen on the same or on a different monitor, specify the desired monitor, resolution and refresh rate. The position arguments are ignored.
+When making the window windowed, specify the desired position and size. The refresh rate argument is ignored.
+This restores any previous window settings such as whether it is decorated, floating, resizable, has size or aspect ratio limits, etc.. To restore a window that was originally windowed to its original size and position, save these before making it full screen and then pass them in as above.
+Windows can be iconified (i.e. minimized) with glfwIconifyWindow.
+When a full screen window is iconified, the original video mode of its monitor is restored until the user or application restores the window.
+Iconified windows can be restored with glfwRestoreWindow. This function also restores windows from maximization.
+When a full screen window is restored, the desired video mode is restored to its monitor as well.
+If you wish to be notified when a window is iconified or restored, whether by the user, system or your own code, set an iconify callback.
+The callback function receives changes in the iconification state of the window.
+You can also get the current iconification state with glfwGetWindowAttrib.
+Windows can be maximized (i.e. zoomed) with glfwMaximizeWindow.
+Full screen windows cannot be maximized and passing a full screen window to this function does nothing.
+Maximized windows can be restored with glfwRestoreWindow. This function also restores windows from iconification.
+If you wish to be notified when a window is maximized or restored, whether by the user, system or your own code, set a maximize callback.
+The callback function receives changes in the maximization state of the window.
+You can also get the current maximization state with glfwGetWindowAttrib.
+By default, newly created windows are not maximized. You can change this behavior by setting the GLFW_MAXIMIZED window hint before creating the window.
+Windowed mode windows can be hidden with glfwHideWindow.
+This makes the window completely invisible to the user, including removing it from the task bar, dock or window list. Full screen windows cannot be hidden and calling glfwHideWindow on a full screen window does nothing.
+Hidden windows can be shown with glfwShowWindow.
+By default, this function will also set the input focus to that window. Set the GLFW_FOCUS_ON_SHOW window hint to change this behavior for all newly created windows, or change the behavior for an existing window with glfwSetWindowAttrib.
+You can also get the current visibility state with glfwGetWindowAttrib.
+By default, newly created windows are visible. You can change this behavior by setting the GLFW_VISIBLE window hint before creating the window.
+Windows created hidden are completely invisible to the user until shown. This can be useful if you need to set up your window further before showing it, for example moving it to a specific location.
+Windows can be given input focus and brought to the front with glfwFocusWindow.
+Keep in mind that it can be very disruptive to the user when a window is forced to the top. For a less disruptive way of getting the user's attention, see attention requests.
+If you wish to be notified when a window gains or loses input focus, whether by the user, system or your own code, set a focus callback.
+The callback function receives changes in the input focus state of the window.
+You can also get the current input focus state with glfwGetWindowAttrib.
+By default, newly created windows are given input focus. You can change this behavior by setting the GLFW_FOCUSED window hint before creating the window.
+If you wish to notify the user of an event without interrupting, you can request attention with glfwRequestWindowAttention.
+The system will highlight the specified window, or on platforms where this is not supported, the application as a whole. Once the user has given it attention, the system will automatically end the request.
+If you wish to be notified when the contents of a window is damaged and needs to be refreshed, set a window refresh callback.
+The callback function is called when the contents of the window needs to be refreshed.
+GLFW supports two kinds of transparency for windows; framebuffer transparency and whole window transparency. A single window may not use both methods. The results of doing this are undefined.
+Both methods require the platform to support it and not every version of every platform GLFW supports does this, so there are mechanisms to check whether the window really is transparent.
+Window framebuffers can be made transparent on a per-pixel per-frame basis with the GLFW_TRANSPARENT_FRAMEBUFFER window hint.
+If supported by the system, the window content area will be composited with the background using the framebuffer per-pixel alpha channel. This requires desktop compositing to be enabled on the system. It does not affect window decorations.
+You can check whether the window framebuffer was successfully made transparent with the GLFW_TRANSPARENT_FRAMEBUFFER window attribute.
+GLFW comes with an example that enabled framebuffer transparency called gears
.
The opacity of the whole window, including any decorations, can be set with glfwSetWindowOpacity.
+The opacity (or alpha) value is a positive finite number between zero and one, where 0 (zero) is fully transparent and 1 (one) is fully opaque. The initial opacity value for newly created windows is 1.
+The current opacity of a window can be queried with glfwGetWindowOpacity.
+If the system does not support whole window transparency, this function always returns one.
+GLFW comes with a test program that lets you control whole window transparency at run-time called opacity
.
Windows have a number of attributes that can be returned using glfwGetWindowAttrib. Some reflect state that may change as a result of user interaction, (e.g. whether it has input focus), while others reflect inherent properties of the window (e.g. what kind of border it has). Some are related to the window and others to its OpenGL or OpenGL ES context.
+The GLFW_DECORATED, GLFW_RESIZABLE, GLFW_FLOATING, GLFW_AUTO_ICONIFY and GLFW_FOCUS_ON_SHOW window attributes can be changed with glfwSetWindowAttrib.
+GLFW_FOCUSED indicates whether the specified window has input focus. See Window input focus for details.
+GLFW_ICONIFIED indicates whether the specified window is iconified. See Window iconification for details.
+GLFW_MAXIMIZED indicates whether the specified window is maximized. See Window maximization for details.
+GLFW_HOVERED indicates whether the cursor is currently directly over the content area of the window, with no other windows between. See Cursor enter/leave events for details.
+GLFW_VISIBLE indicates whether the specified window is visible. See Window visibility for details.
+GLFW_RESIZABLE indicates whether the specified window is resizable by the user. This can be set before creation with the GLFW_RESIZABLE window hint or after with glfwSetWindowAttrib.
+GLFW_DECORATED indicates whether the specified window has decorations such as a border, a close widget, etc. This can be set before creation with the GLFW_DECORATED window hint or after with glfwSetWindowAttrib.
+GLFW_AUTO_ICONIFY indicates whether the specified full screen window is iconified on focus loss, a close widget, etc. This can be set before creation with the GLFW_AUTO_ICONIFY window hint or after with glfwSetWindowAttrib.
+GLFW_FLOATING indicates whether the specified window is floating, also called topmost or always-on-top. This can be set before creation with the GLFW_FLOATING window hint or after with glfwSetWindowAttrib.
+GLFW_TRANSPARENT_FRAMEBUFFER indicates whether the specified window has a transparent framebuffer, i.e. the window contents is composited with the background using the window framebuffer alpha channel. See Window transparency for details.
+GLFW_FOCUS_ON_SHOW specifies whether the window will be given input focus when glfwShowWindow is called. This can be set before creation with the GLFW_FOCUS_ON_SHOW window hint or after with glfwSetWindowAttrib.
+GLFW_CLIENT_API indicates the client API provided by the window's context; either GLFW_OPENGL_API
, GLFW_OPENGL_ES_API
or GLFW_NO_API
.
GLFW_CONTEXT_CREATION_API indicates the context creation API used to create the window's context; either GLFW_NATIVE_CONTEXT_API
, GLFW_EGL_CONTEXT_API
or GLFW_OSMESA_CONTEXT_API
.
GLFW_CONTEXT_VERSION_MAJOR, GLFW_CONTEXT_VERSION_MINOR and GLFW_CONTEXT_REVISION indicate the client API version of the window's context.
+GLFW_VERSION_MAJOR
, GLFW_VERSION_MINOR
and GLFW_VERSION_REVISION
which provide the API version of the GLFW header.GLFW_OPENGL_FORWARD_COMPAT is GLFW_TRUE
if the window's context is an OpenGL forward-compatible one, or GLFW_FALSE
otherwise.
GLFW_OPENGL_DEBUG_CONTEXT is GLFW_TRUE
if the window's context is in debug mode, or GLFW_FALSE
otherwise.
GLFW_OPENGL_PROFILE indicates the OpenGL profile used by the context. This is GLFW_OPENGL_CORE_PROFILE
or GLFW_OPENGL_COMPAT_PROFILE
if the context uses a known profile, or GLFW_OPENGL_ANY_PROFILE
if the OpenGL profile is unknown or the context is an OpenGL ES context. Note that the returned profile may not match the profile bits of the context flags, as GLFW will try other means of detecting the profile when no bits are set.
GLFW_CONTEXT_RELEASE_BEHAVIOR indicates the release used by the context. Possible values are one of GLFW_ANY_RELEASE_BEHAVIOR
, GLFW_RELEASE_BEHAVIOR_FLUSH
or GLFW_RELEASE_BEHAVIOR_NONE
. If the behavior is GLFW_ANY_RELEASE_BEHAVIOR
, the default behavior of the context creation API will be used. If the behavior is GLFW_RELEASE_BEHAVIOR_FLUSH
, the pipeline will be flushed whenever the context is released from being the current one. If the behavior is GLFW_RELEASE_BEHAVIOR_NONE
, the pipeline will not be flushed on release.
GLFW_CONTEXT_NO_ERROR indicates whether errors are generated by the context. Possible values are GLFW_TRUE
and GLFW_FALSE
. If enabled, situations that would have generated errors instead cause undefined behavior.
GLFW_CONTEXT_ROBUSTNESS indicates the robustness strategy used by the context. This is GLFW_LOSE_CONTEXT_ON_RESET
or GLFW_NO_RESET_NOTIFICATION
if the window's context supports robustness, or GLFW_NO_ROBUSTNESS
otherwise.
GLFW does not expose attributes of the default framebuffer (i.e. the framebuffer attached to the window) as these can be queried directly with either OpenGL, OpenGL ES or Vulkan.
+If you are using version 3.0 or later of OpenGL or OpenGL ES, the glGetFramebufferAttachmentParameteriv
function can be used to retrieve the number of bits for the red, green, blue, alpha, depth and stencil buffer channels. Otherwise, the glGetIntegerv
function can be used.
The number of MSAA samples are always retrieved with glGetIntegerv
. For contexts supporting framebuffer objects, the number of samples of the currently bound framebuffer is returned.
Attribute | glGetIntegerv | glGetFramebufferAttachmentParameteriv |
---|---|---|
Red bits | GL_RED_BITS | GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE |
Green bits | GL_GREEN_BITS | GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE |
Blue bits | GL_BLUE_BITS | GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE |
Alpha bits | GL_ALPHA_BITS | GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE |
Depth bits | GL_DEPTH_BITS | GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE |
Stencil bits | GL_STENCIL_BITS | GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE |
MSAA samples | GL_SAMPLES | Not provided by this function |
When calling glGetFramebufferAttachmentParameteriv
, the red, green, blue and alpha sizes are queried from the GL_BACK_LEFT
, while the depth and stencil sizes are queried from the GL_DEPTH
and GL_STENCIL
attachments, respectively.
GLFW windows are by default double buffered. That means that you have two rendering buffers; a front buffer and a back buffer. The front buffer is the one being displayed and the back buffer the one you render to.
+When the entire frame has been rendered, it is time to swap the back and the front buffers in order to display what has been rendered and begin rendering a new frame. This is done with glfwSwapBuffers.
+Sometimes it can be useful to select when the buffer swap will occur. With the function glfwSwapInterval it is possible to select the minimum number of monitor refreshes the driver should wait from the time glfwSwapBuffers was called before swapping the buffers:
+If the interval is zero, the swap will take place immediately when glfwSwapBuffers is called without waiting for a refresh. Otherwise at least interval retraces will pass between each buffer swap. Using a swap interval of zero can be useful for benchmarking purposes, when it is not desirable to measure the time it takes to wait for the vertical retrace. However, a swap interval of one lets you avoid tearing.
+Note that this may not work on all machines, as some drivers have user-controlled settings that override any swap interval the application requests.
+A context that supports either the WGL_EXT_swap_control_tear
or the GLX_EXT_swap_control_tear
extension also accepts negative swap intervals, which allows the driver to swap immediately even if a frame arrives a little bit late. This trades the risk of visible tears for greater framerate stability. You can check for these extensions with glfwExtensionSupported.
+Last update on Fri Jul 22 2022 for GLFW 3.3.8 +
+ + + -- cgit v1.2.3-70-g09d2