efl/src
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
..
benchmarks
bin evas: Remove binary cserve2 2018-08-30 13:53:13 +09:00
bindings efl-mono: properly close XML comment 2018-08-24 14:10:41 -03:00
edje_external
examples docs: Fix typos in API reference doc and comments. 2018-08-31 17:45:31 +09:00
generic
lib evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
modules evas image: fix a bug in image preloading. 2018-09-03 17:12:55 +09:00
scripts
static_libs docs: Fix typos in API reference doc and comments. 2018-08-31 17:45:31 +09:00
tests docs: Fix typos in API reference doc and comments. 2018-08-31 17:45:31 +09:00
wayland_protocol
CMakeLists.txt
CMakeLists_Eina.txt
Makefile.am tests: add failsafe timeout for tests running in fork mode 2018-08-16 09:59:58 +02:00
Makefile_Cxx.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_EPhysics.am
Makefile_Ecore.am ecore_pipe: remove null check condition and fix segfualt on Windows 2018-08-17 12:42:35 -04:00
Makefile_Ecore_Audio.am build: disable Lua binding generation 2018-08-01 13:31:15 -04:00
Makefile_Ecore_Avahi.am
Makefile_Ecore_Buffer.am
Makefile_Ecore_Cocoa.am
Makefile_Ecore_Con.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Ecore_Drm.am
Makefile_Ecore_Drm2.am
Makefile_Ecore_Evas.am
Makefile_Ecore_FB.am
Makefile_Ecore_File.am
Makefile_Ecore_IMF.am
Makefile_Ecore_IMF_Evas.am
Makefile_Ecore_Input.am
Makefile_Ecore_Input_Evas.am
Makefile_Ecore_Ipc.am
Makefile_Ecore_Js.am
Makefile_Ecore_SDL.am
Makefile_Ecore_Wayland.am
Makefile_Ecore_Win32.am
Makefile_Ecore_Wl2.am ecore_wl2_dmabuf: Depend on ecore_wl2 2018-08-20 14:08:19 -04:00
Makefile_Ecore_X.am
Makefile_Ector.am
Makefile_Edje.am build: disable Lua binding generation 2018-08-01 13:31:15 -04:00
Makefile_Edje_Helper.am
Makefile_Eet.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Eet_Helper.am
Makefile_Eeze.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Efl.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Efl_Js.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Efl_Mono.am C# bindings: Make efl_loop_timer.eo available to bindings 2018-07-06 15:00:51 -04:00
Makefile_Efl_Mono_MSBuild_Gen_Helper.am
Makefile_Efreet.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Eina.am move efreet xdg envvars to eina 2018-08-20 12:57:57 -04:00
Makefile_Eio.am tests/eio: disable efreet cache for eio tests 2018-08-16 10:16:44 -04:00
Makefile_Eldbus.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Elementary.am build: remove incorrect use of DEPENDENCIES for non-library file 2018-08-17 22:11:33 +02:00
Makefile_Elocation.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Elput.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Elua.am build: fix distcheck when elua is disabled in main tree 2018-07-13 15:41:15 -04:00
Makefile_Elua_Helper.am build: disable Lua binding generation 2018-08-01 13:31:15 -04:00
Makefile_Embryo.am
Makefile_Emile.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Emotion.am build: disable Lua binding generation 2018-08-01 13:31:15 -04:00
Makefile_Eo.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Eolian.am Remove EOLIAN_TESTS_EOS_GENERATED 2018-08-16 12:41:16 -05:00
Makefile_Eolian_Cxx.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Eolian_Cxx_Helper.am build: disable eolian implicit rules in subdir builds 2018-07-30 18:16:20 +02:00
Makefile_Eolian_Files_Helper.am build: disable eolian implicit rules in subdir builds 2018-07-30 18:16:20 +02:00
Makefile_Eolian_Helper.am
Makefile_Eolian_Js.am build: define PACKAGE_BUILD_DIR as $(abs_top_builddir) for all test suites 2018-08-08 09:45:30 -04:00
Makefile_Eolian_Js_Helper.am build: disable eolian implicit rules in subdir builds 2018-07-30 18:16:20 +02:00
Makefile_Eolian_Mono_Helper.am
Makefile_Escape.am
Makefile_Ethumb.am
Makefile_Ethumb_Client.am
Makefile_Evas.am efl: Remove cserve2 support from Makefile_Evas.am 2018-08-30 13:52:41 +09:00
Makefile_Evil.am
Makefile_Wayland_Protocols.am
Makefile_efl_wl.am