From a35e4fb7cab62c072da371c97d842f35cce3b0ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BA=91=E9=A3=8E?= Date: Fri, 3 Nov 2017 00:15:13 +0800 Subject: [PATCH] restore old flags when skip zero scissor rect (#1271) --- src/renderer_gl.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/renderer_gl.cpp b/src/renderer_gl.cpp index cb485eb4e..9a9e9f3b4 100644 --- a/src/renderer_gl.cpp +++ b/src/renderer_gl.cpp @@ -6900,10 +6900,12 @@ namespace bgfx { namespace gl continue; } + const uint64_t oldFlags = currentState.m_stateFlags; const uint64_t newFlags = draw.m_stateFlags; uint64_t changedFlags = currentState.m_stateFlags ^ draw.m_stateFlags; currentState.m_stateFlags = newFlags; + const uint64_t oldStencil = currentState.m_stencil; const uint64_t newStencil = draw.m_stencil; uint64_t changedStencil = currentState.m_stencil ^ draw.m_stencil; currentState.m_stencil = newStencil; @@ -6947,6 +6949,8 @@ namespace bgfx { namespace gl scissorRect.setIntersect(viewScissorRect, _render->m_frameCache.m_rectCache.m_cache[scissor]); if (scissorRect.isZeroArea() ) { + currentState.m_stateFlags = oldFlags; + currentState.m_stencil = oldStencil; continue; }