-#ifndef DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H__
-#define DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H__
+#ifndef DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H
+#define DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H
/*
- * Copyright (c) 2016 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2020 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.
#include <dali/public-api/object/base-object.h>
// INTERNAL INCLUDES
-#include <dali-toolkit/devel-api/image-loader/async-image-loader.h>
+#include <dali-toolkit/public-api/image-loader/async-image-loader.h>
+#include <dali-toolkit/devel-api/image-loader/async-image-loader-devel.h>
#include <dali-toolkit/internal/image-loader/image-load-thread.h>
namespace Dali
static IntrusivePtr<AsyncImageLoader> 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 size,
+ 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 );
+ 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
Toolkit::AsyncImageLoader::ImageLoadedSignalType& ImageLoadedSignal();
/**
+ * @copydoc Toolkit::AsyncImageLoader::PixelBufferLoadedSignal
+ */
+ Toolkit::DevelAsyncImageLoader::PixelBufferLoadedSignalType& PixelBufferLoadedSignal();
+
+ /**
* @copydoc Toolkit::AsyncImageLoader::Cancel
*/
bool Cancel( uint32_t loadingTaskId );
/**
* Destructor
*/
- ~AsyncImageLoader();
+ ~AsyncImageLoader() override;
private:
-
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& loader )
+inline const Internal::AsyncImageLoader& GetImplementation( const Toolkit::AsyncImageLoader& handle )
{
- DALI_ASSERT_ALWAYS( loader && "AsyncImageLoader handle is empty" );
+ DALI_ASSERT_ALWAYS( handle && "AsyncImageLoader handle is empty" );
- const BaseObject& object = loader.GetBaseObject();
+ const BaseObject& object = handle.GetBaseObject();
return static_cast<const Internal::AsyncImageLoader&>( object );
}
-inline Internal::AsyncImageLoader& GetImplementation( Toolkit::AsyncImageLoader& loader )
+inline Internal::AsyncImageLoader& GetImplementation( Toolkit::AsyncImageLoader& handle )
{
- DALI_ASSERT_ALWAYS( loader && "AsyncImageLoader handle is empty" );
+ DALI_ASSERT_ALWAYS( handle && "AsyncImageLoader handle is empty" );
- BaseObject& object = loader.GetBaseObject();
+ BaseObject& object = handle.GetBaseObject();
return static_cast<Internal::AsyncImageLoader&>( object );
}
} // namespace Dali
-#endif /* DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H__ */
+#endif // DALI_TOOLKIT_ASYNC_IMAGE_LOADER_IMPL_H