1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-21 14:57:09 +00:00

Update the logic to calculate the screen scale on Android

Takes into account the ratio between the screen size and the default window dimensions.
This commit is contained in:
Fredia Huya-Kouadio
2023-01-21 22:04:44 -08:00
parent eaf306e0b1
commit da3e380240
4 changed files with 16 additions and 4 deletions

View File

@@ -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 {