X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=dali-toolkit%2Finternal%2Fimage-loader%2Fasync-image-loader-impl.h;h=aa2efc984a7226ec6272b78a351364e32da3dbe0;hb=7e344e690ac8c73c5f019a0c504990c4ca1100f0;hp=7810a8f03f2a4e477e939d82e6ffea4a7b5098e7;hpb=310f19dcab5e1bd9313eb8c855133ffb7791140e;p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git 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 7810a8f..aa2efc9 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,23 +22,19 @@ #include // INTERNAL INCLUDES -#include #include #include +#include namespace Dali { - namespace Toolkit { - namespace Internal { - class AsyncImageLoader : public BaseObject { public: - /** * Constructor */ @@ -50,14 +46,53 @@ public: static IntrusivePtr New(); /** + * @copydoc Toolkit::AsyncImageLoader::LoadAnimatedImage( Dali::AnimatedImageLoading animatedImageLoading, uint32_t frameIndex, DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad) + */ + uint32_t LoadAnimatedImage(Dali::AnimatedImageLoading animatedImageLoading, + uint32_t frameIndex, + DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad); + + /** * @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 ); + uint32_t Load(const VisualUrl& url, + ImageDimensions dimensions, + FittingMode::Type fittingMode, + SamplingMode::Type samplingMode, + bool orientationCorrection, + DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad); + + /** + * @brief Starts an image loading task by encoded image buffer. + * @param[in] encodedImageBuffer The encoded buffer of the image to load + * @param[in] dimensions The width and height to fit the loaded image to + * @param[in] fittingMode The method used to fit the shape of the image before loading to the shape defined by the size parameter + * @param[in] samplingMode The filtering method used when sampling pixels from the input image while fitting it to desired size + * @param[in] orientationCorrection Reorient the image to respect any orientation metadata in its header + * @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 LoadEncodedImageBuffer(const EncodedImageBuffer& encodedImageBuffer, + 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 @@ -72,7 +107,7 @@ public: /** * @copydoc Toolkit::AsyncImageLoader::Cancel */ - bool Cancel( uint32_t loadingTaskId ); + bool Cancel(uint32_t loadingTaskId); /** * @copydoc Toolkit::AsyncImageLoader::CancelAll @@ -85,14 +120,13 @@ public: void ProcessLoadedImage(); protected: - /** * Destructor */ - ~AsyncImageLoader(); + ~AsyncImageLoader() override; private: - Toolkit::AsyncImageLoader::ImageLoadedSignalType mLoadedSignal; + Toolkit::AsyncImageLoader::ImageLoadedSignalType mLoadedSignal; Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType mPixelBufferLoadedSignal; ImageLoadThread mLoadThread; @@ -102,22 +136,22 @@ private: } // 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