]> git.sesse.net Git - nageru/blobdiff - context.cpp
Fix some missing targets in clean.
[nageru] / context.cpp
index 4ae85bdd95a7dc09f9abd4676d35fa078e894402..36fa2ea7221c8a971541e43d944bbd966f8b7eeb 100644 (file)
@@ -3,10 +3,9 @@
 #include <QGL>
 #include <QOffscreenSurface>
 #include <QOpenGLContext>
+#include <QSurface>
 #include <QSurfaceFormat>
 
-class QSurface;
-
 QGLWidget *global_share_widget = nullptr;
 
 QSurface *create_surface(const QSurfaceFormat &format)
@@ -22,10 +21,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;
 }
@@ -34,3 +39,8 @@ bool make_current(QOpenGLContext *context, QSurface *surface)
 {
        return context->makeCurrent(surface);
 }
+
+void delete_context(QOpenGLContext *context)
+{
+       delete context;
+}