Vulkan.cpp (6367B)
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 // -----------------------------------------------------------------------