Commit Graph

5122 Commits

Author SHA1 Message Date
bruvzg 6371cc3d69
[macOS] Fix crash when using system default menu shortcuts. 2023-10-13 10:12:44 +03:00
Fredia Huya-Kouadio c1a7222c97 Fix the timeframe when the Android gestures properties are retrieved.
Previous logic was retrieving them prior to them being defined in `main.cpp`
2023-10-11 15:41:19 -07:00
Fabio Alessandrelli bb69f0c090 [Web] Improve emscripten "locateFile" glue.
Be more selective on what we rewrite, since in recent emscripten
versions loading dynamic libraries relies on it.
2023-10-11 21:21:34 +02:00
Rémi Verschelde 918f046354
Merge pull request #83114 from Repiteo/fix-dotnet-dev-build-regression
C#: Fix MSVC dotnet `dev_mode` regression
2023-10-10 22:52:04 +02:00
Thaddeus Crews 0d7d4c2a23
Fix dotnet dev_mode regression 2023-10-10 12:24:02 -05:00
bruvzg 3620d612ba
[macOS] Use occlusionState instead of isOnActiveSpace to determine when window is drawable. 2023-10-10 12:20:06 +03:00
Rémi Verschelde 1fe7f8a96c
Merge pull request #82893 from m4gr3d/godot_android_lib_improvements
Cleanups and improvements to the Godot Android library api
2023-10-10 09:11:53 +02:00
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