summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2023-11-26 15:24:24 +0000
committerVaxry <vaxry@vaxry.net>2023-11-26 15:24:24 +0000
commit68e57b7ee36f015d99988f38cb3a8b83c23ae7c3 (patch)
tree379a2ae858f2cf44dc177a7abd1a2e823347ad55 /src/render/Renderer.cpp
parent408d96668d57fdd1a713e56f1d40a9befd51bd4a (diff)
renderer: proper full occlusion checks for back layer
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index 770ca16a..e058f1c7 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -2187,7 +2187,12 @@ bool CHyprRenderer::canSkipBackBufferClear(CMonitor* pMonitor) {
ls->geometry.height != pMonitor->vecSize.y)
continue;
- if (!ls->layerSurface->surface->opaque)
+ // TODO: cache maybe?
+ CRegion opaque = &ls->layerSurface->surface->opaque_region;
+ CBox lsbox = {0, 0, ls->layerSurface->surface->current.buffer_width, ls->layerSurface->surface->current.buffer_height};
+ opaque.invert(lsbox);
+
+ if (!opaque.empty())
continue;
return true;