From 090c37fb0a8bc3eb26b269de12610db27b27e741 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=A4rkl?= Date: Fri, 8 May 2020 15:03:58 +0200 Subject: [PATCH] Fix Surface for EGL (Fix #71) --- gui/include/avopenglwidget.h | 2 ++ gui/src/avopenglwidget.cpp | 7 ++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/gui/include/avopenglwidget.h b/gui/include/avopenglwidget.h index 312f16c..d9ddc0d 100644 --- a/gui/include/avopenglwidget.h +++ b/gui/include/avopenglwidget.h @@ -32,6 +32,7 @@ extern "C" class VideoDecoder; class AVOpenGLFrameUploader; +class QOffscreenSurface; struct PlaneConfig { @@ -76,6 +77,7 @@ class AVOpenGLWidget: public QOpenGLWidget AVOpenGLFrame frames[2]; int frame_fg; QMutex frames_mutex; + QOffscreenSurface *frame_uploader_surface; QOpenGLContext *frame_uploader_context; AVOpenGLFrameUploader *frame_uploader; QThread *frame_uploader_thread; diff --git a/gui/src/avopenglwidget.cpp b/gui/src/avopenglwidget.cpp index 11d4b09..21b51f3 100644 --- a/gui/src/avopenglwidget.cpp +++ b/gui/src/avopenglwidget.cpp @@ -19,6 +19,7 @@ #include #include +#include #include #include #include @@ -177,6 +178,7 @@ AVOpenGLWidget::~AVOpenGLWidget() } delete frame_uploader; delete frame_uploader_context; + delete frame_uploader_surface; } void AVOpenGLWidget::mouseMoveEvent(QMouseEvent *event) @@ -363,7 +365,10 @@ void AVOpenGLWidget::initializeGL() return; } - frame_uploader = new AVOpenGLFrameUploader(decoder, this, frame_uploader_context, context()->surface()); + frame_uploader_surface = new QOffscreenSurface(); + frame_uploader_surface->setFormat(context()->format()); + frame_uploader_surface->create(); + frame_uploader = new AVOpenGLFrameUploader(decoder, this, frame_uploader_context, frame_uploader_surface); frame_fg = 0; frame_uploader_thread = new QThread(this);