evas - fixed logic fault in proxy clipping.
This commit is contained in:
parent
188c345b27
commit
911790b236
|
@ -3254,8 +3254,7 @@ _proxy_subrender(Evas *eo_e, Evas_Object *eo_source, Eina_Bool do_async)
|
|||
evas_render_mapped(e, eo_source, source, ctx, proxy_write->surface,
|
||||
-source->cur->geometry.x,
|
||||
-source->cur->geometry.y,
|
||||
1, 0, 0, e->output.w, e->output.h, EINA_TRUE,
|
||||
EINA_TRUE
|
||||
1, 0, 0, e->output.w, e->output.h, EINA_TRUE
|
||||
#ifdef REND_DBG
|
||||
, 1
|
||||
#endif
|
||||
|
|
|
@ -950,8 +950,7 @@ Eina_Bool
|
|||
evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
||||
Evas_Object_Protected_Data *obj, void *context,
|
||||
void *surface, int off_x, int off_y, int mapped, int ecx,
|
||||
int ecy, int ecw, int ech, Eina_Bool proxy_render,
|
||||
Eina_Bool proxy_src_clip
|
||||
int ecy, int ecw, int ech, Eina_Bool proxy_render
|
||||
#ifdef REND_DBG
|
||||
, int level
|
||||
#endif
|
||||
|
@ -968,20 +967,22 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
|
||||
RDI(level);
|
||||
RD(" { evas_render_mapped(%p, %p, %p, %p, %i, %i, %i, %i)\n", e, obj, context, surface, off_x, off_y, mapped, level);
|
||||
|
||||
if (mapped)
|
||||
{
|
||||
if (obj->clip.clipees || obj->cur->have_clipees)
|
||||
if (!proxy_render)
|
||||
{
|
||||
if (!proxy_render || proxy_src_clip)
|
||||
if ((!evas_object_is_visible(eo_obj, obj)) || (obj->clip.clipees)
|
||||
|| (obj->cur->have_clipees))
|
||||
{
|
||||
if (!evas_object_is_visible(eo_obj, obj))
|
||||
{
|
||||
RDI(level);
|
||||
RD(" }\n");
|
||||
return clean_them;
|
||||
}
|
||||
RDI(level);
|
||||
RD(" }\n");
|
||||
return clean_them;
|
||||
}
|
||||
else
|
||||
}
|
||||
else
|
||||
{
|
||||
if ((obj->clip.clipees) || (obj->cur->have_clipees))
|
||||
{
|
||||
RDI(level);
|
||||
RD(" }\n");
|
||||
|
@ -989,9 +990,9 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
}
|
||||
}
|
||||
}
|
||||
else if (!(evas_object_is_active(eo_obj, obj) &&
|
||||
(!obj->clip.clipees) &&
|
||||
_evas_render_can_render(eo_obj, obj)))
|
||||
else if (!(((evas_object_is_active(eo_obj, obj) && (!obj->clip.clipees) &&
|
||||
(_evas_render_can_render(eo_obj, obj))))
|
||||
))
|
||||
{
|
||||
RDI(level);
|
||||
RD(" }\n");
|
||||
|
@ -1133,8 +1134,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
obj->map->surface,
|
||||
off_x2, off_y2, 1,
|
||||
ecx, ecy, ecw, ech,
|
||||
proxy_render,
|
||||
proxy_src_clip
|
||||
proxy_render
|
||||
#ifdef REND_DBG
|
||||
, level + 1
|
||||
#endif
|
||||
|
@ -1265,8 +1265,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
obj2, ctx, surface,
|
||||
off_x, off_y, 1,
|
||||
ecx, ecy, ecw, ech,
|
||||
proxy_render,
|
||||
proxy_src_clip
|
||||
proxy_render
|
||||
#ifdef REND_DBG
|
||||
, level + 1
|
||||
#endif
|
||||
|
@ -1278,7 +1277,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
RDI(level);
|
||||
|
||||
//FIXME: Consider to clip by the proxy clipper.
|
||||
if ((!proxy_render || proxy_src_clip) && obj->cur->clipper)
|
||||
if (obj->cur->clipper && !proxy_render)
|
||||
{
|
||||
RD(" clip: %i %i %ix%i [%i %i %ix%i]\n",
|
||||
obj->cur->cache.clip.x + off_x,
|
||||
|
@ -1323,7 +1322,7 @@ evas_render_mapped(Evas_Public_Data *e, Evas_Object *eo_obj,
|
|||
else
|
||||
{
|
||||
//FIXME: Consider to clip by the proxy clipper.
|
||||
if ((!proxy_render || proxy_src_clip) && obj->cur->clipper)
|
||||
if (obj->cur->clipper && !proxy_render)
|
||||
{
|
||||
int x, y, w, h;
|
||||
|
||||
|
@ -1745,7 +1744,6 @@ evas_render_updates_internal(Evas *eo_e,
|
|||
surface, off_x,
|
||||
off_y, 0,
|
||||
cx, cy, cw, ch,
|
||||
EINA_FALSE,
|
||||
EINA_FALSE
|
||||
#ifdef REND_DBG
|
||||
, 1
|
||||
|
|
|
@ -1239,7 +1239,7 @@ Eina_Bool evas_render_mapped(Evas_Public_Data *e, Evas_Object *obj,
|
|||
Evas_Object_Protected_Data *source_pd,
|
||||
void *context, void *surface, int off_x, int off_y,
|
||||
int mapped, int ecx, int ecy, int ecw, int ech,
|
||||
Eina_Bool proxy_render, Eina_Bool proxy_src_clip
|
||||
Eina_Bool proxy_render
|
||||
#ifdef REND_DBG
|
||||
, int level
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue