X-Git-Url: https://git.sesse.net/?p=nageru;a=blobdiff_plain;f=context.cpp;h=eb62183a3b3a8c9c7c9065f6d212a21b92e8257e;hp=4ae85bdd95a7dc09f9abd4676d35fa078e894402;hb=refs%2Fheads%2Fffmpeg-audio-only;hpb=d147175aaa3e5abfe271940c4518e9ef8dbbc932 diff --git a/context.cpp b/context.cpp index 4ae85bd..eb62183 100644 --- a/context.cpp +++ b/context.cpp @@ -1,31 +1,40 @@ #include +#include + #include #include #include +#include #include -class QSurface; - QGLWidget *global_share_widget = nullptr; +bool using_egl = false; + +using namespace std; QSurface *create_surface(const QSurfaceFormat &format) { QOffscreenSurface *surface = new QOffscreenSurface; surface->setFormat(format); -// QWindow *surface = new QWindow; surface->create(); if (!surface->isValid()) { - printf("ERROR: surface not valid!\n"); -// abort(); + fprintf(stderr, "ERROR: surface not valid!\n"); + exit(1); } return surface; } -QOpenGLContext *create_context() +QSurface *create_surface_with_same_format(const QSurface *surface) +{ + return create_surface(surface->format()); +} + +QOpenGLContext *create_context(const QSurface *surface) { QOpenGLContext *context = new QOpenGLContext; context->setShareContext(global_share_widget->context()->contextHandle()); + context->setFormat(surface->format()); context->create(); return context; } @@ -34,3 +43,8 @@ bool make_current(QOpenGLContext *context, QSurface *surface) { return context->makeCurrent(surface); } + +void delete_context(QOpenGLContext *context) +{ + delete context; +}