DISTRHO Plugin Framework
dgl
Vulkan.hpp
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
#ifndef DGL_VULKAN_HPP_INCLUDED
18
#define DGL_VULKAN_HPP_INCLUDED
19
20
#include "ImageBase.hpp"
21
22
#include <vulkan/vulkan_core.h>
23
24
START_NAMESPACE_DGL
25
26
// --------------------------------------------------------------------------------------------------------------------
27
28
/**
29
Vulkan Graphics context.
30
*/
31
struct
VulkanGraphicsContext
:
GraphicsContext
32
{
33
};
34
35
// --------------------------------------------------------------------------------------------------------------------
36
37
/**
38
Vulkan Image class.
39
40
TODO ...
41
*/
42
class
VulkanImage
:
public
ImageBase
43
{
44
public
:
45
/**
46
Constructor for a null Image.
47
*/
48
VulkanImage
();
49
50
/**
51
Constructor using raw image data.
52
@note @a rawData must remain valid for the lifetime of this Image.
53
*/
54
VulkanImage
(
const
char
* rawData, uint width, uint height, ImageFormat format);
55
56
/**
57
Constructor using raw image data.
58
@note @a rawData must remain valid for the lifetime of this Image.
59
*/
60
VulkanImage
(
const
char
* rawData,
const
Size<uint>
& size, ImageFormat format);
61
62
/**
63
Constructor using another image data.
64
*/
65
VulkanImage
(
const
VulkanImage
& image);
66
67
/**
68
Destructor.
69
*/
70
~VulkanImage
()
override
;
71
72
/**
73
Load image data from memory.
74
@note @a rawData must remain valid for the lifetime of this Image.
75
*/
76
void
loadFromMemory
(
const
char
* rawData,
77
const
Size<uint>
& size,
78
ImageFormat format = kImageFormatBGRA) noexcept
override
;
79
80
/**
81
Draw this image at position @a pos using the graphics context @a context.
82
*/
83
void
drawAt
(
const
GraphicsContext
& context,
const
Point<int>
& pos)
override
;
84
85
/**
86
TODO document this.
87
*/
88
VulkanImage
&
operator=
(
const
VulkanImage
& image) noexcept;
89
90
// FIXME this should not be needed
91
inline
void
loadFromMemory
(
const
char
* rdata, uint w, uint h, ImageFormat fmt = kImageFormatBGRA)
92
{
loadFromMemory
(rdata,
Size<uint>
(w, h), fmt); };
93
inline
void
draw(
const
GraphicsContext
& context)
94
{
drawAt
(context,
Point<int>
(0, 0)); };
95
inline
void
drawAt
(
const
GraphicsContext
& context,
int
x,
int
y)
96
{
drawAt
(context,
Point<int>
(x, y)); };
97
};
98
99
// --------------------------------------------------------------------------------------------------------------------
100
101
END_NAMESPACE_DGL
102
103
#endif
VulkanImage
Definition:
Vulkan.hpp:42
GraphicsContext
Definition:
Base.hpp:154
Size< uint >
VulkanImage::drawAt
void drawAt(const GraphicsContext &context, const Point< int > &pos) override
VulkanImage::~VulkanImage
~VulkanImage() override
VulkanImage::loadFromMemory
void loadFromMemory(const char *rawData, const Size< uint > &size, ImageFormat format=kImageFormatBGRA) noexcept override
ImageBase
Definition:
ImageBase.hpp:44
VulkanImage::operator=
VulkanImage & operator=(const VulkanImage &image) noexcept
VulkanGraphicsContext
Definition:
Vulkan.hpp:31
Point< int >
VulkanImage::VulkanImage
VulkanImage()
Generated on Sat Jul 3 2021 23:07:05 for DISTRHO Plugin Framework by
1.8.17