summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--customcontext/renderer/qsgbasicclipmanager_p.h9
-rw-r--r--customcontext/renderer/simplerenderer.cpp1
2 files changed, 10 insertions, 0 deletions
diff --git a/customcontext/renderer/qsgbasicclipmanager_p.h b/customcontext/renderer/qsgbasicclipmanager_p.h
index e75d5a9..76c06d0 100644
--- a/customcontext/renderer/qsgbasicclipmanager_p.h
+++ b/customcontext/renderer/qsgbasicclipmanager_p.h
@@ -78,6 +78,15 @@ public:
template<typename ClipRenderer, typename ShaderStateTracker>
void activate(const QSGClipNode *clip, ClipRenderer *clipRenderer, ShaderStateTracker *tracker, QOpenGLFunctions *gl);
+ void reset(QOpenGLFunctions *gl) {
+ if (m_clipType & StencilClip)
+ gl->glDisable(GL_STENCIL_TEST);
+ if (m_clipType & ScissorClip)
+ gl->glDisable(GL_SCISSOR_TEST);
+ m_clipType = NoClip;
+ m_currentClip = 0;
+ }
+
ClipType clipType() const { return m_clipType; }
const QSGClipNode *currentClip() const { return m_currentClip; }
diff --git a/customcontext/renderer/simplerenderer.cpp b/customcontext/renderer/simplerenderer.cpp
index 037c82c..00e0f58 100644
--- a/customcontext/renderer/simplerenderer.cpp
+++ b/customcontext/renderer/simplerenderer.cpp
@@ -434,6 +434,7 @@ void Renderer::renderElements()
}
}
+ m_clipManager->reset(this);
m_shaderManager->endFrame(this);
}