mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-06 09:28:07 +02:00
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:
parent
69ee316c1d
commit
7f282d05a1
2 changed files with 32 additions and 0 deletions
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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,
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue