efl/src/modules/evas/engines/gl_generic
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
..
filters evas filters: Add "alphaonly" flag for blend and blur 2017-12-14 18:03:49 +09:00
Evas_Engine_GL_Generic.h evas gl: fix glview by avoiding make current 2017-08-25 10:54:55 -07:00
Evas_Engine_GL_Shared.h evas: Render_Engine_Swap_Mode is actually about output swap. 2017-08-25 10:49:15 -07:00
evas_ector_gl.h all: Simplify definition of EAPI 2018-01-18 18:04:03 +09:00
evas_ector_gl_buffer.c eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
evas_ector_gl_buffer.eo evas: do not rely on Evas canvas for Evas Ector engine backend. 2017-04-25 16:16:30 -07:00
evas_ector_gl_image_buffer.c eolian gen: enable constness generation on property getter impls 2018-04-17 20:31:55 +02:00
evas_ector_gl_image_buffer.eo evas filters: Refactor ector and gfx filters A LOT 2017-04-14 11:26:43 +09:00
evas_engine.c evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00