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:
Jiyoun Park 2018-11-05 14:20:42 +09:00 committed by Hermet Park
parent 84f82be847
commit 98149c4c2b
1 changed files with 2 additions and 1 deletions

View File

@ -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) &&