Ensured ImageView requests inside ResourceReady signal handler are queued. 07/172407/9
authorDavid Steele <david.steele@samsung.com>
Tue, 13 Mar 2018 20:38:09 +0000 (20:38 +0000)
committerDavid Steele <david.steele@samsung.com>
Thu, 31 Jan 2019 15:46:38 +0000 (15:46 +0000)
commitbb3a306721570de9cbed7d63f8a478622af9a374
tree81670d701ac4f4a2d9390a00d53321179561ae5e
parent7c1ca2d9ab3bc63f3dc164c4f5d4ea0d8bf5ba3e
Ensured ImageView requests inside ResourceReady signal handler are queued.

Deferring ImageView load requests until after ResourceReady signal
handler.  has completed ensures that attempting to re-load images
doesn't fail to send a second ResourceReady callback.

Now also tries to re-load images that had previously failed.

TextureManager::LoadTexture() now checks for deferred loading when
setting 'loading' flag in output parameters. Note, loading an existing
texture may also cause loading flag to get set - this is to ensure
that the caller, e.g. ImageVisual handles the deferred Complete
callback as if it were asynchronous.

An application can still cause an infinite loop if it doesn't have a max
retry count when attempting to re-load failed images inside the signal
handler. This is considered to be an application bug, not a DALi bug.
( Control::ResourceReady signal is not a one-shot signal).

Change-Id: I2c505623ce5e02d3ae67e6e06fd80d5108dc8ade
Signed-off-by: David Steele <david.steele@samsung.com>
15 files changed:
automated-tests/src/dali-toolkit-internal/CMakeLists.txt
automated-tests/src/dali-toolkit-internal/utc-Dali-TextureManager.cpp
automated-tests/src/dali-toolkit-styling/CMakeLists.txt
automated-tests/src/dali-toolkit-third-party/CMakeLists.txt
automated-tests/src/dali-toolkit/CMakeLists.txt
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-toolkit-test-suite-utils.cpp [new file with mode: 0644]
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/dali-toolkit-test-suite-utils.h
automated-tests/src/dali-toolkit/dali-toolkit-test-utils/toolkit-event-thread-callback.cpp
automated-tests/src/dali-toolkit/utc-Dali-ImageView.cpp
automated-tests/src/dali-toolkit/utc-Dali-ImageVisual.cpp
automated-tests/src/dali-toolkit/utc-Dali-TextureManager.cpp
dali-toolkit/internal/visuals/image/image-visual.cpp
dali-toolkit/internal/visuals/texture-manager-impl.cpp
dali-toolkit/internal/visuals/texture-manager-impl.h
dali-toolkit/internal/visuals/visual-factory-impl.cpp