glfw/docs
Camilla Löwy 56a4cb0a3a Add runtime platform selection
This adds compile-time support for multiple platforms and runtime
detection of them.  Window system related platform functions 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 platforms are now enabled via CMake dependent options following the
GLFW_BUILD_<platform> pattern instead of a mix of automagic and ad-hoc
option names.  There is no longer any option for the Null backend as it
is now always enabled.

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

Every platform function related to windows, contexts, monitors, input,
event processing and Vulkan have been renamed so that multiple sets of
them can exist without colliding.  Calls to these are now routed through
the _glfw.platform struct member.  These changes makes up most of this
commit.

For Wayland and X11 the client library loading and display creation is
used to detect a running compositor/server.  The XDG_SESSION_TYPE
environment variable is ignored for now, as X11 is still by far the more
complete implementation.

Closes #1655
Closes #1958
2021-10-13 21:47:11 +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 Add runtime platform selection 2021-10-13 21:47:11 +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 Doxyfile tags deprecated by Doxygen 1.9.2 2021-10-12 12:54:35 +02: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 Add runtime platform selection 2021-10-13 21:47:11 +02:00
intro.dox Add runtime platform selection 2021-10-13 21:47:11 +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-10-13 21:47:11 +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