efl/src/lib
Jiyoun Park e8fe0c9c92 evas_image: fix pixels_dirty_set(False) makes wrong object-change-list.
Summary:
evas_object_image_pixels_dirty_set(img B, False) means
1. app want to mark image object's data is not dirty anymore
2. app don't want to be called get_pixels callback.

that does not mean image need to be redraw.

evas_object_image_pixels_dirty_set(img B, True) means
1. image object's data is dirty, so image object need to be redraw.
2. app want to be called get_pixels callback.

but pixels_dirty_set(img B, FALSE) function also set o->changed to true,
it cause problem related with rendering

Below case is the example of problem.

1. Smart object A
2. Child image object B
3. app call pixels_dirty_set(FALSE) inside pixels_get_callback
   pixels_get_callback is called inside the image object B's rendering.

enlightenment's e_comp_object_render do upper job.

After adding preload fetch,
evas_object_image_render_post can call evas_object_change.

https://phab.enlightenment.org/D7157

evas_render_updates_internal

0. enlightenment call evas_object_image_pixels_dirty_set(img B, TRUE)
   o->changed = 1;
   evas_object_change(img B)
1. smart obj A is in render_objects
2. evas_object_image_render_pre B, o->change=0
3. evas_render_mapped (Smart A)
     3-1. evas_render_mapped (img B)
         : enlightenment call evas_object_image_pixels_dirty_set(img B, False)
         : o->changed=1

     3-2. evas_object_change_reset(img B)
4. pending_change(img B)
     4-1. evas_object_image_render_post(img B)
          o->changed=1 (3-1 step) evas_object_change(img B)->evas_object_change(Smart A)

5. render_post_reset
   smart A is chaged(4-1 step), so, called   evas_object_change_reset(Smart A)
   ###smart A is reset(5 step), img B is changed(4-1 step). after this case,
    img B never get change to be redraw.

Reviewers: Hermet, cedric, zmike, ManMower

Reviewed By: Hermet

Subscribers: zmike, ManMower, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D7821
2019-02-13 11:16:16 +09:00
..
ecore Revert "Revert command line array object because it's broken by design" 2019-02-12 21:42:33 +01:00
ecore_audio ecore: make ecore_audio_out abstract 2019-01-26 11:42:12 +01:00
ecore_avahi here comes meson 2018-10-02 17:22:50 +02:00
ecore_buffer here comes meson 2018-10-02 17:22:50 +02:00
ecore_cocoa here comes meson 2018-10-02 17:22:50 +02:00
ecore_con replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
ecore_drm here comes meson 2018-10-02 17:22:50 +02:00
ecore_drm2 ecore-drm2: Minor formatting fixes. 2019-02-06 10:07:20 -05:00
ecore_evas ecore-evas-buffer: Fix formatting 2019-01-31 08:11:54 -05:00
ecore_fb ecore_fb: Add missing tslib dependency 2019-01-11 09:20:07 -05:00
ecore_file cmake: remove! 2018-12-20 20:07:26 +01:00
ecore_imf ecore_imf: fix wrong sample code 2019-02-01 16:45:12 +09:00
ecore_imf_evas here comes meson 2018-10-02 17:22:50 +02:00
ecore_input cmake: remove! 2018-12-20 20:07:26 +01:00
ecore_input_evas here comes meson 2018-10-02 17:22:50 +02:00
ecore_ipc replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
ecore_sdl here comes meson 2018-10-02 17:22:50 +02:00
ecore_wayland here comes meson 2018-10-02 17:22:50 +02:00
ecore_win32
ecore_wl2 ecore_wl2_input: update a timestamp whenever possible 2019-01-29 07:06:33 -05:00
ecore_x cmake: remove! 2018-12-20 20:07:26 +01:00
ector ector: remove unused function 2019-01-22 14:07:14 +01:00
edje edje: apply maps to textblock cursors and backgrounds 2019-02-11 15:10:45 -08:00
eet replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
eeze cmake: remove! 2018-12-20 20:07:26 +01:00
efl efl_ui_format: fix to display %% and unknown format element 2019-02-11 15:41:07 -08:00
efl_mono
efl_wl here comes meson 2018-10-02 17:22:50 +02:00
efreet replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
eina replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
eio efl_model : rename all efl_model based classes. 2019-01-31 14:59:37 +09:00
eldbus efl_model : rename all efl_model based classes. 2019-01-31 14:59:37 +09:00
elementary efl_ui_focus: delete elements on invalidate 2019-02-12 11:25:31 +01:00
elocation elocation - only define ebta api support if needed - not needed here... 2018-11-09 11:44:00 +00:00
elput elput: Update doxygen parameters 2019-01-31 08:45:42 -05:00
elua here comes meson 2018-10-02 17:22:50 +02:00
embryo cmake: remove! 2018-12-20 20:07:26 +01:00
emile replace hton and ntoh family functions with ones defined in eina 2019-02-01 14:25:35 +00:00
emotion efl: convert all classes to the new eolian syntax 2019-01-18 16:31:26 +01:00
eo build: also build eo-tests with debug profile 2019-02-12 16:24:24 +01:00
eolian eolian: clear the unimplemented implement set for each tree 2019-01-25 14:13:16 +01:00
eolian_cxx eolian-cxx: Add constructor_def 2019-01-28 16:23:07 +09:00
ephysics here comes meson 2018-10-02 17:22:50 +02:00
escape
ethumb here comes meson 2018-10-02 17:22:50 +02:00
ethumb_client here comes meson 2018-10-02 17:22:50 +02:00
evas evas_image: fix pixels_dirty_set(False) makes wrong object-change-list. 2019-02-13 11:16:16 +09:00
evas_goal meson - fix pc file versions that were missing mirco version 2018-12-27 11:54:30 +00:00
evil meson: add inital support for windows compilation 2018-12-07 13:05:31 +01:00
.gitignore