Commit graph

235 commits

Author SHA1 Message Date
Fredia Huya-Kouadio
831b4a5366 Improve startup benchmarking
Move the benchmarking measuring methods from `Engine` to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-05-23 13:22:35 -07:00
bruvzg
5b9984b5a2
Add audio/general/text_to_speech project setting to enable/disable TTS. 2023-05-18 20:16:03 +03:00
Fabio Alessandrelli
6fd9982358 [TLS] Add support for platform-specific CA bundles.
Adds a new OS::get_system_ca_certs method which can be implemented by
platforms to retrieve the list of trusted CA certificates using OS
specific APIs.

The function should return the certificates in PEM format, and is
currently implemented for Windows/macOS/LinuxBSD(*)/Android.

mbedTLS will fall back to bundled certificates when the OS returns no
certificates.

(*) LinuxBSD does not have a standardized certificates store location.
    The current implementation will test for common locations and may
    return an empty string on some distributions (falling back to the
    bundled certificates).
2023-05-12 09:58:23 +02:00
Omar Shehata
0c94750642 Fix double tap & drag on Android 2023-05-08 21:15:37 -04:00
Jason Knight
f8699d93f6 Fix potential null in android text entry system. 2023-04-12 09:18:11 -06:00
Fredia Huya-Kouadio
845ca33c76 Bump the target SDK version to 33 (Android 13) 2023-03-21 19:24:09 -07:00
Fredia Huya-Kouadio
f02e4e4091 Fix directory access when the running app has the All files access permission 2023-03-20 08:56:04 -07:00
Yuri Sizov
2dc16f3c58
Merge pull request #74066 from m4gr3d/add_vulkan_version_filter_main
Add feature check to require min Vulkan api version 1.0 on Android
2023-03-16 13:08:09 +01:00
lewiji
ac04ff7bec Add "filesRoot" path to Android provider paths xml 2023-03-09 19:11:08 +00:00
Rémi Verschelde
7b31c7b72a
Merge pull request #74470 from m4gr3d/configure_snapshot_publish_version_main
Configure maven central snapshot versions for the Godot Android library
2023-03-06 10:53:46 +01:00
Fredia Huya-Kouadio
a5fdc95515 Configure maven central snapshot versions for the Godot Android library
A snapshot version is a version that has not yet been released which allows us to deploy the same transient version incrementally, without requiring projects to upgrade the artifact version they're consuming. Those projects can use the same version to get an updated snapshot version.
2023-03-06 01:30:19 -08:00
necrashter
61549edef0
Use the new API for virtual keyboard height detection on Android, bugfix 2023-03-06 00:18:39 +03:00
Fredia Huya-Kouadio
306a2ad386 Add feature check to require min Vulkan api version 1.0 on Android 2023-02-28 11:20:34 -08:00
Fredia Huya-Kouadio
445053a62d Enable granular control of touchscreen related settings 2023-02-22 00:16:39 -08:00
Fredia Huya-Kouadio
9d83e807e7 Downgrade the vulkan abort logic to a warning
This addresses issues where some drivers are reporting they don't meet the vulkan hardware level 1 support requirements even though they render as expected when the check is removed.
2023-02-07 16:16:58 -08:00
Fredia Huya-Kouadio
21e18c1c41 Improve logic to detect whether vulkan is used for rendering 2023-02-06 10:13:02 -08:00
Fredia Huya-Kouadio
034fd15b8a Improve vulkan capability detection on Android
- Add runtime check and abort when the device doesn't meet the requirements for vulkan support
- Add filters to the AndroidManifest when exporting with a vulkan renderer
2023-02-05 18:47:38 -08:00
Rémi Verschelde
e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
Fredia Huya-Kouadio
bdbeb0772f Implement file provider capabilities
The previously used file sharing api was restricted after Android N causing the engine to crash whenever used on devices running Android N or higher.
2023-02-01 01:03:50 -08:00
Rémi Verschelde
3870861056
Merge pull request #72106 from m4gr3d/fix_godot_android_editor_4_crash_after_running_game
Fix the issue causing the Godot Android Editor to crash when returning from the launched and running game
2023-01-26 15:58:12 +01:00
Fredia Huya-Kouadio
ec4d720850 Fix the issue causing the Godot Android Editor to crash when returning from the launched and running game
The issue was caused because the running game pid was not set, and thus had a value of `0`. When trying to stop the running game, the `EditorRun::stop()` logic would kill the process with pid 0, which on Android corresponds to the running app's own process, thus causing the editor to crash.
This issue did not happen on Godot 3 because pid with value of `0` are not considered valid.
2023-01-26 02:59:39 -08:00
Fredia Huya-Kouadio
242ffb72b8 Address kotlin build warnings 2023-01-25 18:01:00 -08:00
Rémi Verschelde
84b8986a39
Merge pull request #71836 from m4gr3d/fix_godot_editor_cropping_main
Update the logic to calculate the screen scale on Android
2023-01-23 22:30:46 +01:00
bruvzg
daad4aed62
Cleanup and unify keyboard input.
- Unify keycode values (secondary label printed on a key), remove unused hardcoded Latin-1 codes.
- Unify IME behaviour, add inline composition string display on Windows and X11.
- Add key_label (localized label printed on a key) value to the key events, and allow mapping actions to the unshifted Unicode events.
- Add support for physical keyboard (Bluetooth or Sidecar) handling on iOS.
- Add support for media key handling on macOS.

Co-authored-by: Raul Santos <raulsntos@gmail.com>
2023-01-23 15:08:12 +02:00
Rémi Verschelde
5b1df48c6c
Convert en_GB spelling to en_US with codespell 2023-01-23 11:02:20 +01:00
Fredia Huya-Kouadio
da3e380240 Update the logic to calculate the screen scale on Android
Takes into account the ratio between the screen size and the default window dimensions.
2023-01-22 10:58:01 -08:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Fredia Huya-Kouadio
ec4de82ab3
Merge pull request #69990 from exoticorn/fix-android-touch-input
Fix ambiguous touch input events on Android
2022-12-14 18:23:17 -08:00
Dennis Ranke
408000752c handle ambiguous input events as touch events
there can be events can have both SOURCE_TOUCHSCREEN and SOURCE_STYLUS. handle them as touch events rather than mouse events.
2022-12-12 23:33:46 +01:00
Gilles Roudière
be1c9d677d Rename all gdnative occurences to gdextension
Non-exhaustive list of case-sensitive renames:

GDExtension -> GDNative
GDNATIVE -> GDEXTENSION
gdextension -> gdnative
ExtensionExtension ->Extension (for where there was GDNativeExtension)
EXTENSION_EXTENSION ->EXTENSION (for where there was GDNATIVE_EXTENSION)
gdnlib -> gdextension
gdn_interface -> gde_interface
gdni -> gde_interface
2022-12-12 11:04:57 +01:00
bruvzg
ecec415988
Use system fonts as fallback and improve system font handling.
Add support for font weight and stretch selection when using system fonts.
Add function to get system fallback font from a font name, style, text, and language code.
Implement system font support for Android.
Use system fonts as a last resort fallback.
2022-12-04 18:44:20 +02:00
clayjohn
9141984e7e Enable GLES3 on Android
Add necessary build flags and switch from using a
GLES2 context to a GLES3 one.

This also enables building for OpenXR

Co-authored-by: m4gr3d <fhuyakou@gmail.com>
Co-authored-by: dsnopek <dsnopek@gmail.com>
2022-11-29 14:18:24 -08:00
Fredia Huya-Kouadio
7cc47613fe Add missing display server overrides
Improves the base functionality for the Android platform and helps reduce the amount of spurious error logs emitted.
2022-11-27 22:07:51 -08:00
Fredia Huya-Kouadio
3c75887d41 Fix parsing of the keep_screen_on display setting 2022-11-17 05:54:05 -08:00
Rémi Verschelde
eb7c3e1ad3
Android: Fix parsing keep_screen_on setting
Boolean stringification changed in Godot 4.0.

Fixes #67034.

Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2022-11-17 14:32:42 +01:00
Fredia Huya-Kouadio
151233b702 Upgrade Android gradle plugin to version 7.2.1 2022-11-10 16:35:50 -08:00
Fredia Huya-Kouadio
5f4a3e57de Small set of fixes to the input logic 2022-11-07 08:57:08 -08:00
Fredia Huya-Kouadio
13e4770b97 Add double_tap attribute to InputEventScreenTouch
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-22 07:30:46 -07:00
Fredia Huya-Kouadio
ea9bb98f26
Merge pull request #66946 from m4gr3d/cursor_shape_logic_cleanup_main
Cleanup of the Android cursor shape logic
2022-10-05 13:07:34 -07:00
Fredia Huya-Kouadio
ffe0e3970f Cleanup of the Android cursor shape logic 2022-10-05 11:57:57 -07:00
Fredia Huya-Kouadio
38113acf0d
Merge pull request #66941 from winterpixelgames/bugfix-android-null-input-event
Fix null in android keyboard handling.
2022-10-05 10:51:58 -07:00
Jason Knight
88df3e8d53 Fix null in android keyboard handling. 2022-10-05 11:17:02 -06:00
Fredia Huya-Kouadio
3178b042b3 Fix the gradle build configuration for the Android platform following https://github.com/godotengine/godot/pull/66242 2022-10-05 08:41:48 -07:00
clayjohn
4a1c7de57c Split rendering driver project setting into renderer_name and rendering_driver. To differentiate between a driver (e.g. Vulkan or D3D12) and a renderer (e.g. clustered or mobile renderer). 2022-09-19 10:26:10 -07:00
Rémi Verschelde
df5a356e6c Merge pull request #65501 from m4gr3d/fix_invalid_project_manager_path_main
Fix issue causing the project manager to crash because of missing path argument
2022-09-08 09:19:25 +02:00
Fredia Huya-Kouadio
cd544fd86b Fix issue causing the project manager to crash because of missing path argument
In the process, the initialization logic is updated to show an error message and gracefully close the engine when setup errors occur.
2022-09-07 14:21:34 -07:00
Fredia Huya-Kouadio
c3c0bea615 Enable long press, pan and scale gestures for the Godot Android Editor
Fix the bug causing the editor to crash when running the project.
2022-09-07 13:30:10 -07:00
Fredia Huya-Kouadio
1b3511ad49 Cleanup the Android input logic implementation 2022-09-07 13:30:10 -07:00
Aaron Franke
27b0f18275 Unify bits, arch, and android_arch into env["arch"]
Fully removes the `bits` option and adapts the code that relied on it.

Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-08-25 11:19:20 +02:00
Fredia Huya-Kouadio
b3117b6369 Fix issue preventing the Android Editor from displaying the project content
The issue was causing by a bug within the logic for `FileAccessFilesystemJAndroid#eof_reached()` causing that value to remain false after the eof was reached.
This in turn caused an infinite loop in the file scanner preventing the project's content from showing up.
2022-08-15 02:22:10 -07:00