2022-01-13 22:06:09 +00:00
|
|
|
#ifndef VULKANCPPSETUP_VULKANRENDERER_H
|
|
|
|
#define VULKANCPPSETUP_VULKANRENDERER_H
|
|
|
|
|
2022-01-20 22:37:04 +00:00
|
|
|
#include "WorldView.h"
|
2022-01-18 20:28:25 +00:00
|
|
|
#include "ShaderLoader.h"
|
2022-01-20 22:37:04 +00:00
|
|
|
#include "UniformBuffers.h"
|
2022-01-13 22:06:09 +00:00
|
|
|
#include <QVulkanWindowRenderer>
|
|
|
|
#include <qvulkanfunctions.h>
|
|
|
|
|
|
|
|
class VulkanRenderer : public QVulkanWindowRenderer {
|
|
|
|
public:
|
2022-01-20 22:37:04 +00:00
|
|
|
explicit VulkanRenderer(QVulkanWindow *window, WorldView *worldView);
|
2022-01-13 22:06:09 +00:00
|
|
|
|
|
|
|
void initResources() override;
|
|
|
|
void releaseResources() override;
|
2022-01-20 22:37:04 +00:00
|
|
|
void initSwapChainResources() override;
|
|
|
|
void releaseSwapChainResources() override;
|
2022-01-13 22:06:09 +00:00
|
|
|
|
|
|
|
void startNextFrame() override;
|
|
|
|
|
|
|
|
private:
|
|
|
|
QVulkanWindow *m_window;
|
2022-01-20 22:37:04 +00:00
|
|
|
WorldView *m_worldView;
|
2022-01-18 22:33:20 +00:00
|
|
|
QVulkanDeviceFunctions *m_devFuncs{};
|
2022-01-18 20:28:25 +00:00
|
|
|
unsigned long m_frameNumber{0UL};
|
2022-01-18 22:33:20 +00:00
|
|
|
ShaderLoader m_shaderLoader{};
|
2022-01-20 22:37:04 +00:00
|
|
|
// UniformBuffers m_uniformBuffers{};
|
|
|
|
// VkDescriptorSetLayout m_descriptorSetLayout{};
|
2022-01-18 22:33:20 +00:00
|
|
|
VkPipelineLayout m_pipelineLayout{};
|
|
|
|
VkPipeline m_graphicsPipeline{};
|
2022-01-20 22:37:04 +00:00
|
|
|
|
|
|
|
void createPipeline();
|
2022-01-13 22:06:09 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
#endif // VULKANCPPSETUP_VULKANRENDERER_H
|