From b9a2f108fc055de6a093fcec89624de0583da9cd Mon Sep 17 00:00:00 2001 From: "Matias N. Goldberg" Date: Thu, 31 Oct 2024 16:52:26 -0300 Subject: 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. --- platform/android/display_server_android.cpp | 8 -------- 1 file changed, 8 deletions(-) (limited to 'platform/android/display_server_android.cpp') diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp index f5032eaa40..a725665a14 100644 --- a/platform/android/display_server_android.cpp +++ b/platform/android/display_server_android.cpp @@ -229,14 +229,6 @@ DisplayServer::ScreenOrientation DisplayServerAndroid::screen_get_orientation(in return (ScreenOrientation)orientation; } -int DisplayServerAndroid::screen_get_internal_current_rotation(int p_screen) const { - GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java(); - ERR_FAIL_NULL_V(godot_io_java, 0); - - const int rotation = godot_io_java->get_internal_current_screen_rotation(); - return rotation; -} - int DisplayServerAndroid::get_screen_count() const { return 1; } -- cgit v1.2.3 From 7b866f302ffbcdbacbc1d7fa0f280f2c36cfd481 Mon Sep 17 00:00:00 2001 From: Anish Mishra Date: Fri, 1 Nov 2024 03:36:26 +0530 Subject: [Android] Implement support for accent color retrieval --- platform/android/display_server_android.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'platform/android/display_server_android.cpp') diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp index 3c8b44a33f..03bfed56dc 100644 --- a/platform/android/display_server_android.cpp +++ b/platform/android/display_server_android.cpp @@ -203,6 +203,12 @@ void DisplayServerAndroid::emit_file_picker_callback(bool p_ok, const Vectorget_godot_java(); + ERR_FAIL_NULL_V(godot_java, Color(0, 0, 0, 0)); + return godot_java->get_accent_color(); +} + TypedArray DisplayServerAndroid::get_display_cutouts() const { GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java(); ERR_FAIL_NULL_V(godot_io_java, Array()); -- cgit v1.2.3