Add support for PiP mode
This commit is contained in:
@@ -72,6 +72,12 @@ bool DisplayServerAndroid::has_feature(DisplayServerEnums::Feature p_feature) co
|
||||
return (native_menu && native_menu->has_feature(NativeMenu::FEATURE_GLOBAL_MENU));
|
||||
} break;
|
||||
#endif
|
||||
case DisplayServerEnums::FEATURE_PIP_MODE: {
|
||||
GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java();
|
||||
ERR_FAIL_NULL_V(godot_java, false);
|
||||
return godot_java->is_pip_mode_supported();
|
||||
} break;
|
||||
|
||||
case DisplayServerEnums::FEATURE_CURSOR_SHAPE:
|
||||
//case DisplayServerEnums::FEATURE_CUSTOM_CURSOR_SHAPE:
|
||||
//case DisplayServerEnums::FEATURE_HIDPI:
|
||||
@@ -1003,3 +1009,31 @@ void DisplayServerAndroid::set_icon(const Ref<Image> &p_icon) {
|
||||
bool DisplayServerAndroid::is_window_transparency_available() const {
|
||||
return GLOBAL_GET_CACHED(bool, "display/window/per_pixel_transparency/allowed");
|
||||
}
|
||||
|
||||
bool DisplayServerAndroid::is_in_pip_mode(DisplayServerEnums::WindowID p_window) {
|
||||
ERR_FAIL_COND_V(p_window != DisplayServerEnums::MAIN_WINDOW_ID, false);
|
||||
GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java();
|
||||
ERR_FAIL_NULL_V(godot_java, false);
|
||||
return godot_java->is_in_pip_mode();
|
||||
}
|
||||
|
||||
void DisplayServerAndroid::pip_mode_enter(DisplayServerEnums::WindowID p_window) {
|
||||
ERR_FAIL_COND(p_window != DisplayServerEnums::MAIN_WINDOW_ID);
|
||||
GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java();
|
||||
ERR_FAIL_NULL(godot_java);
|
||||
godot_java->enter_pip_mode();
|
||||
}
|
||||
|
||||
void DisplayServerAndroid::pip_mode_set_aspect_ratio(int p_numerator, int p_denominator, DisplayServerEnums::WindowID p_window) {
|
||||
ERR_FAIL_COND(p_window != DisplayServerEnums::MAIN_WINDOW_ID);
|
||||
GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java();
|
||||
ERR_FAIL_NULL(godot_java);
|
||||
godot_java->set_pip_mode_aspect_ratio(p_numerator, p_denominator);
|
||||
}
|
||||
|
||||
void DisplayServerAndroid::pip_mode_set_auto_enter_on_background(bool p_auto_enter_on_background, DisplayServerEnums::WindowID p_window) {
|
||||
ERR_FAIL_COND(p_window != DisplayServerEnums::MAIN_WINDOW_ID);
|
||||
GodotJavaWrapper *godot_java = OS_Android::get_singleton()->get_godot_java();
|
||||
ERR_FAIL_NULL(godot_java);
|
||||
godot_java->set_auto_enter_pip_mode_on_background(p_auto_enter_on_background);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user