forked from enlightenment/efl
evas - try cleanup pipe_region_intersects again.. this time without bugs.
This commit is contained in:
parent
5487b75635
commit
e383e3096d
|
@ -1166,37 +1166,32 @@ static int
|
||||||
pipe_region_intersects(Evas_Engine_GL_Context *gc, int n,
|
pipe_region_intersects(Evas_Engine_GL_Context *gc, int n,
|
||||||
int x, int y, int w, int h)
|
int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
int i, rx, ry, rw, rh, ii;
|
int rx, ry, rw, rh, ii, end;
|
||||||
|
const GLshort *v;
|
||||||
|
|
||||||
rx = gc->pipe[n].region.x;
|
rx = gc->pipe[n].region.x;
|
||||||
ry = gc->pipe[n].region.y;
|
ry = gc->pipe[n].region.y;
|
||||||
rw = gc->pipe[n].region.w;
|
rw = gc->pipe[n].region.w;
|
||||||
rh = gc->pipe[n].region.h;
|
rh = gc->pipe[n].region.h;
|
||||||
if (!RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh))
|
if (!RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 0;
|
||||||
return 0;
|
|
||||||
|
|
||||||
// a hack for now. map pipes use their whole bounding box for intersects
|
// a hack for now. map pipes use their whole bounding box for intersects
|
||||||
// which at worst case reduces to old pipeline flushes, but cheaper than
|
// which at worst case reduces to old pipeline flushes, but cheaper than
|
||||||
// full quad region or triangle intersects right now
|
// full quad region or triangle intersects right now
|
||||||
if (gc->pipe[n].region.type == RTYPE_MAP) return 1;
|
if (gc->pipe[n].region.type == RTYPE_MAP) return 1;
|
||||||
|
|
||||||
for (i = 0,
|
v = gc->pipe[n].array.vertex;
|
||||||
ii = 0;
|
end = gc->pipe[n].array.num * 3;
|
||||||
|
for (ii = 0; ii < end; ii += (3 * 3 * 2))
|
||||||
i < gc->pipe[n].array.num;
|
|
||||||
|
|
||||||
i += (3 * 2),
|
|
||||||
ii += (3 * 3 * 2))
|
|
||||||
{ // tri 1...
|
{ // tri 1...
|
||||||
// 0, 1, 2 < top left
|
// 0, 1, 2 < top left
|
||||||
// 3, 4, 5 < top right
|
// 3, 4, 5 < top right
|
||||||
// 6. 7, 8 < bottom left
|
// 6, 7, 8 < bottom left
|
||||||
rx = gc->pipe[n].array.vertex[ii + 0];
|
rx = v[ii + 0];
|
||||||
ry = gc->pipe[n].array.vertex[ii + 1];
|
ry = v[ii + 1];
|
||||||
rw = gc->pipe[n].array.vertex[ii + 3] - rx;
|
rw = v[ii + 3] - rx;
|
||||||
rh = gc->pipe[n].array.vertex[ii + 7] - ry;
|
rh = v[ii + 7] - ry;
|
||||||
if (RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh))
|
if (RECTS_INTERSECT(x, y, w, h, rx, ry, rw, rh)) return 1;
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue