+ /**
+ * @brief Initializes the Dali::Renderer from an image url string
+ *
+ * @param[in] imageUrl The image url string to intialize this ImageRenderer from
+ */
+ void InitializeRenderer( const std::string& imageUrl );
+
+ /**
+ * @brief Initializes the Dali::Renderer from an image handle
+ *
+ * @param[in] image The image handle to intialize this ImageRenderer from
+ */
+ void InitializeRenderer( const Image& image );
+
+ /**
+ * @brief Creates the Dali::Renderer (potentially from the renderer cache), initializing it
+ *
+ * @return Returns the created Dali::Renderer
+ */
+ Renderer CreateRenderer() const;
+
+ /**
+ * @brief Creates the Dali::Renderer for NativeImage with custom sampler type and prefix, initializing it
+ *
+ * @return Returns the created Dali::Renderer
+ */
+ Renderer CreateNativeImageRenderer() const;
+
+ /**
+ * @brief Query whether resources requires to be loaded synchronously.
+ * @return Returns true if synchronoud resource loading is required, false otherwise.
+ */
+ bool IsSynchronousResourceLoading() const;
+
+ /**
+ * @brief Do the synchronous resource loading
+ */
+ void DoSynchronousResourceLoading();
+
+ /**
+ * Load the image.
+ * @param[in] url The URL of the image resource to use.
+ * @param[in] synchronousLoading If true, the resource is loaded synchronously, otherwise asynchronously.
+ */
+ Image LoadImage( const std::string& url, bool synchronousLoading );
+
+ /**
+ * Load the image and create a texture set to hold the texture, with automatic atlasing applied.
+ * @param [out] textureRect The texture area of the resource image in the atlas.
+ * @param[in] url The URL of the image resource to use.
+ * @param[in] synchronousLoading If true, the resource is loaded synchronously, otherwise asynchronously.
+ */
+ TextureSet CreateTextureSet( Vector4& textureRect, const std::string& url, bool synchronousLoading );
+
+ /**
+ * Callback function of image resource loading succeed
+ * @param[in] image The Image content that we attempted to load from mImageUrl
+ */
+ void OnImageLoaded( ResourceImage image );
+
+ /**
+ * Set the value to the uTextureRect uniform
+ * @param[in] textureRect The texture rectangular area.
+ */
+ void SetTextureRectUniform( const Vector4& textureRect );
+
+ /**
+ * Clean the renderer from cache, and remove the image from atlas if it is not used anymore
+ */
+ void CleanCache(const std::string& url);