Commit Graph

6085 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
[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