Fix Surface for EGL (Fix #71)

This commit is contained in:
Florian Märkl 2020-05-08 15:03:58 +02:00
parent dbd91246af
commit 090c37fb0a
No known key found for this signature in database
GPG key ID: 125BC8A5A6A1E857
2 changed files with 8 additions and 1 deletions

View file

@ -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;

View file

@ -19,6 +19,7 @@
#include <videodecoder.h>
#include <avopenglframeuploader.h>
#include <QOffscreenSurface>
#include <QOpenGLContext>
#include <QOpenGLExtraFunctions>
#include <QOpenGLDebugLogger>
@ -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);