summaryrefslogtreecommitdiff
path: root/src/render/pass
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2025-06-15 12:11:28 +0200
committerVaxry <vaxry@vaxry.net>2025-06-15 12:11:28 +0200
commit3db3baa19e55a039c1a64a29c8e9aaadea4e5f01 (patch)
tree018b367a9c57b2d2fca0e89a435e29d0b22444b0 /src/render/pass
parent57d20a1bf67676dc63347e4f1df2e4b66133733f (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.cpp4
-rw-r--r--src/render/pass/TexPassElement.cpp4
-rw-r--r--src/render/pass/TextureMatteElement.cpp4
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);
}