summaryrefslogtreecommitdiff
path: root/core/input
AgeCommit message (Collapse)Author
2020-12-03Merge pull request #43660 from EricEzaM/PR/INP1-inputevent_as_text_and_to_stringRémi Verschelde
InputEvent as_text now returns readable string. Added to_string for debug strings
2020-12-03Ignore hint entries in game controller mappingMarcel Admiraal
2020-11-27InputEvent as_text now returns readable string. Added to_string for debug ↵Eric M
strings Made InputEvent as_text() return a readable and presentable string. Added to_string() overrides for each which returns a 'debug-friendly' version which is not as presentable but provides more information and in a more structured fashion. Use as_text() for UI display scenarions and to_string() for debug cases
2020-11-19Merge pull request #43591 from madmiraal/fix-43520Rémi Verschelde
Update joy button and stick names, enums and documentation
2020-11-19Update joy button and stick names, enums and documentationMarcel Admiraal
2020-11-19Merge pull request #43662 from EricEzaM/PR/INP3-command_serialization_optionalRémi Verschelde
Made serialization of Command toggleable when saving InputEvents.
2020-11-19Made serialization of Command toggleable when saving InputEvents.Eric M
Made serialization of Command optional. If command is serialized, Control (On Win/Linux) or Meta (on Mac) are not. Example use case: You are on Windows and you set a shortcut to be Control + E. This would serialize as Command=true and Control=true. If you then run this project on Mac, you would need to press Command AND Control to activate the shortcut - which is not what is intended. Now, you can set store_command to true, and it will only serialize to Command = true (no Control serialized). On Windows, this means Control. On Mac, it means only command.
2020-11-19Merge pull request #43661 from EricEzaM/PR/INP2-rename_load_from_globalsRémi Verschelde
load_from_globals() -> load_from_project_settings()
2020-11-19load_from_globals() -> load_from_project_settings()Eric M
2020-11-16Remove empty lines around braces with the formatting scriptAaron Franke
2020-11-16Merge pull request #43233 from madmiraal/fix-42876Rémi Verschelde
Remove unneeded filter on joy_axis()
2020-11-16Merge pull request #42976 from aaronfranke/input-get-axisRémi Verschelde
Allow getting Input "axis" and "vector" values by specifying multiple actions
2020-11-12Release pressed action if event is removedTomasz Chabora
2020-11-11Allow getting Input axis/vector values by specifying multiple actionsAaron Franke
For get_vector, use raw values and handle deadzones appropriately
2020-11-11Add raw strength value for internal useAaron Franke
2020-11-07Reorganized core/ directory, it was too fatty alreadyreduz
-Removed FuncRef, since Callable makes it obsolete -Removed int_types.h as its obsolete in c++11+ -Changed color names code
2020-10-31Remove unneeded filter on joy_axis()Marcel Admiraal
2020-10-26Apply upstream gamecontrollerdb patch 391.Marcel Admiraal
Co-authored-by: SalvoB <salvob41@users.noreply.github.com>
2020-10-26Provide support for buttons and D-pads mapped to half axes, andMarcel Admiraal
fix axes mapped to buttons and D-pads.
2020-10-18Refactor MethodBind to use variadic templatesreduz
Removed make_binders and the old style generated binders.
2020-09-29Removed unnecessary keyword, fix comment styleCraig-Stoneham
The privacy here is already private
2020-09-23Check for null in InputMap::_find_eventTomasz Chabora
2020-09-10Remove unused Python imports.Marcel Admiraal
2020-09-01Fix invalid CSV in SDL2 controller mappings DBRémi Verschelde
Follow-up to a61cae14696732fca214902161f40450dec2f9cd.
2020-09-01Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@d148c6ce4987e0cf58da8100c675eb5db8e43dfe.
2020-07-28SCons: Refactor running commands through buildersAndrii Doroshenko (Xrayez)
A new `env.Run` method is added which allows to control the verbosity of builders output automatically depending on whether the "verbose" option is set. It also allows to optionally run any SCons commands in a subprocess using the existing `run_in_subprocess` method, unifying the interface. `Action` objects wrap all builder functions to include a short build message associated with any action. Notably, this removes quite verbose output generated by `make_doc_header` and `make_editor_icons_action` builders.
2020-07-10Add override keywords.Marcel Admiraal
2020-06-15Renamed InputMap.get_action_list to InputMap.get_action_eventsLennard
2020-06-04Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@6191f6333bd66644c6a208fabb9fd5dabf0a5d43.
2020-05-19Style: Remove unnecessary semicolons from `core`Rémi Verschelde
Semicolons are not necessary after function definitions or control flow blocks, and having some code use them makes things inconsistent (and occasionally can mess up `clang-format`'s formatting). Removing them is tedious work though, I had to do this manually (regex + manual review) as I couldn't find a tool for that. All other code folders would need to get the same treatment.
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-05-14Port member initialization from constructor to declaration (C++11)Rémi Verschelde
Using `clang-tidy`'s `modernize-use-default-member-init` check and manual review of the changes, and some extra manual changes that `clang-tidy` failed to do. Also went manually through all of `core` to find occurrences that `clang-tidy` couldn't handle, especially all initializations done in a constructor without using initializer lists.
2020-05-13Implement half axis and inverted axis mapping.Marcel Admiraal
2020-05-13Update game controller enums.Marcel Admiraal
2020-05-13Parse SDL game controller half axis and inverted axis entries.Marcel Admiraal
2020-05-11Input: Readd 'Default Android Gamepad' magic bindingRémi Verschelde
Removed by mistake in #38292 like the Windows `__XINPUT_DEVICE__`, this magic binding is referenced directly in our code.
2020-05-07Re-add __XINPUT_DEVICE__hoontee
Required for `JoypadWindows::probe_joypads`. Partially reverts 510e83498e768ffbec8177f18a50180de828b844. Fixes #38554.
2020-05-05[Windows] Add support for the WinTab API for pen input.bruvzg
2020-04-29[Core] Rename linear_interpolate to lerpAaron Franke
2020-04-29Input: make VibrationInfo protected to allow implementors to use itpunto-
2020-04-28Merge pull request #38295 from akien-mga/input-is-backRémi Verschelde
Rename InputFilter back to Input
2020-04-28Rename InputFilter back to InputRémi Verschelde
It changed name as part of the DisplayServer and input refactoring in #37317, with the rationale that input no longer goes through the main loop, so the previous Input singleton now only does filtering. But the gains in consistency are quite limited in the renaming, and it breaks compatibility for all scripts and tutorials that access the Input singleton via the scripting language. A temporary option was suggested to keep the scripting singleton named `Input` even if its type is `InputFilter`, but that adds inconsistency and breaks C#. Fixes godotengine/godot-proposals#639. Fixes #37319. Fixes #37690.
2020-04-28Input: Drop obsolete versions of SDL gamecontrollerdbRémi Verschelde
The 204 and 205 are the older, SDL 2.0.4 and 2.0.5 compatible mappings, but since all new mappings have only been added to the main gamecontrollerdb.txt which overrides the older entries, it doesn't make much sense for us to keep the old databases. We do not support the SDL2 half axes and inverted axes features from gamecontrollerdb.txt, but this only impacts the specific controllers which can use those features, the rest are parsed and used properly. As for godotcontrollerdb.txt, it doesn't make sense for us to maintain our own custom mappings instead of submitting them upstream. The only exception is the Javascript and UWP platforms for which no bindings are available upstream, so we keep those entries.
2020-04-25Add const to InputEventMouseButton::get_factorTobias Mansfield-Williams
2020-04-02Replace more occurrences of NULL with nullptrRémi Verschelde
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-30SCons: Format buildsystem files with psf/blackRémi Verschelde
Configured for a max line length of 120 characters. psf/black is very opinionated and purposely doesn't leave much room for configuration. The output is mostly OK so that should be fine for us, but some things worth noting: - Manually wrapped strings will be reflowed, so by using a line length of 120 for the sake of preserving readability for our long command calls, it also means that some manually wrapped strings are back on the same line and should be manually merged again. - Code generators using string concatenation extensively look awful, since black puts each operand on a single line. We need to refactor these generators to use more pythonic string formatting, for which many options are available (`%`, `format` or f-strings). - CI checks and a pre-commit hook will be added to ensure that future buildsystem changes are well-formatted.
2020-03-26Refactored input, goes all via windows now.Juan Linietsky
Also renamed Input to InputFilter because all it does is filter events.