From 258d2334affed2773ae768e8f2ae24309b83ca91 Mon Sep 17 00:00:00 2001 From: Alex Szpakowski Date: Sat, 9 Jul 2022 09:00:58 -0300 Subject: [PATCH] OpenGL: Fix missing 'keep' and 'zero' stencil action implementations. Fixes #1818 --- src/modules/graphics/opengl/Graphics.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/modules/graphics/opengl/Graphics.cpp b/src/modules/graphics/opengl/Graphics.cpp index 83732f8a1..18c2daf5a 100644 --- a/src/modules/graphics/opengl/Graphics.cpp +++ b/src/modules/graphics/opengl/Graphics.cpp @@ -1414,12 +1414,17 @@ void Graphics::setStencilMode(StencilAction action, CompareMode compare, int val if (enablestencil != gl.isStateEnabled(OpenGL::ENABLE_STENCIL_TEST)) gl.setEnableState(OpenGL::ENABLE_STENCIL_TEST, enablestencil); - GLenum glaction = GL_REPLACE; + GLenum glaction = GL_KEEP; switch (action) { + case STENCIL_KEEP: + glaction = GL_KEEP; + break; + case STENCIL_ZERO: + glaction = GL_ZERO; + break; case STENCIL_REPLACE: - default: glaction = GL_REPLACE; break; case STENCIL_INCREMENT: @@ -1437,6 +1442,9 @@ void Graphics::setStencilMode(StencilAction action, CompareMode compare, int val case STENCIL_INVERT: glaction = GL_INVERT; break; + case STENCIL_MAX_ENUM: + glaction = GL_KEEP; + break; } /**