4 #include <QOffscreenSurface>
5 #include <QOpenGLContext>
6 #include <QSurfaceFormat>
10 QGLWidget *global_share_widget = nullptr;
12 QSurface *create_surface(const QSurfaceFormat &format)
14 QOffscreenSurface *surface = new QOffscreenSurface;
15 surface->setFormat(format);
16 // QWindow *surface = new QWindow;
18 if (!surface->isValid()) {
19 printf("ERROR: surface not valid!\n");
25 QSurface *create_surface_with_same_format(const QSurface *surface)
27 return create_surface(surface->format());
30 QOpenGLContext *create_context(const QSurface *surface)
32 QOpenGLContext *context = new QOpenGLContext;
33 context->setShareContext(global_share_widget->context()->contextHandle());
34 context->setFormat(surface->format());
39 bool make_current(QOpenGLContext *context, QSurface *surface)
41 return context->makeCurrent(surface);
44 void delete_context(QOpenGLContext *context)