glfw/docs
Camilla Löwy 7e50f85b47 Add runtime platform selection
Enable compile-time support for multiple platforms and runtime detection
of them.  Most platform functions (but not all) are now called from
shared code via the function pointer struct _GLFWplatform.

The timer, thread and module loading platform functions are still called
directly by name and the implementation chosen at link-time.  These
functions are the same for any backend on a given OS, including the Null
backend.

The backends are now chosen via CMake dependent options following the
GLFW_BUILD_<platform> pattern instead of a mix of automagic and ad-hoc
option names.  There is no option for the Null backend as it is always
enabled.

Much of the struct stitching work in platform.h was based on an earlier
experimental branch for runtime platform selection by @ronchaine.

NOTE: This is not its final form.

- The detection logic for X11 and Wayland is still placeholder.
- There is no guide documentation.
- The new functions have not been reviewed for thread safety.
- The changelog entries are incomplete.
- The automatic platform selection logic in CMake is unchanged from 3.3
  so by default non-macOS Unices will not include support for Wayland.
- There are potentially more aspects of this change that can be
  extracted into separate commits.
- The joystick implementation selection on non-macOS Unices is kludgy.
- Probably more things.

Related to #1655.
2021-08-30 21:32:32 +02:00
..
build.dox Clarify docs on default GL header inclusion 2020-06-02 18:04:49 +02:00
CMakeLists.txt Add HTML header and footer to docs dependencies 2021-08-26 17:49:54 +02:00
CODEOWNERS Update CODEOWNERS for move to SCSS 2020-09-22 19:50:40 +02:00
compat.dox Add GLFW_CONTEXT_DEBUG window hint alias 2020-06-28 19:27:48 +02:00
compile.dox Remove configuration header 2021-08-27 17:46:54 +02:00
context.dox Replace GL_ARB_debug_output in context guide 2021-04-22 22:37:37 +02:00
CONTRIBUTING.md Update IRC network to Libera.Chat 2021-06-14 19:50:32 +02:00
Doxyfile.in Remove deprecated Doxygen tag 2021-03-19 14:24:50 +01:00
DoxygenLayout.xml Add tutorial to Doxygen menu 2018-11-05 19:04:27 +01:00
extra.css Migrate to Sass for Doxygen custom stylesheets 2020-09-07 20:50:57 +02:00
extra.css.map Migrate to Sass for Doxygen custom stylesheets 2020-09-07 20:50:57 +02:00
extra.scss Use consistent indentation for Doxygen custom stylesheet 2020-09-18 14:27:57 +02:00
footer.html Removed invisible element. 2013-09-21 15:18:49 +04:30
header.html Improve docs scaling on mobile and small screens 2020-09-02 21:50:57 +02:00
input.dox Add custom target for updating gamepad mappings 2021-08-01 20:16:17 +02:00
internal.dox Remove configuration header 2021-08-27 17:46:54 +02:00
intro.dox Add runtime platform selection 2021-08-30 21:32:32 +02:00
main.dox Start 3.4 2019-04-16 23:08:39 +02:00
monitor.dox Documentation work 2019-05-17 16:12:52 +02:00
moving.dox Fix formatting in transition guide 2020-09-02 17:41:38 +02:00
news.dox Add runtime platform selection 2021-08-30 21:32:32 +02:00
quick.dox Clarify docs on default GL header inclusion 2020-06-02 18:04:49 +02:00
spaces.svg Cleanup 2019-01-25 12:46:46 +01:00
SUPPORT.md Fix some documentation URLs still using http: 2021-06-14 19:50:32 +02:00
vulkan.dox Fix minor typo: If if -> If. 2020-12-14 12:27:57 +01:00
window.dox Make GLFW_DOUBLEBUFFER a window attribute 2021-05-14 19:02:25 +02:00