efl/src/modules/evas/engines
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
..
buffer evas-buffer: Remove cserve2 support 2018-08-30 13:23:23 +09:00
drm evas_drm: Remove cserve2 support 2018-08-30 13:19:41 +09:00
eglfs evas-eglfs: Remove cserve2 support 2018-08-30 13:45:01 +09:00
fb evas: differentiate engine from output. 2017-08-25 10:49:53 -07:00
gl_cocoa evas-gl-cocoa: Remove need for useless region_free function 2017-11-06 09:28:53 -05:00
gl_common evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
gl_drm evas-gl-drm: Remove cserve2 support 2018-08-30 13:44:30 +09:00
gl_generic evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
gl_sdl evas sdl: don't make confusing, we only use one-indexed egl handles. 2018-08-02 12:20:27 +09:00
gl_x11 evas-gl-x11: Remove cserve2 support 2018-08-30 13:43:49 +09:00
software_ddraw Evas: remove depth usage in GDI and DirectDraw engines 2018-02-07 22:20:20 +09:00
software_gdi Evas: remove depth usage in GDI and DirectDraw engines 2018-02-07 22:20:20 +09:00
software_generic evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
software_x11 evas-software-x11: Remove cserve2 support 2018-08-30 13:25:05 +09:00
wayland_common ee_wayland: remove edges flag 2018-05-08 13:26:22 -05:00
wayland_egl evas-wayland-egl: Remove cserve2 support 2018-08-30 13:22:34 +09:00
wayland_shm evas-wayland-shm: Remove cserve2 support 2018-08-30 13:21:27 +09:00