Files
86Box/src/qt/qt_vulkanwindowrenderer.hpp

41 lines
1.1 KiB
C++
Raw Normal View History

2022-04-21 16:32:46 +06:00
#ifndef VULKANWINDOWRENDERER_HPP
#define VULKANWINDOWRENDERER_HPP
#include <QVulkanWindow>
#if QT_CONFIG(vulkan)
2022-11-19 08:49:04 -05:00
# include "qt_renderercommon.hpp"
# include "qt_vulkanrenderer.hpp"
2022-04-21 16:32:46 +06:00
class VulkanRenderer2;
2022-04-21 16:32:46 +06:00
2022-11-19 08:49:04 -05:00
class VulkanWindowRenderer : public QVulkanWindow, public RendererCommon {
2022-04-21 16:32:46 +06:00
Q_OBJECT
public:
2022-11-19 08:49:04 -05:00
VulkanWindowRenderer(QWidget *parent);
2022-04-21 16:32:46 +06:00
public slots:
void onBlit(int buf_idx, int x, int y, int w, int h);
signals:
void rendererInitialized();
void errorInitializing();
2022-11-19 08:49:04 -05:00
2022-04-21 16:32:46 +06:00
protected:
virtual std::vector<std::tuple<uint8_t *, std::atomic_flag *>> getBuffers() override;
2022-11-19 08:49:04 -05:00
void resizeEvent(QResizeEvent *) override;
bool event(QEvent *) override;
uint32_t getBytesPerRow() override;
2022-04-21 16:32:46 +06:00
private:
QVulkanInstance instance;
2022-11-19 08:49:04 -05:00
QVulkanWindowRenderer *createRenderer() override;
2022-04-21 16:32:46 +06:00
friend class VulkanRendererEmu;
friend class VulkanRenderer2;
2022-04-21 16:32:46 +06:00
2022-11-19 08:49:04 -05:00
VulkanRenderer2 *renderer;
2022-04-21 16:32:46 +06:00
};
#endif // QT_CONFIG(vulkan)
2022-04-21 16:32:46 +06:00
#endif // VULKANWINDOWRENDERER_HPP