diff options
| author | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-26 17:56:43 +0000 |
|---|---|---|
| committer | vaxerski <43317083+vaxerski@users.noreply.github.com> | 2022-11-26 17:57:02 +0000 |
| commit | 0948b078e1789605c42746a024df6039bb566b45 (patch) | |
| tree | e3e1a0dfe0cf748343b290f30ef85824993145c8 /src/render/Renderer.cpp | |
| parent | 52c03569007f3df1a3fc740450db9b4b81d06ca7 (diff) | |
added border gradients
Diffstat (limited to 'src/render/Renderer.cpp')
| -rw-r--r-- | src/render/Renderer.cpp | 12 |
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); + } } } |
