X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=context.cpp;h=4736b82b8bbebcc0f6327d27acc132809af025f9;hb=bea1be71fd06888ac03fcddb47f6d497f8e07aab;hp=946d40dc84ab1b0c5462311f6e4bdf1af3355f10;hpb=95295bd41bc711bbc450ac6f5ccc68e64fefffa3;p=nageru diff --git a/context.cpp b/context.cpp index 946d40d..4736b82 100644 --- a/context.cpp +++ b/context.cpp @@ -1,10 +1,11 @@ #include -#include -#include +#include #include -#include -#include +#include +#include + +class QSurface; QGLWidget *global_share_widget = nullptr; @@ -21,10 +22,16 @@ QSurface *create_surface(const QSurfaceFormat &format) 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; } @@ -33,3 +40,8 @@ bool make_current(QOpenGLContext *context, QSurface *surface) { return context->makeCurrent(surface); } + +void delete_context(QOpenGLContext *context) +{ + delete context; +}