6 #include <QOffscreenSurface>
7 #include <QOpenGLContext>
9 #include <QSurfaceFormat>
11 QGLWidget *global_share_widget = nullptr;
12 bool using_egl = false;
16 QSurface *create_surface(const QSurfaceFormat &format)
18 QOffscreenSurface *surface = new QOffscreenSurface;
19 surface->setFormat(format);
21 if (!surface->isValid()) {
22 fprintf(stderr, "ERROR: surface not valid!\n");
28 QSurface *create_surface_with_same_format(const QSurface *surface)
30 return create_surface(surface->format());
33 QOpenGLContext *create_context(const QSurface *surface)
35 QOpenGLContext *context = new QOpenGLContext;
36 context->setShareContext(global_share_widget->context()->contextHandle());
37 context->setFormat(surface->format());
42 bool make_current(QOpenGLContext *context, QSurface *surface)
44 return context->makeCurrent(surface);
47 void delete_context(QOpenGLContext *context)