Commit Graph

4918 Commits

Author SHA1 Message Date
Hugo Locurcio 803e901e22
Improve documentation on Android package unique name
- Document `$genname` behavior.
- Update to match actual validation and Google Play guidelines.

(cherry picked from commit 111908c4ed)
2024-03-11 15:13:20 +01:00
Micky 503dc95d71
Add documentation to EditorExportPlatformWeb
(cherry picked from commit 7ffacb5d49)
2024-03-11 15:05:13 +01:00
Rémi Verschelde 19673840fb
iOS: Enable Storyboard launch screen by default
LaunchImages are deprecated, and Storyboard is supported on all currently
supported iOS versions, so this should be the default.

LaunchImages support was removed in 4.3 with #86312.

(cherry picked from commit 91c5d1e245)
2024-03-11 15:01:23 +01:00
LinuxUserGD 5c10605295
os_linuxbsd.cpp: include `servers/rendering_server.h`
(cherry picked from commit 6307cebf37)
2024-03-11 15:01:22 +01:00
Fredia Huya-Kouadio 10f49cb758
Fix gradle build errors when the build path contains non-ASCII characters
(cherry picked from commit f1887a30f3)
2024-03-11 15:01:22 +01:00
Adam Scott b11c95dc98
Add `WASM_BIGINT` linker flag to the web build
(cherry picked from commit 3ae524fa9e)
2024-03-11 15:01:22 +01:00
Rémi Verschelde 193592d532
Web: Bump closure compiler spec to ECMASCRIPT_2021
Fixes #88008.

(cherry picked from commit d29b0d90e0)
2024-03-09 23:37:49 +01:00
Fabio Alessandrelli 5b4c5c4118
[Web] Fix closure compiler builds using BIGINT
When using proxy_to_pthread we add BIGINT support (to support exchanging
64 bits integers between wasm and JS).

Bigint though, is part of ECMAScript 2020, and the closure compiler was
using ECMAScript 6 instead.

This commit update the CC configuration to use ECMAScript 2020 instead.

(cherry picked from commit e9df955e39)
2024-03-09 23:37:30 +01:00
bruvzg 8c54f7b6cd
[macOS] Check Vulkan SDK version when looking for MoltenVK libs.
(cherry picked from commit 70e328385c)
2024-03-09 23:34:53 +01:00
Fredia Huya-Kouadio 307a6eba6b Update the validation logic for the package name:
- When using the project name, allow underscore (`_`) characters
- Send a warning instead of an error when the project name is modified to fit the package name format

(cherry picked from commit 0325568a9b)
2024-01-24 18:12:40 +01:00
jsjtxietian 126874bb38 Check nullptr in `_nvapi_disable_threaded_optimization` to prevent crash
update outdated link

(cherry picked from commit a3f44cd67e)
2024-01-23 19:57:34 +01:00
Fredia Huya-Kouadio f6a9129219 Preserve the output from the gradle build command
Updates `EditorNode#execute_and_show_output(...)` to return the output of the executed command.

(cherry picked from commit 136b7f9c52)
2024-01-23 19:15:03 +01:00
Fredia Huya-Kouadio a3432848b2 Fix Android editor crash issue
Fix issue causing the Android editor to crash when pressing back from a running project

(cherry picked from commit fcb07ff8dc)
2024-01-23 19:15:03 +01:00
Fredia Huya-Kouadio 2559d4b587 Remove Android specific abis from the export preset feature list
The presence of those abis cause them to be included in the set of `p_features` passed to the `gdextension_export_plugin#_export_file(...)` method, which caused them to be lumped in the `features_wo_arch` set.
When trying to find the gdextension library path, we use a predicate with the following logic:

```
[features_wo_arch, arch_tag](String p_feature) { return features_wo_arch.has(p_feature) || (p_feature == arch_tag); }
```

For a `gdextension` config file like the one below, this causes the first android entry (`android.armeabi-v7a = ...`) to always be returned regardless of archs since it always satisfies the predicate.

```
[configuration]

entry_symbol = "example_library_init"
compatibility_minimum = 4.1

[libraries]
linux.x86_64 = "res://libgdexample.so"

android.armeabi-v7a = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.arm32 = "res://libgdexample.android.template_release.armeabi-v7a.so"
android.x86 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_32 = "res://x86/libgdexample.android.template_release.x86.so"
android.x86_64 = "res://libgdexample.android.template_release.x86_64.so"
android.arm64-v8a = "res://libgdexample.android.template_release.arm64-v8a.so"
android.arm64 = "res://libgdexample.android.template_release.arm64-v8a.so"
```

(cherry picked from commit dce2686e52)
2024-01-23 19:09:45 +01:00
jitspoe ceb0602c16 Fix bug where maximized->fullscreen->windowed mode stays maximized.
(cherry picked from commit 7918e2b6d9)
2024-01-23 19:09:45 +01:00
scgm0 561b843831 Fix Andorid disabling splash screen Show Image
(cherry picked from commit 7771936df5)
2024-01-23 17:49:55 +01:00
thfrwn 204f3bd58d TTS_Linux: Fix size_t template issue on OpenBSD by using int consistently
(cherry picked from commit a0253e593c)
2024-01-23 16:54:02 +01:00
Ben Rog-Wilhelm a71153d9bd Fix: incorrectly .gitignored files.
(cherry picked from commit 90f3992036)
2024-01-23 16:03:15 +01:00
bruvzg ba41f42c82
[macOS] Fix MoltenVK SDK detection after file location changes in 1.3.275.0.
(cherry picked from commit a2c1c01941)
2024-01-18 10:47:42 +01:00
Mikael Klasson 39271362c3
Fix invalid Python escape sequences
(cherry picked from commit 4986d6d317)
2024-01-16 17:17:29 +01:00
Rémi Verschelde 1e1d91df6a
SCons: Re-disable exceptions for Android, iOS, and Web
We made a mistake when cherry-picking #80612 with 269b115d9c,
where the global flag was defaulted to false to preserve the 4.1-stable behavior for desktop
platforms, but we forgot that the refactoring removed the force disabling of exceptions for
Android, iOS, and Web.

This reintroduces this behavior so it should be back to the same as in 4.1/4.1.1, and the
export templates should get back to their original size.

Only difference, the old code used to keep exceptions for the Web editor, but I see no reason
for it, so I disable them like with the templates.
2023-11-01 22:16:17 +01:00
Fredia Huya-Kouadio 74a1d8addd Update the `launchMode` for the `GodotApp` activity to allow other activities to be part of the same task
For details, see https://developer.android.com/guide/topics/manifest/activity-element#lmode

(cherry picked from commit 14428c8d5b)
2023-11-01 16:20:27 +01:00
Alexander Hartmann 3d8c77dc92 Fix Android logic for deferred window input events being inverted
Notably fixes issues with `is_action_just_*` queries in `_physics_process`
for TouchScreenButton.

Fixes #66318.
Fixes #82396.

(cherry picked from commit 5137497c18)
2023-10-24 20:15:20 +02:00
Max Hilbrunner e37eb47144 Docs: Fix link to Android Gradle build tutorial
(cherry picked from commit 68a1e0c7d4)
2023-10-24 19:51:53 +02:00
floatingpointer 82ad6a3dad Update joypad_windows.cpp
Add XInput device for Series 2 Elite controller

(cherry picked from commit 81f9c0345c)
2023-10-24 19:50:22 +02:00
bruvzg 426e5288a1 [macOS] Fix borderless mode on macOS 13.6+.
(cherry picked from commit 873d4079d1)
2023-10-24 18:29:40 +02:00
Aitor Guevara fdfa59ee6c [Windows] Fix not applying NVIDIA profile to new executables
An NVIDIA profile is applied to the current executable to disable
threaded OpenGL optimizations on Windows (see #71472). But because the
application is only added to the profile upon the profile creation,
newer executables won't be added to the profile (e.g. if the profile is
created on first launch of Godot_v4.1-stable_win64.exe, when users
update the editor and launch Godot_v4.2-stable_win64.exe, the profile
will never be applied to this new executable).
This patch fixes that scenario by splitting creating the profile (if it
doesn't exist) and adding the application (if it doesn't have a profile
applied) into two separate steps.
Applications that have been manually added to a different profile aren't
overriden to avoid confusing users who know what they're doing.

(cherry picked from commit 6263774aec)
2023-10-24 18:17:02 +02:00
Adam Scott 21e1148cc5 Fix godot_js_wrapper_create_cb regression
(cherry picked from commit 8447cbc16d)
2023-10-24 17:25:07 +02:00
SysError99 55ae5b0a78 Fix JavaScript callback memory leak issue
Typo fix

(cherry picked from commit 6a90164a03)
2023-10-24 17:25:07 +02:00
Mario Liebisch 5bb54d3184 Updated compiler version detection
This fixes multiple issues/inconsistencies around  `get_compiler_version()`:
* With no shell allocated, launching the compiler could fail even
  with proper paths being set.
* The return value was described as "an array of version numbers as ints",
  but the function actually returned a `Dictionary` (or `None`).
* Not all calls were properly handling a `None` return value in case of errors.
  On Windows this broke compiling for me since #81869 with default settings.
* Some calls defined inconsistent defaults/fallbacks (`0` or `-1`).

(cherry picked from commit 426e18fd37)
2023-10-24 17:08:57 +02:00
Fredia Huya-Kouadio e0221d1c09 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.

(cherry picked from commit 87102e358d)
2023-10-24 16:52:58 +02:00
Brecht Kuppens 4944a07044 Windows: Always double-quote path when launching explorer.exe to browse
Code now always double quotes the filename to use as command line
argument when calling explorer.exe. In particular, commas in a filename
would be interpreted by explorer.exe as separators for commands.

Similarly a trim_suffix for "file://" is assumed to be a mistake, this
could potentially be a PREfix that we want to strip, but never a suffix.
Since it didn't seem needed in the end, we removed it.

(cherry picked from commit 5608b1d411)
2023-10-24 16:05:00 +02:00
Hugo Locurcio 67e1849bd4 Add missing tutorials to documentation classes
(cherry picked from commit 469c462b76)
2023-10-19 21:59:32 +02:00
PorkrollPosadist f5130502be Use EWMH for DisplayServerX11::_window_minimize_check() implementation
(cherry picked from commit 5666656d42)
2023-10-19 21:49:00 +02:00
bruvzg 02c6d985b8 Fix native popups auto-closing when interacting with non-client area.
(cherry picked from commit e26a6c36c8)
2023-10-19 21:45:11 +02:00
bruvzg eca105f075 [Windows] Do not force redraw window background on mouse pass-through region change.
(cherry picked from commit b240b5be84)
2023-10-19 21:21:02 +02:00
Rémi Verschelde aae20e5b10
Fix various typos with codespell
Also includes typo fixes from #79993, #80068, #80276, and #80303.

Co-authored-by: betalars <contact@betalars.de>
Co-authored-by: spaceyjase <429978+spaceyjase@users.noreply.github.com>
Co-authored-by: Swarkin <102416174+Swarkin@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>

(cherry picked from commit faaf27f284)
2023-10-03 20:45:35 +02:00
Rémi Verschelde 6b37ad40d7
Web: Disable raycast module by default (no occlusion culling)
This means no CPU occlusion culling (and not compiling Embree), unless
you compile custom export templates with `module_raycast_enabled=yes`.

This reduces the memory footprint significantly, and binary size.

Fixes #70621.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
(cherry picked from commit 8c40edf8c0)
2023-10-03 20:45:35 +02:00
Rémi Verschelde df0ebc6dfc
SCons: Fix Python 3.12 SyntaxError with regex escape sequences
(cherry picked from commit b362976504)
2023-10-03 20:45:35 +02:00
bruvzg 9308d20d1b
[iOS] Fix build with Xcode 15.
(cherry picked from commit e1c7104e46)
2023-10-03 20:45:32 +02:00
Tyler fed41ae520 Fix Windows console wrapper and icon being swapped
Fixes #80238.

(cherry picked from commit 3cf1e04579)
2023-09-21 15:43:10 +02:00
Fabio Alessandrelli 4355bf9cf3 [Web] Update npm packages
(cherry picked from commit 61e7d47344)
2023-09-21 15:39:16 +02:00
bruvzg 21da3f3847 [X11] Do not fail DisplayServer init if non-essential extensions are missing.
(cherry picked from commit acff87ffda)
2023-09-21 15:28:23 +02:00
Emmanouil Papadeas 252d816459 Fix `JavaScriptBridge.eval()` never returning PackedByteArray
It wrongly returned 20 on array buffers, which used to be the enumerator
value of Godot 3.x's type PoolByteArray, and now is the value of type Color,
while it should return 29 which is the enumerator value for PackedByteArray.

(cherry picked from commit c662491bd4)
2023-09-21 14:57:13 +02:00
Eoin O'Neill 58ff96b8b7 Prevent double input events on gamepad when running through steam input
During GDC and general testing on Steam Deck units, we found that single
gamepads would often register inputs twice under certain circumstances.
This was caused by SteamInput creating a new virtual device, which Godot
registers as a second gamepad. This resulted in two gamepad devices
reporting the same button presses, often leading to buggy input response
on games with no multi-device logic and other-wise could cause intended
Steam rebindings to not work as intended (for example, swapping o and x
on a playstation pad if that feature isn't supported by the game.)

SDL gets around this by taking in a list of devices that are to be
ignored. When valve sees a controller that wants to be rebound via
SteamInput, they push a new VID/PID entry onto the environment
variable `SDL_GAMECONTROLLER_IGNORE_DEVICES` for the original gamepad
so that all game inputs can be read from the virtual gamepad instead.

This leverages the same logic as we are already using SDL gamepad
related HID mappings.

(cherry picked from commit 8de98dbf21)
2023-09-21 14:57:13 +02:00
Rémi Verschelde 269b115d9c 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.

(cherry picked from commit 3907e53ff6)
2023-09-20 22:44:05 +02:00
Rémi Verschelde 8be838481d Allow unbundling OpenXR (for Linux distros)
Copy XrMatrix4x4f_CreateProjectionFov to our OpenXRUtil, instead of relying
on a private header.

(cherry picked from commit 34a07b81ae)
2023-09-20 22:44:05 +02:00
bruvzg a4c041b6b6 [macOS] Workaround Xcode 15 linker bug.
(cherry picked from commit 6da8c7a662)
2023-09-20 22:44:05 +02:00
Rémi Verschelde 12aeb83043 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-09-20 22:44:04 +02:00
Rémi Verschelde 6122cf3178 Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07)
2023-09-20 22:44:04 +02:00