diff options
-rw-r--r-- | customcontext/renderer/qsgbasicclipmanager_p.h | 9 | ||||
-rw-r--r-- | customcontext/renderer/simplerenderer.cpp | 1 |
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); } |