summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2023-07-20 18:27:14 +0200
committervaxerski <43317083+vaxerski@users.noreply.github.com>2023-07-20 18:27:14 +0200
commitd2a8b8c2de91b748f0c03ef36ecc3e2b7e4fceab (patch)
tree9900c0e5592d6676c917f4bc80fa0d30632104d2 /src/render/Renderer.cpp
parent833d73df09ee8925b7b4f5592611ad320b25e363 (diff)
renderer: cleanup back buffer skip checks
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp13
1 files changed, 9 insertions, 4 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 6613db2a..77b9fa84 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -2028,12 +2028,17 @@ bool CHyprRenderer::canSkipBackBufferClear(CMonitor* pMonitor) {
if (!ls->layerSurface)
continue;
- if (!ls->layerSurface->surface->opaque || !(ls->alpha.fl() >= 1.f))
+ if (ls->alpha.fl() < 1.f)
continue;
- if (ls->geometry.x == pMonitor->vecPosition.x && ls->geometry.y == pMonitor->vecPosition.y && ls->geometry.width == pMonitor->vecSize.x &&
- ls->geometry.height == pMonitor->vecSize.y)
- return true;
+ if (ls->geometry.x != pMonitor->vecPosition.x || ls->geometry.y != pMonitor->vecPosition.y || ls->geometry.width != pMonitor->vecSize.x ||
+ ls->geometry.height != pMonitor->vecSize.y)
+ continue;
+
+ if (!ls->layerSurface->surface->opaque)
+ continue;
+
+ return true;
}
return false;