diff options
| author | Vaxry <43317083+vaxerski@users.noreply.github.com> | 2025-10-02 12:01:16 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-10-02 12:01:16 +0200 |
| commit | c467bb26406a35b8bbfac6478e6382d1d79b6664 (patch) | |
| tree | a4f69a18994b57196aad1a396cc14d51acb4f035 /src/render/pass | |
| parent | e0c96276df75accc853a30186ae5de580b2c725f (diff) | |
renderer: fix popup fadeout blur (#11756)
popups dont get no xray
Diffstat (limited to 'src/render/pass')
| -rw-r--r-- | src/render/pass/TexPassElement.cpp | 18 | ||||
| -rw-r--r-- | src/render/pass/TexPassElement.hpp | 1 |
2 files changed, 14 insertions, 5 deletions
diff --git a/src/render/pass/TexPassElement.cpp b/src/render/pass/TexPassElement.cpp index 4702c0e4..39853a64 100644 --- a/src/render/pass/TexPassElement.cpp +++ b/src/render/pass/TexPassElement.cpp @@ -36,13 +36,21 @@ void CTexPassElement::draw(const CRegion& damage) { g_pHyprOpenGL->m_renderData.discardOpacity = *m_data.ignoreAlpha; } - if (m_data.blur) - g_pHyprOpenGL->renderTexture( - m_data.tex, m_data.box, - {.a = m_data.a, .blur = true, .blurA = m_data.blurA, .overallA = 1.F, .round = m_data.round, .roundingPower = m_data.roundingPower, .blockBlurOptimization = false}); - else + if (m_data.blur) { + g_pHyprOpenGL->renderTexture(m_data.tex, m_data.box, + { + .a = m_data.a, + .blur = true, + .blurA = m_data.blurA, + .overallA = 1.F, + .round = m_data.round, + .roundingPower = m_data.roundingPower, + .blockBlurOptimization = m_data.blockBlurOptimization.value_or(false), + }); + } else { g_pHyprOpenGL->renderTexture(m_data.tex, m_data.box, {.damage = m_data.damage.empty() ? &damage : &m_data.damage, .a = m_data.a, .round = m_data.round, .roundingPower = m_data.roundingPower}); + } } bool CTexPassElement::needsLiveBlur() { diff --git a/src/render/pass/TexPassElement.hpp b/src/render/pass/TexPassElement.hpp index 4257357e..a922843d 100644 --- a/src/render/pass/TexPassElement.hpp +++ b/src/render/pass/TexPassElement.hpp @@ -21,6 +21,7 @@ class CTexPassElement : public IPassElement { CBox clipBox; bool blur = false; std::optional<float> ignoreAlpha; + std::optional<bool> blockBlurOptimization; }; CTexPassElement(const SRenderData& data); |
