summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorTom Englund <tomenglund26@gmail.com>2025-05-07 19:02:07 +0200
committerGitHub <noreply@github.com>2025-05-07 19:02:07 +0200
commit6abb5b0c7e98e064c752075b78cb7389ea818f46 (patch)
tree63db06ee86724beb5a0d00392b09b84d91f0bb52 /src/render/Renderer.cpp
parent0dfcba9825f1c9fb24987e9b255e8b43be4aae6d (diff)
renderer: precompute fullalpha (#10319)
precompute it once instead of calculating it every single call, was showing up as a lot of time wasted in profiling.
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index ed767cbd..dde53f5d 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -519,10 +519,12 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T
EMIT_HOOK_EVENT("render", RENDER_PRE_WINDOW);
+ const auto fullAlpha = renderdata.alpha * renderdata.fadeAlpha;
+
if (*PDIMAROUND && pWindow->m_windowData.dimAround.valueOrDefault() && !m_bRenderingSnapshot && mode != RENDER_PASS_POPUP) {
CBox monbox = {0, 0, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.x, g_pHyprOpenGL->m_renderData.pMonitor->m_transformedSize.y};
CRectPassElement::SRectData data;
- data.color = CHyprColor(0, 0, 0, *PDIMAROUND * renderdata.alpha * renderdata.fadeAlpha);
+ data.color = CHyprColor(0, 0, 0, *PDIMAROUND * fullAlpha);
data.box = monbox;
m_renderPass.add(makeShared<CRectPassElement>(data));
}
@@ -555,14 +557,14 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T
if (wd->getDecorationLayer() != DECORATION_LAYER_BOTTOM)
continue;
- wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha);
+ wd->draw(pMonitor, fullAlpha);
}
for (auto const& wd : pWindow->m_windowDecorations) {
if (wd->getDecorationLayer() != DECORATION_LAYER_UNDER)
continue;
- wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha);
+ wd->draw(pMonitor, fullAlpha);
}
}
@@ -603,7 +605,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T
if (wd->getDecorationLayer() != DECORATION_LAYER_OVER)
continue;
- wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha);
+ wd->draw(pMonitor, fullAlpha);
}
}
@@ -674,7 +676,7 @@ void CHyprRenderer::renderWindow(PHLWINDOW pWindow, PHLMONITOR pMonitor, const T
if (wd->getDecorationLayer() != DECORATION_LAYER_OVERLAY)
continue;
- wd->draw(pMonitor, renderdata.alpha * renderdata.fadeAlpha);
+ wd->draw(pMonitor, fullAlpha);
}
}
}