b148c1bd5d64ab076a505743a99b40318f565951
[platform/core/uifw/dali-adaptor.git] / dali / devel-api / adaptor-framework / native-image-source-queue.cpp
1 /*
2  * Copyright (c) 2021 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(width, height, colorFormat, empty);
31   if(image->mImpl)
32   {
33     return image;
34   }
35   return nullptr;
36 }
37
38 NativeImageSourceQueuePtr NativeImageSourceQueue::New(Any nativeImageSourceQueue)
39 {
40   //ColorFormat will be ignored.
41   NativeImageSourceQueuePtr image = new NativeImageSourceQueue(0, 0, ColorFormat::RGBA8888, nativeImageSourceQueue);
42   if(image->mImpl)
43   {
44     return image;
45   }
46   return nullptr;
47 }
48
49 Any NativeImageSourceQueue::GetNativeImageSourceQueue()
50 {
51   return mImpl->GetNativeImageSourceQueue();
52 }
53
54 void NativeImageSourceQueue::SetSize(uint32_t width, uint32_t height)
55 {
56   return mImpl->SetSize(width, height);
57 }
58
59 void NativeImageSourceQueue::IgnoreSourceImage()
60 {
61   mImpl->IgnoreSourceImage();
62 }
63
64 bool NativeImageSourceQueue::CanDequeueBuffer()
65 {
66   return mImpl->CanDequeueBuffer();
67 }
68
69 uint8_t* NativeImageSourceQueue::DequeueBuffer(uint32_t& width, uint32_t& height, uint32_t& stride)
70 {
71   return mImpl->DequeueBuffer(width, height, stride);
72 }
73
74 bool NativeImageSourceQueue::EnqueueBuffer(uint8_t* buffer)
75 {
76   return mImpl->EnqueueBuffer(buffer);
77 }
78
79 bool NativeImageSourceQueue::CreateResource()
80 {
81   return mImpl->CreateResource();
82 }
83
84 void NativeImageSourceQueue::DestroyResource()
85 {
86   mImpl->DestroyResource();
87 }
88
89 uint32_t NativeImageSourceQueue::TargetTexture()
90 {
91   return mImpl->TargetTexture();
92 }
93
94 void NativeImageSourceQueue::PrepareTexture()
95 {
96   mImpl->PrepareTexture();
97 }
98
99 uint32_t NativeImageSourceQueue::GetWidth() const
100 {
101   return mImpl->GetWidth();
102 }
103
104 uint32_t NativeImageSourceQueue::GetHeight() const
105 {
106   return mImpl->GetHeight();
107 }
108
109 bool NativeImageSourceQueue::RequiresBlending() const
110 {
111   return mImpl->RequiresBlending();
112 }
113
114 int NativeImageSourceQueue::GetTextureTarget() const
115 {
116   return mImpl->GetTextureTarget();
117 }
118
119 const char* NativeImageSourceQueue::GetCustomFragmentPrefix() const
120 {
121   return mImpl->GetCustomFragmentPrefix();
122 }
123
124 bool NativeImageSourceQueue::ApplyNativeFragmentShader(std::string& shader)
125 {
126   return mImpl->ApplyNativeFragmentShader(shader);
127 }
128
129 const char* NativeImageSourceQueue::GetCustomSamplerTypename() const
130 {
131   return mImpl->GetCustomSamplerTypename();
132 }
133
134 Any NativeImageSourceQueue::GetNativeImageHandle() const
135 {
136   return mImpl->GetNativeImageHandle();
137 }
138
139 bool NativeImageSourceQueue::SourceChanged() const
140 {
141   return mImpl->SourceChanged();
142 }
143
144 NativeImageInterface::Extension* NativeImageSourceQueue::GetExtension()
145 {
146   return mImpl->GetNativeImageInterfaceExtension();
147 }
148
149 NativeImageSourceQueue::NativeImageSourceQueue(uint32_t width, uint32_t height, ColorFormat colorFormat, Any nativeImageSourceQueue)
150 {
151   auto factory = Dali::Internal::Adaptor::GetNativeImageSourceFactory();
152   mImpl        = factory->CreateNativeImageSourceQueue(width, height, colorFormat, nativeImageSourceQueue);
153 }
154
155 NativeImageSourceQueue::~NativeImageSourceQueue()
156 {
157 }
158
159 } // namespace Dali