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

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


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

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

mesa: add stencil_op() helper

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

---

 src/mesa/main/stencil.c | 47 ++++++++++++++++++++++++++++-------------------
 src/mesa/main/stencil.h |  2 +-
 2 files changed, 29 insertions(+), 20 deletions(-)

diff --git a/src/mesa/main/stencil.c b/src/mesa/main/stencil.c
index 82dd787067..7913bb176e 100644
--- a/src/mesa/main/stencil.c
+++ b/src/mesa/main/stencil.c
@@ -320,28 +320,11 @@ _mesa_StencilMask( GLuint mask )
  * __struct gl_contextRec::Stencil. On change flushes the vertices and notifies
  * the driver via the dd_function_table::StencilOp callback.
  */
-void GLAPIENTRY
-_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+static void
+stencil_op(struct gl_context *ctx, GLenum fail, GLenum zfail, GLenum zpass)
 {
-   GET_CURRENT_CONTEXT(ctx);
    const GLint face = ctx->Stencil.ActiveFace;
 
-   if (MESA_VERBOSE & VERBOSE_API)
-      _mesa_debug(ctx, "glStencilOp()\n");
-
-   if (!validate_stencil_op(ctx, fail)) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)");
-      return;
-   }
-   if (!validate_stencil_op(ctx, zfail)) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)");
-      return;
-   }
-   if (!validate_stencil_op(ctx, zpass)) {
-      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)");
-      return;
-   }
-
    if (face != 0) {
       /* only set active face state */
       if (ctx->Stencil.ZFailFunc[face] == zfail &&
@@ -383,6 +366,32 @@ _mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
 }
 
 
+void GLAPIENTRY
+_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass)
+{
+   GET_CURRENT_CONTEXT(ctx);
+
+   if (MESA_VERBOSE & VERBOSE_API)
+      _mesa_debug(ctx, "glStencilOp()\n");
+
+   if (!validate_stencil_op(ctx, fail)) {
+      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(sfail)");
+      return;
+   }
+
+   if (!validate_stencil_op(ctx, zfail)) {
+      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zfail)");
+      return;
+   }
+
+   if (!validate_stencil_op(ctx, zpass)) {
+      _mesa_error(ctx, GL_INVALID_ENUM, "glStencilOp(zpass)");
+      return;
+   }
+
+   stencil_op(ctx, fail, zfail, zpass);
+}
+
 
 /* GL_EXT_stencil_two_side */
 void GLAPIENTRY
diff --git a/src/mesa/main/stencil.h b/src/mesa/main/stencil.h
index 71844712a2..5425065a7c 100644
--- a/src/mesa/main/stencil.h
+++ b/src/mesa/main/stencil.h
@@ -53,7 +53,7 @@ _mesa_StencilMask( GLuint mask );
 
 
 extern void GLAPIENTRY
-_mesa_StencilOp( GLenum fail, GLenum zfail, GLenum zpass );
+_mesa_StencilOp(GLenum fail, GLenum zfail, GLenum zpass);
 
 
 extern void GLAPIENTRY




More information about the mesa-commit mailing list