RD(level, " skip - not smart, not active or clippees or not relevant\n");
}
}
- else if (is_active &&
- _evas_render_object_is_mask(obj) &&
- (evas_object_is_visible(eo_obj, obj) ||
- evas_object_was_visible(eo_obj, obj)))
+ else if (is_active && _evas_render_object_is_mask(obj) &&
+ (obj->cur->visible || obj->prev->visible))
{
if (EINA_UNLIKELY(obj->restack))
OBJ_ARRAY_PUSH(p1ctx->restack_objects, obj);
}
else if (EINA_UNLIKELY(is_active &&
_evas_render_object_is_mask(obj) &&
- evas_object_is_visible(eo_obj, obj)))
+ obj->cur->visible))
{
RD(level, " visible clipper image\n");
OBJ_ARRAY_PUSH(p1ctx->render_objects, obj);
x = cx; y = cy; w = cw; h = ch;
if (((w > 0) && (h > 0)) || (obj->is_smart))
{
- Evas_Object_Protected_Data *prev_mask = NULL;
- Evas_Object_Protected_Data *mask = NULL;
+ Evas_Object_Protected_Data *mask;
if (!obj->is_smart)
{
ENFN->context_clip_set(ENDT, context, x, y, w, h);
- /* Clipper masks */
- if (_evas_render_object_is_mask(obj->cur->clipper))
- mask = obj->cur->clipper; // main object clipped by this mask
- else if (obj->clip.mask)
- mask = obj->clip.mask; // propagated clip
- prev_mask = obj->clip.prev_mask;
-
+ mask = obj->clip.mask;
if (mask)
{
+ Evas_Object_Protected_Data *prev_mask = obj->clip.prev_mask;
+
if (mask->mask->redraw || !mask->mask->surface)
evas_render_mask_subrender(obj->layer->evas, mask, prev_mask, 4, do_async);