aboutsummaryrefslogtreecommitdiffstatsci
path: root/src/vkrenderer.hpp
diff options
context:
space:
mode:
authorJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-10-26 18:59:06 +0200
committerJean-Philippe Bruyère <jp_bruyere@hotmail.com>2018-10-26 18:59:06 +0200
commitcf965d29b9092ea6b56847028dc885b67b1603e0 (patch)
treedc2054210d903c5d629f0487e74a58e1b96958c3 /src/vkrenderer.hpp
parenta5082d2962d621dc7145614d655016c59ddacc5b (diff)
some renames for c++HEADmasterdevel
Diffstat (limited to 'src/vkrenderer.hpp')
-rw-r--r--src/vkrenderer.hpp69
1 files changed, 69 insertions, 0 deletions
diff --git a/src/vkrenderer.hpp b/src/vkrenderer.hpp
new file mode 100644
index 0000000..ea85115
--- /dev/null
+++ b/src/vkrenderer.hpp
@@ -0,0 +1,69 @@
+#pragma once
+
+#include "vke.hpp"
+
+#define DRAW_FENCE_TIMEOUT 99900000
+
+namespace vke {
+
+ class vkRenderer
+ {
+ protected:
+
+ bool prepared = false;
+
+ vke::device_t* device;
+ vke::render_target_t* renderTarget;
+ vke::engine_t::UniformBuffers sharedUBOs;
+
+ vke::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;
+ vke::buffer_t* 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 (device_t *_device, vke::render_target_t* _renderTarget,
+ engine_t::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();
+ };
+}
+