-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvkc_context.h
58 lines (46 loc) · 1.07 KB
/
vkc_context.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef VKC_CONTEXT_H
#define VKC_CONTEXT_H
#include "stable.h"
#include "vkc_device.h"
#include "mgimage.h"
#include "vkc_swapchain.h"
#include "vkc_pipeline.h"
struct VkcCommandChain
{
VkQueue queue;
VkCommandBuffer buffer;
};
/**
* Class used as the Vulkan context.
*
* Classes named "Vkc[class]" stand for "Vulkan custom class".
*/
class VkcContext
{
// Objects:
public:
VkSurfaceKHR surface;
VkcSwapchain *swapchain;
VkcPipeline *pipeline;
QVector<VkcCommandChain> commandChain;
const VkcDevice *device;
private:
VkInstance instance;
// Functions:
public:
VkcContext();
VkcContext(
uint32_t id,
const VkcDevice *device,
const VkInstance instance
);
~VkcContext();
private:
void createSurface(uint64_t id);
void getCommandChains();
public:
void setupRender();
void unsetupRender();
void resize();
};
#endif // VKC_CONTEXT_H