This fixes a recent regression. In theory, low priority tasks should always go to the queue and never be executed on the calling thread. However, when using NO_THREADS build, all tasks need to execute on the calling thread.
This is necessary because we will always deadlock if a thread takes on multiple pump tasks since pump tasks never return.
This means when using separate threads for certain systems (like physics or rendering), we need to be sure that there are enough threads to have at least one per system (to ensure forward progress).
configured `InputEvent` in the plugin
This allows undo and redo, and can mark in time whether the handled
`InputEvent` resource is edited.
`command_or_control_autoremap` needs to be handled separately, as
its value will change the usage of other properties.
- Now you can get the ContainerTypeValidate from a Dictionary (both for
keys and for values).
- ContainerTypeValidate exposes a validator function that does not show
any error in case of failure. This allows testing values before trying
to use them in Dictionary.
Code in core/ generally should not depend on code from main/
This include was added in #41100 in order to call
`Main::is_project_manager()`. The `is_project_manager()` check was
later removed in #52742 but this include was never cleaned up.
This clean-up is related to #108429.
A new tab is added to the debugger that can help profile a game's memory usage.
Specifically, this lets you save a snapshot of all the objects in a running
game's ObjectDB to disk. It then lets you view the snapshot and diff two
snapshots against each other. This is meant to work similarly to Chrome's
heap snapshot tool or Unity's memory profiler.
Fix the order in which modifier keys are appended in as_text() and keycode_get_string() to ensure consistent and logical ordering (Ctrl, Alt, Shift, Meta). Refactored keycode_get_string() to use a vector for building the key string, improving readability and maintainability.
Made possible by EIREXE, xsellier and the SDL team.
This commit includes statically linked SDL3 for Windows, Linux and macOS.
The vendored copy of SDL3 was setup to only build the required subsystems
for gamepad/joystick support, with some patches to be able to make it as
minimal as possible and reduce the impact on binary size and code size.
Co-authored-by: Álex Román Núñez <eirexe123@gmail.com>
Co-authored-by: Xavier Sellier <xsellier@gmail.com>
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>