Commit Graph

1052 Commits

Author SHA1 Message Date
Fredia Huya-Kouadio 3943de2e6c
Merge pull request #71875 from m4gr3d/editor_optimization_3x
[3.x] Add benchmark logic
2023-04-22 20:18:45 -07:00
Fredia Huya-Kouadio 837db0b051 Downgrade android gradle plugin to version 7.2.1.
Version 7.3.0 changes the build layout which causes updates to the generated shared libraries to not be picked up.
2023-04-21 13:19:45 -07:00
Jason Knight cec8e09948 Fix null in android text entry system. 2023-04-12 09:20:44 -06:00
Rémi Verschelde 2c2ae757a8
Merge pull request #75205 from m4gr3d/bump_target_sdk_33_3x
[3.x] Bump the target SDK version to 33 (Android 13)
2023-04-11 10:53:39 +02:00
Fredia Huya-Kouadio 2803c471e8 Bump the target SDK version to 33 (Android 13) 2023-03-21 19:24:39 -07:00
Fredia Huya-Kouadio f3cdff46fc Add benchmark logic
Add benchmarking measuring methods to `OS` to allow for platform specific overrides (e.g: can be used to hook into platform specific benchmarking and tracing capabilities).
2023-03-20 23:29:36 -07:00
Fredia Huya-Kouadio e2c7d3e6c0 Fix directory access when the running app has the `All files access` permission 2023-03-20 09:00:48 -07:00
Rémi Verschelde d2ac29abe3
Merge pull request #74469 from m4gr3d/configure_snapshot_publish_version_3x
[3.x] Configure maven central snapshot versions for the Godot Android library
2023-03-06 12:38:49 +01:00
Fredia Huya-Kouadio 0e2292f341 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:29:41 -08:00
necrashter 9bdb585318
Use the new API for virtual keyboard height detection on Android, bugfix 2023-03-06 00:24:09 +03:00
Fredia Huya-Kouadio 6528f984fe Fix the issue causing long-press on a selected node on the scene tree to trigger both the context menu and the rename functionality 2023-02-12 21:20:51 -08:00
Fredia Huya-Kouadio b04c9a71f4 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:01:20 -08:00
Fredia Huya-Kouadio aed400cce2
Merge pull request #71654 from m4gr3d/increase_scroll_bar_size_for_touchscreen_3x
[3.x] Update the size of the scrollbar for the editor on touchscreen devices
2023-01-31 21:52:03 -08:00
Fredia Huya-Kouadio 48a55ffad3 Provide a delegate implementation for the `killProcess` logic on Android
The implementation forwards the kill request to the Godot host for handling. If the Godot host is unable to handle the request, it falls back to the `OS_Unix::kill(...)` implementation.
2023-01-26 03:33:22 -08:00
Fredia Huya-Kouadio e59752bcb7 Update the Godot Android Editor name from `Godot Editor` to `Godot Editor 3`
Keep things consistent with the label used for `Godot Editor 4`, and avoid user confusion regarding the different versions of the engine.
2023-01-24 05:11:08 -08:00
Fredia Huya-Kouadio 8170b7ae1e Add a theme usability setting which updates the touch area of UI elements (e.g: scrollbar) for the editor on touchscreen devices 2023-01-22 07:09:48 -08:00
Fredia Huya-Kouadio 48aedb239e 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-21 22:47:02 -08:00
Tom Beckmann 52919ff352
Fix writing value for hand-tracking V2.0 to AndroidManifest.xml
(cherry picked from commit 0116d50fdd)
2023-01-20 12:16:31 +01:00
Rémi Verschelde 1426cd3b3a
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".

Backported from #70885.
2023-01-10 15:26:54 +01:00
Fredia Huya-Kouadio 4110d48b63 Add boot splash for the Godot Editor 2022-12-16 09:54:50 -08:00
Dennis Ranke 55441f2301
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.

(cherry picked from commit 408000752c)
2022-12-15 12:18:41 +01:00
Fredia Huya-Kouadio de45636fd3
Upgrade Android gradle plugin to version 7.2.1
(cherry picked from commit 151233b702)
2022-12-12 14:49:23 +01:00
Rémi Verschelde b0b759e6da
SCons: Cleanup `DEBUG`, `_DEBUG` and `NDEBUG` defines
- `_DEBUG` is MSVC specific so it didn't make much sense to define for
  Android and iOS builds.
- iOS was the only platform to define `DEBUG`. We don't use it anywhere
  outside thirdparty code, which we usually don't intend to debug, so it
  seems better to be consistent with other platforms.
- Consistently define `NDEBUG` to disable assert behavior in both `release`
  and `release_debug` targets. This used to be set for `release` for all
  platforms, and `release_debug` for Android and iOS only.
- Due to the above, I removed the only use we made of `assert()` in Godot
  code, which was only implemented for Unix anyway, should have been
  `DEV_ENABLED`, and is in PoolAllocator which we don't actually use.
- The denoise and recast modules keep defining `NDEBUG` even for the `debug`
  target as we don't want OIDN and Embree asserting all over the place.

(cherry picked from commit 26e9145c26)
2022-12-12 14:49:21 +01:00
Rémi Verschelde b18ef4dc83 SCons: Remove redundant `-fomit-frame-pointer` and `-ftree-vectorize`
- `-fomit-frame-pointer` is included automatically by both GCC and
  Clang in `-O1` and above.
- `-ftree-vectorize` is included automatically by GCC in `-O2` and
  beyond, and seems always enabled by Clang.

Closes #66296. See that issue for a detailed investigation.

(cherry picked from commit c5c3d13dc0)
2022-12-04 20:03:06 +08:00
Fredia Huya-Kouadio d08e057194
Fix parsing of the `keep_screen_on` display setting
(cherry picked from commit 3c75887d41)
2022-11-30 15:52:10 +01:00
HolonProduction 477d24b6d1
Fix wrong android key mapping.
Fixes the wrong mapping of `Key::HOME`. Androids `KEYCODE_HOME` is in fact the hardware home button the right mapping is `KEYCODE_MOVE_HOME`.

Also adds mappings to keys that were not present before.

(cherry picked from commit a3f0dc5a83)
2022-11-30 15:47:30 +01:00
Dan d789ad4b20 fix exporting Android APPLICATION_ATTRIBS (3.X) 2022-11-22 12:24:17 -08:00
Fredia Huya-Kouadio 5aab84befb Fix 'save & restart' logic for the Android Editor 2022-11-16 03:29:40 -08:00
Fredia Huya-Kouadio 5149311316 Add support for pointer capture 2022-11-07 08:38:28 -08:00
Fredia Huya-Kouadio be4b07c3e4 Add `double_tap` attribute to `InputEventScreenTouch`
This provides parity with the `InputEventMouseButton` allowing for proper conversion between the two events.
2022-10-20 11:56:11 -07:00
Fredia Huya-Kouadio 71c76a4ff2 Update the `clean` task configuration
Running `gradlew clean` will now properly delete the generated build artifacts
2022-10-18 20:37:23 -07:00
Fredia Huya-Kouadio 6f153593dc
Merge pull request #66945 from m4gr3d/add_mouse_cursor_shape_support_3x
Add cursor shape support for the Android platform
2022-10-05 13:06:58 -07:00
Fredia Huya-Kouadio 46f091a803 Add cursor shape support for the Android platform 2022-10-05 12:08:54 -07:00
Jason Knight 31fe6848e8 Fix null in android keyboard handling. 2022-10-05 11:18:39 -06:00
Rémi Verschelde d5c1baa288 SCons: Refactor handling of `production` flag and per-platform LTO defaults
Fixup to #63288.
See #65583 for the bug report.

Co-authored-by: Cyberrebell <chainsaw75@web.de>
(cherry picked from commit 35a15e6191)
2022-09-20 10:26:17 +02:00
Fredia Huya-Kouadio 1f23bac645 Disable menus and functionality that are not relevant on the Android Editor port 2022-09-13 07:38:07 -07:00
Fredia Huya-Kouadio da332d69c0 Exclude small screens from the set of supported devices. 2022-09-12 08:00:23 -07:00
Fredia Huya-Kouadio f37390cbc5 Update the versioning logic for the Godot Android Editor
This is necessary to separate subsequent uploads to the Google Play store as each upload needs to increment the version code.
2022-09-12 07:59:45 -07:00
Rémi Verschelde 953dea1227
Merge pull request #63309 from akien-mga/3.x-scons-refactor-lto 2022-09-08 11:24:54 +02:00
Rémi Verschelde bfe60393f5
Merge pull request #65503 from m4gr3d/fix_invalid_project_manager_path_3x 2022-09-08 09:48:43 +02:00
Fredia Huya-Kouadio 4be7c91cd9 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:25:22 -07:00
Fredia Huya-Kouadio 63df48a59c 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:29:31 -07:00
Fredia Huya-Kouadio 440fa10246 Cleanup the Android input logic implementation 2022-09-07 13:29:31 -07:00
Rémi Verschelde 570e6c1730 SCons: Refactor LTO options with `lto=<none|thin|full>`
Adds support for LTO on macOS and Android.
Disable LTO by default on iOS even if `production=yes` is set.

Also add `linker` option to `server` platform missed in #63283.

Refactor code handling old arguments to make it simpler (breaks compat,
but is explicit enough about it and scripts are easy to fix).
2022-09-05 14:45:12 +02:00
Fredia Huya-Kouadio 9910d4681d Additional fixes to the Android `get_current_dir()` implementation. 2022-08-30 10:08:30 -07:00
bruvzg c4885c8be8 Use clang as assembler to ensure preprocessing is done, and add assembler "target" flag.
(cherry picked from commit e873778561)
2022-08-24 18:26:29 +02:00
Fredia Huya-Kouadio b5e1096c61 Fix issue with `get_current_dir()` returning the wrong path on Android 2022-08-19 20:32:55 -07:00
Fredia Huya-Kouadio 989d5990ad
Merge pull request #64420 from m4gr3d/investigate_read_write_access_loss_3x
[3.x] Fix issue preventing the Android Editor from displaying the project content
2022-08-15 13:19:01 -07:00
Fredia Huya-Kouadio 3ac6b6a596 Disable threads used to check on plugins to load
The functionality is unavailable on Android (requires export capability) and unnecessarily consumes resources
2022-08-15 02:30:08 -07:00
Fredia Huya-Kouadio 30479543b0 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:21:34 -07:00