mirror of
https://github.com/hyprwm/Hyprland.git
synced 2024-12-26 01:03:51 +03:00
fixed some nested render bugs
This commit is contained in:
parent
3e36f1c42c
commit
1789facddb
@ -361,7 +361,7 @@ void CHyprOpenGLImpl::renderTextureWithBlurInternal(const CTexture& tex, wlr_box
|
|||||||
|
|
||||||
// if blur disabled, just render the texture
|
// if blur disabled, just render the texture
|
||||||
if (g_pConfigManager->getInt("decoration:blur") == 0) {
|
if (g_pConfigManager->getInt("decoration:blur") == 0) {
|
||||||
renderTexture(tex, pBox, a, round);
|
renderTextureInternal(tex, pBox, a, round);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -384,7 +384,7 @@ void CHyprOpenGLImpl::renderTextureWithBlurInternal(const CTexture& tex, wlr_box
|
|||||||
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE);
|
||||||
|
|
||||||
// render our window to the mirror FB while also writing to the stencil
|
// render our window to the mirror FB while also writing to the stencil
|
||||||
renderTexture(tex, pBox, a, round);
|
renderTextureInternal(tex, pBox, a, round);
|
||||||
|
|
||||||
// then we disable writing to the mask and ONLY accept writing within the stencil
|
// then we disable writing to the mask and ONLY accept writing within the stencil
|
||||||
glStencilFunc(GL_EQUAL, 1, -1);
|
glStencilFunc(GL_EQUAL, 1, -1);
|
||||||
@ -448,7 +448,7 @@ void CHyprOpenGLImpl::renderTextureWithBlurInternal(const CTexture& tex, wlr_box
|
|||||||
|
|
||||||
// when the blur is done, let's render the window itself
|
// when the blur is done, let's render the window itself
|
||||||
// we get it from the mirrored FB full because it's the FB 255 alpha cuz we rendered with a before, same for rounding
|
// we get it from the mirrored FB full because it's the FB 255 alpha cuz we rendered with a before, same for rounding
|
||||||
renderTexture(m_mMonitorRenderResources[m_RenderData.pMonitor].mirrorFB.m_cTex, &fullMonBox, 255.f, 0);
|
renderTextureInternal(m_mMonitorRenderResources[m_RenderData.pMonitor].mirrorFB.m_cTex, &fullMonBox, 255.f, 0);
|
||||||
|
|
||||||
// and disable the stencil
|
// and disable the stencil
|
||||||
glStencilMask(-1);
|
glStencilMask(-1);
|
||||||
@ -618,7 +618,7 @@ void CHyprOpenGLImpl::renderSnapshot(CWindow** pWindow) {
|
|||||||
|
|
||||||
wlr_box windowBox = {0, 0, PMONITOR->vecSize.x, PMONITOR->vecSize.y};
|
wlr_box windowBox = {0, 0, PMONITOR->vecSize.x, PMONITOR->vecSize.y};
|
||||||
|
|
||||||
renderTexture(it->second.m_cTex, &windowBox, PWINDOW->m_fAlpha, 0);
|
renderTextureInternal(it->second.m_cTex, &windowBox, PWINDOW->m_fAlpha, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void CHyprOpenGLImpl::createBGTextureForMonitor(SMonitor* pMonitor) {
|
void CHyprOpenGLImpl::createBGTextureForMonitor(SMonitor* pMonitor) {
|
||||||
|
@ -457,7 +457,7 @@ void CHyprRenderer::damageWindow(CWindow* pWindow) {
|
|||||||
} else {
|
} else {
|
||||||
// damage by real size & pos + border size * 2 (JIC)
|
// damage by real size & pos + border size * 2 (JIC)
|
||||||
const auto BORDERSIZE = g_pConfigManager->getInt("general:border_size");
|
const auto BORDERSIZE = g_pConfigManager->getInt("general:border_size");
|
||||||
wlr_box damageBox = { pWindow->m_vRealPosition.x - BORDERSIZE * 2 - 1, pWindow->m_vRealPosition.y - BORDERSIZE * 2 - 1, pWindow->m_vRealSize.x + 4 * BORDERSIZE + 2, pWindow->m_vRealSize.y + 4 * BORDERSIZE + 2};
|
wlr_box damageBox = { pWindow->m_vRealPosition.x - BORDERSIZE - 1, pWindow->m_vRealPosition.y - BORDERSIZE - 1, pWindow->m_vRealSize.x + 2 * BORDERSIZE + 2, pWindow->m_vRealSize.y + 2 * BORDERSIZE + 2};
|
||||||
for (auto& m : g_pCompositor->m_lMonitors)
|
for (auto& m : g_pCompositor->m_lMonitors)
|
||||||
wlr_output_damage_add_box(m.damage, &damageBox);
|
wlr_output_damage_add_box(m.damage, &damageBox);
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user