comparison DPF-Prymula-audioplugins/dpf/dgl/src/Vulkan.cpp @ 3:84e66ea83026

DPF-Prymula-audioplugins-0.231015-2
author prymula <prymula76@outlook.com>
date Mon, 16 Oct 2023 21:53:34 +0200
parents
children
comparison
equal deleted inserted replaced
2:cf2cb71d31dd 3:84e66ea83026
1 /*
2 * DISTRHO Plugin Framework (DPF)
3 * Copyright (C) 2012-2021 Filipe Coelho <falktx@falktx.com>
4 *
5 * Permission to use, copy, modify, and/or distribute this software for any purpose with
6 * or without fee is hereby granted, provided that the above copyright notice and this
7 * permission notice appear in all copies.
8 *
9 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD
10 * TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN
11 * NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
12 * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
13 * IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
14 * CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
15 */
16
17 #include "../Vulkan.hpp"
18 #include "../Color.hpp"
19
20 #include "SubWidgetPrivateData.hpp"
21 #include "TopLevelWidgetPrivateData.hpp"
22 #include "WidgetPrivateData.hpp"
23 #include "WindowPrivateData.hpp"
24
25 START_NAMESPACE_DGL
26
27 // -----------------------------------------------------------------------
28
29 static void notImplemented(const char* const name)
30 {
31 d_stderr2("vulkan function not implemented: %s", name);
32 }
33
34 // -----------------------------------------------------------------------
35 // Color
36
37 void Color::setFor(const GraphicsContext&, bool)
38 {
39 notImplemented("Color::setFor");
40 }
41
42 // -----------------------------------------------------------------------
43 // Line
44
45 template<typename T>
46 void Line<T>::draw(const GraphicsContext&, T)
47 {
48 notImplemented("Line::draw");
49 }
50
51 template<typename T>
52 void Line<T>::draw()
53 {
54 notImplemented("Line::draw");
55 }
56
57 template class Line<double>;
58 template class Line<float>;
59 template class Line<int>;
60 template class Line<uint>;
61 template class Line<short>;
62 template class Line<ushort>;
63
64 // -----------------------------------------------------------------------
65 // Circle
66
67 template<typename T>
68 void Circle<T>::draw(const GraphicsContext&)
69 {
70 notImplemented("Circle::draw");
71 }
72
73 template<typename T>
74 void Circle<T>::drawOutline(const GraphicsContext&, T)
75 {
76 notImplemented("Circle::drawOutline");
77 }
78
79 template<typename T>
80 void Circle<T>::draw()
81 {
82 notImplemented("Circle::draw");
83 }
84
85 template<typename T>
86 void Circle<T>::drawOutline()
87 {
88 notImplemented("Circle::drawOutline");
89 }
90
91 template class Circle<double>;
92 template class Circle<float>;
93 template class Circle<int>;
94 template class Circle<uint>;
95 template class Circle<short>;
96 template class Circle<ushort>;
97
98 // -----------------------------------------------------------------------
99 // Triangle
100
101 template<typename T>
102 void Triangle<T>::draw(const GraphicsContext&)
103 {
104 notImplemented("Triangle::draw");
105 }
106
107 template<typename T>
108 void Triangle<T>::drawOutline(const GraphicsContext&, T)
109 {
110 notImplemented("Triangle::drawOutline");
111 }
112
113 template<typename T>
114 void Triangle<T>::draw()
115 {
116 notImplemented("Triangle::draw");
117 }
118
119 template<typename T>
120 void Triangle<T>::drawOutline()
121 {
122 notImplemented("Triangle::drawOutline");
123 }
124
125 template class Triangle<double>;
126 template class Triangle<float>;
127 template class Triangle<int>;
128 template class Triangle<uint>;
129 template class Triangle<short>;
130 template class Triangle<ushort>;
131
132
133 // -----------------------------------------------------------------------
134 // Rectangle
135
136 template<typename T>
137 void Rectangle<T>::draw(const GraphicsContext&)
138 {
139 notImplemented("Rectangle::draw");
140 }
141
142 template<typename T>
143 void Rectangle<T>::drawOutline(const GraphicsContext&, T)
144 {
145 notImplemented("Rectangle::drawOutline");
146 }
147
148 template<typename T>
149 void Rectangle<T>::draw()
150 {
151 notImplemented("Rectangle::draw");
152 }
153
154 template<typename T>
155 void Rectangle<T>::drawOutline()
156 {
157 notImplemented("Rectangle::drawOutline");
158 }
159
160 template class Rectangle<double>;
161 template class Rectangle<float>;
162 template class Rectangle<int>;
163 template class Rectangle<uint>;
164 template class Rectangle<short>;
165 template class Rectangle<ushort>;
166
167 // -----------------------------------------------------------------------
168 // VulkanImage
169
170 VulkanImage::VulkanImage()
171 : ImageBase() {}
172
173 VulkanImage::VulkanImage(const char* const rdata, const uint w, const uint h, const ImageFormat fmt)
174 : ImageBase(rdata, w, h, fmt) {}
175
176 VulkanImage::VulkanImage(const char* const rdata, const Size<uint>& s, const ImageFormat fmt)
177 : ImageBase(rdata, s, fmt) {}
178
179 VulkanImage::VulkanImage(const VulkanImage& image)
180 : ImageBase(image.rawData, image.size, image.format) {}
181
182 VulkanImage::~VulkanImage() {}
183
184 void VulkanImage::loadFromMemory(const char* const rdata, const Size<uint>& s, const ImageFormat fmt) noexcept
185 {
186 ImageBase::loadFromMemory(rdata, s, fmt);
187 }
188
189 void VulkanImage::drawAt(const GraphicsContext&, const Point<int>&)
190 {
191 }
192
193 VulkanImage& VulkanImage::operator=(const VulkanImage& image) noexcept
194 {
195 rawData = image.rawData;
196 size = image.size;
197 format = image.format;
198 return *this;
199 }
200
201 // -----------------------------------------------------------------------
202
203 void SubWidget::PrivateData::display(const uint width, const uint height, const double autoScaleFactor)
204 {
205 // TODO
206
207 selfw->pData->displaySubWidgets(width, height, autoScaleFactor);
208 }
209
210 // -----------------------------------------------------------------------
211
212 void TopLevelWidget::PrivateData::display()
213 {
214 if (! selfw->pData->visible)
215 return;
216
217 const Size<uint> size(window.getSize());
218 const uint width = size.getWidth();
219 const uint height = size.getHeight();
220
221 const double autoScaleFactor = window.pData->autoScaleFactor;
222
223 // TODO
224
225 // main widget drawing
226 self->onDisplay();
227
228 // now draw subwidgets if there are any
229 selfw->pData->displaySubWidgets(width, height, autoScaleFactor);
230 }
231
232 // -----------------------------------------------------------------------
233
234 void Window::PrivateData::renderToPicture(const char*, const GraphicsContext&, uint, uint)
235 {
236 notImplemented("Window::PrivateData::renderToPicture");
237 }
238
239 // -----------------------------------------------------------------------
240
241 const GraphicsContext& Window::PrivateData::getGraphicsContext() const noexcept
242 {
243 return (const GraphicsContext&)graphicsContext;
244 }
245
246 // -----------------------------------------------------------------------
247
248 END_NAMESPACE_DGL
249
250 // -----------------------------------------------------------------------