diff options
| author | Vaxry <vaxry@vaxry.net> | 2025-06-15 12:11:28 +0200 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2025-06-15 12:11:28 +0200 |
| commit | 3db3baa19e55a039c1a64a29c8e9aaadea4e5f01 (patch) | |
| tree | 018b367a9c57b2d2fca0e89a435e29d0b22444b0 /src/render/pass | |
| parent | 57d20a1bf67676dc63347e4f1df2e4b66133733f (diff) | |
opengl: use a stack for storing monitor transform enabled
fixes #10487
Diffstat (limited to 'src/render/pass')
| -rw-r--r-- | src/render/pass/SurfacePassElement.cpp | 4 | ||||
| -rw-r--r-- | src/render/pass/TexPassElement.cpp | 4 | ||||
| -rw-r--r-- | src/render/pass/TextureMatteElement.cpp | 4 |
3 files changed, 6 insertions, 6 deletions
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); } |
