[Mesa-dev] [PATCH 4/5] mesa: add scissor() and scissor_array() helpers

Timothy Arceri tarceri at itsqueeze.com
Tue Jun 6 23:45:52 UTC 2017


On 07/06/17 05:58, Samuel Pitoiset wrote:
> Signed-off-by: Samuel Pitoiset <samuel.pitoiset at gmail.com>
> ---
>   src/mesa/main/scissor.c | 57 ++++++++++++++++++++++++++++++++-----------------
>   1 file changed, 37 insertions(+), 20 deletions(-)
> 
> diff --git a/src/mesa/main/scissor.c b/src/mesa/main/scissor.c
> index 5cf02168bd..d94663c6e4 100644
> --- a/src/mesa/main/scissor.c
> +++ b/src/mesa/main/scissor.c
> @@ -55,22 +55,10 @@ set_scissor_no_notify(struct gl_context *ctx, unsigned idx,
>      ctx->Scissor.ScissorArray[idx].Height = height;
>   }
>   
> -/**
> - * Called via glScissor
> - */
> -void GLAPIENTRY
> -_mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height )
> +static void
> +scissor(struct gl_context *ctx, GLint x, GLint y, GLsizei width, GLsizei height)
>   {
>      unsigned i;
> -   GET_CURRENT_CONTEXT(ctx);
> -
> -   if (MESA_VERBOSE & VERBOSE_API)
> -      _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height);
> -
> -   if (width < 0 || height < 0) {
> -      _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" );
> -      return;
> -   }
>   
>      /* The GL_ARB_viewport_array spec says:
>       *
> @@ -91,6 +79,25 @@ _mesa_Scissor( GLint x, GLint y, GLsizei width, GLsizei height )
>         ctx->Driver.Scissor(ctx);
>   }
>   
> +/**
> + * Called via glScissor
> + */
> +void GLAPIENTRY
> +_mesa_Scissor(GLint x, GLint y, GLsizei width, GLsizei height)
> +{
> +   GET_CURRENT_CONTEXT(ctx);
> +
> +   if (MESA_VERBOSE & VERBOSE_API)
> +      _mesa_debug(ctx, "glScissor %d %d %d %d\n", x, y, width, height);
> +
> +   if (width < 0 || height < 0) {
> +      _mesa_error( ctx, GL_INVALID_VALUE, "glScissor" );
> +      return;
> +   }
> +
> +   scissor(ctx, x, y, width, height);
> +}
> +
>   
>   /**
>    * Define the scissor box.
> @@ -115,6 +122,21 @@ _mesa_set_scissor(struct gl_context *ctx, unsigned idx,
>         ctx->Driver.Scissor(ctx);
>   }
>   
> +static void
> +scissor_array(struct gl_context *ctx, GLuint first, GLsizei count,
> +              struct gl_scissor_rect *rect)
> +{
> +   GLsizei i;
> +
> +   for (i = 0; i < count; i++) {

Please make this:

    for (GLsizei i = 0; i < count; i++) {

IMO it just looks much cleaner :)

Otherwise series:

Reviewed-by: Timothy Arceri <tarceri at itsqueeze.com>


> +      set_scissor_no_notify(ctx, i + first, rect[i].X, rect[i].Y,
> +                            rect[i].Width, rect[i].Height);
> +   }
> +
> +   if (ctx->Driver.Scissor)
> +      ctx->Driver.Scissor(ctx);
> +}
> +
>   /**
>    * Define count scissor boxes starting at index.
>    *
> @@ -150,12 +172,7 @@ _mesa_ScissorArrayv(GLuint first, GLsizei count, const GLint *v)
>         }
>      }
>   
> -   for (i = 0; i < count; i++)
> -      set_scissor_no_notify(ctx, i + first,
> -                            p[i].X, p[i].Y, p[i].Width, p[i].Height);
> -
> -   if (ctx->Driver.Scissor)
> -      ctx->Driver.Scissor(ctx);
> +   scissor_array(ctx, first, count, p);
>   }
>   
>   /**
> 


More information about the mesa-dev mailing list