[dali_2.3.27] Merge branch 'devel/master'
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / native-image-source-queue.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
18 // CLASS HEADER
19 #include <dali/devel-api/adaptor-framework/native-image-source-queue.h>
20
21 // INTERNAL INCLUDES
22 #include <dali/internal/imaging/common/native-image-source-factory.h>
23 #include <dali/internal/imaging/common/native-image-source-queue-impl.h>
24
25 namespace Dali
26 {
27 NativeImageSourceQueuePtr NativeImageSourceQueue::New(uint32_t width, uint32_t height, ColorFormat colorFormat)
28 {
29   Any                       empty;
30   NativeImageSourceQueuePtr image = new NativeImageSourceQueue(0, width, height, colorFormat, empty);
31   if(image->mImpl)
32   {
33     return image;
34   }
35   return nullptr;
36 }
37
38 NativeImageSourceQueuePtr NativeImageSourceQueue::New(uint32_t queueCount, uint32_t width, uint32_t height, ColorFormat colorFormat)
39 {
40   Any                       empty;
41   NativeImageSourceQueuePtr image = new NativeImageSourceQueue(queueCount, width, height, colorFormat, empty);
42   if(image->mImpl)
43   {
44     return image;
45   }
46   return nullptr;
47 }
48
49 NativeImageSourceQueuePtr NativeImageSourceQueue::New(Any nativeImageSourceQueue)
50 {
51   //ColorFormat will be ignored.
52   NativeImageSourceQueuePtr image = new NativeImageSourceQueue(0, 0, 0, ColorFormat::BGRA8888, nativeImageSourceQueue);
53   if(image->mImpl)
54   {
55     return image;
56   }
57   return nullptr;
58 }
59
60 Any NativeImageSourceQueue::GetNativeImageSourceQueue()
61 {
62   return mImpl->GetNativeImageSourceQueue();
63 }
64
65 void NativeImageSourceQueue::SetSize(uint32_t width, uint32_t height)
66 {
67   return mImpl->SetSize(width, height);
68 }
69
70 void NativeImageSourceQueue::IgnoreSourceImage()
71 {
72   mImpl->IgnoreSourceImage();
73 }
74
75 bool NativeImageSourceQueue::CanDequeueBuffer()
76 {
77   return mImpl->CanDequeueBuffer();
78 }
79
80 uint8_t* NativeImageSourceQueue::DequeueBuffer(uint32_t& width, uint32_t& height, uint32_t& stride)
81 {
82   return mImpl->DequeueBuffer(width, height, stride);
83 }
84
85 bool NativeImageSourceQueue::EnqueueBuffer(uint8_t* buffer)
86 {
87   return mImpl->EnqueueBuffer(buffer);
88 }
89
90 void NativeImageSourceQueue::FreeReleasedBuffers()
91 {
92   mImpl->FreeReleasedBuffers();
93 }
94
95 bool NativeImageSourceQueue::CreateResource()
96 {
97   return mImpl->CreateResource();
98 }
99
100 void NativeImageSourceQueue::DestroyResource()
101 {
102   mImpl->DestroyResource();
103 }
104
105 uint32_t NativeImageSourceQueue::TargetTexture()
106 {
107   return mImpl->TargetTexture();
108 }
109
110 void NativeImageSourceQueue::PrepareTexture()
111 {
112   mImpl->PrepareTexture();
113 }
114
115 uint32_t NativeImageSourceQueue::GetQueueCount() const
116 {
117   return mImpl->GetQueueCount();
118 }
119
120 uint32_t NativeImageSourceQueue::GetWidth() const
121 {
122   return mImpl->GetWidth();
123 }
124
125 uint32_t NativeImageSourceQueue::GetHeight() const
126 {
127   return mImpl->GetHeight();
128 }
129
130 bool NativeImageSourceQueue::RequiresBlending() const
131 {
132   return mImpl->RequiresBlending();
133 }
134
135 int NativeImageSourceQueue::GetTextureTarget() const
136 {
137   return mImpl->GetTextureTarget();
138 }
139
140 bool NativeImageSourceQueue::ApplyNativeFragmentShader(std::string& shader)
141 {
142   return mImpl->ApplyNativeFragmentShader(shader);
143 }
144
145 const char* NativeImageSourceQueue::GetCustomSamplerTypename() const
146 {
147   return mImpl->GetCustomSamplerTypename();
148 }
149
150 Any NativeImageSourceQueue::GetNativeImageHandle() const
151 {
152   return mImpl->GetNativeImageHandle();
153 }
154
155 bool NativeImageSourceQueue::SourceChanged() const
156 {
157   return mImpl->SourceChanged();
158 }
159
160 Rect<uint32_t> NativeImageSourceQueue::GetUpdatedArea()
161 {
162   return mImpl->GetUpdatedArea();
163 }
164
165 NativeImageInterface::Extension* NativeImageSourceQueue::GetExtension()
166 {
167   return mImpl->GetNativeImageInterfaceExtension();
168 }
169
170 NativeImageSourceQueue::NativeImageSourceQueue(uint32_t queueCount, uint32_t width, uint32_t height, ColorFormat colorFormat, Any nativeImageSourceQueue)
171 {
172   auto factory = Dali::Internal::Adaptor::GetNativeImageSourceFactory();
173   mImpl        = factory->CreateNativeImageSourceQueue(queueCount, width, height, colorFormat, nativeImageSourceQueue);
174 }
175
176 NativeImageSourceQueue::~NativeImageSourceQueue()
177 {
178 }
179
180 } // namespace Dali