[Mesa-dev] [PATCH 3/5] mesa: Handle clip control in meta operations.

Brian Paul brianp at vmware.com
Wed Oct 22 14:43:45 PDT 2014


On 10/22/2014 11:13 AM, Mathias.Froehlich at gmx.net wrote:
> From: Mathias Fröhlich <Mathias.Froehlich at gmx.net>
>
> Restore clip control to the default state if MESA_META_VIEWPORT
> or MESA_META_DEPTH_TEST is requested.
>
> Signed-off-by: Mathias Froehlich <Mathias.Froehlich at web.de>
> ---
>   src/mesa/drivers/common/meta.c | 13 +++++++++++++
>   src/mesa/drivers/common/meta.h |  4 ++++
>   2 files changed, 17 insertions(+)
>
> diff --git a/src/mesa/drivers/common/meta.c b/src/mesa/drivers/common/meta.c
> index 7a8e627..119f327 100644
> --- a/src/mesa/drivers/common/meta.c
> +++ b/src/mesa/drivers/common/meta.c
> @@ -494,6 +494,13 @@ _mesa_meta_begin(struct gl_context *ctx, GLbitfield state)
>         _mesa_set_enable(ctx, GL_DITHER, GL_TRUE);
>      }
>
> +   if (state & MESA_META_CLIP_CONTROL) {
> +      save->ClipControl = ctx->ClipControl;
> +      if (ctx->ClipControl.Origin != GL_LOWER_LEFT ||
> +          ctx->ClipControl.Depth != GL_NEGATIVE_ONE_TO_ONE)
> +         _mesa_ClipControl(GL_LOWER_LEFT, GL_NEGATIVE_ONE_TO_ONE);
> +   }
> +

This might actually get rolled into the MESA_META_TRANSFORM group.


>      if (state & MESA_META_COLOR_MASK) {
>         memcpy(save->ColorMask, ctx->Color.ColorMask,
>                sizeof(ctx->Color.ColorMask));
> @@ -856,6 +863,12 @@ _mesa_meta_end(struct gl_context *ctx)
>      if (state & MESA_META_DITHER)
>         _mesa_set_enable(ctx, GL_DITHER, save->DitherFlag);
>
> +   if (state & MESA_META_CLIP_CONTROL) {
> +      if (ctx->ClipControl.Origin != save->ClipControl.Origin ||
> +          ctx->ClipControl.Depth != save->ClipControl.Depth)
> +         _mesa_ClipControl(save->ClipControl.Origin, save->ClipControl.Depth);
> +   }
> +
>      if (state & MESA_META_COLOR_MASK) {
>         GLuint i;
>         for (i = 0; i < ctx->Const.MaxDrawBuffers; i++) {
> diff --git a/src/mesa/drivers/common/meta.h b/src/mesa/drivers/common/meta.h
> index 2c9517b..08514ad 100644
> --- a/src/mesa/drivers/common/meta.h
> +++ b/src/mesa/drivers/common/meta.h
> @@ -60,6 +60,7 @@
>   #define MESA_META_OCCLUSION_QUERY      0x400000
>   #define MESA_META_DRAW_BUFFERS         0x800000
>   #define MESA_META_DITHER              0x1000000
> +#define MESA_META_CLIP_CONTROL        (MESA_META_VIEWPORT|MESA_META_DEPTH_TEST)
>   /**\}*/
>
>   /**
> @@ -88,6 +89,9 @@ struct save_state
>      /** MESA_META_DITHER */
>      GLboolean DitherFlag;
>
> +   /** MESA_META_CLIP_CONTROL */
> +   struct gl_clip_control ClipControl;
> +
>      /** MESA_META_COLOR_MASK */
>      GLubyte ColorMask[MAX_DRAW_BUFFERS][4];
>
>



More information about the mesa-dev mailing list