Commit Graph

372 Commits

Author SHA1 Message Date
Hugo Locurcio
19be158d88 Fix build on X11 following 64-bit detection changes
This also ports over the cross-compilation logic to the `server`
platform, and allows Embree to be used in server tools builds on aarch64.
2024-02-08 15:23:22 +01:00
Rémi Verschelde
fae5c7f2f8 SCons: Fix Python 3.12 SyntaxError with regex escape sequences
(cherry picked from commit b362976504c3346b9f34b69dcad0838d1d381037)
2024-02-08 15:20:45 +01:00
Rémi Verschelde
1089d60dae Linux: Remove hardcoded lib path for x86 cross-compilation
This breaks the build with our updated i686 Linux SDK which doesn't contain
this path, and may not be needed at all.

(cherry picked from commit 63153c9d36768b1e5ab9c1562f400a2bd8c2f8cd)
2024-02-08 15:20:35 +01:00
Rémi Verschelde
326a098dac SCons: Fix Web build when compiler version isn't properly detected
Quick fix for #82585.

A better fix requires refactoring the way we detect the compiler version
to make it more reliable, and get a consistent output. But I prefer to
keep changes minimal for 3.x branches at this point.

Also set CI version to 3.1.39, which is what we use for official 3.6 builds
since 3.6-beta4.
2024-02-08 15:15:14 +01:00
Rémi Verschelde
b44ee23cee Web: Clarify that OS.get_unique_id is not supported
Remove the base error message in `OS`, we no longer really error out this
way for not implemented methods. Instead, each platform should override them
to provide the context they want.

Fixes #82439.

(cherry picked from commit 0a10f09ce4321695940a626eef9c64b36f599193)
2024-02-08 15:05:20 +01:00
floatingpointer
808103890a Add XInput device ID for wireless Series 2 Elite controller
(cherry picked from commit 81f9c0345c963ab1f06c2ed1d2d76368bdbd8f56)
2024-02-08 15:05:04 +01:00
nikitalita
cda33386ca SCons: Add stack_size and default_pthread_stack_size options to Web target
(cherry picked from commit 6788bc6bc2be68db9b9f1a37bf5edb8497eafb93)
2024-02-08 15:04:41 +01:00
Adam Scott
89ebe3f570 Set what were default values for some emscripten linkflags
- Set `-sSTACK_SIZE` to what it was before emscripten 3.1.27.
  It was renamed in 3.1.25 so also set `-sTOTAL_SIZE` for older
  versions for consistency.
- Set `-sDEFAULT_PTHREAD_STACK_SIZE` to what it was before 3.1.30.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
(cherry picked from commit 8e5fbd43488ad39a9b987c9abc38134841f44024)
2024-02-08 15:02:18 +01:00
Rémi Verschelde
d111a460b3 Linux: Add support for arm64 and arm32 export templates
This is done in a hacky way, mostly to keep it simple and avoid having
to do a refactoring of the `EditorExportPlatform` interface.

Only Windows and Linux use `EditorExportPlatformPC`, and thus to
handle the new architectures for Linux, we simply do a few checks here
and there with a couple new methods to register the export template
names for Linux arm64 and arm32.

For Godot 4.0, we did refactor everything to allow exporting binaries
for different architectures cleanly. For 3.6, which is likely the last
feature release for the 3.x branch, I tend to cut corners as these
improvements will be shorter lived and thus new tech debt isn't as big
a concern.
2024-02-08 15:01:00 +01:00
Zach Coleman
92a8e047e0 Add APP_PAUSED and APP_RESUMED MainLoop notifications 2024-02-08 14:49:18 +01:00
bruvzg
bf8d0672f6 Update linker flags for Xcode 15.0 - 15.2. Bump min. iOS version to 12. 2024-02-08 14:30:10 +01:00
Rémi Verschelde
c27a3cf9bc UWP: Fix VS 2017 build with new get_unique_id method
Fixes this error:
```
platform\uwp\os_uwp.cpp(715): error C3149: 'Windows::Storage::Streams::IBuffer': cannot use this type here without a top-level '^'
```
2024-02-08 14:19:32 +01:00
Cody Roberts
eb8ca6d2ed Add project settings for AVAudioSessionCategory on iOS
Co-authored-by: Georg Wacker <contact@georgwacker.com>
2024-02-08 14:06:59 +01:00
DylanCheetah
d04de8ef62 Implement UWP version of OS.get_unique_id function. 2024-02-08 13:59:32 +01:00
f927e2db73 Ran the clang format script. 2023-12-25 20:27:28 +01:00
e44c46d7a9 Fixed include paths, compile errors and some code style. 2023-12-25 20:00:07 +01:00
Fredia Huya-Kouadio
6713693291 Add Android project settings for gesture support
- Include project setting to enable long press for Android devices
- Include project setting to enable pan and scale gestures on Android devices
2023-12-20 23:08:39 +01:00
Fredia Huya-Kouadio
312a907ce7 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
2023-12-20 22:53:17 +01:00
Fredia Huya-Kouadio
8452eb6c97 Fix Android editor crash issue
Fix issue causing the Android editor to crash when pressing back from a running project
2023-12-20 22:52:19 +01:00
Fredia Huya-Kouadio
7000a13bda Automatically pick the Android sdk path using environment variables 2023-12-20 22:50:59 +01:00
bruvzg
dddc914981 Use occlusionState to determine when window is drawable. 2023-12-20 22:34:45 +01:00
TurboHz
5b05e02fde Return exit code 0 when running --version or --help
Fixes https://github.com/godotengine/godot/issues/83661
2023-12-20 22:33:58 +01:00
Zach Coleman
e7611e5eab Make OSIPhone::get_screen_refresh_rate respect iOS Low Power Mode 2023-12-20 22:29:10 +01:00
Rémi Verschelde
651857c040 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 50161808c240b2296045887e1fc683eee87905ae)
2023-12-20 22:16:55 +01:00
Rémi Verschelde
51d50bff9b Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.

(cherry picked from commit b064008c07be856d6f3a5079d11746137e03ede5)
2023-12-20 22:09:10 +01:00
ocean (they/them)
6f4467b13a Build system: add option for MSVC incremental linking.
(cherry picked from commit bbafe14970cf2a101b8b04dbfafeeaa9ddfb5d4d)
2023-12-20 22:03:39 +01:00
98912a89e8 File copyright header updates pt9. 2023-12-18 00:25:33 +01:00
88e9ad04f2 Moved back the servers and resources from core. 2023-12-10 23:11:07 +01:00
238bf1b331 Moved the RenderingServer to core. 2023-12-10 19:04:24 +01:00
83799f5cf5 Fix includes and build. 2023-10-02 18:30:49 +02:00
f25a340e43 Added back the uwp platform. It likely won't work for a while. 2023-10-02 18:20:17 +02:00
9022a74db3 Ported from godot: 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.
- m4gr3d
620fdd1f07
2023-10-02 17:10:27 +02:00
bruvzg
fa582212c4 Workaround Xcode 15 linker bug. 2023-10-02 16:54:52 +02:00
bruvzg
51d6403385 Change target version to 11.0+ to fix PCRE SLJIT build. 2023-10-02 16:54:20 +02:00
bruvzg
0dce2349c0 Disable live resize in multithreaded rendering mode. 2023-10-02 16:42:54 +02:00
SysError99
d7575edb2d Fix JavaScript callback memory leak 2023-10-02 16:18:41 +02:00
2199cba049 Fix compile error. 2023-09-10 15:12:26 +02:00
84ccfb340a Fix compile errors. 2023-09-10 15:03:32 +02:00
c380bd6587 More include juggling. 2023-09-10 14:59:32 +02:00
ca326971a4 More missing includes. 2023-09-10 14:53:45 +02:00
33c1b9c50f Added all os windows the includes temporarily to the sub process class. 2023-09-10 14:45:12 +02:00
3214cac8a6 Try to fix windows includes. 2023-09-10 14:37:48 +02:00
5e4b583b32 Added sub_process_windows.cpp to the build. 2023-09-10 14:18:18 +02:00
96470d4743 Fix template deduction. 2023-09-10 14:06:00 +02:00
25533eed23 Implemented SubProcessWindows. It will likely have issues / not compile. 2023-09-10 13:30:56 +02:00
3cfe43b5e8 Updated an another missing OS.run() call. 2023-09-10 10:26:05 +02:00
1877ecd379 Fix warning. 2023-09-10 09:59:50 +02:00
15f092866b Fix JNI method names and java class lookup names in the android backend. 2023-08-31 21:59:44 +02:00
Rémi Verschelde
83738e314c SCons: Disable misbehaving MSVC incremental linking
Fixes #77968.

(cherry picked from commit bc1aef88eef7bb09d1c537bf150414c50abfa374)
2023-08-30 11:16:00 +02:00
Riteo
913c3164b5 Build JoypadLinux sandbox detection method only with udev
Fixes an `unused-function` warning when building with `udev=no`.

(cherry picked from commit 51dfdfab967234f0fa9939bd7158cc96a9ec3547)
2023-08-30 11:13:10 +02:00
Hiroki Taira
39bb646127 Add support for DPAD Center key of Android TV remote controller
(cherry picked from commit 9dc84e35816fbb41cfabb1b6e11536edd7263c67)
2023-08-30 11:12:51 +02:00
Dominik
a672409537 Added a few additional GUIDs to list of hardcoded IDs in is_xinput_device
(cherry picked from commit 19ce63d87501b703b4c878fc9a48b36ac51975cd)
2023-08-30 11:03:23 +02:00
Omar Shehata
eea5d96503 Fix double tap & drag on Android
(cherry picked from commit 0c94750642978df5b5a100692c7b8be8522fd668)
2023-08-30 10:58:05 +02:00
Roman Vasilyev
ec37f9c811 ios splash screen rotation fix
(cherry picked from commit 8fcca194a16279ac5c22f702e544733056801b2a)
2023-08-30 10:56:42 +02:00
Rafał Mikrut
baa1442c58 Added code coverate support to Godot 2023-08-30 10:41:17 +02:00
Ben Rog-Wilhelm
222dcf6c7c Fix: incorrectly .gitignored files.
(cherry picked from commit 90f3992036b2f2fc1b4d08d1cc854d9cd62f6930)
2023-08-30 10:30:35 +02:00
Hugo Locurcio
ab28148fdc Update PCK embedding SCons warning message to mention mold linker
mold is now part of the SCons `linker` option.

(cherry picked from commit 074d87d7188da6400028c719ea7571bff6265c36)
2023-08-30 10:23:04 +02:00
Riteo
63f21ecadb 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 2a6ce37910ac9765c36cbcc3a0a09916da4debe3)
2023-08-30 10:20:56 +02:00
Ekaterina Vaartis
2bac27b711 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 5e041eee11e611bc2c89dd54b1dad28d0660f335)
2023-08-30 10:20:09 +02:00
b18d0a5fc9 Fix the android lib's package locations. 2023-08-27 22:56:41 +02:00
8c6856e77b Fix the android editor's package locations. 2023-08-27 22:54:20 +02:00
5ae44c4746 Ported: 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.
- akien-mga
55550da68b
2023-08-27 13:04:04 +02:00
bruvzg
2be3b9c0ce Back-port notarytool, provisioning profile and PKG export options. 2023-08-27 12:12:20 +02:00
Fabio Alessandrelli
959286993a Update npm packages 2023-08-27 11:59:50 +02:00
puzzud
21d78d77f6 Prevent double input events on gamepad when running through steam input #79706
Co-authored-by: Eoin O'Neill <eoinoneill1991@gmail.com>
2023-08-27 11:47:35 +02:00
4bb48a4a5c Ported from godot4: Fix reading Unicode from stdio.
- bruvzg
3d8a942a56
2023-08-05 20:33:48 +02:00
c4e76950fa Pass in variables as intended to CreateProcessW(). 2023-08-05 20:24:32 +02:00
5d60b3af04 Ported from Godot4: Fix Windows execute exit code.
- bruvzg
94355249c3
2023-08-05 20:18:53 +02:00
a5365f8ca8 Fix build. 2023-07-13 14:47:04 +02:00
3ae1ad93dc Update the variant types in the windows natvis file. 2023-07-11 16:52:26 +02:00
ae92596f9b Ported: Add parameters for the Godot Activity starting intent to allow restarting or force-quitting the engine
Follow-up code cleanup for #78130
- m4gr3d
5cf0ba88e3
2023-06-28 18:58:29 +02:00
556ffc09f7 Ported from godot: Fix issue causing the last edited project to open while switching to another one.
Fixes #76562
-m4gr3d
ee07f60b07
2023-06-28 13:16:58 +02:00
e79ea9f3a8 Ported form godot: Fix spatial viewport multitouch detection support
Regression introduced by #77497
- m4gr3d
8f44765831
2023-06-28 12:50:27 +02:00
bruvzg
db0014d68a Use current keyboard layout in OS_X11::keyboard_get_scancode_from_physical. 2023-06-28 12:20:43 +02:00
c978f27634 Implemented switching between the running game and the editor in the android editor. 2023-06-15 10:21:23 +02:00
0a4065bb9e Fix error. 2023-06-11 13:56:35 +02:00
59c6ca8d85 Fix android build. 2023-06-11 13:46:15 +02:00
dbbfcdd526 Ported: Fix issue causing the Android editor to crash when creating a new AudioStreamMicrophone
Fixes #73801
- m4gr3d
9c334fa242
2023-06-11 13:40:47 +02:00
d7499a0868 Ported: Improve touchpad and mouse support for the Android editor
- m4gr3d
ccd36e0dbe
2023-06-11 13:29:53 +02:00
d6f5dd35e8 Ported: Enable granular control of touchscreen related settings
- m4gr3d
61e41facc7
2023-06-11 12:57:25 +02:00
4f2f3f4cf0 Fix android editor build. 2023-06-11 10:45:38 +02:00
3331a7ae04 Ported: 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.
- m4gr3d
94d6c3dcc6
2023-06-11 10:26:23 +02:00
7e64510427 Ported: 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
- m4gr3d
b5a908c985
Removed my force launch adjacent solution in favor of this.
2023-06-11 09:52:39 +02:00
Rémi Verschelde
90cd6b3cdc 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 788cb74cc676627b6c9b7e29a47200141cca92ff)
2023-06-11 08:47:41 +02:00
ca982ac507 Ported: 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).
- m4gr3d
Also contains some mouse pointer improvements.
2023-05-01 15:32:01 +02:00
Fredia Huya-Kouadio
d54b5ad8f8 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-05-01 12:01:13 +02:00
e32e0af40f Ported: Fix null in android text entry system.
- jasonwinterpixel
cec8e09948
2023-04-20 23:46:17 +02:00
6bba08c00b Ported: Bump the target SDK version to 33 (Android 13)
- m4gr3d
2803c471e8
2023-04-15 11:15:16 +02:00
76f9237411 Ported: Fix directory access when the running app has the All files access permission
- m4gr3d
e2c7d3e6c0
2023-04-15 11:11:29 +02:00
Chris Weber
a8137bb4c1 increased max touches to 32 for ios
(cherry picked from commit 54bd204377fb73a5871946005bd7cbbad4b91df9)
2023-03-12 19:13:26 +01:00
PrecisionRender
79492d4ecb Fix Xbox Series controller duplicate input
(cherry picked from commit e9400867b3aff74ef0b4d3ba3a7b9f3efc357bfc)
2023-03-12 15:41:15 +01:00
Juan Linietsky
8ff42d39ee Fix AltGR getting stuck on Windows right alt-tab
Fixes #28511.

(cherry picked from commit e01452adb0ac51bbbb0304773b1efd28ca1a3f2d)
2023-03-12 15:40:32 +01:00
930dccc430 Ported: iOS: Implement missing gamepad.buttonOptions, buttonMenu, and buttonHome joy buttons.
- BZ1234567890
0a85e4db71
2023-03-12 15:32:44 +01:00
9fb30c4441 Ported: Use the new API for virtual keyboard height detection on Android, bugfix .
- necrashter
9bdb585318
2023-03-12 15:26:58 +01:00
75ed28f2b3 Ported: 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
- tbveralrud
28b11a0785
2023-03-12 14:08:29 +01:00
0d12c7ed08 Ported: Fix the issue causing long-press on a selected node on the scene tree to trigger both the context menu and the rename functionality.
- m4gr3d
6528f984fe
2023-03-12 13:03:41 +01:00
0eb9d6648f Added a setting to force launch the project in an adjacent window in the android editor. 2023-02-08 09:25:47 +01:00
7f358b25a6 Fix missing import. 2023-02-07 10:38:29 +01:00
e9c3603024 Fix an another typo. 2023-02-07 09:46:51 +01:00
fdd62f1d9a Fix typo. 2023-02-07 08:55:00 +01:00