X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Fasync-image-loader-impl.h;h=2227711665a0c89b738161f80d18754bc2ded00a;hp=92a16522d6e41232dddcac94840bc1c35909d1fa;hb=9ddd5fea6278d06b8874988498c7c4c6508750ba;hpb=928f30d2caf2775c5bcbfd84ceb4bf37ca29f020 diff --git a/dali-toolkit/internal/image-loader/async-image-loader-impl.h b/dali-toolkit/internal/image-loader/async-image-loader-impl.h index 92a1652..2227711 100644 --- a/dali-toolkit/internal/image-loader/async-image-loader-impl.h +++ b/dali-toolkit/internal/image-loader/async-image-loader-impl.h @@ -2,7 +2,7 @@ #define DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H /* - * Copyright (c) 2016 Samsung Electronics Co., Ltd. + * Copyright (c) 2021 Samsung Electronics Co., Ltd. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,22 +22,19 @@ #include // INTERNAL INCLUDES -#include +#include #include +#include namespace Dali { - namespace Toolkit { - namespace Internal { - class AsyncImageLoader : public BaseObject { public: - /** * Constructor */ @@ -49,13 +46,35 @@ public: static IntrusivePtr New(); /** - * @copydoc Toolkit::AsyncImageLoader::Load( const std::string&, ImageDimensions, FittingMode::Type, SamplingMode::Type, bool ) + * @copydoc Toolkit::AsyncImageLoader::LoadAnimatedImage( Dali::AnimatedImageLoading animatedImageLoading, uint32_t frameIndex ) */ - uint32_t Load( const std::string& url, - ImageDimensions dimensions, - FittingMode::Type fittingMode, - SamplingMode::Type samplingMode, - bool orientationCorrection ); + uint32_t LoadAnimatedImage(Dali::AnimatedImageLoading animatedImageLoading, + uint32_t frameIndex); + + /** + * @copydoc Toolkit::AsyncImageLoader::Load( const std::string&, ImageDimensions, FittingMode::Type, SamplingMode::Type, bool , DevelAsyncImageLoader::PreMultiplyOnLoad ) + */ + uint32_t Load(const VisualUrl& url, + ImageDimensions dimensions, + FittingMode::Type fittingMode, + SamplingMode::Type samplingMode, + bool orientationCorrection, + DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad); + + /** + * @brief Starts an mask applying task. + * @param[in] pixelBuffer of the to be masked image + * @param[in] maskPixelBuffer of the mask image + * @param[in] contentScale The factor to scale the content + * @param[in] cropToMask Whether to crop the content to the mask size + * @param[in] preMultiplyOnLoad ON if the image color should be multiplied by it's alpha. Set to OFF if there is no alpha. + * @return The loading task id + */ + uint32_t ApplyMask(Devel::PixelBuffer pixelBuffer, + Devel::PixelBuffer maskPixelBuffer, + float contentScale, + bool cropToMask, + DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad); /** * @copydoc Toolkit::AsyncImageLoader::ImageLoadedSignal @@ -63,9 +82,14 @@ public: Toolkit::AsyncImageLoader::ImageLoadedSignalType& ImageLoadedSignal(); /** + * @copydoc Toolkit::AsyncImageLoader::PixelBufferLoadedSignal + */ + Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType& PixelBufferLoadedSignal(); + + /** * @copydoc Toolkit::AsyncImageLoader::Cancel */ - bool Cancel( uint32_t loadingTaskId ); + bool Cancel(uint32_t loadingTaskId); /** * @copydoc Toolkit::AsyncImageLoader::CancelAll @@ -78,41 +102,38 @@ public: void ProcessLoadedImage(); protected: - /** * Destructor */ - ~AsyncImageLoader(); + ~AsyncImageLoader() override; private: - - Toolkit::AsyncImageLoader::ImageLoadedSignalType mLoadedSignal; + Toolkit::AsyncImageLoader::ImageLoadedSignalType mLoadedSignal; + Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType mPixelBufferLoadedSignal; ImageLoadThread mLoadThread; uint32_t mLoadTaskId; bool mIsLoadThreadStarted; - - }; } // namespace Internal -inline const Internal::AsyncImageLoader& GetImplementation( const Toolkit::AsyncImageLoader& handle ) +inline const Internal::AsyncImageLoader& GetImplementation(const Toolkit::AsyncImageLoader& handle) { - DALI_ASSERT_ALWAYS( handle && "AsyncImageLoader handle is empty" ); + DALI_ASSERT_ALWAYS(handle && "AsyncImageLoader handle is empty"); const BaseObject& object = handle.GetBaseObject(); - return static_cast( object ); + return static_cast(object); } -inline Internal::AsyncImageLoader& GetImplementation( Toolkit::AsyncImageLoader& handle ) +inline Internal::AsyncImageLoader& GetImplementation(Toolkit::AsyncImageLoader& handle) { - DALI_ASSERT_ALWAYS( handle && "AsyncImageLoader handle is empty" ); + DALI_ASSERT_ALWAYS(handle && "AsyncImageLoader handle is empty"); BaseObject& object = handle.GetBaseObject(); - return static_cast( object ); + return static_cast(object); } } // namespace Toolkit