renderer: clean up surface UV size calcs, fix issues (#12070)

This commit is contained in:
Vaxry 2025-10-19 02:56:55 +02:00 committed by GitHub
parent 39d62e1487
commit ba077d8ff0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 27 additions and 10 deletions

View file

@ -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