summaryrefslogtreecommitdiff
path: root/src/render/OpenGL.cpp
diff options
context:
space:
mode:
authorjmanc3 <jman12316@live.com>2025-12-14 13:42:02 -0600
committerGitHub <noreply@github.com>2025-12-14 19:42:02 +0000
commite4a8f2b14f789075612bfd26e8153039c8f295f2 (patch)
treeb7119ab4adbd4eefb7d23413ca5d35637f7e8bf6 /src/render/OpenGL.cpp
parent6535ff07c9f16dbd4928f1ef8a12a939db59f7b5 (diff)
renderer: add zoom with detached camera (#12548)
Diffstat (limited to 'src/render/OpenGL.cpp')
-rw-r--r--src/render/OpenGL.cpp18
1 files changed, 3 insertions, 15 deletions
diff --git a/src/render/OpenGL.cpp b/src/render/OpenGL.cpp
index 6b5e35f1..198ba0e4 100644
--- a/src/render/OpenGL.cpp
+++ b/src/render/OpenGL.cpp
@@ -849,7 +849,6 @@ void CHyprOpenGLImpl::begin(PHLMONITOR pMonitor, const CRegion& damage_, CFrameb
}
void CHyprOpenGLImpl::end() {
- static auto PZOOMRIGID = CConfigValue<Hyprlang::INT>("cursor:zoom_rigid");
static auto PZOOMDISABLEAA = CConfigValue<Hyprlang::INT>("cursor:zoom_disable_aa");
TRACY_GPU_ZONE("RenderEnd");
@@ -861,20 +860,9 @@ void CHyprOpenGLImpl::end() {
CBox monbox = {0, 0, m_renderData.pMonitor->m_transformedSize.x, m_renderData.pMonitor->m_transformedSize.y};
- if (m_renderData.mouseZoomFactor != 1.f) {
- const auto ZOOMCENTER = m_renderData.mouseZoomUseMouse ?
- (g_pInputManager->getMouseCoordsInternal() - m_renderData.pMonitor->m_position) * m_renderData.pMonitor->m_scale :
- m_renderData.pMonitor->m_transformedSize / 2.f;
-
- monbox.translate(-ZOOMCENTER).scale(m_renderData.mouseZoomFactor).translate(*PZOOMRIGID ? m_renderData.pMonitor->m_transformedSize / 2.0 : ZOOMCENTER);
-
- monbox.x = std::min(monbox.x, 0.0);
- monbox.y = std::min(monbox.y, 0.0);
- if (monbox.x + monbox.width < m_renderData.pMonitor->m_transformedSize.x)
- monbox.x = m_renderData.pMonitor->m_transformedSize.x - monbox.width;
- if (monbox.y + monbox.height < m_renderData.pMonitor->m_transformedSize.y)
- monbox.y = m_renderData.pMonitor->m_transformedSize.y - monbox.height;
- }
+ if (g_pHyprRenderer->m_renderMode == RENDER_MODE_NORMAL && m_renderData.mouseZoomFactor == 1.0f)
+ m_renderData.pMonitor->m_zoomController.m_resetCameraState = true;
+ m_renderData.pMonitor->m_zoomController.applyZoomTransform(monbox, m_renderData);
m_applyFinalShader = !m_renderData.blockScreenShader;
if (m_renderData.mouseZoomUseMouse && *PZOOMDISABLEAA)