Age | Commit message (Collapse) | Author |
|
Implement universal translation of touch to mouse (3.1)
|
|
Now generating mouse events from touch is optional (on by default) and it's performed by `InputDefault` instead of having each OS abstraction doing it. (*)
The translation algorithm waits for a touch index to be pressed and tracks it translating its events to mouse events until it is raised, while ignoring other pointers.
Furthermore, to avoid an stuck "touch mouse", since not all platforms may report touches raised when the window is unfocused, it checks if touches are still down by the time it's focused again and if so it resets the state of the emulated mouse.
*: In the case of Windows, since it already provides touch-to-mouse translation by itself, "echo" mouse events are filtered out to have it working like the rest.
On X11 a little hack has been needed to avoid a case of a spurious mouse motion event that is generated during touch interaction.
Plus: Improve/fix tracking of current mouse position.
** Summary of changes to settings: **
- `display/window/handheld/emulate_touchscreen` becomes `input/pointing_devices/emulate_touch_from_mouse`
- New setting: `input/pointing_devices/emulate_mouse_from_touch`
|
|
|
|
This results in a better DynamicFont appearance when scaled, which
is especially noticeable when using the `2d` scaling mode.
|
|
Works both for the editor and games.
Projects can still use "debug/settings/stdout/print_fps" to enable it
permanently. The --print-fps option takes precedence (so works even if
the project setting is disabled). That setting is also no longer redefined
on the fly based on the verbose flag, that was a mess.
|
|
|
|
(`--video-driver`).
|
|
After 3f8a4cc7193e964f716fde2cd28a946669e2d8d6 trying to run an
individual scene on a project without a main scene fails. We move the
check until after we've determined whether or not we're trying to run an
individual scene.
We also stop trying to show the project manager if any game pack is
found at all, unless the user explicitly asks for the project manager to
be shown.
|
|
|
|
The previous logic with VERSION_MKSTRING was a bit unwieldy, so there were
several places hardcoding their own variant of the version string, potentially
with bugs (e.g. forgetting the patch number when defined).
The new logic defines:
- VERSION_BRANCH, the main 'major.minor' version (e.g. 3.1)
- VERSION_NUMBER, which can be 'major.minor' or 'major.minor.patch',
depending on whether the latter is defined (e.g. 3.1.4)
- VERSION_FULL_CONFIG, which contains the version status (e.g. stable)
and the module-specific suffix (e.g. mono)
- VERSION_FULL_BUILD, same as above but with build/reference name
(e.g. official, custom_build, mageia, etc.)
Note: Slight change here, as the previous format had the build name
*before* the module-specific suffix; now it's after
- VERSION_FULL_NAME, same as before, so VERSION_FULL_BUILD prefixed
with "Godot v" for readability
Bugs fixed thanks to that:
- Export templates version matching now properly takes VERSION_PATCH
into account by relying on VERSION_FULL_CONFIG.
- ClassDB hash no longer takes the build name into account, but limits
itself to VERSION_FULL_CONFIG (build name is cosmetic, not relevant
for the API hash).
- Docs XML no longer hardcode the VERSION_STATUS, this was annoying.
- Small cleanup in Windows .rc file thanks to new macros.
|
|
|
|
The Project Manager should share the same settings as the editor most of the time.
The whole init stuff with Main::setup and Main::start needs a good cleanup though.
Fixes #15199.
|
|
Makes project manager never initialize mono debug.
|
|
Some flags were still parsed but either did nothing or broke everything.
No reason to parse them.
|
|
The heuristic whether we're in the project manager inside GDMono
didn't work if the project manager was launched by not having any path
to run.
This is fixed now by making a Main::is_project_manager().
|
|
Add new window setting: always on top
|
|
Fix bug when launching a game with no main scene
|
|
This makes its hiDPI behavior consistent with the editor.
|
|
|
|
Fixes #15981
|
|
Using v1.11.0 from https://github.com/lucasdemarchi/codespell
|
|
|
|
Check for a main scene after loading project settings and exit if there's none (except if launching in editor mode).
|
|
This is important for some GDNative bindings and probably for Mono. They
may keep references to audio objects which are freed when they are
unregistered. If AudioServer is already deleted at that point, it causes
segfaults.
|
|
Limit number of errors and messages sent by runner
|
|
Implemented for Windows and Linux.
|
|
Using `misc/scripts/fix_headers.py` on all Godot files.
Some missing header guards were added, and the header inclusion order
was fixed in the Bullet module.
|
|
|
|
|
|
Custom hardware-accelerated mouse cursor
|
|
Happy new year to the wonderful Godot community!
|
|
|
|
If a scene is modified and a user closes the editor and selects the "Save
and exit" option in the modal dialog -- the editor crashes. This appears
to be a result of the message queue being memdeleted AFTER visual servers
have been destroyed. Remnant textures handled by the message queue throw a
NRE when their own ~Texture destructors reference the visual servers.
This fixes bugs: #12946 and #12813.
|
|
Sorry for the churn
|
|
|
|
|
|
|
|
|
|
|
|
Setting the vsync in the main thread, after the rendering thread starts
and takes the OpenGL context fails, so we need to do that before.
Also, for some reason, the main thread cannot make current the context
anymore.
Fixes #13447
|
|
|
|
|
|
customizable for editor too)
|
|
Restore rendering on a separate thread
|
|
And make it configurable, too.
|
|
Fix x11 boot logo position in fullscreen and in maximized
|
|
Removes the need for _MKSTR all over the place which has the drawback of
converting _MKSTR(UNKNOWN_DEFINE) to "UKNOWN_DEFINE" instead of throwing
a compilation error.
|
|
really use"
This reverts commit ca194033061b4b29fe00d8e9bddf2f0478b3c3f0.
See discussion in https://github.com/godotengine/godot/commit/ca194033061b4b29fe00d8e9bddf2f0478b3c3f0#commitcomment-25715906
It also did not fix the issue it claimed to fix.
|
|
Facilitate documenting platform-exclusive classes
|
|
|