Support Asynchronous Loading of Animated Image
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / devel-api / image-loader / async-image-loader-devel.cpp
1 /*
2  * Copyright (c) 2020 Samsung Electronics Co., Ltd.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 #include <dali-toolkit/devel-api/image-loader/async-image-loader-devel.h>
18 #include <dali-toolkit/internal/image-loader/async-image-loader-impl.h>
19
20 namespace Dali
21 {
22 namespace Toolkit
23 {
24 namespace DevelAsyncImageLoader
25 {
26
27 uint32_t LoadAnimatedImage( AsyncImageLoader asyncImageLoader,
28                             Dali::AnimatedImageLoading animatedImageLoading,
29                             uint32_t frameIndex )
30 {
31   return GetImplementation( asyncImageLoader ).LoadAnimatedImage( animatedImageLoading, frameIndex );
32 }
33
34 uint32_t Load( AsyncImageLoader asyncImageLoader,
35                const std::string& url,
36                ImageDimensions dimensions,
37                FittingMode::Type fittingMode,
38                SamplingMode::Type samplingMode,
39                bool orientationCorrection,
40                DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad )
41 {
42   return GetImplementation( asyncImageLoader ).Load( Toolkit::Internal::VisualUrl(url), dimensions, fittingMode, samplingMode, orientationCorrection, preMultiplyOnLoad);
43 }
44
45 uint32_t ApplyMask( AsyncImageLoader asyncImageLoader,
46                     Devel::PixelBuffer pixelBuffer,
47                     Devel::PixelBuffer maskPixelBuffer,
48                     float contentScale,
49                     bool cropToMask,
50                     DevelAsyncImageLoader::PreMultiplyOnLoad preMultiplyOnLoad )
51 {
52   return GetImplementation( asyncImageLoader ).ApplyMask( pixelBuffer, maskPixelBuffer, contentScale, cropToMask, preMultiplyOnLoad );
53 }
54
55 PixelBufferLoadedSignalType& PixelBufferLoadedSignal( AsyncImageLoader asyncImageLoader )
56 {
57   return GetImplementation( asyncImageLoader ).PixelBufferLoadedSignal();
58 }
59
60 } // Devel
61 } // Toolkit
62 } // Dali