diff options
| author | end-4 <97237370+end-4@users.noreply.github.com> | 2023-06-12 00:30:31 +0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-06-11 19:30:31 +0200 |
| commit | e1edfde539557d175f8c48d94996469426da7c47 (patch) | |
| tree | b14dd7f02cb6c06a26ec1a72c5cb34b353dc15c6 /src/render/Renderer.cpp | |
| parent | 10fd75c8335736b1a0dcb3830a5b8c2367a02e61 (diff) | |
Allow setting alpha value for ignorezero layer rule (#2477)
* rename ignorezero to ignorealpha
* allow setting ignorealpha value
This commit allows setting a float value (0-1) for the ignorealpha layer rule.
Does not yet have error handling; invalid ignorealpha layer rule will crash Hyprland.
* add brackets i forgot to add
* prevent crash with invalid ignorealpha value
prevents hyprland from immediately crashing with invalid ignorealpha layer rule
does not log
* don't try to set ignoreAlphaValue if alpha value not specified
* add catch to try, reintroduce ignorezero
- added catch after try cuz i was an idiot
- re-add ignorezero as an alternative to ignorealpha to not introduce a breaking change
* add logging for failed ignorealpha layer rule
* fix get ignorealpha's get VALUE
* check npos and use empty()
* rename VALUE cuz no longer const
* format Shader.hpp
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 7552b17c..6d995875 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -392,10 +392,12 @@ void CHyprRenderer::renderLayer(SLayerSurface* pLayer, CMonitor* pMonitor, times renderdata.h = pLayer->geometry.height; renderdata.blockBlurOptimization = pLayer->layer == ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM || pLayer->layer == ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND; - if (pLayer->ignoreZero) - g_pHyprOpenGL->m_RenderData.discardMode |= DISCARD_ALPHAZERO; + if (pLayer->ignoreAlpha) { + g_pHyprOpenGL->m_RenderData.discardMode |= DISCARD_ALPHA; + g_pHyprOpenGL->m_RenderData.discardOpacity = pLayer->ignoreAlphaValue; + } wlr_surface_for_each_surface(pLayer->layerSurface->surface, renderSurface, &renderdata); - g_pHyprOpenGL->m_RenderData.discardMode &= ~DISCARD_ALPHAZERO; + g_pHyprOpenGL->m_RenderData.discardMode &= ~DISCARD_ALPHA; renderdata.squishOversized = false; // don't squish popups renderdata.dontRound = true; |
