efl/src/lib/evas
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
..
cache evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
canvas evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
common evas-common: Remove cserve2 support 2018-08-30 13:47:27 +09:00
common3d efl: drop deprecated Encoding key from desktop files 2017-12-13 10:27:48 -08:00
file evas-file: Remove cserve2 support 2018-08-30 13:49:04 +09:00
filters efl: replace efl_del with efl_unref for cases where no parent exists 2018-03-20 17:20:57 -07:00
gesture efl: rename Efl.Event.Description -> Efl.Event_Description 2018-05-23 17:33:47 +02:00
include evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
vg canvas vg: check expcetional case. 2018-07-11 16:08:49 +09:00
Evas.h all: Simplify definition of EAPI 2018-01-18 18:04:03 +09:00
Evas.hh cxx: Fix evas compile test and Evas.hh 2017-12-05 10:14:03 +09:00
Evas_Common.h evas-file: Remove cserve2 support 2018-08-30 13:49:04 +09:00
Evas_Eo.h efl_canvas_object: Add event info to animation events in eo 2018-05-01 00:40:34 +09:00
Evas_GL.h all: Simplify definition of EAPI 2018-01-18 18:04:03 +09:00
Evas_Internal.h evas: add a way to figure out the evas class that should be the real parent for all legacy object. 2018-05-24 16:02:19 -07:00
Evas_Legacy.h Do not consider the Evas_Vg API as BETA anymore 2018-05-30 07:33:01 -04:00
Evas_Loader.h Efl.Gfx.Image* (From Efl.Image*) 2018-04-24 09:03:40 -07:00
main.c evas mem - remove redundenty unused evas mem absraction 2017-07-31 11:53:59 +09:00