X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fvisuals%2Ftexture-manager-impl.h;h=e56fec4594bb7a224da8228597869c11cdf5d471;hp=5b6a98e010baca79f04e4fb39d2c371c67d861c1;hb=e37f48bb34e81585a6ed436bd7a2f9dce02c19f5;hpb=30ae04d70a9a93e49163a5cec2efafd32fc678b5 diff --git a/dali-toolkit/internal/visuals/texture-manager-impl.h b/dali-toolkit/internal/visuals/texture-manager-impl.h index 5b6a98e..e56fec4 100644 --- a/dali-toolkit/internal/visuals/texture-manager-impl.h +++ b/dali-toolkit/internal/visuals/texture-manager-impl.h @@ -136,6 +136,18 @@ public: }; using MaskingDataPointer = std::unique_ptr; + + /** + * Class to provide lifecycle event on destruction of texture manager. + */ + struct LifecycleObserver + { + /** + * Called shortly before the texture manager is destroyed. + */ + virtual void TextureManagerDestroyed() = 0; + }; + /** * Constructor. */ @@ -144,8 +156,7 @@ public: /** * Destructor. */ - ~TextureManager() = default; - + ~TextureManager(); // TextureManager Main API: @@ -296,9 +307,11 @@ public: void Remove( const TextureManager::TextureId textureId ); /** - * Get the visualUrl associated with the texture id + * @brief Get the visualUrl associated with the texture id. + * @param[in] textureId The texture Id to get + * @return The visual Url associated with the texture id. */ - const VisualUrl& GetVisualUrl( TextureId textureId ); + VisualUrl GetVisualUrl( TextureId textureId ); /** * @brief Get the current state of a texture @@ -329,6 +342,25 @@ public: */ TextureSet RemoveExternalTexture( const std::string& url ); + /** + * Add an observer to the object. + * @param[in] observer The observer to add. + */ + void AddObserver( TextureManager::LifecycleObserver& observer ); + + /** + * Remove an observer from the object + * @pre The observer has already been added. + * @param[in] observer The observer to remove. + */ + void RemoveObserver( TextureManager::LifecycleObserver& observer ); + + /** + * @brief Set an image to be used when a visual has failed to correctly render + * @param[in] brokenImageUrl The broken image url. + */ + void SetBrokenImageUrl(const std::string& brokenImageUrl); + private: /** @@ -710,6 +742,8 @@ private: // Member Variables: RoundRobinContainerView< AsyncLoadingHelper > mAsyncLocalLoaders; ///< The Asynchronous image loaders used to provide all local async loads RoundRobinContainerView< AsyncLoadingHelper > mAsyncRemoteLoaders; ///< The Asynchronous image loaders used to provide all remote async loads std::vector< ExternalTextureInfo > mExternalTextures; ///< Externally provided textures + Dali::Vector mLifecycleObservers; ///< Lifecycle observers of texture manager + std::string mBrokenImageUrl; ///< Broken image url TextureId mCurrentTextureId; ///< The current value used for the unique Texture Id generation };