From 9f3c9ac01a9a6ecef74429dc9a1dea250ef43c50 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Wed, 1 Jan 2025 21:35:42 +0100 Subject: pass: mark crucial elements as undiscardable --- src/render/pass/Pass.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/render/pass/Pass.cpp') 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); -- cgit v1.2.3