1 #ifndef DALI_INTERNAL_NATIVE_IMAGE_SOURCE_QUEUE_IMPL_H
2 #define DALI_INTERNAL_NATIVE_IMAGE_SOURCE_QUEUE_IMPL_H
5 * Copyright (c) 2023 Samsung Electronics Co., Ltd.
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
22 #include <dali/devel-api/adaptor-framework/native-image-source-queue.h>
31 * Dali internal NativeImageSourceQueue.
33 class NativeImageSourceQueue
37 * @copydoc Dali::NativeImageSourceQueue::New()
39 static NativeImageSourceQueue* New(uint32_t queueCount, uint32_t width, uint32_t height, Dali::NativeImageSourceQueue::ColorFormat colorFormat, Any nativeImageSourceQueue);
42 * @copydoc Dali::NativeImageSourceQueue::GetNativeImageSourceQueue()
44 virtual Any GetNativeImageSourceQueue() const = 0;
47 * @copydoc Dali::NativeImageSourceQueue::GetQueueCount
49 virtual uint32_t GetQueueCount() const = 0;
52 * @copydoc Dali::NativeImageSourceQueue::SetSize
54 virtual void SetSize(uint32_t width, uint32_t height) = 0;
57 * @copydoc Dali::NativeImageSourceQueue::IgnoreSourceImage
59 virtual void IgnoreSourceImage() = 0;
62 * @copydoc Dali::NativeImageSourceQueue::CanDequeueBuffer
64 virtual bool CanDequeueBuffer() = 0;
67 * @copydoc Dali::NativeImageSourceQueue::DequeueBuffer
69 virtual uint8_t* DequeueBuffer(uint32_t& width, uint32_t& height, uint32_t& stride) = 0;
72 * @copydoc Dali::NativeImageSourceQueue::EnqueueBuffer
74 virtual bool EnqueueBuffer(uint8_t* buffer) = 0;
77 * @copydoc Dali::NativeImageSourceQueue::FreeReleasedBuffers
79 virtual void FreeReleasedBuffers() = 0;
84 virtual ~NativeImageSourceQueue() = default;
87 * @copydoc Dali::NativeImageInterface::CreateResource()
89 virtual bool CreateResource() = 0;
92 * @copydoc Dali::NativeImageInterface::DestroyResource()
94 virtual void DestroyResource() = 0;
97 * @copydoc Dali::NativeImageInterface::TargetTexture()
99 virtual uint32_t TargetTexture() = 0;
102 * @copydoc Dali::NativeImageInterface::PrepareTexture()
104 virtual void PrepareTexture() = 0;
107 * @copydoc Dali::NativeImageInterface::GetWidth()
109 virtual uint32_t GetWidth() const = 0;
112 * @copydoc Dali::NativeImageInterface::GetHeight()
114 virtual uint32_t GetHeight() const = 0;
117 * @copydoc Dali::NativeImageInterface::RequiresBlending()
119 virtual bool RequiresBlending() const = 0;
122 * @copydoc Dali::NativeImageInterface::GetTextureTarget()
124 virtual int GetTextureTarget() const = 0;
127 * @copydoc Dali::NativeImageInterface::ApplyNativeFragmentShader()
129 virtual bool ApplyNativeFragmentShader(std::string& shader) = 0;
132 * @copydoc Dali::NativeImageInterface::GetCustomSamplerTypename()
134 virtual const char* GetCustomSamplerTypename() const = 0;
137 * @copydoc Dali::NativeImageInterface::GetNativeImageHandle()
139 virtual Any GetNativeImageHandle() const = 0;
142 * @copydoc Dali::NativeImageInterface::SourceChanged()
144 virtual bool SourceChanged() const = 0;
147 * @copydoc Dali::NativeImageInterface::GetUpdatedArea()
149 virtual Rect<uint32_t> GetUpdatedArea() = 0;
152 * @copydoc Dali::NativeImageInterface::GetExtension()
154 virtual NativeImageInterface::Extension* GetNativeImageInterfaceExtension() = 0;
157 } // namespace Adaptor
159 } // namespace Internal
163 #endif // DALI_INTERNAL_NATIVE_IMAGE_SOURCE_QUEUE_IMPL_H