[dali_2.3.21] Merge branch 'devel/master'
[platform/core/uifw/dali-toolkit.git] / dali-toolkit / public-api / image-loader / image-url.cpp
1 /*
2  * Copyright (c) 2023 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 // CLASS HEADER
18 #include <dali-toolkit/public-api/image-loader/image-url.h>
19
20 // INTERNAL INCLUDES
21 #include <dali-toolkit/internal/image-loader/image-url-impl.h>
22
23 namespace Dali
24 {
25 namespace Toolkit
26 {
27 ImageUrl::ImageUrl()
28 {
29 }
30
31 ImageUrl::~ImageUrl()
32 {
33 }
34
35 ImageUrl ImageUrl::New(Texture& texture, bool preMultiplied)
36 {
37   Toolkit::Internal::ImageUrlPtr internal = Toolkit::Internal::ImageUrl::New(texture, preMultiplied);
38   return ImageUrl(internal.Get());
39 }
40
41 ImageUrl ImageUrl::New(const EncodedImageBuffer& encodedImageBuffer)
42 {
43   Toolkit::Internal::ImageUrlPtr internal = Toolkit::Internal::ImageUrl::New(encodedImageBuffer);
44   return ImageUrl(internal.Get());
45 }
46
47 ImageUrl ImageUrl::DownCast(BaseHandle handle)
48 {
49   return ImageUrl(dynamic_cast<Toolkit::Internal::ImageUrl*>(handle.GetObjectPtr()));
50 }
51
52 ImageUrl::ImageUrl(const ImageUrl& rhs) = default;
53
54 ImageUrl& ImageUrl::operator=(const ImageUrl& url) = default;
55
56 ImageUrl::ImageUrl(ImageUrl&& rhs) noexcept = default;
57
58 ImageUrl& ImageUrl::operator=(ImageUrl&& rhs) noexcept = default;
59
60 const std::string& ImageUrl::GetUrl() const
61 {
62   return GetImpl(*this).GetUrl();
63 }
64
65 ImageUrl::ImageUrl(Toolkit::Internal::ImageUrl* internal)
66 : BaseHandle(internal)
67 {
68 }
69
70 } // namespace Toolkit
71
72 } // namespace Dali