summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-26 17:56:43 +0000
committervaxerski <43317083+vaxerski@users.noreply.github.com>2022-11-26 17:57:02 +0000
commit0948b078e1789605c42746a024df6039bb566b45 (patch)
treee3e1a0dfe0cf748343b290f30ef85824993145c8 /src/render/Renderer.cpp
parent52c03569007f3df1a3fc740450db9b4b81d06ca7 (diff)
added border gradients
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index eabd03e0..a85ba118 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -300,14 +300,20 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec*
float rounding = renderdata.dontRound ? 0 : renderdata.rounding == -1 ? *PROUNDING : renderdata.rounding;
rounding *= pMonitor->scale;
- auto col = g_pHyprOpenGL->m_pCurrentWindow->m_cRealBorderColor.col();
- col.a *= renderdata.fadeAlpha * renderdata.alpha / 255.f;
+ auto grad = g_pHyprOpenGL->m_pCurrentWindow->m_cRealBorderColor;
+ const bool ANIMATED = g_pHyprOpenGL->m_pCurrentWindow->m_fBorderAnimationProgress.isBeingAnimated();
+ float a1 = renderdata.fadeAlpha * renderdata.alpha / 255.f * (ANIMATED ? g_pHyprOpenGL->m_pCurrentWindow->m_fBorderAnimationProgress.fl() : 1.f);
wlr_box windowBox = {renderdata.x - pMonitor->vecPosition.x, renderdata.y - pMonitor->vecPosition.y, renderdata.w, renderdata.h};
scaleBox(&windowBox, pMonitor->scale);
- g_pHyprOpenGL->renderBorder(&windowBox, col, rounding);
+ g_pHyprOpenGL->renderBorder(&windowBox, grad, rounding, a1);
+
+ if (ANIMATED) {
+ float a2 = 1.f - a1;
+ g_pHyprOpenGL->renderBorder(&windowBox, g_pHyprOpenGL->m_pCurrentWindow->m_cRealBorderColorPrevious, rounding, a2);
+ }
}
}