surface: minor fixes for last logicalDamage calc fix

This commit is contained in:
Vaxry 2024-02-19 11:34:55 +00:00
parent e4790e3f8e
commit 1763566308
2 changed files with 7 additions and 5 deletions

View file

@ -57,10 +57,10 @@ CRegion CWLSurface::logicalDamage() const {
damage.transform(m_pWLRSurface->current.transform, m_pWLRSurface->current.buffer_width, m_pWLRSurface->current.buffer_height); damage.transform(m_pWLRSurface->current.transform, m_pWLRSurface->current.buffer_width, m_pWLRSurface->current.buffer_height);
damage.scale(1.0 / m_pWLRSurface->current.scale); damage.scale(1.0 / m_pWLRSurface->current.scale);
const auto VPSIZE = getViewporterCorrectedSize() / m_pWLRSurface->current.scale; const auto VPSIZE = getViewporterCorrectedSize();
const auto CORRECTVEC = correctSmallVec(); const auto CORRECTVEC = correctSmallVec();
damage.scale({VPSIZE.x / m_pWLRSurface->current.width, VPSIZE.y / m_pWLRSurface->current.height}); damage.scale({VPSIZE.x / m_pWLRSurface->current.buffer_width, VPSIZE.y / m_pWLRSurface->current.buffer_height});
damage.translate(CORRECTVEC); damage.translate(CORRECTVEC);
return damage; return damage;

View file

@ -1589,9 +1589,11 @@ void CHyprRenderer::damageSurface(wlr_surface* pSurface, double x, double y, dou
} }
const auto WLSURF = CWLSurface::surfaceFromWlr(pSurface); const auto WLSURF = CWLSurface::surfaceFromWlr(pSurface);
if (!WLSURF) CRegion damageBox = WLSURF ? WLSURF->logicalDamage() : CRegion{};
if (!WLSURF) {
Debug::log(ERR, "BUG THIS: No CWLSurface for surface in damageSurface!!!"); Debug::log(ERR, "BUG THIS: No CWLSurface for surface in damageSurface!!!");
CRegion damageBox = WLSURF ? WLSURF->logicalDamage() : CRegion{&pSurface->buffer_damage}; wlr_surface_get_effective_damage(pSurface, damageBox.pixman());
}
if (scale != 1.0) if (scale != 1.0)
damageBox.scale(scale); damageBox.scale(scale);