diff options
| author | vaxerski <vaxry@vaxry.net> | 2023-12-28 22:28:58 +0100 |
|---|---|---|
| committer | vaxerski <vaxry@vaxry.net> | 2023-12-28 22:29:04 +0100 |
| commit | 4f3ee4c645c70a25072545ed8251412290e108f8 (patch) | |
| tree | 9df280338649fff1fcf696e96ae362997adcc01a /src/render/Renderer.cpp | |
| parent | 5f65946c84ed6ba3703e865d9a70f98cbb1ae479 (diff) | |
renderer: add decoration:blur:popups_ignorealpha
fixes #4282
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 5c827216..ddae866b 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -50,7 +50,8 @@ CHyprRenderer::CHyprRenderer() { } static void renderSurface(struct wlr_surface* surface, int x, int y, void* data) { - static auto* const PBLURPOPUPS = &g_pConfigManager->getConfigValuePtr("decoration:blur:popups")->intValue; + static auto* const PBLURPOPUPS = &g_pConfigManager->getConfigValuePtr("decoration:blur:popups")->intValue; + static auto* const PBLURPOPUPSIGNOREALPHA = &g_pConfigManager->getConfigValuePtr("decoration:blur:popups_ignorealpha")->floatValue; const auto TEXTURE = wlr_surface_get_texture(surface); const auto RDATA = (SRenderData*)data; @@ -136,9 +137,16 @@ static void renderSurface(struct wlr_surface* surface, int x, int y, void* data) g_pHyprOpenGL->renderTexture(TEXTURE, &windowBox, RDATA->fadeAlpha * RDATA->alpha, rounding, true); } } else { - if (RDATA->blur && RDATA->popup && *PBLURPOPUPS) + if (RDATA->blur && RDATA->popup && *PBLURPOPUPS) { + + if (*PBLURPOPUPSIGNOREALPHA != 1.f) { + g_pHyprOpenGL->m_RenderData.discardMode |= DISCARD_ALPHA; + g_pHyprOpenGL->m_RenderData.discardOpacity = *PBLURPOPUPSIGNOREALPHA; + } + g_pHyprOpenGL->renderTextureWithBlur(TEXTURE, &windowBox, RDATA->fadeAlpha * RDATA->alpha, surface, rounding, true); - else + g_pHyprOpenGL->m_RenderData.discardMode &= ~DISCARD_ALPHA; + } else g_pHyprOpenGL->renderTexture(TEXTURE, &windowBox, RDATA->fadeAlpha * RDATA->alpha, rounding, true); } |
