#pragma once #include #include #include #include #include #include #include #include #include namespace qs::hyprland::surface::impl { class HyprlandSurface: public QtWayland::hyprland_surface_v1 { public: explicit HyprlandSurface(::hyprland_surface_v1* surface, QtWaylandClient::QWaylandWindow* backer); ~HyprlandSurface() override; Q_DISABLE_COPY_MOVE(HyprlandSurface); [[nodiscard]] bool surfaceEq(wl_surface* surface) const; void setOpacity(qreal opacity); void setVisibleRegion(const QRegion& region); private: wl_surface* backerSurface = nullptr; }; } // namespace qs::hyprland::surface::impl