summaryrefslogtreecommitdiff
path: root/core/input
AgeCommit message (Collapse)Author
2022-05-20Add a new HashSet templatereduz
* Intended to replace RBSet in most cases. * Optimized for iteration speed
2022-05-16Replace most uses of Map by HashMapreduz
* Map is unnecessary and inefficient in almost every case. * Replaced by the new HashMap. * Renamed Map to RBMap and Set to RBSet for cases that still make sense (order matters) but use is discouraged. There were very few cases where replacing by HashMap was undesired because keeping the key order was intended. I tried to keep those (as RBMap) as much as possible, but might have missed some. Review appreciated!
2022-05-12Add a new HashMap implementationreduz
Adds a new, cleaned up, HashMap implementation. * Uses Robin Hood Hashing (https://en.wikipedia.org/wiki/Hash_table#Robin_Hood_hashing). * Keeps elements in a double linked list for simpler, ordered, iteration. * Allows keeping iterators for later use in removal (Unlike Map<>, it does not do much for performance vs keeping the key, but helps replace old code). * Uses a more modern C++ iterator API, deprecates the old one. * Supports custom allocator (in case there is a wish to use a paged one). This class aims to unify all the associative template usage and replace it by this one: * Map<> (whereas key order does not matter, which is 99% of cases) * HashMap<> * OrderedHashMap<> * OAHashMap<>
2022-05-05Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@b7d126eb71fe9354a2b7cf04085a5fff58ed3815
2022-05-03Remove `RES` and `REF` typedefs in favor of spelled out `Ref<>`Hugo Locurcio
These typedefs don't save much typing compared to the full `Ref<Resource>` and `Ref<RefCounted>`, yet they sometimes introduce confusion among new contributors.
2022-05-02Style: Partially apply clang-tidy's `cppcoreguidelines-pro-type-member-init`Rémi Verschelde
Didn't commit all the changes where it wants to initialize a struct with `{}`. Should be reviewed in a separate PR. Option `IgnoreArrays` enabled for now to be conservative, can be disabled to see if it proposes more useful changes. Also fixed manually a handful of other missing initializations / moved some from constructors.
2022-04-22Use Input::push_input for tests plus extra mouse testingPaulb23
2022-04-14Merge pull request #60208 from Magorx/input-set-custom-mouse-cursor-fixRémi Verschelde
Added p_shape check to avoid engine crash in DisplayServer
2022-04-13Added p_shape check to avoid engine crushKingCakeTheFruity
2022-04-06Fix some issues found by cppcheck.bruvzg
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-03-27Rename warp mouse functions to warp_mouseMarkus Sauermann
2022-03-20Ensure minimum modifiers are pressed when matching actionsMarcel Admiraal
2022-03-02Remove `TTRC()` with empty stringHaoyu Qiu
Fixes "duplicate message definition" when extracting messages.
2022-02-20Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@94b76208bc07a62a63575bc16da99411d325aac8
2022-02-19[HTML5] Add Stadia controller to databasePowerbyte7
Add web support for the Stadia controller.
2022-02-16Style: Cleanup single-line blocks, semicolons, dead codeRémi Verschelde
Remove currently unused implementation of TextureBasisU, could be re-added later on if needed and ported.
2022-02-03Merge pull request #56764 from madmiraal/fix-45592-2Rémi Verschelde
2022-01-29simplify formatting scripts, add a clang-tidy script, and run clang-tidyNathan Franke
2022-01-26Merge pull request #54173 from nathanfranke/fix-exact-matchRémi Verschelde
2022-01-24Fix action exact matchNathan Franke
2022-01-24Merge pull request #56754 from madmiraal/fix-45592Rémi Verschelde
2022-01-20Add `Input.is_anything_pressed` methodAndrii Doroshenko (Xrayez)
2022-01-14Fix Actions mapped to triggers not using the full rangeMarcel Admiraal
2022-01-13Fix mouse velocity not changing fast enoughMarcel Admiraal
- Uses all accumulated movements when calculating velocity - Discards old accumulated movements - Sets last mouse velocity to zero when there is no movement
2022-01-13Use mouse event relative motion to calculate mouse velocityMarcel Admiraal
2022-01-11Merge pull request #56322 from madmiraal/fix-42450Rémi Verschelde
2022-01-10Add joystick button index boundary check. Increase max. button number to 128 ↵bruvzg
(max. buttons supported by DirectInput).
2022-01-04Document InputEventMIDI and add some missing 0xF MIDI messagesAaron Franke
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-12-29Rename speed to velocity when it's a directional VectorMarcel Admiraal
2021-12-17Revert "Fixed event spam when using the Nintendo Switch controller"Marcel Admiraal
2021-12-17Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@265b43b7895bc5cd5eaf498414e9c62b5152b0fb.
2021-12-16Fixed event spam when using the Nintendo Switch controllerSam Lantinga
There is no filtering on the Nintendo Switch Pro controller thumbstick, so there will frequently be events with very slight change. These are turned into "not pressed" events, which cancel "pressed" events from keys and buttons. This change filters out up to 5% jitter, but it might be worth revisiting whether "not pressed" events should cancel "pressed" events.
2021-12-10Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@348cfa347f21825e922493e3d15ed1bb3836e6c4.
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-12-06Unexpose joy_connection_changed methodkobewi
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-23Add Input.is_physical_key_pressed method.bruvzg
2021-11-16Rename built-in `SGN()` macro to `SIGN()`Hugo Locurcio
This matches the name of the GDScript function (except it's uppercase here).
2021-11-12Use "enum class" for input enumsAaron Franke
2021-11-03Sync controller mappings DB with SDL2 community repoRémi Verschelde
Synced with gabomdq/SDL_GameControllerDB@322aac4bb71d8c62ec7dcd4eb627a9d338b37684. Also improve parser errors to allow identifying the problematic mappings.
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
Sets `AlignOperands` to `DontAlign`. `clang-format` developers seem to mostly care about space-based indentation and every other version of clang-format breaks the bad mismatch of tabs and spaces that it seems to use for operand alignment. So it's better without, so that it respects our two-tabs `ContinuationIndentWidth`.
2021-10-22Merge pull request #53812 from RandomShaper/expose_flush_inputRémi Verschelde
2021-10-22Expose Input::flush_buffered_events()Pedro J. Estébanez
2021-10-21Remove unimplemented methodsMarcel Admiraal
2021-10-19Fix handling multiple "physical key" events in the single input map action.bruvzg
2021-10-18Merge pull request #53741 from DmitriySalnikov/exposed_sensor_setters_masterRémi Verschelde
2021-10-15SCons: List `.gen.cpp` sources explicitly to avoid globbing errorsRémi Verschelde
Whenever we change the name (or remove) generated cpp files with the `.gen.cpp` extension, users run into build issues when switching between branches (i.e. switching before and after the name change/removal). This is because we glob `*.cpp` so if a now-obsolete file from a previous build is present, we'll include it too, potentially leading to bugs or compilation failure (due to missing headers or invalid code). So globbing patterns in `add_source_files` will now skip files ending with `.gen.cpp`, which should instead be passed explicitly where they're used.