2
0
Эх сурвалжийг харах

Wayland: Implement is_window_transparency_available

Riteo 1 жил өмнө
parent
commit
9734feb449

+ 9 - 0
platform/linuxbsd/wayland/display_server_wayland.cpp

@@ -1209,6 +1209,15 @@ void DisplayServerWayland::set_context(Context p_context) {
 	wayland_thread.window_set_app_id(MAIN_WINDOW_ID, app_id);
 	wayland_thread.window_set_app_id(MAIN_WINDOW_ID, app_id);
 }
 }
 
 
+bool DisplayServerWayland::is_window_transparency_available() const {
+#if defined(RD_ENABLED)
+	if (rendering_device && !rendering_device->is_composite_alpha_supported()) {
+		return false;
+	}
+#endif
+	return OS::get_singleton()->is_layered_allowed();
+}
+
 Vector<String> DisplayServerWayland::get_rendering_drivers_func() {
 Vector<String> DisplayServerWayland::get_rendering_drivers_func() {
 	Vector<String> drivers;
 	Vector<String> drivers;
 
 

+ 2 - 0
platform/linuxbsd/wayland/display_server_wayland.h

@@ -280,6 +280,8 @@ public:
 
 
 	virtual void set_context(Context p_context) override;
 	virtual void set_context(Context p_context) override;
 
 
+	virtual bool is_window_transparency_available() const override;
+
 	static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, Error &r_error);
 	static DisplayServer *create_func(const String &p_rendering_driver, WindowMode p_mode, VSyncMode p_vsync_mode, uint32_t p_flags, const Point2i *p_position, const Size2i &p_resolution, int p_screen, Context p_context, Error &r_error);
 	static Vector<String> get_rendering_drivers_func();
 	static Vector<String> get_rendering_drivers_func();