#ifndef SOFTWARERENDERER_HPP #define SOFTWARERENDERER_HPP #include #include #include #include #include #include #include #include "qt_renderercommon.hpp" class SoftwareRenderer : public QWidget, public RendererCommon { Q_OBJECT public: explicit SoftwareRenderer(QWidget *parent = nullptr); void paintEvent(QPaintEvent *event) override; #ifdef __HAIKU__ void exposeEvent(QExposeEvent *event) override; #else void exposeEvent(QExposeEvent *event); #endif std::vector> getBuffers() override; public slots: void onBlit(int buf_idx, int x, int y, int w, int h); protected: std::array, 2> images; int cur_image = -1; void onPaint(QPaintDevice *device); void resizeEvent(QResizeEvent *event) override; bool event(QEvent *event) override; void render(); QScopedPointer m_backingStore; }; #endif // SOFTWARERENDERER_HPP