Files
86Box/src/qt/qt_softwarerenderer.hpp

39 lines
901 B
C++
Raw Normal View History

#ifndef SOFTWARERENDERER_HPP
#define SOFTWARERENDERER_HPP
#include <QWidget>
#include <QRasterWindow>
#include <QPaintDevice>
#include <array>
#include <atomic>
#include "qt_renderercommon.hpp"
class SoftwareRenderer :
2022-11-19 08:49:04 -05:00
#ifdef __HAIKU__
public QWidget,
#else
public QRasterWindow,
#endif
public RendererCommon {
Q_OBJECT
public:
explicit SoftwareRenderer(QWidget *parent = nullptr);
2022-11-19 08:49:04 -05:00
void paintEvent(QPaintEvent *event) override;
2022-11-19 08:49:04 -05:00
std::vector<std::tuple<uint8_t *, std::atomic_flag *>> getBuffers() override;
public slots:
void onBlit(int buf_idx, int x, int y, int w, int h);
2021-12-07 13:47:42 +01:00
protected:
std::array<std::unique_ptr<QImage>, 2> images;
2022-11-19 08:49:04 -05:00
int cur_image = -1;
2022-11-19 08:49:04 -05:00
void onPaint(QPaintDevice *device);
2021-12-07 13:47:42 +01:00
void resizeEvent(QResizeEvent *event) override;
bool event(QEvent *event) override;
};
#endif // SOFTWARERENDERER_HPP