From 06fc52ff22ec7ca1e266eaf041f9096212e3a875 Mon Sep 17 00:00:00 2001 From: RuiwenTang Date: Wed, 1 May 2024 19:02:52 +0800 Subject: [PATCH] gl_engine: fix stencil logical not correct Fix the stencil reference and compile function cause rendering not correct --- src/renderer/gl_engine/tvgGlRenderTask.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/renderer/gl_engine/tvgGlRenderTask.cpp b/src/renderer/gl_engine/tvgGlRenderTask.cpp index 8edd493a..6c388b9f 100644 --- a/src/renderer/gl_engine/tvgGlRenderTask.cpp +++ b/src/renderer/gl_engine/tvgGlRenderTask.cpp @@ -116,10 +116,10 @@ void GlStencilCoverTask::run() GL_CHECK(glStencilFunc(GL_NOTEQUAL, 0x1, 0xFF)); GL_CHECK(glStencilOp(GL_KEEP, GL_KEEP, GL_REPLACE)); } else { - GL_CHECK(glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0x1, 0xFF)); + GL_CHECK(glStencilFuncSeparate(GL_FRONT, GL_ALWAYS, 0x0, 0xFF)); GL_CHECK(glStencilOpSeparate(GL_FRONT, GL_KEEP, GL_KEEP, GL_INCR_WRAP)); - GL_CHECK(glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0x1, 0xFF)); + GL_CHECK(glStencilFuncSeparate(GL_BACK, GL_ALWAYS, 0x0, 0xFF)); GL_CHECK(glStencilOpSeparate(GL_BACK, GL_KEEP, GL_KEEP, GL_DECR_WRAP)); } GL_CHECK(glColorMask(0, 0, 0, 0)); @@ -127,7 +127,7 @@ void GlStencilCoverTask::run() mStencilTask->run(); if (mStencilMode == GlStencilMode::FillEvenOdd) { - GL_CHECK(glStencilFunc(GL_EQUAL, 0x01, 0x01)); + GL_CHECK(glStencilFunc(GL_NOTEQUAL, 0x00, 0x01)); GL_CHECK(glStencilOp(GL_REPLACE, GL_KEEP, GL_REPLACE)); } else { GL_CHECK(glStencilFunc(GL_NOTEQUAL, 0x0, 0xFF));