summaryrefslogtreecommitdiffstats
path: root/platform/android/display_server_android.cpp
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2023-01-23 22:30:46 +0100
committerRémi Verschelde <rverschelde@gmail.com>2023-01-23 22:30:46 +0100
commit84b8986a39c74bf303faac1382f67ac5145bf529 (patch)
tree187259b77f4e84d1a5e08f3003c1f8640e048c82 /platform/android/display_server_android.cpp
parent600fcf22edff718f68b3f167254232d52453113f (diff)
parentda3e38024058dd6aeeef470f2b63a802c76fb82f (diff)
downloadredot-engine-84b8986a39c74bf303faac1382f67ac5145bf529.tar.gz
Merge pull request #71836 from m4gr3d/fix_godot_editor_cropping_main
Update the logic to calculate the screen scale on Android
Diffstat (limited to 'platform/android/display_server_android.cpp')
-rw-r--r--platform/android/display_server_android.cpp13
1 files changed, 12 insertions, 1 deletions
diff --git a/platform/android/display_server_android.cpp b/platform/android/display_server_android.cpp
index 6b3bdb7fe6..3fcb926f86 100644
--- a/platform/android/display_server_android.cpp
+++ b/platform/android/display_server_android.cpp
@@ -212,7 +212,18 @@ float DisplayServerAndroid::screen_get_scale(int p_screen) const {
GodotIOJavaWrapper *godot_io_java = OS_Android::get_singleton()->get_godot_io_java();
ERR_FAIL_NULL_V(godot_io_java, 1.0f);
- return godot_io_java->get_scaled_density();
+ float screen_scale = godot_io_java->get_scaled_density();
+
+ // Update the scale to avoid cropping.
+ Size2i screen_size = screen_get_size(p_screen);
+ if (screen_size != Size2i()) {
+ float width_scale = screen_size.width / (float)OS_Android::DEFAULT_WINDOW_WIDTH;
+ float height_scale = screen_size.height / (float)OS_Android::DEFAULT_WINDOW_HEIGHT;
+ screen_scale = MIN(screen_scale, MIN(width_scale, height_scale));
+ }
+
+ print_line("Selected screen scale: ", screen_scale);
+ return screen_scale;
}
float DisplayServerAndroid::screen_get_refresh_rate(int p_screen) const {