efl/src/modules
Hermet Park 423d8a2296 evas image: fix a bug in image preloading.
Summary:
Current preloading is too buggy since it's on thread-based.
This is a fundamental improvement to fix a bug.

The critical issue here is,
When preloading img object suddenly cancel its preloading,
the object possibly cannot render image next then because
renderer doesn't have any idea when async cancelling is
finished. Renderer just tries to render regardless of
image loading status, and this could occur no-texture(in gl case)
image object.

So, here improvement is, adding a notification for async cancelled
so that putting img objects to redraw images properly after their preloading is
cancelled.

The best scenario to reproduce this bug is this one.

Evas_Object *img2 = evas_object_image_filled_add(evas);
evas_object_image_file_set(img2, "test.jpg", NULL);
evas_object_image_preload(img2, EINA_FALSE);
evas_object_resize(img2, 200, 200);
evas_object_show(img2);

Evas_Object *img = evas_object_image_filled_add(evas);
evas_object_image_file_set(img, "test.jpg", NULL);
evas_object_image_preload(img, EINA_FALSE);
evas_object_move(img, 200, 200);
evas_object_resize(img, 200, 200);
evas_object_show(img);

evas_object_image_preload(img2, EINA_TRUE);
If you run this on gl backend, occasionally happens rendering fail.

Yet there other bugs on preloading feature....

@fix

Reviewers: #committers, raster

Subscribers: cedric, #reviewers, #committers, zmike

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D6919
2018-09-03 17:12:55 +09:00
..
ecore/system ecore: make dbus-using modules fork-safe 2018-02-02 16:59:44 -05:00
ecore_buffer move from efl.vpath to eina_vpath 2018-02-22 09:26:55 +01:00
ecore_evas evas: remove render2 2018-08-21 10:36:55 -04:00
ecore_imf ecore_wl2: Remove ecore_wl2_display_window_find 2018-07-06 10:16:36 -04:00
eeze/sensor
eina/mp eina/mempool: remove debug thread check to verify mempool deletion thread 2018-06-27 06:18:14 -04:00
elementary eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
emotion efl: include sys/types.h where ssize_t is used 2018-06-21 14:09:59 +02:00
ethumb/emotion emotion: convert Emotion_Object into Efl.Canvas.Video 2016-09-21 11:04:34 -07:00
evas evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00