forked from enlightenment/efl
evas_render: fix objects change occured withoout real rendering.
Summary: : condition of problem - rectangle object of RECT part(BASE part of below edje) - mapped - has clipper and clipper is ed's base clipper. 1. _evas_render_phase1_object_process is called of rect object if rect is mapped, not changed, it call _evas_render_phase1_object_mapped. 2. _evas_render_phase1_object_mapped when _evas_render_phase1_object_mapped is called, condition is src_changed=0 , is_active=0 , obj_changed=0 hmap=0 => because map of this object is only enabled once and not changed. in this case, rect object's clipper always changed and it cause useless randering so only call _evas_render_phase1_object_map_clipper_fix when obj is changed. first time of map set, evas object always be changed, so it maybe ok we call clipper_fix only obj is chaned. below is sample of edj. group { name: "elm/notify/center/default"; parts { part { name: "anim_start"; scale: 1; type: SPACER; description { .. perspective { zplane: -100; focal: 1000; } } } part { name: "anim_stop"; scale: 1; type: SPACER; description { .. perspective { zplane: 0; focal: 1000; } } } part { name: "base"; scale: 1; type: RECT; description { state: "default" 0.0; .. map { on: 1; perspective_on: 1; perspective: "anim_stop"; } } } Reviewers: raster, Hermet Reviewed By: Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7219
This commit is contained in:
parent
84f82be847
commit
98149c4c2b
|
@ -780,10 +780,11 @@ _evas_render_phase1_object_mapped(Phase1_Context *p1ctx,
|
|||
Evas_Object *eo_obj = obj->object;
|
||||
|
||||
RD(level, " obj mapped\n");
|
||||
if (!obj_changed) return;
|
||||
|
||||
if (!hmap && obj->cur->clipper)
|
||||
// Fix some bad clipping issues before an evas map animation starts
|
||||
_evas_render_phase1_object_map_clipper_fix(eo_obj, obj);
|
||||
if (!obj_changed) return;
|
||||
|
||||
_evas_render_object_map_change_update(p1ctx->e, obj, EINA_TRUE, hmap, &(p1ctx->redraw_all));
|
||||
if (!((is_active) &&
|
||||
|
|
Loading…
Reference in New Issue