Fix transparency background issue on Android

Fixes https://github.com/godotengine/godot/issues/106703
This commit is contained in:
Fredia Huya-Kouadio 2025-05-21 21:57:09 -07:00
parent e45cc68092
commit 547450befd
11 changed files with 61 additions and 14 deletions

View file

@ -76,7 +76,7 @@ bool DisplayServerAndroid::has_feature(Feature p_feature) const {
//case FEATURE_NATIVE_DIALOG_FILE_EXTRA:
case FEATURE_NATIVE_DIALOG_FILE_MIME:
//case FEATURE_NATIVE_ICON:
//case FEATURE_WINDOW_TRANSPARENCY:
case FEATURE_WINDOW_TRANSPARENCY:
case FEATURE_CLIPBOARD:
case FEATURE_KEEP_SCREEN_ON:
case FEATURE_ORIENTATION:
@ -592,7 +592,13 @@ void DisplayServerAndroid::window_set_flag(DisplayServer::WindowFlags p_flag, bo
}
bool DisplayServerAndroid::window_get_flag(DisplayServer::WindowFlags p_flag, DisplayServer::WindowID p_window) const {
return false;
switch (p_flag) {
case WindowFlags::WINDOW_FLAG_TRANSPARENT:
return is_window_transparency_available();
default:
return false;
}
}
void DisplayServerAndroid::window_request_attention(DisplayServer::WindowID p_window) {
@ -961,3 +967,7 @@ void DisplayServerAndroid::set_native_icon(const String &p_filename) {
void DisplayServerAndroid::set_icon(const Ref<Image> &p_icon) {
// NOT SUPPORTED
}
bool DisplayServerAndroid::is_window_transparency_available() const {
return GLOBAL_GET_CACHED(bool, "display/window/per_pixel_transparency/allowed");
}