Add Vulkan renderer

This commit is contained in:
Cacodemon345
2022-04-21 16:32:46 +06:00
parent b840ca618e
commit 314bf5ad06
11 changed files with 20475 additions and 8 deletions

View File

@@ -0,0 +1,34 @@
#ifndef VULKANWINDOWRENDERER_HPP
#define VULKANWINDOWRENDERER_HPP
#include <QVulkanWindow>
#include "qt_renderercommon.hpp"
class VulkanRenderer;
class VulkanWindowRenderer : public QVulkanWindow, public RendererCommon
{
Q_OBJECT
public:
VulkanWindowRenderer(QWidget* parent);
public slots:
void onBlit(int buf_idx, int x, int y, int w, int h);
signals:
void rendererInitialized();
protected:
virtual std::vector<std::tuple<uint8_t *, std::atomic_flag *>> getBuffers() override;
void resizeEvent(QResizeEvent*) override;
bool event(QEvent*) override;
uint32_t getBytesPerRow() override;
private:
QVulkanInstance instance;
QVulkanWindowRenderer* createRenderer() override;
friend class VulkanRenderer;
VulkanRenderer* renderer;
};
#endif // VULKANWINDOWRENDERER_HPP