#include #include #include #include #include #include #include #include #include class WarningEmitter : public QObject { Q_OBJECT public: signals: void onWarning(QString message); }; class EngineThread : public QThread { Q_OBJECT public slots: void glDebugMessageLogged(QOpenGLDebugMessage message); public: QOpenGLContext * context; QOpenGLExtraFunctions* f; QOpenGLDebugLogger* logger; QSurfaceFormat* format; QOffscreenSurface* surface; EngineThread(QSurfaceFormat* format, QOffscreenSurface* surface); void run() override; }; class MainWindow : public QMainWindow { Q_OBJECT public slots: void onWarningSlot(QString message); public: MainWindow(); };