mesa: Add a new helper function _mesa_regions_overlap()

Signed-off-by: Anuj Phogat <anuj.phogat@gmail.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
This commit is contained in:
Anuj Phogat 2015-06-05 19:18:19 -07:00
parent 69ee316c1d
commit 7f282d05a1
2 changed files with 32 additions and 0 deletions

View file

@ -37,6 +37,7 @@
#include "framebuffer.h"
#include "glformats.h"
#include "mtypes.h"
#include "macros.h"
#include "state.h"
@ -58,6 +59,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:

View file

@ -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,