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
Camilla Löwy
6d51b39106
Select mapping platform name at runtime
...
This is done in preparation for runtime platform selection.
2021-10-12 12:54:35 +02:00
Camilla Löwy
f771d41292
Cleanup
...
Moving functions to their respective sections. Related to delayed
joystick Initialization.
2020-07-21 17:54:07 +02:00
Camilla Löwy
782e6b6cef
Make joystick platform code init on demand
...
This makes joystick support initialize the first time a joystick
function is called, including those gamepad functions that are layered
on top of joystick functions.
Related to #1284 .
Related to #1646 .
2020-07-21 17:38:56 +02:00
Camilla Löwy
0c6b505619
Convert some declarations to C99 style
2019-06-27 18:13:29 +02:00
Camilla Löwy
56aad76b16
Add C dialect reminders to each source file
...
Files built for Win32 must use C89 style declarations for compatibility
with VS 2010 and 2012, which are still supported by GLFW.
2019-05-24 14:43:49 +02:00
Camilla Löwy
a337c56848
Start 3.4
2019-04-16 23:08:39 +02:00
Camilla Löwy
ab118b2529
Fix copyright years (somewhat)
2019-04-15 20:50:00 +02:00
Emmanuel Gil Peyrot
e75af5f531
Linux: Include the null byte in joystick path
...
This potential bug was found thanks to gcc 8’s -Wstringop-truncation
warning.
2018-10-03 22:03:20 +02:00
Ahmad Fatoum
f940a97500
Linux: Add support for kernels < v2.6.39
...
Broke build for me on CentOS-6, which sports a 2.6.32 kernel:
http://www.cpantesters.org/cpan/report/d956d128-0339-11e8-b0d1-b6c4abd39192
CentOS-6 is supported till 2020-11-30.
Closes #1196 .
2018-02-07 16:46:58 +01:00
Camilla Löwy
94ee10e655
Remove trailing else
2017-10-03 00:41:19 +02:00
Camilla Löwy
a397195d3f
Linux: Make joystick init always fail silently
...
Related to #833 .
2017-08-09 12:18:28 +02:00
Camilla Löwy
617c42b20a
Cleanup
2017-07-09 14:01:48 +02:00
Camilla Löwy
953106e74d
Add support for SDL_GameControllerDB
...
This adds support for importing and applying mappings from the
SDL_GameControllerDB database.
Related to #900 .
2017-07-07 15:52:33 +02:00
Camilla Löwy
99762ad7f0
Cleanup
2017-06-15 20:03:40 +02:00
Camilla Löwy
6da26c8d6c
Linux: Ignore partial state after SYN_DROPPED
...
Related to #1005 .
2017-06-15 20:01:45 +02:00
Camilla Löwy
d2952e4e92
Cleanup
...
Related to #1005 .
2017-06-15 20:01:44 +02:00
Camilla Löwy
206f9ca4bc
Linux: Fix joystick array bugs
...
Related to #1005 .
2017-06-15 20:00:21 +02:00
Anthony Pesch
d1a2ec4d20
Linux: Move to evdev for joystick input
...
Closes #1005 .
2017-06-13 18:49:20 +02:00
Camilla Löwy
78666204a1
Linux: Fix path buffer length warning
2017-06-11 23:29:16 +02:00
Camilla Löwy
5bcf9c76fd
Linux: Fix path buffer length warning
...
Fixes #1025 .
2017-06-08 19:29:57 +02:00
Camilla Löwy
798d7c6d68
Implement glfwGetJoystickHats
...
This moves the buttons-as-hats logic to shared code and adds the
GLFW_JOYSTICK_HAT_BUTTONS input mode as a way to disable this legacy
behavior.
Fixes #889 .
2017-03-06 03:23:29 +01:00
Camilla Löwy
67a55efa27
Add null joystick backend
...
This prepares the X11 backend to support other joystick APIs, for
example the FreeBSD libusb one.
2017-02-01 03:07:25 +01:00
Camilla Löwy
c5694b3013
Linux: Fix joystick disconnection detection
...
Joystick disconnection was not dectected by the event processing
functions and required calling a joystick function.
Fixes #932 .
2017-01-31 00:21:53 +01:00
Camilla Löwy
bfd564f257
Move internals to shared joystick objects
...
Preparation for gamecontrollerdb support and the gamepad API.
2017-01-30 16:52:49 +01:00
Camilla Löwy
e7722af9a2
Cleanup
2017-01-12 05:30:56 +01:00
Camilla Löwy
f4d0c83181
Paperwork done
2016-11-30 14:00:41 +01:00
Camilla Berglund
efc6b35615
Rename joystick ID variables
2016-10-16 14:07:18 +02:00
Camilla Berglund
53fafad915
Start 3.3
2016-08-18 23:55:49 +02:00
Camilla Berglund
751be1ae8c
Fix comment
2016-07-31 19:26:57 +02:00
Camilla Berglund
f48b63de38
Fix Valgrind false-positive
...
Fixes #818 .
2016-07-31 17:54:30 +02:00
Camilla Berglund
757eea2779
Update email address
2016-06-01 21:25:20 +02:00
Camilla Berglund
6a8e169001
Update copyright notice year
2016-06-01 21:25:19 +02:00
Camilla Berglund
9d50a346f0
Fix X11 build on non-Linux systems
2016-05-04 17:00:06 +02:00
Camilla Berglund
8a7fa306ce
Add glfwSetJoystickCallback
2016-03-31 12:12:09 +02:00
Camilla Berglund
10c0eb648a
Cleanup
2015-12-15 15:21:25 +01:00
Camilla Berglund
ec9fe02a30
Sort initial joystick set on Linux
...
Fixes #654 .
2015-12-15 14:57:02 +01:00
Camilla Berglund
45efb935c5
Use more GLFWbool
2015-12-13 15:09:33 +01:00
Camilla Berglund
12b6c56903
Add suffixes to platform specific helper functions
...
Also merge win32_tls.h into win32_platform.h.
2015-12-13 14:50:59 +01:00
Camilla Berglund
8f0f1cf6c1
Only poll requested joystick on Linux
...
This also performs minor cleanup.
2015-12-13 14:49:01 +01:00
Camilla Berglund
0eccf75f65
Replace GL booleans with public macros
2015-10-13 00:46:02 +02:00
Camilla Berglund
95a07f3340
Start 3.2
2015-10-12 21:59:49 +02:00
Jonathan Miller
dc4f0f6c91
Fixed close being used instead of inotify_rm_watch.
...
Closes #432 .
Fixes #440 .
2015-02-22 19:22:48 +01:00
Camilla Berglund
6c7509c942
Improved robustness of Linux joystick init.
2015-01-06 19:36:23 +01:00
Camilla Berglund
0fcbaeb596
Fixed broken Mir and Wayland builds.
...
Fixes #411 .
2015-01-06 01:44:31 +01:00
Camilla Berglund
56202ee7c6
Added Linux joystick hot-plugging via inotify.
...
This is a temporary solution until the proper libudev one.
Progresses #17 .
2014-12-28 13:28:09 +01:00
Camilla Berglund
899117e785
Possible control flow clarification.
2014-11-06 19:37:52 +01:00
Camilla Berglund
e02b278db1
Linux joystick cleanup.
2014-05-16 11:27:30 +02:00
Camilla Berglund
deed44a4af
Fixed joystick name dangling pointer.
2014-05-16 11:25:34 +02:00
Camilla Berglund
48619a385e
Renamed joystick state members.
2014-04-08 17:47:38 +02:00