diff --git a/docs/input.dox b/docs/input.dox index f11e6dc8..1dc21715 100644 --- a/docs/input.dox +++ b/docs/input.dox @@ -736,9 +736,10 @@ the largest available index for each array. @subsection gamepad_mapping Gamepad mappings -Newer ones can be added with @ref glfwUpdateGamepadMappings. This function -supports everything from single lines up to the entire unmodified contents of -the `gamecontrollerdb.txt` file. +GLFW contains a copy of the mappings available in +[SDL_GameControllerDB](https://github.com/gabomdq/SDL_GameControllerDB) at the +time of release. Newer ones can be added at runtime with @ref +glfwUpdateGamepadMappings. @code const char* mappings = load_file_contents("gamecontrollerdb.txt"); @@ -746,6 +747,9 @@ const char* mappings = load_file_contents("gamecontrollerdb.txt"); glfwUpdateGamepadMappings(mappings); @endcode +This function supports everything from single lines up to and including the +unmodified contents of the whole `gamecontrollerdb.txt` 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. @@ -786,8 +790,20 @@ 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`. Mappings without this field will always be considered valid. +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. + +@code{.unparsed} +78696e70757401000000000000000000,XInput Gamepad (GLFW),platform:Windows,a:b0, +b:b1,x:b2,y:b3,leftshoulder:b4,rightshoulder:b5,back:b6,start:b7,leftstick:b8, +rightstick:b9,leftx:a0,lefty:a1,rightx:a2,righty:a3,lefttrigger:a4, +righttrigger:a5,dpup:h0.1,dpright:h0.2,dpdown:h0.4,dpleft:h0.8, +@endcode + @note GLFW does not yet support the range and inversion modifiers `+`, `-` and -`~`. +`~` that were recently added to SDL. @section time Time input