summaryrefslogtreecommitdiff
path: root/src/render/pass/Pass.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2025-01-01 21:35:42 +0100
committervaxerski <vaxry@vaxry.net>2025-01-01 22:55:21 +0100
commit9f3c9ac01a9a6ecef74429dc9a1dea250ef43c50 (patch)
tree9124ae6ce398f4daf2ed1cf56e3d33b07df77c1a /src/render/pass/Pass.cpp
parent7f177fa1cf3d8ede2841cdbbbdb7acaf27e40d57 (diff)
pass: mark crucial elements as undiscardable
Diffstat (limited to 'src/render/pass/Pass.cpp')
-rw-r--r--src/render/pass/Pass.cpp4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/render/pass/Pass.cpp b/src/render/pass/Pass.cpp
index a2ecddaa..8fdc3049 100644
--- a/src/render/pass/Pass.cpp
+++ b/src/render/pass/Pass.cpp
@@ -35,14 +35,14 @@ void CRenderPass::simplify() {
CRegion newDamage = damage.copy().intersect(CBox{{}, g_pHyprOpenGL->m_RenderData.pMonitor->vecTransformedSize});
for (auto& el : m_vPassElements | std::views::reverse) {
- if (newDamage.empty()) {
+ if (newDamage.empty() && !el->element->undiscardable()) {
el->discard = true;
continue;
}
el->elementDamage = newDamage;
auto bb1 = el->element->boundingBox();
- if (!bb1)
+ if (!bb1 || newDamage.empty())
continue;
auto bb = bb1->scale(g_pHyprOpenGL->m_RenderData.pMonitor->scale);