[Mesa-dev] [PATCH 1/5] mesa: Add a new helper function _mesa_regions_overlap()
Brian Paul
brianp at vmware.com
Wed Jun 10 16:16:53 PDT 2015
For 1-3,
Reviewed-by: Brian Paul <brianp at vmware.com>
On 06/10/2015 04:34 PM, Anuj Phogat wrote:
> Signed-off-by: Anuj Phogat <anuj.phogat at gmail.com>
> Cc: Ben Widawsky <ben at bwidawsk.net>
> ---
> Jenkins showed no piglit regressions with this series.
>
> src/mesa/main/blit.c | 26 ++++++++++++++++++++++++++
> src/mesa/main/blit.h | 6 ++++++
> 2 files changed, 32 insertions(+)
>
> diff --git a/src/mesa/main/blit.c b/src/mesa/main/blit.c
> index db8fee5..4765198 100644
> --- a/src/mesa/main/blit.c
> +++ b/src/mesa/main/blit.c
> @@ -37,6 +37,7 @@
> #include "framebuffer.h"
> #include "glformats.h"
> #include "mtypes.h"
> +#include "macros.h"
> #include "state.h"
>
>
> @@ -59,6 +60,31 @@ find_attachment(const struct gl_framebuffer *fb,
>
>
> /**
> + * \return true if two regions overlap, false otherwise
> + */
> +bool
> +_mesa_regions_overlap(int srcX0, int srcY0,
> + int srcX1, int srcY1,
> + int dstX0, int dstY0,
> + int dstX1, int dstY1)
> +{
> + if (MAX2(srcX0, srcX1) < MIN2(dstX0, dstX1))
> + return false; /* dst completely right of src */
> +
> + if (MAX2(dstX0, dstX1) < MIN2(srcX0, srcX1))
> + return false; /* dst completely left of src */
> +
> + if (MAX2(srcY0, srcY1) < MIN2(dstY0, dstY1))
> + return false; /* dst completely above src */
> +
> + if (MAX2(dstY0, dstY1) < MIN2(srcY0, srcY1))
> + return false; /* dst completely below src */
> +
> + return true; /* some overlap */
> +}
> +
> +
> +/**
> * Helper function for checking if the datatypes of color buffers are
> * compatible for glBlitFramebuffer. From the 3.1 spec, page 198:
> *
> diff --git a/src/mesa/main/blit.h b/src/mesa/main/blit.h
> index 54b946e..88dd4a9 100644
> --- a/src/mesa/main/blit.h
> +++ b/src/mesa/main/blit.h
> @@ -28,6 +28,12 @@
>
> #include "glheader.h"
>
> +extern bool
> +_mesa_regions_overlap(int srcX0, int srcY0,
> + int srcX1, int srcY1,
> + int dstX0, int dstY0,
> + int dstX1, int dstY1);
> +
> extern void
> _mesa_blit_framebuffer(struct gl_context *ctx,
> struct gl_framebuffer *readFb,
>
More information about the mesa-dev
mailing list