From ba077d8ff09e38a5b20c5d06d71daab52bbcc36d Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sun, 19 Oct 2025 02:56:55 +0200 Subject: renderer: clean up surface UV size calcs, fix issues (#12070) --- src/desktop/WLSurface.cpp | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) (limited to 'src/desktop/WLSurface.cpp') diff --git a/src/desktop/WLSurface.cpp b/src/desktop/WLSurface.cpp index 1a1bd293..ff6a69de 100644 --- a/src/desktop/WLSurface.cpp +++ b/src/desktop/WLSurface.cpp @@ -117,11 +117,13 @@ CRegion CWLSurface::computeDamage() const { // go from buffer coords in the damage to hl logical - const auto BOX = getSurfaceBoxGlobal(); - const Vector2D SCALE = BOX.has_value() ? BOX->size() / m_resource->m_current.bufferSize : - Vector2D{1.0 / m_resource->m_current.scale, 1.0 / m_resource->m_current.scale /* Wrong... but we can't really do better */}; + const auto BOX = getSurfaceBoxGlobal(); + const auto SURFSIZE = m_resource->m_current.size; + const Vector2D SCALE = SURFSIZE / m_resource->m_current.bufferSize; damage.scale(SCALE); + if (BOX.has_value()) + damage.intersect(CBox{{}, BOX->size()}); if (m_windowOwner) damage.scale(m_windowOwner->m_X11SurfaceScaledBy); // fix xwayland:force_zero_scaling stuff that will be fucked by the above a bit -- cgit v1.2.3