diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-01 15:32:20 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-08-01 15:32:20 +0200 |
| commit | cb36456f4075447aea6e11302c655f2ec787f7b5 (patch) | |
| tree | 380b1c57ef48cd1d32cd12662cfea12bd88eaa1b /src/render/OpenGL.cpp | |
| parent | b90159c08901bb48a965bb682479f7717f964942 (diff) | |
optimize new blur rendering
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 25e45f88..1d29e44d 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -656,8 +656,10 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, wlr_box* pBox, return; } - // vvv TODO: layered blur fbs? - const auto POUTFB = (*PBLURNEWOPTIMIZE && m_pCurrentWindow && !m_pCurrentWindow->m_bIsFloating) ? &m_RenderData.pCurrentMonData->blurFB : blurMainFramebufferWithDamage(a, pBox, &inverseOpaque); + // vvv TODO: layered blur fbs? + const bool USENEWOPTIMIZE = (*PBLURNEWOPTIMIZE && m_pCurrentWindow && !m_pCurrentWindow->m_bIsFloating); + + const auto POUTFB = USENEWOPTIMIZE ? &m_RenderData.pCurrentMonData->blurFB : blurMainFramebufferWithDamage(a, pBox, &inverseOpaque); pixman_region32_fini(&inverseOpaque); @@ -675,7 +677,10 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, wlr_box* pBox, glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); glColorMask(GL_FALSE, GL_FALSE, GL_FALSE, GL_FALSE); - renderTexture(tex, pBox, a, round, true, true); // discard opaque + if (USENEWOPTIMIZE) + renderRect(pBox, CColor(0,0,0,0), round); + else + renderTexture(tex, pBox, a, round, true, true); // discard opaque glColorMask(GL_TRUE, GL_TRUE, GL_TRUE, GL_TRUE); glStencilFunc(GL_EQUAL, 1, -1); |
