mirror of
https://git.sr.ht/~thestr4ng3r/chiaki
synced 2025-08-13 18:26:51 -07:00
Fix Surface for EGL (Fix #71)
This commit is contained in:
parent
dbd91246af
commit
090c37fb0a
2 changed files with 8 additions and 1 deletions
|
@ -32,6 +32,7 @@ extern "C"
|
||||||
|
|
||||||
class VideoDecoder;
|
class VideoDecoder;
|
||||||
class AVOpenGLFrameUploader;
|
class AVOpenGLFrameUploader;
|
||||||
|
class QOffscreenSurface;
|
||||||
|
|
||||||
struct PlaneConfig
|
struct PlaneConfig
|
||||||
{
|
{
|
||||||
|
@ -76,6 +77,7 @@ class AVOpenGLWidget: public QOpenGLWidget
|
||||||
AVOpenGLFrame frames[2];
|
AVOpenGLFrame frames[2];
|
||||||
int frame_fg;
|
int frame_fg;
|
||||||
QMutex frames_mutex;
|
QMutex frames_mutex;
|
||||||
|
QOffscreenSurface *frame_uploader_surface;
|
||||||
QOpenGLContext *frame_uploader_context;
|
QOpenGLContext *frame_uploader_context;
|
||||||
AVOpenGLFrameUploader *frame_uploader;
|
AVOpenGLFrameUploader *frame_uploader;
|
||||||
QThread *frame_uploader_thread;
|
QThread *frame_uploader_thread;
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
#include <videodecoder.h>
|
#include <videodecoder.h>
|
||||||
#include <avopenglframeuploader.h>
|
#include <avopenglframeuploader.h>
|
||||||
|
|
||||||
|
#include <QOffscreenSurface>
|
||||||
#include <QOpenGLContext>
|
#include <QOpenGLContext>
|
||||||
#include <QOpenGLExtraFunctions>
|
#include <QOpenGLExtraFunctions>
|
||||||
#include <QOpenGLDebugLogger>
|
#include <QOpenGLDebugLogger>
|
||||||
|
@ -177,6 +178,7 @@ AVOpenGLWidget::~AVOpenGLWidget()
|
||||||
}
|
}
|
||||||
delete frame_uploader;
|
delete frame_uploader;
|
||||||
delete frame_uploader_context;
|
delete frame_uploader_context;
|
||||||
|
delete frame_uploader_surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AVOpenGLWidget::mouseMoveEvent(QMouseEvent *event)
|
void AVOpenGLWidget::mouseMoveEvent(QMouseEvent *event)
|
||||||
|
@ -363,7 +365,10 @@ void AVOpenGLWidget::initializeGL()
|
||||||
return;
|
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_fg = 0;
|
||||||
|
|
||||||
frame_uploader_thread = new QThread(this);
|
frame_uploader_thread = new QThread(this);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue