{
_evas_map_calc_geom_change(obj);
evas_object_mapped_clip_across_mark(obj);
- //FIXME: Since the last frame is not updated when map is
- //disabled, afterimage problem is happened in s/w rendering.
- //Need to find out the fundamental reason then fix it.
- evas_damage_rectangle_add(obj->layer->evas,
- 0,
- 0,
- obj->layer->evas->output.w,
- obj->layer->evas->output.h);
}
}
_evas_map_calc_map_geometry(obj);
{
if (obj->cur.map)
{
+ obj->changed_map = EINA_TRUE;
+
if (obj->cur.map->surface)
{
obj->layer->evas->engine.func->image_map_surface_free
if (!obj->cur.usemap) _evas_map_calc_geom_change(obj);
else _evas_map_calc_map_geometry(obj);
if (obj->cur.usemap)
- {
- evas_object_mapped_clip_across_mark(obj);
- //FIXME: Since the last frame is not updated when map is
- //disabled, afterimage problem is happened in s/w
- //rendering. Need to find out the fundamental reason
- //then fix it.
- evas_damage_rectangle_add(obj->layer->evas,
- 0,
- 0,
- obj->layer->evas->output.w,
- obj->layer->evas->output.h);
- }
+ evas_object_mapped_clip_across_mark(obj);
}
return;
}
+ // We do have the same exact count of point in this map, so just copy it
if ((obj->cur.map) && (obj->cur.map->count == map->count))
- {
- /* We do have the same exact count of point in this map, so just copy it */
- _evas_map_copy(obj->cur.map, map);
- if (obj->prev.map == obj->cur.map) obj->prev.map = NULL;
- }
+ _evas_map_copy(obj->cur.map, map);
else
{
if (obj->cur.map) evas_map_free(obj->cur.map);
if (obj->cur.usemap)
evas_object_mapped_clip_across_mark(obj);
}
+ obj->changed_map = EINA_TRUE;
+
_evas_map_calc_map_geometry(obj);
}
evas_object_render_pre_visible_change(&e->clip_changes, obj, is_v, was_v);
if (!o->pixel_updates) goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
evas_object_render_pre_prev_cur_add(&e->clip_changes, obj);
goto done;
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
- evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
+ evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
+ obj);
goto done;
}
/* it's not visible - we accounted for it appearing or not so just abort */
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
- evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
+ evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
+ obj);
goto done;
}
/* it's not visible - we accounted for it appearing or not so just abort */
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
- evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
+ evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
+ obj);
goto done;
}
/* it's not visible - we accounted for it appearing or not so just abort */
}
#endif
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
obj->pre_render_done = EINA_TRUE;
obj, is_v, was_v);
goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
- evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
- obj);
+ evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
+ obj);
goto done;
}
/* its not visible - we accounted for it appearing or not so just abort */
evas_object_render_pre_visible_change(&obj->layer->evas->clip_changes, obj, is_v, was_v);
goto done;
}
- if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap))
+ if (obj->changed_map)
{
- evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes, obj);
+ evas_object_render_pre_prev_cur_add(&obj->layer->evas->clip_changes,
+ obj);
goto done;
}
/* it's not visible - we accounted for it appearing or not so just abort */
}
return clean_them;
}
- else if (_evas_render_had_map(obj))
+ else if (hmap)
{
RDI(level);
RD(" had map - restack objs\n");
obj->restack = EINA_FALSE;
evas_object_change_reset(obj);
}
- else if ((obj->cur.map != obj->prev.map) ||
- (obj->cur.usemap != obj->prev.usemap) || clean_them)
+ else if (clean_them)
{
RD(" OBJ [%p] post... func2\n", obj);
obj->func->render_post(obj);