diff options
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); |
