X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Ftexture-manager%2Ftexture-async-loading-helper.h;h=15e1d4e8b446a99b1f89c9e227b7c4c293701521;hb=d4378fd369c6dc647f829baa717b5686ca454b0d;hp=4bfc9611eaca9d68b17e48e771df1c83e9e75dae;hpb=7f4489a70328526f207bf6006bd6baa2702a9cef;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git diff --git a/dali-toolkit/internal/texture-manager/texture-async-loading-helper.h b/dali-toolkit/internal/texture-manager/texture-async-loading-helper.h index 4bfc961..15e1d4e 100644 --- a/dali-toolkit/internal/texture-manager/texture-async-loading-helper.h +++ b/dali-toolkit/internal/texture-manager/texture-async-loading-helper.h @@ -22,7 +22,7 @@ #include // INTERNAL INCLUDES -#include +#include #include namespace Dali @@ -36,22 +36,6 @@ namespace Internal */ class TextureAsyncLoadingHelper : public ConnectionTracker { - /** - * Struct to hold information about a requested Async load. - * This is used to look up a TextureManager::TextureId from the returned AsyncLoad Id. - */ - struct AsyncLoadingInfo - { - AsyncLoadingInfo(TextureManager::TextureId textureId) - : textureId(textureId), - loadId(0) - { - } - - TextureManager::TextureId textureId; ///< The external Texture Id assigned to this load - std::uint32_t loadId; ///< The load Id used by the async loader to reference this load - }; - public: /** * @brief Create an TextureAsyncLoadingHelper. @@ -64,10 +48,19 @@ public: * @param[in] textureId TextureId to reference the texture that will be loaded * @param[in] animatedImageLoading The AnimatedImageLoading to load animated image * @param[in] frameIndex The frame index of a frame to be loaded frame + * @param[in] desiredSize The size the image is likely to appear at. + * This can be set to 0,0 for automatic + * @param[in] fittingMode The FittingMode to use + * @param[in] samplingMode The SamplingMode to use + * @param[in] preMultiplyOnLoad if the image's color should be multiplied by it's alpha. Set to OFF if there is no alpha or if the image need to be applied alpha mask. */ - void LoadAnimatedImage(const TextureManager::TextureId& textureId, - Dali::AnimatedImageLoading animatedImageLoading, - const std::uint32_t& frameIndex); + void LoadAnimatedImage(const TextureManager::TextureId& textureId, + Dali::AnimatedImageLoading animatedImageLoading, + const std::uint32_t& frameIndex, + const Dali::ImageDimensions& desiredSize, + const Dali::FittingMode::Type& fittingMode, + const Dali::SamplingMode::Type& samplingMode, + const DevelAsyncImageLoader::PreMultiplyOnLoad& preMultiplyOnLoad); /** * @brief Load a new texture. @@ -80,6 +73,7 @@ public: * @param[in] orientationCorrection Whether to use image metadata to rotate or flip the image, * e.g., from portrait to landscape * @param[in] preMultiplyOnLoad if the image's color should be multiplied by it's alpha. Set to OFF if there is no alpha or if the image need to be applied alpha mask. + * @param[in] loadYuvPlanes True if the image should be loaded as yuv planes */ void Load(const TextureManager::TextureId& textureId, const VisualUrl& url, @@ -87,7 +81,8 @@ public: const Dali::FittingMode::Type& fittingMode, const Dali::SamplingMode::Type& samplingMode, const bool& orientationCorrection, - const DevelAsyncImageLoader::PreMultiplyOnLoad& preMultiplyOnLoad); + const DevelAsyncImageLoader::PreMultiplyOnLoad& preMultiplyOnLoad, + const bool& loadYuvPlanes); /** * @brief Apply mask @@ -109,31 +104,16 @@ public: TextureAsyncLoadingHelper(const TextureAsyncLoadingHelper&) = delete; TextureAsyncLoadingHelper& operator=(const TextureAsyncLoadingHelper&) = delete; - TextureAsyncLoadingHelper(TextureAsyncLoadingHelper&& rhs); - TextureAsyncLoadingHelper& operator=(TextureAsyncLoadingHelper&& rhs) = delete; - -private: // Private typedefs: - typedef std::deque AsyncLoadingInfoContainerType; ///< The container type used to manage Asynchronous loads in progress - private: /** - * @brief Main constructor that used by all other constructors - */ - TextureAsyncLoadingHelper(Toolkit::AsyncImageLoader loader, - TextureManager& textureManager, - AsyncLoadingInfoContainerType&& loadingInfoContainer); - - /** - * @brief Callback to be called when texture loading is complete, it passes the pixel buffer on to texture manager. - * @param[in] id Loader id - * @param[in] pixelBuffer Image data + * @brief Callback to be called when texture loading is complete, it passes the pixel buffer list on to texture manager. + * @param[in] task LoadingTaskPtr */ - void AsyncLoadComplete(std::uint32_t id, Devel::PixelBuffer pixelBuffer); + void AsyncLoadComplete(LoadingTaskPtr task); private: // Member Variables: - Toolkit::AsyncImageLoader mLoader; - TextureManager& mTextureManager; - AsyncLoadingInfoContainerType mLoadingInfoContainer; + TextureManager& mTextureManager; + uint32_t mLoadTaskId; }; } // namespace Internal