From e9c5594186d7ba935e966751d4d676cda998c34b Mon Sep 17 00:00:00 2001 From: aphelei Date: Tue, 1 Jul 2025 11:33:48 +0200 Subject: renderer: add mouse zoom animations (#10882) Adds animations for the mouse zoom effect. --- src/render/Renderer.cpp | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 34347277..f49e2055 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -1163,13 +1163,14 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { static auto PDAMAGEBLINK = CConfigValue("debug:damage_blink"); static auto PDIRECTSCANOUT = CConfigValue("render:direct_scanout"); static auto PVFR = CConfigValue("misc:vfr"); - static auto PZOOMFACTOR = CConfigValue("cursor:zoom_factor"); static auto PANIMENABLED = CConfigValue("animations:enabled"); static auto PFIRSTLAUNCHANIM = CConfigValue("animations:first_launch_animation"); static auto PTEARINGENABLED = CConfigValue("general:allow_tearing"); static int damageBlinkCleanup = 0; // because double-buffered + const float ZOOMFACTOR = pMonitor->m_cursorZoom->value(); + if (pMonitor->m_pixelSize.x < 1 || pMonitor->m_pixelSize.y < 1) { Debug::log(ERR, "Refusing to render a monitor because of an invalid pixel size: {}", pMonitor->m_pixelSize); return; @@ -1298,16 +1299,16 @@ void CHyprRenderer::renderMonitor(PHLMONITOR pMonitor) { TRACY_GPU_ZONE("Render"); static bool zoomLock = false; - if (zoomLock && *PZOOMFACTOR == 1.f) { + if (zoomLock && ZOOMFACTOR == 1.f) { g_pPointerManager->unlockSoftwareAll(); zoomLock = false; - } else if (!zoomLock && *PZOOMFACTOR != 1.f) { + } else if (!zoomLock && ZOOMFACTOR != 1.f) { g_pPointerManager->lockSoftwareAll(); zoomLock = true; } if (pMonitor == g_pCompositor->getMonitorFromCursor()) - g_pHyprOpenGL->m_renderData.mouseZoomFactor = std::clamp(*PZOOMFACTOR, 1.f, INFINITY); + g_pHyprOpenGL->m_renderData.mouseZoomFactor = std::clamp(ZOOMFACTOR, 1.f, INFINITY); else g_pHyprOpenGL->m_renderData.mouseZoomFactor = 1.f; -- cgit v1.2.3