diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-05-02 23:03:22 +0200 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-05-02 23:03:22 +0200 |
| commit | 6bfe9162e11b2b4c41a46a9c123e09023134c1cf (patch) | |
| tree | 131870fd9cd880f32df6c0d6da525a2e703320a6 /src/render/OpenGL.cpp | |
| parent | 42c77b01ed3a6fac8e4682663e961816cb116d80 (diff) | |
Reject blur rendering on empty damage
Diffstat (limited to 'src/render/OpenGL.cpp')
| -rw-r--r-- | src/render/OpenGL.cpp | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp index 2e103243..bb4cc97d 100644 --- a/src/render/OpenGL.cpp +++ b/src/render/OpenGL.cpp @@ -480,8 +480,13 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, wlr_box* pBox, return; } - if (!pixman_region32_not_empty(m_RenderData.pDamage)) - return; + // make a damage region for this window + pixman_region32_t damage; + pixman_region32_init(&damage); + pixman_region32_intersect_rect(&damage, m_RenderData.pDamage, pBox->x, pBox->y, pBox->width, pBox->height); // clip it to the box + + if (!pixman_region32_not_empty(&damage)) + return; // if its empty, reject. // blur the main FB, it will be rendered onto the mirror const auto POUTFB = blurMainFramebufferWithDamage(a, pBox); @@ -505,11 +510,6 @@ void CHyprOpenGLImpl::renderTextureWithBlur(const CTexture& tex, wlr_box* pBox, glStencilFunc(GL_EQUAL, 1, -1); glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE); - // make a damage region for this window - pixman_region32_t damage; - pixman_region32_init(&damage); - pixman_region32_intersect_rect(&damage, m_RenderData.pDamage, pBox->x, pBox->y, pBox->width, pBox->height); // clip it to the box - // stencil done. Render everything. wlr_box MONITORBOX = {0, 0, m_RenderData.pMonitor->vecSize.x, m_RenderData.pMonitor->vecSize.y}; if (pixman_region32_not_empty(&damage)) { |
