Commit graph

5115 commits

Author SHA1 Message Date
Raul Santos
cea77d0b48
C#: Add checks to Android export
- Add .NET 7.0 TFM when the platform is Anroid to the created csproj.
- Prevent exporting to Android when the architecture is not supported.
2023-10-10 00:35:08 +02:00
Rémi Verschelde
4a5801b44a
Merge pull request #82729 from shana/shana/ios-csharp
Add C# iOS support
2023-10-09 23:23:11 +02:00
Rémi Verschelde
a28dab7e82
Merge pull request #79711 from adamscott/web-non-blocking-main-thread
Add `proxy_to_pthread` option to `platform=web`
2023-10-09 23:22:22 +02:00
Andreia Gaita
ee9a735c26 Add C# iOS support
This support is experimental and requires .NET 8

Known issues:
- Requires macOS due to use of lipo and xcodebuild
- arm64 simulator templates are not currently included
  in the official packaging
2023-10-09 18:22:56 +02:00
Adam Scott
78c2a08fae
Add proxy_to_pthread option to platform=web
Co-authored-by: Fabio Alessandrelli <fabio.alessandrelli@gmail.com>
2023-10-09 11:50:01 -04:00
Rémi Verschelde
a1d7c62df7
Merge pull request #83003 from AThousandShips/null_check_extra
Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-10-09 15:37:14 +02:00
Rémi Verschelde
7c12111c1c
Merge pull request #82790 from MarioLiebisch/warn-wasm-no-dlink
Web: Catch using GDExtensions in a non-dlink build
2023-10-09 15:33:02 +02:00
Rémi Verschelde
5a3befd6c9
Merge pull request #82508 from floatingpointer/master
Add XInput device ID for wireless Series 2 Elite controller
2023-10-09 15:32:13 +02:00
bruvzg
97bcd8a631 Add method to check if filesystem is case sensitive. 2023-10-09 11:00:15 +03:00
A Thousand Ships
f18aa00e85 Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-10-08 17:23:33 +02:00
Fredia Huya-Kouadio
2951c162ed Cleanups and improvements to the Godot Android library api:
- Provide api to retrieve the running Godot instance from a GodotHost
- Provide api for the GodotHost to register runtime GodotPlugin instances
- Hide the GodotService class until it's completed
- Include project setting to enable long press for Android devices
- Include project setting to enable pan and scale gestures on Android devices
2023-10-08 05:30:38 -07:00
Mario Liebisch
56a3cdc2f0
Web: Catch using GDExtensions in a non-dlink build
Previously this would simply fail with a cryptic
`me.rtenv.loadDynamicLibrary is not a function` error.
2023-10-06 18:02:53 +02:00
bruvzg
abbdc99821
[macOS] Fix ambiguous method call with older SDKs. 2023-10-05 22:12:24 +03:00
kobewi
09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
Rémi Verschelde
d8ab953442
Merge pull request #82163 from naelstrof/master
Made signal handling more uniform during crashes.
2023-10-05 10:08:09 +02:00
Rémi Verschelde
bfd78bb917
Merge pull request #82779 from emacser0/typo
Fix some typos in source
2023-10-04 15:46:29 +02:00
Rémi Verschelde
a904e78fd9
Merge pull request #82736 from adamscott/fix-#81105-regression
Fix `godot_js_wrapper_create_cb` regression
2023-10-04 15:43:42 +02:00
Rémi Verschelde
1e544505be
Merge pull request #82691 from YuriSizov/rst-validate-with-exceptions
Validate `code` tags for class and member references
2023-10-04 15:42:42 +02:00
Rémi Verschelde
03ff9fedb6
Merge pull request #82101 from bruvzg/x11_gles
[X11] Add support for using EGL/GLES instead of GLX.
2023-10-04 15:35:05 +02:00
Rémi Verschelde
d5db0e5032
Merge pull request #81218 from bruvzg/_temp_fs
[Native File Dialogs] Improve filter list handling, add selected filter to the callback.
2023-10-04 15:34:16 +02:00
bruvzg
af00c4a54a
[X11] Add support for using EGL/GLES instead of GLX. 2023-10-04 14:15:36 +03:00
emacser0
4c65ff52e4 Fix some typos in source. 2023-10-04 19:55:11 +09:00
bruvzg
d1aaa914f3
[macOS] Add about_to_open and popup_hide callback for the global menus, move part of logic to the PopupMenu to allow live menu modification. 2023-10-04 09:49:51 +03:00
Adam Scott
8447cbc16d
Fix godot_js_wrapper_create_cb regression 2023-10-03 12:52:20 -04:00
bruvzg
43e4708dff
[Native File Dialogs] Improve filter list handling, add selected filter to the callback. 2023-10-03 19:26:16 +03:00
Rémi Verschelde
3a5d524287
Merge pull request #82614 from m4gr3d/openxr_eye_gaze_interaction
Add support for the OpenXR Eye gaze interaction extension
2023-10-03 17:25:52 +02:00
Rémi Verschelde
be6a09b6ec
Merge pull request #82423 from bruvzg/mac_ex_fs
[macOS] Check all exclusive fullscreen windows before setting presentation mode.
2023-10-03 17:23:18 +02:00
Rémi Verschelde
30bc077756
Merge pull request #82364 from bruvzg/angle_lists_and_defaults
[ANGLE] Add fallback control options and defaults.
2023-10-03 17:22:53 +02:00
Rémi Verschelde
124f8983b8
Merge pull request #82357 from bruvzg/mac_fix_bl
[macOS] Fix borderless mode on macOS 13.6+.
2023-10-03 17:22:29 +02:00
Rémi Verschelde
5d300016a3
Merge pull request #81969 from bruvzg/macsign
[macOS export] Fix GDExtension framework `+x` flag errors, allow recursive signing on non macOS platform.
2023-10-03 17:21:15 +02:00
Rémi Verschelde
31dbbc2c5a
Merge pull request #80952 from bruvzg/nfdlg_refocus
[Native File Dialogs] Refocus last focused window on close.
2023-10-03 17:13:58 +02:00
Rémi Verschelde
530e01b478
Merge pull request #80409 from bruvzg/est_title_size
[DisplayServer] Add method to estimate window title bar size.
2023-10-03 17:12:18 +02:00
Rémi Verschelde
39bf982e65
Merge pull request #79871 from bruvzg/mingw_prefix_fix
[Windows] Try using objcopy and strip with prefix and without prefix.
2023-10-03 17:11:27 +02:00
Yuri Sizov
cc0eebd9d8 Validate code tags for class and member references
This commit also adds means to manually disable warnings
in `code` tags where it's a false positive with the new
`skip-lint` attribute.

Warnings are now enabled on CI to prevent future errors.
2023-10-03 15:48:31 +02:00
bruvzg
ac3fc2a8a1
[ANGLE] Add fallback control options and defaults.
[macOS] Use ANGLE by default if engine is built with statically linked ANGLE.
[Windows] Add option enable/disable fallback to ANGLE and option force specific GPU to always use ANGLE.
2023-10-03 16:23:43 +03:00
bruvzg
72e2e47059
[DisplayServer] Add method to estimate window title bar size. 2023-10-03 16:13:52 +03:00
Bastiaan Olij
9e56e7a3ce Add support for the OpenXR Eye gaze interaction extension
Co-authored-by: Bastiaan Olij <mux213@gmail.com>
2023-10-02 14:02:23 -07:00
Rémi Verschelde
9b29efd772
Merge pull request #82633 from Faless/web/visibility_expose
[Web] Fix `dlink_enabled` build
2023-10-02 13:16:51 +02:00
Rémi Verschelde
5fe97c5844
Merge pull request #82441 from akien-mga/web-clarify-get_unique_id
Web: Clarify that `OS.get_unique_id` is not supported
2023-10-02 13:16:31 +02:00
Rémi Verschelde
e95b7e84a4
Merge pull request #80844 from dalexeev/fix-callable-expected-argc
Fix expected argument count for `Callable` call errors
2023-10-02 13:15:53 +02:00
Fabio Alessandrelli
0bbadd6883 [Web] Fix dlink_enabled build
After changing the default visibility to hidden to avoid generating
thousands of import/export symbols (browsers have a hard limit of 10k),
explicitly setting visibility for "boundary functions" (i.e. wasm
callbacks called by JS via pointer) is required to ensure the function
can be retrieved via pointer from the function table.
2023-10-01 19:44:46 +02:00
Danil Alexeev
aff767ef07
Fix expected argument count for Callable call errors 2023-09-29 20:00:10 +03:00
floatingpointer
81f9c0345c Update joypad_windows.cpp
Add XInput device for Series 2 Elite controller
2023-09-28 18:24:08 -07:00
bruvzg
e1c7104e46
[iOS] Fix build with Xcode 15. 2023-09-27 21:27:15 +03:00
Rémi Verschelde
0a10f09ce4
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.
2023-09-27 15:17:45 +02:00
bruvzg
b7b5fbe7aa
[macOS] Check all exclusive fullscreen windows before setting presentation mode. 2023-09-27 09:01:52 +03:00
A Thousand Ships
517e9f8aef [Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-26 16:44:52 +02:00
Rémi Verschelde
da91cf9367
Merge pull request #82347 from SaracenOne/dir_access_checks
Add error checks for DirAccess creation
2023-09-26 16:36:47 +02:00
Rémi Verschelde
a4bca12336
Merge pull request #82304 from akien-mga/windows-remove-redundant-MSVC-define
Windows: Remove `MSVC` define redundant with `_MSC_VER`
2023-09-26 13:45:26 +02:00
Rémi Verschelde
48bee5c8ef
Merge pull request #82221 from Riteo/linux-ogl-no-vsync-override
Linux/OpenGL: Don't force vsync in the editor
2023-09-26 13:45:12 +02:00
Rémi Verschelde
814ab59c37
Windows: Remove MSVC define redundant with _MSC_VER
Cleanup unused MSVC code in FileAccessUnix.
2023-09-26 11:11:45 +02:00
bruvzg
873d4079d1
[macOS] Fix borderless mode on macOS 13.6+. 2023-09-26 11:55:25 +03:00
Rémi Verschelde
4443b8f474
Merge pull request #82230 from zaevi/dark-mode-android-ios
Support dark mode on Android and iOS.
2023-09-26 08:30:36 +02:00
Zae
428eb1309a Support dark mode on Android and iOS. 2023-09-26 11:00:04 +08:00
Saracen
3f4513d4de Add error checks for DirAccess creation. 2023-09-26 03:07:43 +01:00
Mario Liebisch
426e18fd37
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`).
2023-09-25 21:17:20 +02:00
Rémi Verschelde
b362976504
SCons: Fix Python 3.12 SyntaxError with regex escape sequences 2023-09-25 10:39:30 +02:00
Rémi Verschelde
b8238ec919
Merge pull request #81251 from aitorciki/nvidia-profile-multiapp
[Windows] Fix not applying NVIDIA profile to new executables
2023-09-24 23:31:20 +02:00
Riteo
4fd6777cf4 Linux/OpenGL: don't force vsync in the editor
I couldn't tell whether this has an actual purpose and it feels more
like a debug remnant.

We also need to be able to disable vsync in the editor for the WIP
Wayland backend (in the EGL driver) as it does manual frame throttling.
2023-09-24 04:36:58 +02:00
naelstrof
b49e9c9896 Made signal handling more uniform. Fixes #82102 2023-09-22 20:06:58 -06:00
Rémi Verschelde
bafcd32f15
Merge pull request #81716 from akien-mga/web-disable-raycast-embree
Web: Disable raycast module by default (no occlusion culling)
2023-09-22 22:03:55 +02:00
Aitor Guevara
6263774aec [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.
2023-09-22 20:51:12 +02:00
Rémi Verschelde
603119d301
Merge pull request #82037 from bruvzg/macos_gl_min_size
[macOS] Enforce non-zero window size.
2023-09-21 14:27:42 +02:00
Rémi Verschelde
cc0a02c75c
Merge pull request #82031 from bruvzg/borderless_fs
[Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs.
2023-09-21 14:27:39 +02:00
bruvzg
1887a9df19
[macOS/Windows] Add optional ANGLE backed OpenGL renderer support. Add EGL_ANDROID_blob_cache caching.
Co-authored-by: Riteo <riteo@posteo.net>
2023-09-21 14:21:00 +03:00
bruvzg
901e090e56
[macOS] Enforce non-zero window size. 2023-09-21 12:37:18 +03:00
bruvzg
b826cd5acd [Windows] Use clear color for non exclusive fullscreen border, fix maximize for borderless window switching to exclusive fs. 2023-09-21 11:24:40 +03:00
bruvzg
f316283823
[macOS export] Fix GDExtension framework +x flag errors, allow recursive signing on non macOS platform. 2023-09-20 12:21:18 +03:00
bruvzg
6da8c7a662
[macOS] Workaround Xcode 15 linker bug. 2023-09-20 11:03:44 +03:00
Rémi Verschelde
50161808c2
Web: Fix version check for missing scalbnf LTO workaround
The check needs to happen after we set `env["CXX"]`.
Follow-up to #81340.
2023-09-18 16:32:20 +02:00
Rémi Verschelde
4b2fb36a04
Merge pull request #80644 from Distantz/master
Android Stylus pressure and tilt support.
2023-09-17 14:46:39 +02:00
Rémi Verschelde
8c40edf8c0
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>
2023-09-16 21:00:04 +02:00
Yuri Sizov
48e1c19dea Merge pull request #81583 from AThousandShips/null_check_drivers_platform
[Drivers,Platform] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable
2023-09-15 19:48:18 +02:00
Yuri Sizov
55840c5d24 Merge pull request #80932 from m4gr3d/fix_hardware_keyboard_input_routing_main
Fix Android input routing logic when using a hardware keyboard
2023-09-14 15:21:28 +02:00
A Thousand Ships
3565d1bf7e [Drivers,Platform] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 20:13:32 +02:00
Rémi Verschelde
df5376c4c0
Merge pull request #80761 from adamscott/change-default-android-package-unique-name
[Android] Change the default "org.godotengine" package name to "com.example"
2023-09-11 15:35:56 +02:00
Adam Scott
00e9bafb73
Change the default org.godotengine to com.example 2023-09-11 09:01:36 -04:00
Rémi Verschelde
08c578c54c
Merge pull request #81416 from akien-mga/uwp-ce-nest-qu-un-au-revoir
UWP: Remove platform port, needs to be redone from scratch for 4.x
2023-09-07 16:33:40 +02:00
Rémi Verschelde
2cd740fd7a
Merge pull request #81105 from SysError99/master-fix-js-mem-leak
Fix JavaScript callback memory leak issue
2023-09-07 16:32:06 +02:00
Rémi Verschelde
8de6405288
UWP: Remove platform port, needs to be redone from scratch for 4.x
The UWP platform port was never ported to the Godot 4.0+ API,
and it's now accumulating bitrot as it doesn't compile, and thus
we no longer propagate platform changes in it.

So we finally remove to acknowledge this state. There's still some
interest in reviving the UWP port eventually, especially as support
for Direct3D 12 will soon be merged, but when that happens it will
be easiest to redo it from scratch.
2023-09-07 15:01:59 +02:00
SysError99
6a90164a03 Fix JavaScript callback memory leak issue
Typo fix
2023-09-07 19:59:45 +07:00
Yuri Sizov
d8ff69d53c Extract ScriptInstance to simplify includes
This allows to include script_instance.h directly in the
generated gdvirtual.gen.inc, and remove excessive includes
from the codebase.

This should also allow Resource to use GDVIRTUAL macros,
which wasn't possible previously due to a circular dependency.
2023-09-06 22:54:38 +02:00
Yuri Sizov
2282fc5de9 Merge pull request #81368 from m4gr3d/relax_android_plugin_v1_deprecation
Relax restriction on loading v1 Android plugins on Godot 4.2+
2023-09-06 14:49:43 +02:00
Yuri Sizov
2ced50f310 Merge pull request #81365 from bruvzg/ios_export_ext
[iOS export] Switch export target extension based on export type.
2023-09-06 14:49:40 +02:00
Yuri Sizov
07176632a6 Merge pull request #81339 from bruvzg/macos_fix_mvk_live_resize
[macOS] Fix live resize with the latest MoltenVK version.
2023-09-06 14:49:30 +02:00
Yuri Sizov
3c63dce3cd Merge pull request #80573 from KoBeWi/2k_lines_of_changes_created_at_2AM
Add EditorStringNames singleton
2023-09-06 14:49:02 +02:00
Rémi Verschelde
bceac8c34f
Merge pull request #81340 from akien-mga/web-workaround-emscripten-3.1.42-lto-bug
Web: Workaround Emscripten 3.1.42+ LTO regression
2023-09-06 13:50:39 +02:00
Fredia Huya-Kouadio
12d96eeaef Relax restriction on loading v1 Android plugins on Godot 4.2+ 2023-09-06 02:59:44 -07:00
bruvzg
26951000ab
[iOS export] Switch export target extension based on export type. 2023-09-06 11:58:43 +03:00
bruvzg
208b379986
[macOS] Fix live resize with the latest MoltenVK version. 2023-09-05 16:21:08 +03:00
Rémi Verschelde
b064008c07
Web: Workaround Emscripten 3.1.42+ LTO regression
Fixes #80010.
2023-09-05 14:58:52 +02:00
Fredia Huya-Kouadio
8cc7739197 Godot Android plugin re-architecture 2023-09-03 17:04:10 -07:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
ocean (they/them)
bbafe14970 Build system: add option for MSVC incremental linking. 2023-08-29 18:53:45 -04:00
Rémi Verschelde
5b5471e30a
Merge pull request #78908 from zorbathut/pr_gitignore
Add static check for overzealous .gitignores and fix an example of such.
2023-08-29 12:41:53 +02:00
Rémi Verschelde
120abd12c2
Merge pull request #79504 from Pingar5/master
Android: Add option to always use WiFi to connect to remote debug
2023-08-28 15:02:13 +02:00
Rémi Verschelde
6584cd88d9
Merge pull request #78963 from bgie/comma_in_filename
Windows: Always double-quote path when launching explorer.exe to browse
2023-08-28 15:01:49 +02:00
Brennen Shaughnessy
40b08cb4b6
Android: Add option to always use WiFi to connect to remote debug 2023-08-28 13:13:36 +02:00
Brecht Kuppens
5608b1d411
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.
2023-08-28 12:46:50 +02:00
Emmanouil Papadeas
c662491bd4
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.
2023-08-28 11:37:55 +02:00