From 966f20d305345b3042dc1d37a1dd8833f3a4783b Mon Sep 17 00:00:00 2001 From: UjinT34 <41110182+UjinT34@users.noreply.github.com> Date: Sat, 7 Mar 2026 16:13:34 +0300 Subject: renderer: refactor resources and flags (#13471) --- src/desktop/view/Popup.cpp | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src/desktop/view/Popup.cpp') diff --git a/src/desktop/view/Popup.cpp b/src/desktop/view/Popup.cpp index f6f681d5..5faf506c 100644 --- a/src/desktop/view/Popup.cpp +++ b/src/desktop/view/Popup.cpp @@ -171,9 +171,6 @@ void CPopup::onDestroy() { void CPopup::fullyDestroy() { Log::logger->log(Log::DEBUG, "popup {:x} fully destroying", rc(this)); - g_pHyprRenderer->makeEGLCurrent(); - std::erase_if(g_pHyprOpenGL->m_popupFramebuffers, [&](const auto& other) { return other.first.expired() || other.first == m_self; }); - std::erase_if(m_parent->m_children, [this](const auto& other) { return other.get() == this; }); } @@ -201,8 +198,11 @@ void CPopup::onMap() { sendScale(); m_wlSurface->resource()->breadthfirst([PMONITOR](SP s, const Vector2D& offset, void* d) { s->enter(PMONITOR->m_self.lock()); }, nullptr); - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + if (mon) + mon->m_blurFBDirty = true; + } m_alpha->setConfig(g_pConfigManager->getAnimationPropertyConfig("fadePopupsIn")); m_alpha->setValueAndWarp(0.F); @@ -253,8 +253,10 @@ void CPopup::onUnmap() { m_subsurfaceHead.reset(); - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + const auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + mon->m_blurFBDirty = true; + } // damage all children breadthfirst( @@ -318,8 +320,10 @@ void CPopup::onCommit(bool ignoreSiblings) { m_requestedReposition = false; - if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) - g_pHyprOpenGL->markBlurDirtyForMonitor(g_pCompositor->getMonitorFromID(m_layerOwner->m_layer)); + if (!m_layerOwner.expired() && m_layerOwner->m_layer < ZWLR_LAYER_SHELL_V1_LAYER_TOP) { + const auto mon = g_pCompositor->getMonitorFromID(m_layerOwner->m_layer); + mon->m_blurFBDirty = true; + } } void CPopup::onReposition() { -- cgit v1.2.3