#pragma once #include "gs_frame.h" #include struct GLContext { QSurface *surface = nullptr; QOpenGLContext *handle = nullptr; bool owner = false; }; class gl_gs_frame : public gs_frame { private: QSurfaceFormat m_format; GLContext *m_primary_context = nullptr; public: explicit gl_gs_frame(QScreen* screen, const QRect& geometry, const QIcon& appIcon, std::shared_ptr gui_settings); draw_context_t make_context() override; void set_current(draw_context_t ctx) override; void delete_context(draw_context_t ctx) override; void flip(draw_context_t context, bool skip_frame = false) override; };