forked from enlightenment/efl
423d8a2296
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 |
||
---|---|---|
.. | ||
ecore | ||
ecore_audio | ||
ecore_avahi | ||
ecore_buffer | ||
ecore_cocoa | ||
ecore_con | ||
ecore_drm | ||
ecore_drm2 | ||
ecore_evas | ||
ecore_fb | ||
ecore_file | ||
ecore_imf | ||
ecore_imf_evas | ||
ecore_input | ||
ecore_input_evas | ||
ecore_ipc | ||
ecore_sdl | ||
ecore_wayland | ||
ecore_win32 | ||
ecore_wl2 | ||
ecore_x | ||
ector | ||
edje | ||
eet | ||
eeze | ||
efl | ||
efl_mono | ||
efl_wl | ||
efreet | ||
eina | ||
eio | ||
eldbus | ||
elementary | ||
elocation | ||
elput | ||
elua | ||
embryo | ||
emile | ||
emotion | ||
eo | ||
eolian | ||
eolian_cxx | ||
ephysics | ||
escape | ||
ethumb | ||
ethumb_client | ||
evas | ||
evil | ||
.gitignore | ||
CMakeLists.txt |