Mesa (master): mesa: add stencil_func_separate() helper

Samuel Pitoiset hakzsam at kemper.freedesktop.org
Wed Jun 21 06:50:48 UTC 2017


Module: Mesa
Branch: master
Commit: 6f10d93ea4d4cf13321bd7b75adc94d161027a94
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=6f10d93ea4d4cf13321bd7b75adc94d161027a94

Author: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Date:   Tue Jun 20 18:09:02 2017 +0200

mesa: add stencil_func_separate() helper

Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>

---

 src/mesa/main/stencil.c | 45 ++++++++++++++++++++++++++++-----------------
 1 file changed, 28 insertions(+), 17 deletions(-)

diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c
index b303bb7c13..78a09072b2 100644
--- a/src/mesa/main/stencil.c
+++ b/src/mesa/main/stencil.c
@@ -448,24 +448,10 @@ _mesa_StencilOpSeparate(GLenum face, GLenum sfail, GLenum zfail, GLenum zpass)
 }
 
 
-/* OpenGL 2.0 */
-void GLAPIENTRY
-_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+static void
+stencil_func_separate(struct gl_context *ctx, GLenum face, GLenum func,
+                      GLint ref, GLuint mask)
 {
-   GET_CURRENT_CONTEXT(ctx);
-
-   if (MESA_VERBOSE & VERBOSE_API)
-      _mesa_debug(ctx, "glStencilFuncSeparate()\n");
-
-   if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)");
-      return;
-   }
-   if (!validate_stencil_func(ctx, func)) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
-      return;
-   }
-
    FLUSH_VERTICES(ctx, _NEW_STENCIL);
 
    if (face != GL_BACK) {
@@ -474,12 +460,14 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
       ctx->Stencil.Ref[0] = ref;
       ctx->Stencil.ValueMask[0] = mask;
    }
+
    if (face != GL_FRONT) {
       /* set back */
       ctx->Stencil.Function[1] = func;
       ctx->Stencil.Ref[1] = ref;
       ctx->Stencil.ValueMask[1] = mask;
    }
+
    if (ctx->Driver.StencilFuncSeparate) {
       ctx->Driver.StencilFuncSeparate(ctx, face, func, ref, mask);
    }
@@ -488,6 +476,29 @@ _mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
 
 /* OpenGL 2.0 */
 void GLAPIENTRY
+_mesa_StencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (MESA_VERBOSE & VERBOSE_API)
+      _mesa_debug(ctx, "glStencilFuncSeparate()\n");
+
+   if (face != GL_FRONT && face != GL_BACK && face != GL_FRONT_AND_BACK) {
+      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(face)");
+      return;
+   }
+
+   if (!validate_stencil_func(ctx, func)) {
+      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilFuncSeparate(func)");
+      return;
+   }
+
+   stencil_func_separate(ctx, face, func, ref, mask);
+}
+
+
+/* OpenGL 2.0 */
+void GLAPIENTRY
 _mesa_StencilMaskSeparate(GLenum face, GLuint mask)
 {
    GET_CURRENT_CONTEXT(ctx);




More information about the mesa-commit mailing list