4 #include <QOffscreenSurface>
5 #include <QOpenGLContext>
7 #include <QSurfaceFormat>
9 QGLWidget *global_share_widget = nullptr;
11 QSurface *create_surface(const QSurfaceFormat &format)
13 QOffscreenSurface *surface = new QOffscreenSurface;
14 surface->setFormat(format);
15 // QWindow *surface = new QWindow;
17 if (!surface->isValid()) {
18 printf("ERROR: surface not valid!\n");
24 QSurface *create_surface_with_same_format(const QSurface *surface)
26 return create_surface(surface->format());
29 QOpenGLContext *create_context(const QSurface *surface)
31 QOpenGLContext *context = new QOpenGLContext;
32 context->setShareContext(global_share_widget->context()->contextHandle());
33 context->setFormat(surface->format());
38 bool make_current(QOpenGLContext *context, QSurface *surface)
40 return context->makeCurrent(surface);
43 void delete_context(QOpenGLContext *context)