Commit Graph

6174 Commits

Author SHA1 Message Date
Juan
2ac562cdf8 Add ability for PCK patches to remove files
Co-authored-by: Mikael Hermansson <mikael@hermansson.io>
2024-11-11 16:34:37 +01:00
Thaddeus Crews
925b690c98
Core: Integrate Ref::instantiate where possible 2024-11-10 12:41:26 -06:00
Thaddeus Crews
c4a52e1ade
Merge pull request #98809 from bruvzg/mac_gde_libs_non_uni
[GDExtension] Improve macOS library loading/export.
2024-11-10 12:13:06 -06:00
Thaddeus Crews
7a42ff474e
Merge pull request #98934 from adamscott/shush-web-display-server-complaining-about-vsync-and-screen-kept-on
[Web] Remove warnings when setting vsync mode and screen keep on
2024-11-10 12:13:05 -06:00
Thaddeus Crews
1789ad37bd
Merge pull request #98961 from mihe/natvis-improvements
Add `Ref` and `HashSet` to `godot.natvis`
2024-11-10 12:12:21 -06:00
Thaddeus Crews
5bc5f066e2
Merge pull request #98700 from mhilbrunner/glob-platform-api
Allow multiple platform API files
2024-11-10 12:12:16 -06:00
Fabio Alessandrelli
0c620b29cd [Net] Split Unix/Windows NetSocket implementation 2024-11-10 16:13:50 +01:00
Hein-Pieter van Braam
333452d499 Regenerate X11 wrappers
Version 0.6 of https://github.com/hpvb/dynload-wrapper/ now supports all
of the features we need to generate the wrappers without editing them.

This replaces the hand-patched wrappers with "clean" generated ones.
2024-11-09 02:52:49 +01:00
Anish Mishra
b2cb858572 Android: Add app_category "Undefined" 2024-11-08 23:37:27 +05:30
Anish Mishra
6fd8d7b634 Android: Update exported app and editor theme 2024-11-08 22:37:52 +05:30
Rémi Verschelde
6d326547da
Windows: Fix duplicate .exe extension with mingw on Linux/macOS
This old hack is no longer needed and now wrong after #98105.

Fixes #98967.
2024-11-08 16:46:35 +01:00
Mikael Hermansson
9b7c14718b Add Ref and HashSet to godot.natvis 2024-11-08 14:37:43 +01:00
Adam Scott
784558f327
[Web] Remove warnings when setting vsync mode and screen keep on 2024-11-07 14:06:34 -05:00
Thaddeus Crews
fa65b70494
Merge pull request #98105 from Repiteo/scons/mingw-shenanigans
SCons: Extend `MinGW` support & checks
2024-11-07 12:36:32 -06:00
Adam Scott
75bf6df49a
Make IME code early return instead 2024-11-07 13:27:29 -05:00
bruvzg
76164c2aa9
[OS] Add functions to determine standard I/O device type. 2024-11-06 13:33:38 +02:00
bruvzg
fdde7713a8 Fix IME deactivation events not send on focus loss. Do not unset AltGr modifiers in non-IME input. 2024-11-06 09:47:26 +02:00
Thaddeus Crews
6071c7cd3b
Merge pull request #97250 from Garetonchick/windows-drag-and-drop-fix
Windows: Fix dragging and dropping files from compressed files into editor
2024-11-05 18:36:07 -06:00
Thaddeus Crews
b00e1cbf74
Merge pull request #97631 from m4gr3d/prompt_apk_install_after_generation
Some checks are pending
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions
[Android editor] Enable automatic install of exported apks for the Android editor
2024-11-04 21:52:08 -06:00
Thaddeus Crews
2450dee1bc
Merge pull request #93401 from Repiteo/style/clang-tidy-fixes
Style: Apply `clang-tidy` fixes
2024-11-04 21:52:05 -06:00
Thaddeus Crews
7d950c1567
Merge pull request #98712 from syntaxerror247/android_accent_color
[Android] Implement support for accent color retrieval
2024-11-04 21:52:04 -06:00
Thaddeus Crews
2b49543478
Merge pull request #98709 from darksylinc/matias-upsidedown-splash
Fix splash screen upside down on Android
2024-11-04 21:52:01 -06:00
Thaddeus Crews
56310396db
Merge pull request #98603 from Summersay415/live-is-monochrome
Fix monochrome icon, add warning when it's not specified
2024-11-04 21:51:57 -06:00
Thaddeus Crews
bb5f390fb9
Style: Apply clang-tidy fixes (superficial)
• `modernize-use-bool-literals`, `modernize-use-nullptr`, and `readability-braces-around-statements`
2024-11-04 12:11:14 -06:00
bruvzg
2d66988f99
[GDExtension] Improve macOS library loading/export. 2024-11-04 09:28:30 +02:00
Anish Mishra
7b866f302f [Android] Implement support for accent color retrieval 2024-11-01 16:19:09 +05:30
Thaddeus Crews
be70c2f873
Merge pull request #98350 from syntaxerror247/android-native-filepicker
[Android] Implement native file picker support
2024-10-31 20:14:41 -05:00
Matias N. Goldberg
b9a2f108fc Fix splash screen upside down on Android
Fixes an issue introduced in #96439 (see
https://github.com/godotengine/godot/pull/96439#issuecomment-2447288702)

Godot was relying on Java's
activity.getWindowManager().getDefaultDisplay().getRotation(); to apply
pre-rotation but this is wrong.

First, getRotation() may temporarily return a different value from the
correct one; which is what was causing the splash screen to be upside
down. It would return -90 instead of 90 for the first rendered frame.

But unfortunately, the splash screen is just one frame rendered for a
very long time, so the error lingered for a long time for everyone to
see.

Second, to determine what rotation to use, we should be looking at what
Vulkan told us, which is the value we pass to
VkSurfaceTransformFlagBitsKHR::preTransform.

This commit removes the now-unnecessary
screen_get_internal_current_rotation() function (which was introduced by
#96439) and now saves the preTransform value in the swapchain.
2024-10-31 16:52:26 -03:00
Max Hilbrunner
8c5debeaed Allow multiple platform API files 2024-10-31 16:07:01 +01:00
Yevhen Babiichuk (DustDFG)
0ba0093dd6 Remove duplicate of get_build_version
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-31 12:54:23 +02:00
Fredia Huya-Kouadio
d699d4b7d4 Update the production build argument for Android Studio debug builds
Swappy is required for `production` build which breaks the Android Studio debug builds as those turns on the `production` argument.
This commit updates the logic so that the `production` argument is only used by Android Studio for `release` builds.
2024-10-30 21:15:31 -07:00
Anish Mishra
b2130efb31 [Android] Implement native file picker support 2024-10-30 14:53:02 +05:30
Anish Mishra
0dfd18c84b [DisplayServer] Add feature flag for native file dialog access to user/res and options 2024-10-30 14:13:43 +05:30
Thaddeus Crews
05a4620e88
Merge pull request #98615 from Summersay415/three-opengls-please
Fix fallbacks to OpenGL
2024-10-29 19:25:48 -05:00
Thaddeus Crews
08d8909a65
Merge pull request #98574 from syntaxerror247/android_input_dialog
[Android] Implement native input dialog support
2024-10-29 19:25:37 -05:00
Thaddeus Crews
b7a0971ad2
Merge pull request #97934 from adamscott/give-AThousandShips-a-break
[Codestyle] Set clang-format `RemoveSemicolon` rule to `true`
2024-10-29 19:25:36 -05:00
Clay John
748f4079e3
Merge pull request #96439 from darksylinc/matias-TheForge-pr03-rebased
Add Swappy & Pre-Transformed Swapchain
2024-10-29 12:34:40 -07:00
Anish Mishra
be5d7f757d [Android] Implement native input dialog support 2024-10-29 20:02:08 +05:30
Summersay415
a84292e835 Add warning when monochrome icon is not specified 2024-10-29 21:19:21 +07:00
Fredia Huya-Kouadio
af2423ba4d Enable automatic install of export apks for the Android editor 2024-10-28 16:12:16 -07:00
Matias N. Goldberg
aaa0e2fddf Add Swappy & Pre-Transformed Swapchain
- Adds Swappy for Android for stable frame pacing
- Implements pre-transformed Swapchain so that Godot's compositor is in
charge of rotating the screen instead of Android's compositor
(performance optimization for phones that don't have HW rotator)

============================

The work was performed by collaboration of TheForge and Google. I am
merely splitting it up into smaller PRs and cleaning it up.

Changes from original PR:

- Removed "display/window/frame_pacing/android/target_frame_rate" option
to use Engine::get_max_fps instead.
- Target framerate can be changed at runtime using Engine::set_max_fps.
- Swappy is enabled by default.
- Added documentation.
- enable_auto_swap setting is replaced with swappy_mode.
2024-10-28 18:55:37 -03:00
Summersay415
6d14cd6ff9 Fix fallbacks to OpenGL 2024-10-28 22:57:19 +07:00
Summersay415
4fd53eb128 Add media permissions 2024-10-28 19:14:20 +07:00
Thaddeus Crews
07e759b74a
Merge pull request #97771 from dsnopek/openxr-linux-egl
OpenXR: Add support for Wayland on Linux
2024-10-25 13:04:08 -05:00
Thaddeus Crews
17f06f6dae
Merge pull request #97555 from dustdfg/platform_methods/extract_validate_arch
Build System: Extract `validate_arch` helper functions
2024-10-25 13:03:48 -05:00
Adam Scott
0d350e7108
Set clang-format RemoveSemicolon rule to true
- Set clang-format `Standard` rule to `c++20`
2024-10-25 13:49:43 -04:00
Thaddeus Crews
1015a481ff
Merge pull request #98431 from lodicolo/4.3-stable_GH_76825
Some checks are pending
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions
Fix GodotFetch glue code for null response bodies
2024-10-24 13:23:07 -05:00
Thaddeus Crews
c278d57233
Merge pull request #98427 from syntaxerror247/document-immersive-mode
Add documentation for Android immersive mode
2024-10-24 13:23:05 -05:00
Thaddeus Crews
1001a8c663
Merge pull request #98380 from RandomShaper/mobile_strict_alias
Android & iOS: Enable strict aliasing
2024-10-24 13:22:55 -05:00
Thaddeus Crews
14d201ab54
Merge pull request #97556 from dustdfg/platforms/windows_detect_extract_common_checks
Extract common check functions in windows_detect.py file
2024-10-24 13:22:40 -05:00
Garetonchick
2bd759964e fix drag-and-drop in windows 2024-10-24 19:43:30 +03:00
Robbie Lodico
c7f421ef5f
Fix GodotFetch glue code for null response bodies
The spec says that Response.body can be null (in the event of requests that should have no body, like HEAD requests) and Firefox adheres to it which results in request failure for HEAD requests on Firefox for web exports.

This commit addresses that by treating a null body as an "empty" body (without using a polyfill) and avoids changing the request lifecycle as much as possible.

PR review changes:
- Use == instead of strict ===
- Do not use ?? null
- Comment formatting
2024-10-23 08:10:35 -04:00
Anish Mishra
827961e4e5 Update documentation for Android immersive mode 2024-10-22 22:55:43 +05:30
dan
403e53e1d3 Fix window exiting with no message to user if _create_window fails 2024-10-21 17:31:30 -07:00
Thaddeus Crews
7dbea98c49
Merge pull request #97005 from Repiteo/core/window-corner-style
Core: Add `DisplayServer` flag for sharp corners
2024-10-21 16:39:25 -05:00
Pedro J. Estébanez
c1fd4df3e4 Android & iOS: Enable strict aliasing 2024-10-21 13:33:42 +02:00
Thaddeus Crews
f8c4a683d7
Core: Add DisplayServer flag for sharp corners 2024-10-18 11:20:21 -05:00
Yevhen Babiichuk (DustDFG)
af6d260c17 Don't include core/io/image.h in core/os/os.h
`core/os/os.h` doesn't use `core/io/image.h`. It just brings
transitive dependencies. Lots of dependencies because `core/os/os.h`
is transitively included in almost every file of godot

Also added `core/io/image.h` into files^1 where `Ref<Image>` and `core/os/os.h`
were used to prevent obscure errors involving `Ref<Image>`

^1 except those which include `core/io/image_loader.h` or `core/io/image.h` by
corresponding .h file with the same name

Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-10-18 19:04:19 +03:00
Clay John
14fc9a545c
Merge pull request #98230 from and-rad/android_permissions
Fix Android app permissions for SDK levels earlier than 28
2024-10-17 21:26:27 -07:00
Thaddeus Crews
30a2a800dd
Merge pull request #98127 from darksylinc/matias-wayland-build-error
Fix wrong Wayland path if building with opengl3=no
2024-10-16 14:16:02 -05:00
Thaddeus Crews
6ccff9b009
Merge pull request #98126 from TCROC/macos-codesign-additional-entitlements
Additional macOS codesign entitlements and print verbose
2024-10-16 14:16:01 -05:00
Andreas Raddau
90c35f3978 Fix Android app permissions for SDK levels earlier than 28 2024-10-16 12:47:18 +02:00
Travis Lange
5777a3fed5 added ability to add extra codesign entitlements for macos from godot editor 2024-10-13 09:33:42 -04:00
Matias N. Goldberg
0818408db5 Fix wrong Wayland path if building with opengl3=no
Godot checks if there's Vulkan or GLES3 support.
If no support is found, it shows an error message.

However the code for this error message is left out when building with
opengl3=no
2024-10-12 20:20:12 -03:00
Thaddeus Crews
d4dddd00cb
SCons: Extend MinGW support & checks 2024-10-11 14:24:00 -05:00
Thaddeus Crews
a44f691fc7
CI: Add MinGW/GCC build to Windows GHA 2024-10-10 10:10:55 -05:00
Yevhen Babiichuk (DustDFG)
7aacdaa071 Build System: Extract validate_arch helper function
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-10-06 07:50:49 +03:00
Rémi Verschelde
b0d512636c
Merge pull request #97570 from dustdfg/ios_macos/print_warning_instead_of_comments
Replace comments with printed warning for Metal on x86_64
2024-10-04 22:43:46 +02:00
David Snopek
256699ee31 OpenXR: Add support for Wayland on Linux 2024-10-04 11:44:05 -05:00
Rémi Verschelde
3576e840c7
Merge pull request #97789 from bruvzg/ios_icons
Some checks are pending
🔗 GHA / 📊 Static checks (push) Waiting to run
🔗 GHA / 🤖 Android (push) Blocked by required conditions
🔗 GHA / 🍏 iOS (push) Blocked by required conditions
🔗 GHA / 🐧 Linux (push) Blocked by required conditions
🔗 GHA / 🍎 macOS (push) Blocked by required conditions
🔗 GHA / 🏁 Windows (push) Blocked by required conditions
🔗 GHA / 🌐 Web (push) Blocked by required conditions
🔗 GHA / 🪲 Godot CPP (push) Blocked by required conditions
[iOS] Add support for dark and tinted icon versions.
2024-10-04 17:18:22 +02:00
bruvzg
4c520e9400
[iOS] Add support for dark and tinted icon versions. 2024-10-04 14:00:27 +03:00
Rémi Verschelde
36837bfb5d
Merge pull request #91487 from shatyuka/window-style
Apply `WS_MINIMIZE` style on window creation
2024-10-04 12:58:34 +02:00
Rémi Verschelde
c28dd316a9
Merge pull request #97757 from bruvzg/max_move_screen
Fix `window_set_current_screen` for maximized windows.
2024-10-04 11:22:10 +02:00
Rémi Verschelde
5ac62a6863
Merge pull request #97743 from bruvzg/has_kbd
[DisplayServer] Implement `has_hardware_keyboard` method for Android and iOS.
2024-10-04 11:22:02 +02:00
Rémi Verschelde
dedb2ff217
Merge pull request #97678 from bruvzg/fix_nd_menu
[macOS] Fix menu crash when used from opened native dialog.
2024-10-04 11:21:54 +02:00
Rémi Verschelde
98deb2a000
Merge pull request #90400 from DarioSamo/transfer_and_pipelines
Ubershaders and pipeline pre-compilation (and dedicated transfer queues).
2024-10-03 15:27:11 +02:00
bruvzg
d2f3725120
Fix window_set_current_screen for maximized windows. 2024-10-03 10:38:32 +03:00
Dario
e2c6daf7ef Implement asynchronous transfer queues, thread guards on RenderingDevice. Add ubershaders and rework pipeline caches for Forward+ and Mobile.
- Implements asynchronous transfer queues from PR #87590.
- Adds ubershaders that can run with specialization constants specified as push constants.
- Pipelines with specialization constants can compile in the background.
- Added monitoring for pipeline compilations.
- Materials and shaders can now be created asynchronously on background threads.
- Meshes that are loaded on background threads can also compile pipelines as part of the loading process.
2024-10-02 15:11:58 -03:00
bruvzg
25f439c573
[DisplayServer] Implement has_hardware_keyboard method for Android and iOS. 2024-10-02 20:09:48 +03:00
Adam Scott
7a634ad2d4
[Web] Make audio bus fetching more resilient to errors 2024-10-02 11:24:57 -04:00
Rémi Verschelde
6388314dcc
Merge pull request #97645 from adamscott/fix-pwa-reloading-page
Fix web export infinite reload issue
2024-10-02 15:01:16 +02:00
Rémi Verschelde
d66d056727
Merge pull request #97510 from kisg/vulkan_build_fix
Move Vulkan includes to a central `godot_vulkan.h` header
2024-10-01 17:31:03 +02:00
bruvzg
4c8f8e6980
[macOS] Fix menu crash when used from opened native dialog. 2024-10-01 08:30:30 +03:00
Adam Scott
4431af9153
Fix web export infinite reload issue 2024-09-30 11:27:43 -04:00
Fredia Huya-Kouadio
4587d14796 Add logic to automatically pick up jar/aar library dependencies in the res://addons directory 2024-09-29 14:32:10 -07:00
Fredia Huya-Kouadio
5e0805a813 Provide access to the Android runtime to GDScript
Thanks for the fix of `JavaClassWrapper` in https://github.com/godotengine/godot/pull/96182 and the changes in the previous commit, this introduces an `AndroidRuntime` plugin which provides GDScript access to the Android runtime capabilities.

This allows developers to get access to various Android capabilities without the need of a plugin.
For example, the following logic can be used to check whether the device supports vibration:

```
var android_runtime = Engine.get_singleton("AndroidRuntime")
 if android_runtime:
 	print("Checking if the device supports vibration")
 	var vibrator_service = android_runtime.getApplicationContext().getSystemService("vibrator")
 	if vibrator_service:
 		if vibrator_service.hasVibrator():
 			print("Vibration is supported on device!")
 		else:
 			printerr("Vibration is not supported on device")
 	else:
 		printerr("Unable to retrieve the vibrator service")
 else:
 	printerr("Couldn't find AndroidRuntime singleton")
```
2024-09-29 14:32:10 -07:00
Fredia Huya-Kouadio
07cae26abe Remove the restriction on supported types for Godot Android plugins
The Android plugin implementation is updated to use `JavaClassWrapper` which was fixed in https://github.com/godotengine/godot/pull/96182, thus removing the limitation on supported types.

Note that `JavaClassWrapper` has also been updated in order to only provide access to public methods and constructor to GDScript.
2024-09-29 14:32:10 -07:00
Gergely Kis
146ba4106f Move Vulkan includes to a central godot_vulkan.h header
Also fixes Vulkan build problem with recent Clang.
2024-09-29 17:53:18 +02:00
Rémi Verschelde
422306ef87
Merge pull request #97325 from BlueCube3310/bcdec
Replace squish with bcdec for BC decompression
2024-09-29 00:47:02 +02:00
Yevhen Babiichuk (DustDFG)
1abcfdda85 Replace comments with printed warning for Metal on x86_64
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-09-28 08:28:33 +03:00
Yevhen Babiichuk (DustDFG)
9c50312f0d Extract common check functions in windows_detect.py file
Signed-off-by: Yevhen Babiichuk (DustDFG) <dfgdust@gmail.com>
2024-09-27 21:15:33 +03:00
Anish Mishra
dbcc7f3051
Add support for Android Themed Icons (monochrome) 2024-09-27 13:56:34 +02:00
Rémi Verschelde
58ec7a95a4
Merge pull request #97477 from m4gr3d/update_xr_editor_excluded_permissions
[XR Editor] Update the set of excluded permissions
2024-09-27 13:53:33 +02:00
Rémi Verschelde
eeaca3a439
Merge pull request #96610 from adamscott/emscripten-minimum-requirements
[Web] Update minimum requirements for emscripten to 3.1.62
2024-09-26 18:45:10 +02:00
Adam Scott
a1e409c58b
Update minimum requirements for emscripten to 3.1.62 2024-09-26 10:19:48 -04:00
BlueCube3310
2167157aaf Replace squish with bcdec for BC decompression 2024-09-26 14:42:54 +02:00
Rémi Verschelde
a0d1ba4a3d
Merge pull request #97458 from Faless/fix/imagine_its_2024_and_your_os_cant_handle_few_kbs_of_text
[SCons] Remove MAXLINELENGTH override for MSVC
2024-09-26 12:50:14 +02:00
Rémi Verschelde
a4c1804cab
Merge pull request #97483 from akien-mga/clang-format-19.1.0
CI: Update `clang-format` pre-commit hook to 19.1.0
2024-09-26 12:46:04 +02:00
Rémi Verschelde
991e6c92ab
Merge pull request #96923 from Repiteo/style/warning-admonition
Style: Add `WARNING:` as new comment admonition
2024-09-26 12:45:38 +02:00
Rémi Verschelde
a90da7e87b
Merge pull request #93058 from Repiteo/scons/scons_hints
SCons: Add unobtrusive type hints in SCons files
2024-09-26 12:45:21 +02:00