From 7faa3c367d22a44417a984d9cb50b3eb82258c63 Mon Sep 17 00:00:00 2001 From: vaxerski Date: Fri, 7 Oct 2022 10:35:17 +0100 Subject: Added clipping support, clip windows on slide anim --- src/render/Renderer.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index e36fc5e1..8a1f6f3c 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -248,6 +248,15 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* g_pHyprOpenGL->m_pCurrentWindow = pWindow; + // clip box for animated offsets + if (const auto OFFVEC = PWORKSPACE->m_vRenderOffset.vec(); OFFVEC != Vector2D()) { + g_pHyprOpenGL->m_RenderData.clipBox = {(int)OFFVEC.x, (int)OFFVEC.y, (int)pMonitor->vecTransformedSize.x, (int)pMonitor->vecTransformedSize.y }; + + scaleBox(&g_pHyprOpenGL->m_RenderData.clipBox, pMonitor->scale); + } else { + g_pHyprOpenGL->m_RenderData.clipBox = {0, 0, 0, 0}; + } + // render window decorations first, if not fullscreen full if (mode == RENDER_PASS_ALL || mode == RENDER_PASS_MAIN) { @@ -289,6 +298,7 @@ void CHyprRenderer::renderWindow(CWindow* pWindow, CMonitor* pMonitor, timespec* } g_pHyprOpenGL->m_pCurrentWindow = nullptr; + g_pHyprOpenGL->m_RenderData.clipBox = { 0, 0, 0, 0 }; } void CHyprRenderer::renderLayer(SLayerSurface* pLayer, CMonitor* pMonitor, timespec* time) { -- cgit v1.2.3