blob: d1c7aecd11394f01af99d75dab2d600257bd9171 (
plain)
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
59
60
61
62
63
64
65
66
67
68
69
70
|
#pragma once
#include "VkEngine.h"
#include "VulkanSwapChain.hpp"
#define DRAW_FENCE_TIMEOUT 99900000
namespace vks {
class vkRenderer
{
protected:
bool prepared = false;
vks::VulkanDevice* device;
vks::RenderTarget* renderTarget;
vks::VkEngine::UniformBuffers sharedUBOs;
vks::ShadingContext* shadingCtx;
VkCommandPool commandPool = VK_NULL_HANDLE;
std::vector<VkCommandBuffer>cmdBuffers;
VkDescriptorSet descriptorSet = VK_NULL_HANDLE;
std::vector<VkFence> fences;
VkSubmitInfo submitInfo;
VkPipeline pipeline = VK_NULL_HANDLE;
VkPipelineLayout pipelineLayout = VK_NULL_HANDLE;
std::vector<float> vertices;
vks::Buffer vertexBuff;
uint32_t vBufferSize = 10000 * sizeof(float) * 6;
virtual void prepare();
virtual void prepareRendering();
virtual void configurePipelineLayout();
virtual void loadRessources();
virtual void freeRessources();
virtual void prepareDescriptors();
virtual void preparePipeline();
public:
VkSemaphore drawComplete = VK_NULL_HANDLE;
uint32_t vertexCount = 0;
uint32_t sdffVertexCount = 0;
vkRenderer ();
virtual ~vkRenderer();
virtual void create (ptrVkDev _device, vks::RenderTarget* _renderTarget,
VkEngine::UniformBuffers& _sharedUbos);
virtual void destroy();
virtual void buildCommandBuffer ();
virtual void rebuildCommandBuffer ();
virtual void draw(VkCommandBuffer cmdBuff);
void submit (VkQueue queue, VkSemaphore *waitSemaphore, uint32_t waitSemaphoreCount);
void drawLine(const glm::vec3& from,const glm::vec3& to,const glm::vec3& fromColor, const glm::vec3& toColor);
void drawLine(const glm::vec3& from,const glm::vec3& to,const glm::vec3& color);
virtual void flush();
virtual void clear();
};
}
|