summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorvaxerski <vaxry@vaxry.net>2022-10-07 10:35:17 +0100
committervaxerski <vaxry@vaxry.net>2022-10-07 10:43:51 +0100
commit7faa3c367d22a44417a984d9cb50b3eb82258c63 (patch)
treee526a1be2b274034e30125cac584bb4e373293d7 /src/render/Renderer.cpp
parentfd379db8466985edb9ed43823f05372f8b81f058 (diff)
Added clipping support, clip windows on slide anim
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp10
1 files changed, 10 insertions, 0 deletions
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) {