#pragma once #include #include "api.hxx" class Viewport : public QWidget { Q_OBJECT public: explicit Viewport(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags()); ~Viewport() override; QPaintEngine* paintEngine() const override; void setView(RedrawArgs new_args); protected: bool event(QEvent* event) override; void paintEvent(QPaintEvent* event) override; void resizeEvent(QResizeEvent* event) override; private: BoxCore core; RedrawArgs args = {}; void recreate(); void updateSize(); };