[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