forked from enlightenment/efl
finally! smart objects work with map!
SVN revision: 43343
This commit is contained in:
parent
335081d18c
commit
bb3824803c
|
@ -80,7 +80,9 @@ evas_obscured_clear(Evas *e)
|
||||||
return;
|
return;
|
||||||
MAGIC_CHECK_END();
|
MAGIC_CHECK_END();
|
||||||
EINA_LIST_FREE(e->obscures, r)
|
EINA_LIST_FREE(e->obscures, r)
|
||||||
eina_rectangle_free(r);
|
{
|
||||||
|
eina_rectangle_free(r);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -111,6 +113,38 @@ _evas_render_phase1_direct(Evas *e, Eina_Array *render_objects)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_evas_child_changed_propagate(Evas_Object *obj)
|
||||||
|
{
|
||||||
|
Evas_Object *obj2;
|
||||||
|
|
||||||
|
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
|
||||||
|
{
|
||||||
|
if ((evas_object_is_visible(obj2) ||
|
||||||
|
evas_object_was_visible(obj2))
|
||||||
|
)
|
||||||
|
{
|
||||||
|
if (((obj2->restack) && (!obj->clip.clipees)) ||
|
||||||
|
(obj2->changed))
|
||||||
|
{
|
||||||
|
obj->changed = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
else if (obj2->smart.smart)
|
||||||
|
{
|
||||||
|
if (obj2->changed)
|
||||||
|
{
|
||||||
|
obj->changed = 1;
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (_evas_child_changed_propagate(obj2))
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static Eina_Bool
|
static Eina_Bool
|
||||||
_evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active_objects, Eina_Array *restack_objects, Eina_Array *delete_objects, Eina_Array *render_objects, int restack)
|
_evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active_objects, Eina_Array *restack_objects, Eina_Array *delete_objects, Eina_Array *render_objects, int restack)
|
||||||
{
|
{
|
||||||
|
@ -148,20 +182,31 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active
|
||||||
if (!((obj->func->can_map) && (obj->func->can_map(obj))) &&
|
if (!((obj->func->can_map) && (obj->func->can_map(obj))) &&
|
||||||
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
||||||
{
|
{
|
||||||
|
if (obj->smart.smart)
|
||||||
|
{
|
||||||
|
_evas_child_changed_propagate(obj);
|
||||||
|
// printf("%p changed\n", obj);
|
||||||
|
}
|
||||||
if (obj->changed)
|
if (obj->changed)
|
||||||
{
|
{
|
||||||
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
||||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||||
eina_array_push(restack_objects, obj);
|
{
|
||||||
|
// printf("a\n");
|
||||||
|
eina_array_push(restack_objects, obj);
|
||||||
|
}
|
||||||
else if ((is_active) && (!obj->clip.clipees) &&
|
else if ((is_active) && (!obj->clip.clipees) &&
|
||||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||||
{
|
{
|
||||||
eina_array_push(render_objects, obj);
|
// printf("b\n");
|
||||||
|
eina_array_push(restack_objects, obj);
|
||||||
|
// eina_array_push(render_objects, obj);
|
||||||
obj->render_pre = 1;
|
obj->render_pre = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// printf("---\n");
|
||||||
/* for now all mapped objects are no logner opaque
|
/* for now all mapped objects are no logner opaque
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -173,6 +218,7 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* handle normal rendering. this object knows how to handle maps */
|
/* handle normal rendering. this object knows how to handle maps */
|
||||||
|
@ -183,6 +229,7 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active
|
||||||
{
|
{
|
||||||
Evas_Object *obj2;
|
Evas_Object *obj2;
|
||||||
|
|
||||||
|
// printf("_evas_render_phase1_object_process smart1 %p\n", obj);
|
||||||
eina_array_push(render_objects, obj);
|
eina_array_push(render_objects, obj);
|
||||||
obj->render_pre = 1;
|
obj->render_pre = 1;
|
||||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
|
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
|
||||||
|
@ -220,6 +267,7 @@ _evas_render_phase1_object_process(Evas *e, Evas_Object *obj, Eina_Array *active
|
||||||
{
|
{
|
||||||
Evas_Object *obj2;
|
Evas_Object *obj2;
|
||||||
|
|
||||||
|
// printf("_evas_render_phase1_object_process smart2 %p\n", obj);
|
||||||
eina_array_push(render_objects, obj);
|
eina_array_push(render_objects, obj);
|
||||||
obj->render_pre = 1;
|
obj->render_pre = 1;
|
||||||
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
|
EINA_INLIST_FOREACH(evas_object_smart_members_get_direct(obj), obj2)
|
||||||
|
@ -259,10 +307,9 @@ _evas_render_phase1_process(Evas *e, Eina_Array *active_objects, Eina_Array *res
|
||||||
|
|
||||||
EINA_INLIST_FOREACH(lay->objects, obj)
|
EINA_INLIST_FOREACH(lay->objects, obj)
|
||||||
{
|
{
|
||||||
clean_them |= _evas_render_phase1_object_process(e, obj,
|
clean_them |= _evas_render_phase1_object_process
|
||||||
active_objects, restack_objects,
|
(e, obj, active_objects, restack_objects, delete_objects,
|
||||||
delete_objects, render_objects,
|
render_objects, 0);
|
||||||
0);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,13 +319,12 @@ _evas_render_phase1_process(Evas *e, Eina_Array *active_objects, Eina_Array *res
|
||||||
static void
|
static void
|
||||||
_evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
_evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
||||||
{
|
{
|
||||||
unsigned int i;
|
int i;
|
||||||
|
|
||||||
for (i = 0; i < pending_objects->count; ++i)
|
for (i = 0; i < pending_objects->count; ++i)
|
||||||
{
|
{
|
||||||
Evas_Object *obj;
|
Evas_Object *obj;
|
||||||
int ok = 0;
|
int is_active, ok = 0;
|
||||||
int is_active;
|
|
||||||
|
|
||||||
obj = eina_array_data_get(pending_objects, i);
|
obj = eina_array_data_get(pending_objects, i);
|
||||||
|
|
||||||
|
@ -287,10 +333,8 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
||||||
evas_object_clip_recalc(obj);
|
evas_object_clip_recalc(obj);
|
||||||
is_active = evas_object_is_active(obj);
|
is_active = evas_object_is_active(obj);
|
||||||
|
|
||||||
if (!is_active &&
|
if ((!is_active) && (!obj->is_active) && (!obj->render_pre) &&
|
||||||
!obj->is_active &&
|
(!obj->rect_del))
|
||||||
!obj->render_pre &&
|
|
||||||
!obj->rect_del)
|
|
||||||
{
|
{
|
||||||
ok = 1;
|
ok = 1;
|
||||||
goto clean_stuff;
|
goto clean_stuff;
|
||||||
|
@ -302,27 +346,21 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart)
|
if (obj->smart.smart)
|
||||||
{
|
{
|
||||||
if (obj->render_pre
|
if (obj->render_pre || obj->rect_del) ok = 1;
|
||||||
|| obj->rect_del)
|
|
||||||
ok = 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
if ((is_active) && (obj->restack) && (!obj->clip.clipees) &&
|
||||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||||
{
|
{
|
||||||
if (!(obj->render_pre
|
if (!(obj->render_pre || obj->rect_del)) ok = 1;
|
||||||
|| obj->rect_del))
|
|
||||||
ok = 1;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
if (is_active && (!obj->clip.clipees) &&
|
if (is_active && (!obj->clip.clipees) &&
|
||||||
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
((evas_object_is_visible(obj) && (!obj->cur.have_clipees)) ||
|
||||||
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
(evas_object_was_visible(obj) && (!obj->prev.have_clipees))))
|
||||||
{
|
{
|
||||||
if (obj->render_pre
|
if (obj->render_pre || obj->rect_del) ok = 1;
|
||||||
|| obj->rect_del)
|
|
||||||
ok = 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -330,10 +368,9 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
||||||
if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
|
if ((!obj->clip.clipees) && (obj->delete_me == 0) &&
|
||||||
(!obj->cur.have_clipees || (evas_object_was_visible(obj) && (!obj->prev.have_clipees)))
|
(!obj->cur.have_clipees || (evas_object_was_visible(obj) && (!obj->prev.have_clipees)))
|
||||||
&& evas_object_is_opaque(obj) && evas_object_is_visible(obj))
|
&& evas_object_is_opaque(obj) && evas_object_is_visible(obj))
|
||||||
if (obj->rect_del || obj->smart.smart)
|
{
|
||||||
{
|
if (obj->rect_del || obj->smart.smart) ok = 1;
|
||||||
ok = 1;
|
}
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -342,12 +379,9 @@ _evas_render_check_pending_objects(Eina_Array *pending_objects, Evas *e)
|
||||||
{
|
{
|
||||||
eina_array_clean(&e->active_objects);
|
eina_array_clean(&e->active_objects);
|
||||||
eina_array_clean(&e->render_objects);
|
eina_array_clean(&e->render_objects);
|
||||||
|
|
||||||
eina_array_clean(&e->restack_objects);
|
eina_array_clean(&e->restack_objects);
|
||||||
eina_array_clean(&e->delete_objects);
|
eina_array_clean(&e->delete_objects);
|
||||||
|
|
||||||
e->invalidate = 1;
|
e->invalidate = 1;
|
||||||
|
|
||||||
return ;
|
return ;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -364,9 +398,99 @@ pending_change(void *data, void *gdata __UNUSED__)
|
||||||
return obj->changed ? EINA_TRUE : EINA_FALSE;
|
return obj->changed ? EINA_TRUE : EINA_FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
evas_render_mapped(Evas *e, Evas_Object *obj, void *context, void *surface, int off_x, int off_y)
|
||||||
|
{
|
||||||
|
if (!((obj->func->can_map) && (obj->func->can_map(obj))) &&
|
||||||
|
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
||||||
|
{
|
||||||
|
const Evas_Map_Point *p, *p_end;
|
||||||
|
RGBA_Map_Point pts[4], *pt;
|
||||||
|
void *ctx;
|
||||||
|
|
||||||
|
if ((obj->cur.map->normal_geometry.w <= 0) ||
|
||||||
|
(obj->cur.map->normal_geometry.h <= 0))
|
||||||
|
return;
|
||||||
|
|
||||||
|
static int level = 0;
|
||||||
|
|
||||||
|
level++;
|
||||||
|
// printf("+-- mapped draw lv %i\n", level);
|
||||||
|
p = obj->cur.map->points;
|
||||||
|
p_end = p + 4;
|
||||||
|
pt = pts;
|
||||||
|
for (; p < p_end; p++, pt++)
|
||||||
|
{
|
||||||
|
pt->x = (p->x + off_x) << FP;
|
||||||
|
pt->y = (p->y + off_y) << FP;
|
||||||
|
pt->z = (p->z) << FP;
|
||||||
|
pt->u = p->u * FP1;
|
||||||
|
pt->v = p->v * FP1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ctx = e->engine.func->context_new(e->engine.data.output);
|
||||||
|
if (!obj->cur.map->surface)
|
||||||
|
obj->cur.map->surface =
|
||||||
|
obj->layer->evas->engine.func->image_map_surface_new
|
||||||
|
(e->engine.data.output, obj->cur.map->normal_geometry.w,
|
||||||
|
obj->cur.map->normal_geometry.h, 1);
|
||||||
|
|
||||||
|
// FIXME: only re-render if obj changed or smart children or size changed etc.
|
||||||
|
if (obj->smart.smart)
|
||||||
|
{
|
||||||
|
Evas_Object *obj2;
|
||||||
|
|
||||||
|
off_x = -obj->cur.map->normal_geometry.x;
|
||||||
|
off_y = -obj->cur.map->normal_geometry.y;
|
||||||
|
/*
|
||||||
|
printf("draw mapped smart obj %p, %ix%i, off %i %i [%i %i]\n",
|
||||||
|
obj,
|
||||||
|
obj->cur.map->normal_geometry.w,
|
||||||
|
obj->cur.map->normal_geometry.h,
|
||||||
|
off_x, off_y,
|
||||||
|
obj->cur.map->normal_geometry.x,
|
||||||
|
obj->cur.map->normal_geometry.y);
|
||||||
|
*/
|
||||||
|
EINA_INLIST_FOREACH
|
||||||
|
(evas_object_smart_members_get_direct(obj), obj2)
|
||||||
|
{
|
||||||
|
if (evas_object_is_active(obj2) &&
|
||||||
|
(!obj2->clip.clipees) &&
|
||||||
|
((evas_object_is_visible(obj2) &&
|
||||||
|
(!obj2->cur.have_clipees))))
|
||||||
|
evas_render_mapped(e, obj2, ctx, obj->cur.map->surface,
|
||||||
|
off_x, off_y);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
off_x = -obj->cur.cache.clip.x;
|
||||||
|
off_y = -obj->cur.cache.clip.y;
|
||||||
|
obj->func->render(obj, e->engine.data.output, ctx,
|
||||||
|
obj->cur.map->surface, off_x, off_y);
|
||||||
|
}
|
||||||
|
e->engine.func->context_free(e->engine.data.output, ctx);
|
||||||
|
|
||||||
|
obj->layer->evas->engine.func->image_map4_draw
|
||||||
|
(e->engine.data.output, e->engine.data.context, surface,
|
||||||
|
obj->cur.map->surface, pts, 1, /*smooth? (on for now)*/ 0);
|
||||||
|
// FIXME: needs to cache these maps and
|
||||||
|
// keep them only rendering updates
|
||||||
|
obj->layer->evas->engine.func->image_map_surface_free
|
||||||
|
(e->engine.data.output, obj->cur.map->surface);
|
||||||
|
obj->cur.map->surface = NULL;
|
||||||
|
level--;
|
||||||
|
// printf("+-- done\n");
|
||||||
|
}
|
||||||
|
else
|
||||||
|
obj->func->render(obj, e->engine.data.output, context, surface,
|
||||||
|
off_x, off_y);
|
||||||
|
}
|
||||||
|
|
||||||
static Eina_List *
|
static Eina_List *
|
||||||
evas_render_updates_internal(Evas *e,
|
evas_render_updates_internal(Evas *e,
|
||||||
Evas_Object *smart,
|
Evas_Object *smart, // is this a good idea?
|
||||||
unsigned char make_updates,
|
unsigned char make_updates,
|
||||||
unsigned char do_draw)
|
unsigned char do_draw)
|
||||||
{
|
{
|
||||||
|
@ -571,7 +695,7 @@ evas_render_updates_internal(Evas *e,
|
||||||
(obj->cur.visible) &&
|
(obj->cur.visible) &&
|
||||||
(!obj->delete_me) &&
|
(!obj->delete_me) &&
|
||||||
(obj->cur.cache.clip.visible) &&
|
(obj->cur.cache.clip.visible) &&
|
||||||
(!obj->smart.smart) &&
|
// (!obj->smart.smart) &&
|
||||||
(obj->cur.color.a > 0))
|
(obj->cur.color.a > 0))
|
||||||
{
|
{
|
||||||
int x, y, w, h;
|
int x, y, w, h;
|
||||||
|
@ -629,83 +753,8 @@ evas_render_updates_internal(Evas *e,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
if (!((obj->func->can_map) && (obj->func->can_map(obj))) &&
|
evas_render_mapped(e, obj, e->engine.data.context,
|
||||||
((obj->cur.map) && (obj->cur.map->count == 4) && (obj->cur.usemap)))
|
surface, off_x, off_y);
|
||||||
{
|
|
||||||
if ((obj->cur.map->normal_geometry.w > 0) &&
|
|
||||||
(obj->cur.map->normal_geometry.h > 0))
|
|
||||||
{
|
|
||||||
const Evas_Map_Point *p, *p_end;
|
|
||||||
RGBA_Map_Point pts[4], *pt;
|
|
||||||
void *ctx;
|
|
||||||
|
|
||||||
ctx = e->engine.func->context_new(e->engine.data.output);
|
|
||||||
if (!obj->cur.map->surface)
|
|
||||||
{
|
|
||||||
obj->cur.map->surface =
|
|
||||||
obj->layer->evas->engine.func->image_map_surface_new
|
|
||||||
(e->engine.data.output,
|
|
||||||
obj->cur.map->normal_geometry.w,
|
|
||||||
obj->cur.map->normal_geometry.h,
|
|
||||||
1);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (obj->smart.smart)
|
|
||||||
{
|
|
||||||
// FIXME: doesnt work yet
|
|
||||||
// smart object. draw all children to
|
|
||||||
// surface (and if they are mapped...
|
|
||||||
// recurse)
|
|
||||||
evas_render_updates_internal(e, obj, 0, 1);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
obj->func->render(obj,
|
|
||||||
e->engine.data.output,
|
|
||||||
ctx,
|
|
||||||
obj->cur.map->surface,
|
|
||||||
-obj->cur.cache.clip.x,
|
|
||||||
-obj->cur.cache.clip.y
|
|
||||||
);
|
|
||||||
}
|
|
||||||
e->engine.func->context_free(e->engine.data.output, ctx);
|
|
||||||
|
|
||||||
p = obj->cur.map->points;
|
|
||||||
p_end = p + 4;
|
|
||||||
pt = pts;
|
|
||||||
|
|
||||||
for (; p < p_end; p++, pt++)
|
|
||||||
{
|
|
||||||
pt->x = (p->x + off_x) << FP;
|
|
||||||
pt->y = (p->y + off_y) << FP;
|
|
||||||
pt->z = (p->z) << FP;
|
|
||||||
pt->u = p->u * FP1;
|
|
||||||
pt->v = p->v * FP1;
|
|
||||||
}
|
|
||||||
obj->layer->evas->engine.func->image_map4_draw
|
|
||||||
(e->engine.data.output,
|
|
||||||
e->engine.data.context,
|
|
||||||
surface,
|
|
||||||
obj->cur.map->surface,
|
|
||||||
pts,
|
|
||||||
1, // smooth? (on for now)
|
|
||||||
0);
|
|
||||||
// FIXME: needs to cache these maps and
|
|
||||||
// keep them only rendering updates
|
|
||||||
obj->layer->evas->engine.func->image_map_surface_free
|
|
||||||
(e->engine.data.output,
|
|
||||||
obj->cur.map->surface);
|
|
||||||
obj->cur.map->surface = NULL;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
obj->func->render(obj,
|
|
||||||
e->engine.data.output,
|
|
||||||
e->engine.data.context,
|
|
||||||
surface,
|
|
||||||
off_x, off_y);
|
|
||||||
}
|
|
||||||
e->engine.func->context_cutout_clear(e->engine.data.output,
|
e->engine.func->context_cutout_clear(e->engine.data.output,
|
||||||
e->engine.data.context);
|
e->engine.data.context);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,6 @@
|
||||||
static inline int
|
static inline int
|
||||||
evas_object_was_visible(Evas_Object *obj)
|
evas_object_was_visible(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return 0;
|
|
||||||
if ((obj->prev.visible) &&
|
if ((obj->prev.visible) &&
|
||||||
(obj->prev.cache.clip.visible) &&
|
(obj->prev.cache.clip.visible) &&
|
||||||
(obj->prev.cache.clip.a > 0))
|
(obj->prev.cache.clip.a > 0))
|
||||||
|
@ -81,7 +80,6 @@ evas_event_passes_through(Evas_Object *obj)
|
||||||
static inline int
|
static inline int
|
||||||
evas_object_is_visible(Evas_Object *obj)
|
evas_object_is_visible(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return 0;
|
|
||||||
if ((obj->cur.visible) &&
|
if ((obj->cur.visible) &&
|
||||||
(obj->cur.cache.clip.visible) &&
|
(obj->cur.cache.clip.visible) &&
|
||||||
(obj->cur.cache.clip.a > 0))
|
(obj->cur.cache.clip.a > 0))
|
||||||
|
@ -108,7 +106,6 @@ evas_object_clippers_is_visible(Evas_Object *obj)
|
||||||
static inline int
|
static inline int
|
||||||
evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
|
evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return 0;
|
|
||||||
/* assumes coords have been recalced */
|
/* assumes coords have been recalced */
|
||||||
if ((RECTS_INTERSECT(x, y, w, h,
|
if ((RECTS_INTERSECT(x, y, w, h,
|
||||||
obj->cur.cache.clip.x,
|
obj->cur.cache.clip.x,
|
||||||
|
@ -122,7 +119,6 @@ evas_object_is_in_output_rect(Evas_Object *obj, int x, int y, int w, int h)
|
||||||
static inline int
|
static inline int
|
||||||
evas_object_is_active(Evas_Object *obj)
|
evas_object_is_active(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return 0;
|
|
||||||
if ((evas_object_is_visible(obj) || evas_object_was_visible(obj)) &&
|
if ((evas_object_is_visible(obj) || evas_object_was_visible(obj)) &&
|
||||||
(evas_object_is_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
(evas_object_is_in_output_rect(obj, 0, 0, obj->layer->evas->output.w,
|
||||||
obj->layer->evas->output.h) ||
|
obj->layer->evas->output.h) ||
|
||||||
|
@ -135,7 +131,6 @@ evas_object_is_active(Evas_Object *obj)
|
||||||
static inline void
|
static inline void
|
||||||
evas_object_coords_recalc(Evas_Object *obj)
|
evas_object_coords_recalc(Evas_Object *obj)
|
||||||
{
|
{
|
||||||
if (obj->smart.smart) return;
|
|
||||||
//// if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity)
|
//// if (obj->cur.cache.geometry.validity == obj->layer->evas->output_validity)
|
||||||
//// return;
|
//// return;
|
||||||
//// obj->cur.cache.geometry.x =
|
//// obj->cur.cache.geometry.x =
|
||||||
|
|
Loading…
Reference in New Issue