From 3db3baa19e55a039c1a64a29c8e9aaadea4e5f01 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Sun, 15 Jun 2025 12:11:28 +0200 Subject: opengl: use a stack for storing monitor transform enabled fixes #10487 --- src/render/pass/SurfacePassElement.cpp | 4 ++-- src/render/pass/TexPassElement.cpp | 4 ++-- src/render/pass/TextureMatteElement.cpp | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) (limited to 'src/render/pass') diff --git a/src/render/pass/SurfacePassElement.cpp b/src/render/pass/SurfacePassElement.cpp index 2163566a..87c7016d 100644 --- a/src/render/pass/SurfacePassElement.cpp +++ b/src/render/pass/SurfacePassElement.cpp @@ -24,7 +24,7 @@ void CSurfacePassElement::draw(const CRegion& damage) { g_pHyprOpenGL->m_renderData.discardMode = m_data.discardMode; g_pHyprOpenGL->m_renderData.discardOpacity = m_data.discardOpacity; g_pHyprOpenGL->m_renderData.useNearestNeighbor = m_data.useNearestNeighbor; - g_pHyprOpenGL->m_endFrame = m_data.flipEndFrame; + g_pHyprOpenGL->pushMonitorTransformEnabled(m_data.flipEndFrame); CScopeGuard x = {[]() { g_pHyprOpenGL->m_renderData.primarySurfaceUVTopLeft = Vector2D(-1, -1); @@ -35,7 +35,7 @@ void CSurfacePassElement::draw(const CRegion& damage) { g_pHyprOpenGL->m_renderData.discardMode = 0; g_pHyprOpenGL->m_renderData.discardOpacity = 0; g_pHyprOpenGL->m_renderData.useNearestNeighbor = false; - g_pHyprOpenGL->m_endFrame = false; + g_pHyprOpenGL->popMonitorTransformEnabled(); g_pHyprOpenGL->m_renderData.currentWindow.reset(); g_pHyprOpenGL->m_renderData.surface.reset(); g_pHyprOpenGL->m_renderData.currentLS.reset(); diff --git a/src/render/pass/TexPassElement.cpp b/src/render/pass/TexPassElement.cpp index e6f4d052..c4b00220 100644 --- a/src/render/pass/TexPassElement.cpp +++ b/src/render/pass/TexPassElement.cpp @@ -9,11 +9,11 @@ CTexPassElement::CTexPassElement(const CTexPassElement::SRenderData& data_) : m_ } void CTexPassElement::draw(const CRegion& damage) { - g_pHyprOpenGL->m_endFrame = m_data.flipEndFrame; + g_pHyprOpenGL->pushMonitorTransformEnabled(m_data.flipEndFrame); CScopeGuard x = {[this]() { // - g_pHyprOpenGL->m_endFrame = false; + g_pHyprOpenGL->popMonitorTransformEnabled(); g_pHyprOpenGL->m_renderData.clipBox = {}; if (m_data.replaceProjection) g_pHyprOpenGL->m_renderData.monitorProjection = g_pHyprOpenGL->m_renderData.pMonitor->m_projMatrix; diff --git a/src/render/pass/TextureMatteElement.cpp b/src/render/pass/TextureMatteElement.cpp index 2b5d4fab..aeeeabc6 100644 --- a/src/render/pass/TextureMatteElement.cpp +++ b/src/render/pass/TextureMatteElement.cpp @@ -7,11 +7,11 @@ CTextureMatteElement::CTextureMatteElement(const CTextureMatteElement::STextureM void CTextureMatteElement::draw(const CRegion& damage) { if (m_data.disableTransformAndModify) { - g_pHyprOpenGL->setMonitorTransformEnabled(true); + g_pHyprOpenGL->pushMonitorTransformEnabled(true); g_pHyprOpenGL->setRenderModifEnabled(false); g_pHyprOpenGL->renderTextureMatte(m_data.tex, m_data.box, *m_data.fb); g_pHyprOpenGL->setRenderModifEnabled(true); - g_pHyprOpenGL->setMonitorTransformEnabled(false); + g_pHyprOpenGL->popMonitorTransformEnabled(); } else g_pHyprOpenGL->renderTextureMatte(m_data.tex, m_data.box, *m_data.fb); } -- cgit v1.2.3