Commit graph

3664 commits

Author SHA1 Message Date
Rémi Verschelde
0a81659d9b
Web: Fix version check for missing scalbnf LTO workaround
The check needs to happen after we set `env["CXX"]`.
Follow-up to #81340.

(cherry picked from commit 50161808c2)
2023-10-30 14:49:14 +01:00
Rémi Verschelde
c88a8f96b4
Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07)
2023-10-30 14:49:13 +01:00
ocean (they/them)
09554a66d8
Build system: add option for MSVC incremental linking.
(cherry picked from commit bbafe14970)
2023-10-30 14:49:13 +01:00
TurboHz
7c3d37ec1d Return exit code 0 when running --version or --help
Fixes https://github.com/godotengine/godot/issues/83661
2023-10-20 11:26:38 +02:00
bruvzg
d4c2e7ec2e
[macOS, 3.x] Use occlusionState to determine when window is drawable. 2023-10-11 11:49:38 +03:00
Rémi Verschelde
ddba96755f
Merge pull request #82009 from bruvzg/xc15_ld_bug3
[macOS, 3.x] Workaround Xcode 15 linker bug.
2023-09-20 23:40:17 +02:00
bruvzg
fad3fced8f
[macOS, 3.x] Workaround Xcode 15 linker bug. 2023-09-20 23:18:32 +03:00
bruvzg
233f21108b
[macOS] Change target version to 11.0+ to fix PCRE SLJIT build. 2023-09-20 23:03:53 +03:00
Rémi Verschelde
86dee6ee13
Merge pull request #81442 from bruvzg/gl_mt
[macOS, 3.x] Disable live resize in multithreaded rendering mode.
2023-09-18 15:03:56 +02:00
Rémi Verschelde
269749580d
Merge pull request #80935 from m4gr3d/fix_hardware_keyboard_input_routing_3x
[3.x] Fix Android input routing logic when using a hardware keyboard
2023-09-18 11:35:24 +02:00
Rémi Verschelde
ccf662c8b8
Merge pull request #79544 from panreyes/3.x
[3.x] Add support for repackaging the generated UWP APPX file with `makeappx`
2023-09-18 11:34:34 +02:00
Fredia Huya-Kouadio
620fdd1f07 Fix Android input routing logic when using a hardware keyboard
When a hardware keyboard is connected, all key events come through so we can route them directly to the engine.
This is not the case for soft keyboards, for which the current logic was designed as it requires extra processing.
2023-09-14 04:29:15 -07:00
bruvzg
dfa509a3b4
[macOS] Disable live resize in multithreaded rendering mode. 2023-09-08 08:39:47 +03:00
Rémi Verschelde
10120783d6
Merge pull request #81090 from SysError99/3.x-fix-js-callback-mem-leak
[3.x] Fix JavaScript callback memory leak
2023-09-06 13:03:31 +02:00
Ben Rog-Wilhelm
1e2e3b21f3
Fix: incorrectly .gitignored files.
(cherry picked from commit 90f3992036)
2023-08-29 12:55:44 +02:00
bruvzg
5eca175816
[macOS] Bump min. version to 10.13, and remove deprecated code.
(cherry picked from commit fd3e7e25e8)
2023-08-29 12:42:10 +02:00
Hugo Locurcio
8a5fb8c69b
Update PCK embedding SCons warning message to mention mold linker
mold is now part of the SCons `linker` option.

(cherry picked from commit 074d87d718)
2023-08-29 12:42:10 +02:00
Fredia Huya-Kouadio
6d1bf81e01
Address kotlin build warnings
(cherry picked from commit 242ffb72b8)
2023-08-29 12:42:10 +02:00
Riteo
a0961d64e4
Make PIE relocation detection glibc-only
Musl doesn't compile with it, and by looking online I think that this is
a glibc only thing.

(cherry picked from commit 2a6ce37910)
2023-08-29 12:42:10 +02:00
Ekaterina Vaartis
8bc325d991
Alter linux debug stacktraces handling to support more environments
- Use -gdwarf-4 to support both LLVM and GCC when calling addr2line
- Subtract position-independant execuable relocation when passing the
  address to addr2line

(cherry picked from commit 5e041eee11)
2023-08-29 12:42:10 +02:00
SysError99
8ac91f813f [3.x] Fix JavaScript callback memory leak 2023-08-29 03:12:53 +07:00
Rémi Verschelde
b92b3911f7
SCons: Disable misbehaving MSVC incremental linking
Fixes #77968.

(cherry picked from commit bc1aef88ee)
2023-08-28 20:37:27 +02:00
Riteo
1850325666
Build JoypadLinux sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.

(cherry picked from commit 51dfdfab96)
2023-08-28 17:27:16 +02:00
Hiroki Taira
4c00ecd146
Add support for DPAD Center key of Android TV remote controller
(cherry picked from commit 9dc84e3581)
2023-08-28 17:27:16 +02:00
Dominik
e62f087bf8
Added a few additional GUIDs to list of hardcoded IDs in is_xinput_device
(cherry picked from commit 19ce63d875)
2023-08-28 17:27:15 +02:00
Omar Shehata
42d2187f38
Fix double tap & drag on Android
(cherry picked from commit 0c94750642)
2023-08-28 17:27:15 +02:00
Roman Vasilyev
93913e8d5c
ios splash screen rotation fix
(cherry picked from commit 8fcca194a1)
2023-08-28 17:27:14 +02:00
Rémi Verschelde
55550da68b
SCons: Disable C++ exception handling
Upon investigating the extremely slow MSVC build times in #80513, I noticed
that while Godot policy is to never use exceptions, we weren't enforcing it
with compiler flags, and thus still included exception handling code and
stack unwinding.

This is wasteful on multiple aspects:

- Binary size: Around 20% binary size reduction with exceptions disabled
  for both MSVC and GCC binaries.
- Compile time:
  * More than 50% build time reduction with MSVC.
  * 10% to 25% build time reduction with GCC + LTO.
- Performance: Possibly, needs to be benchmarked.

Since users may want to re-enable exceptions in their own thirdparty code
or the libraries they compile with Godot, this behavior can be toggled with
the `disable_exceptions` SCons option, which defaults to true.
2023-08-16 10:34:10 +02:00
bruvzg
40490bb626
[macOS] Back-port notarytool, provisioning profile and PKG export options. 2023-08-07 08:41:37 +03:00
Rémi Verschelde
d5a56f023a
Merge pull request #80093 from Faless/js/npm_update
[3.x] [JS] Update npm packages
2023-08-02 17:32:15 +02:00
Fabio Alessandrelli
8fb47d6b3e [JS] Update npm packages 2023-08-01 11:51:41 +02:00
puzzud
140440ee82 [3.x] Prevent double input events on gamepad when running through steam input #79706
Co-authored-by: Eoin O'Neill <eoinoneill1991@gmail.com>
2023-07-20 16:35:44 -04:00
Pablo Navarro
7d7e256e7f Added support for repackaging the generated UWP APPX file with makeappx. 2023-07-17 20:54:32 +02:00
Fredia Huya-Kouadio
5cf0ba88e3 Add parameters for the Godot Activity starting intent to allow restarting or force-quitting the engine
Follow-up code cleanup for https://github.com/godotengine/godot/pull/78130
2023-06-15 21:45:30 -07:00
bruvzg
9461923eff
[X11] Use current keyboard layout in OS_X11::keyboard_get_scancode_from_physical. 2023-06-13 09:29:08 +03:00
Fredia Huya-Kouadio
ee07f60b07 Fix issue causing the last edited project to open while switching to another one.
Fixes https://github.com/godotengine/godot/issues/76562
2023-06-11 23:19:02 -07:00
Fredia Huya-Kouadio
f3026c2aa0
Merge pull request #78085 from m4gr3d/fix_multitouch_detection_spatial_viewport_3x
[3.x] Fix spatial viewport multitouch detection support
2023-06-11 18:08:30 -07:00
Fredia Huya-Kouadio
8f44765831 Fix spatial viewport multitouch detection support
Regression introduced by https://github.com/godotengine/godot/pull/77497
2023-06-10 08:52:26 -07:00
Fredia Huya-Kouadio
b5a908c985 Add setting to control the window used to run the project for the Android editor
The follow options were added to the (new) `run/window_placement/android_window` editor setting:

- `Auto`: choose how to run the project based on the device screen size
- `Same as Editor`: run the project in the same window as the editor
- `Side-by-side with Editor`: run the project in an adjacent window to the editor
2023-06-07 18:20:14 -07:00
David Turner
d0019e431d [Linux/TTS] Remove unused code
In 4.x, we need to find out what language is being used, so that
we can break words.  In 3.x, we assume that spaces spearate words.

So we do not need to find the language for the current voice.
2023-06-06 11:29:43 -04:00
Fredia Huya-Kouadio
9c334fa242 Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
Fixes https://github.com/godotengine/godot/issues/73801
2023-05-31 00:21:57 -07:00
Rémi Verschelde
b71701714f
Merge pull request #77497 from m4gr3d/improve_keyboard_mouse_support_3x
[3.x] Improve touchpad and mouse support for the Android editor
2023-05-28 12:03:09 +02:00
bruvzg
18ee8da7d6
Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-26 20:57:29 +03:00
Fredia Huya-Kouadio
ccd36e0dbe Improve touchpad and mouse support for the Android editor 2023-05-25 20:09:35 -07:00
Fredia Huya-Kouadio
3bef5f29ec Update the format for the app version code and name 2023-05-24 14:40:37 -07:00
Rémi Verschelde
1538b870f1
Merge pull request #76715 from m4gr3d/add_input_event_cancelled_state_3x
[3.x] Augment the `InputEvent` class with a `CANCELED` state
2023-05-17 18:21:42 +02:00
Rémi Verschelde
e5e73e7068
Merge pull request #74583 from m4gr3d/setup_play_store_builds_3x
[3.x] Update the gradle build tasks to generate play store builds.
2023-05-17 18:21:36 +02:00
Fredia Huya-Kouadio
94d6c3dcc6 Augment the InputEvent class with a CANCELED state
The `InputEvent` class currently supports the `pressed` and `released` states, which given the binary nature, is represented by a `bool` field.
This commit introduced the `CANCELED` state, which signals that an ongoing input event has been canceled.
To represent all the states, the `InputEventState` enum is added and the `InputEvent` logic is refactored accordingly.
2023-05-12 15:22:54 -07:00
Rémi Verschelde
8a23fa41a8
Linux: Don't use udev for joypad hotloading when running in a sandbox
udev doesn't work in sandboxes, notably the new Steam container runtime
as found notably on the Steam Deck, and in Flatpak/Snap packages.

Like SDL does, when we detect such a containerized environment, we fall
back to parsing `/dev/input` directly.
See smcv's comments in #76879 for details.

Fixes #76879.

(cherry picked from commit 788cb74cc6)
2023-05-12 11:30:33 +02:00
Fredia Huya-Kouadio
f9ae38d87c
Merge pull request #73692 from m4gr3d/update_touchscreen_editor_settings_3x
[3.x] Enable granular control of touchscreen related settings
2023-05-08 09:10:36 -07:00
Fredia Huya-Kouadio
30e3e301e0 Update the gradle build tasks to generate play store builds.
Configure the gradle builds to sign and build the release version of the Godot Android Editor
2023-04-27 22:13:00 -07:00
Fredia Huya-Kouadio
3943de2e6c
Merge pull request #71875 from m4gr3d/editor_optimization_3x
[3.x] Add benchmark logic
2023-04-22 20:18:45 -07:00
Fredia Huya-Kouadio
837db0b051 Downgrade android gradle plugin to version 7.2.1.
Version 7.3.0 changes the build layout which causes updates to the generated shared libraries to not be picked up.
2023-04-21 13:19:45 -07:00
Jason Knight
cec8e09948 Fix null in android text entry system. 2023-04-12 09:20:44 -06:00
Rémi Verschelde
2c2ae757a8
Merge pull request #75205 from m4gr3d/bump_target_sdk_33_3x
[3.x] Bump the target SDK version to 33 (Android 13)
2023-04-11 10:53:39 +02:00
Fredia Huya-Kouadio
61e41facc7 Enable granular control of touchscreen related settings 2023-04-05 10:11:53 -07:00
Fredia Huya-Kouadio
2803c471e8 Bump the target SDK version to 33 (Android 13) 2023-03-21 19:24:39 -07:00
Fredia Huya-Kouadio
f3cdff46fc Add benchmark logic
Add benchmarking measuring methods to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-03-20 23:29:36 -07:00
Fredia Huya-Kouadio
e2c7d3e6c0 Fix directory access when the running app has the All files access permission 2023-03-20 09:00:48 -07:00
Chris Weber
914182ffe3
increased max touches to 32 for ios
(cherry picked from commit 54bd204377)
2023-03-06 13:48:18 +01:00
PrecisionRender
07b37b6b6c
Fix Xbox Series controller duplicate input
(cherry picked from commit e9400867b3)
2023-03-06 13:02:51 +01:00
Juan Linietsky
16757a80a8
Fix AltGR getting stuck on Windows right alt-tab
Fixes #28511.

(cherry picked from commit e01452adb0)
2023-03-06 13:01:54 +01:00
Rémi Verschelde
8edd526c2c
Merge pull request #73781 from BZ1234567890/issue-73305-b3x
[3.x] iOS: Implement missing gamepad.buttonOptions, buttonMenu, and buttonHome joy buttons
2023-03-06 12:51:57 +01:00
Rémi Verschelde
d2ac29abe3
Merge pull request #74469 from m4gr3d/configure_snapshot_publish_version_3x
[3.x] Configure maven central snapshot versions for the Godot Android library
2023-03-06 12:38:49 +01:00
Fredia Huya-Kouadio
0e2292f341 Configure maven central snapshot versions for the Godot Android library
A snapshot version is a version that has not yet been released which allows us to deploy the same transient version incrementally, without requiring projects to upgrade the artifact version they're consuming. Those projects can use the same version to get an updated snapshot version.
2023-03-06 01:29:41 -08:00
necrashter
9bdb585318
Use the new API for virtual keyboard height detection on Android, bugfix 2023-03-06 00:24:09 +03:00
BZ1234567890
0a85e4db71 iOS: Implement missing gamepad.buttonOptions, buttonMenu, and buttonHome joy buttons 2023-02-22 21:14:54 +01:00
Travis Veralrud
28b11a0785 iOS: Fix memory leak on touch input
Replaces iOS gesture with touch implementation

Fixes #66422

Remove godot_view_gesture_recognizer

It's now unused.

Remove input_devices/pointing/ios/touch_delay

Unused with removal of gesture.

Remove unused methods from interface

Implementation made obsolete in prior commit

Style conformance
2023-02-15 21:38:55 -08:00
Rémi Verschelde
8104416337
Merge pull request #73127 from akien-mga/uwp-google-angle
UWP: Fix build with Google ANGLE not supporting EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER
2023-02-13 13:09:29 +01:00
Rémi Verschelde
bd177bb1cd
Merge pull request #73126 from akien-mga/uwp-clipboard-fix
UWP: Fix app crash when `managed_object->update_clipboard()` is called
2023-02-13 13:09:05 +01:00
Fredia Huya-Kouadio
6528f984fe Fix the issue causing long-press on a selected node on the scene tree to trigger both the context menu and the rename functionality 2023-02-12 21:20:51 -08:00
Antokolos
eebc983df8
UWP: Fix build with Google ANGLE not supporting EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER
EGL_ANGLE_DISPLAY_ALLOW_RENDER_TO_BACK_BUFFER is not present in Google ANGLE,
and Microsoft ANGLE is outdated and not supported anymore.
2023-02-11 22:52:37 +01:00
Antokolos
f5693969f0
UWP: Fix app crash when managed_object->update_clipboard() is called 2023-02-11 22:50:32 +01:00
Fredia Huya-Kouadio
b04c9a71f4 Implement file provider capabilities
The previously used file sharing api was restricted after Android N causing the engine to crash whenever used on devices running Android N or higher.
2023-02-01 01:01:20 -08:00
Fredia Huya-Kouadio
aed400cce2
Merge pull request #71654 from m4gr3d/increase_scroll_bar_size_for_touchscreen_3x
[3.x] Update the size of the scrollbar for the editor on touchscreen devices
2023-01-31 21:52:03 -08:00
Fredia Huya-Kouadio
48a55ffad3 Provide a delegate implementation for the killProcess logic on Android
The implementation forwards the kill request to the Godot host for handling. If the Godot host is unable to handle the request, it falls back to the `OS_Unix::kill(...)` implementation.
2023-01-26 03:33:22 -08:00
Fredia Huya-Kouadio
e59752bcb7 Update the Godot Android Editor name from Godot Editor to Godot Editor 3
Keep things consistent with the label used for `Godot Editor 4`, and avoid user confusion regarding the different versions of the engine.
2023-01-24 05:11:08 -08:00
Rémi Verschelde
5a7997c794
Merge pull request #71838 from m4gr3d/fix_godot_editor_cropping_3x
[3.x] Update the logic to calculate the screen scale on Android
2023-01-23 22:28:32 +01:00
Jordan Schidlowsky
86945ffc78 Windows: Fix heap overflow setting native icon
Fixes #71697.
2023-01-23 10:25:44 -06:00
Fredia Huya-Kouadio
8170b7ae1e Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices 2023-01-22 07:09:48 -08:00
Fredia Huya-Kouadio
48aedb239e Update the logic to calculate the screen scale on Android
Takes into account the ratio between the screen size and the default window dimensions.
2023-01-21 22:47:02 -08:00
Tom Beckmann
52919ff352
Fix writing value for hand-tracking V2.0 to AndroidManifest.xml
(cherry picked from commit 0116d50fdd)
2023-01-20 12:16:31 +01:00
Rémi Verschelde
8b9b488a62
Merge pull request #71722 from akien-mga/3.x-macos-sprintf
macOS: Fix sprintf deprecation warning
2023-01-20 12:13:03 +01:00
Rémi Verschelde
a297a69ac8
macOS: Fix sprintf deprecation warning
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
2023-01-20 11:18:40 +01:00
Hugo Locurcio
badcfa2523
Expose OS.read_string_from_stdin() to the scripting API
This can be used in scripts to read user input in a blocking manner.

This also removes the unused `block` argument, which is always `true`.
2023-01-16 11:39:53 +01:00
dependabot[bot]
90132061f5
Bump json5 from 1.0.1 to 1.0.2 in /platform/web
Bumps [json5](https://github.com/json5/json5) from 1.0.1 to 1.0.2.
- [Release notes](https://github.com/json5/json5/releases)
- [Changelog](https://github.com/json5/json5/blob/main/CHANGELOG.md)
- [Commits](https://github.com/json5/json5/compare/v1.0.1...v1.0.2)

---
updated-dependencies:
- dependency-name: json5
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
(cherry picked from commit a20c8443af)
2023-01-11 14:24:29 +01:00
Marius Seufzer
bf577a6c2a
iOS: Add new model identifiers for DPI metrics
Co-authored-by: bruvzg <7645683+bruvzg@users.noreply.github.com>
(cherry picked from commit ee5057a42e)
2023-01-11 14:24:08 +01:00
bruvzg
456cdf84c1
[macOS] Fix stylus tilt Y direction.
(cherry picked from commit 5478f9b842)
2023-01-11 14:23:11 +01:00
Rémi Verschelde
1426cd3b3a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Fabio Alessandrelli
d0ba1517a7 [Web] Expose API to force file system sync. 2023-01-09 21:30:42 +01:00
Fredia Huya-Kouadio
4110d48b63 Add boot splash for the Godot Editor 2022-12-16 09:54:50 -08:00
Rémi Verschelde
6963ba631e
Fix typos with codespell 2022-12-15 12:26:59 +01:00
Dennis Ranke
55441f2301
handle ambiguous input events as touch events
there can be events can have both SOURCE_TOUCHSCREEN and SOURCE_STYLUS. handle them as touch events rather than mouse events.

(cherry picked from commit 408000752c)
2022-12-15 12:18:41 +01:00
Fredia Huya-Kouadio
de45636fd3
Upgrade Android gradle plugin to version 7.2.1
(cherry picked from commit 151233b702)
2022-12-12 14:49:23 +01:00
Fabio Alessandrelli
eda014197f
[Web] Add the "serve" and "run" scons targets.
You can now run the test HTTP server by calling:

scons p=javascript serve

If you also wish to run the browser, call instead:

scons p=javascript run

The default listen port is 8060, but can be overriden via the env
variable GODOT_WEB_TEST_PORT which must be a valid integer.

(cherry picked from commit a06602363c)
2022-12-12 14:49:22 +01:00
Hugo Locurcio
816db5c215
Replace local web server setup for web editor with a Python-based solution
This makes it easier to set up, as you always have Python installed
when building Godot. On the other hand, you don't always have Node.js
+ npm installed (and you may not want to spend time running `npm install`).

Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
(cherry picked from commit 1be1b15a57)
2022-12-12 14:49:22 +01:00
Rémi Verschelde
b0b759e6da
SCons: Cleanup DEBUG, _DEBUG and NDEBUG defines
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
  Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
  outside thirdparty code, which we usually don't intend to debug, so it
  seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
  and `release_debug` targets. This used to be set for `release` for all
  platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
  code, which was only implemented for Unix anyway, should have been
  `DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
  target as we don't want OIDN and Embree asserting all over the place.

(cherry picked from commit 26e9145c26)
2022-12-12 14:49:21 +01:00
Hugo Locurcio
06c266f231
Only support XDG directory path configuration on Linux
This also harmonizes the server code to be consistent with Linux desktop
(with warnings printed for relative XDG paths).

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-12 11:13:19 +01:00
Pedro J. Estébanez
0873cf0656 Keep a single, portable implementation of OS::get_processor_count()
(cherry picked from commit 6bf02c0162)
2022-12-12 14:47:37 +08:00
nyanpasu64
8f5ccfa21f Fix burning CPU with udev disabled on Flatpak
Fixes #67355.

(cherry picked from commit 0cbd1c85a9)
2022-12-12 14:42:23 +08:00