diff options
author | Liang Qi <liang.qi@qt.io> | 2016-08-13 13:53:51 +0200 |
---|---|---|
committer | Liang Qi <liang.qi@qt.io> | 2016-08-13 13:53:59 +0200 |
commit | 820205e604a5f281238c23464638fdff72b969d1 (patch) | |
tree | c6f6723449d1b11e8d540752e50e3c2e11613f33 /src/plugins/android/src/common/qandroidvideooutput.h | |
parent | 03d55888942feac26054978ce4e7c6edd4611eda (diff) | |
parent | c30eeb5b7486caa31cdb0f9279de2f78fed89c54 (diff) |
Merge remote-tracking branch 'origin/5.6' into 5.7
Change-Id: I3204cdf695f4b47730a88a7c41fc7a6de967b161
Diffstat (limited to 'src/plugins/android/src/common/qandroidvideooutput.h')
-rw-r--r-- | src/plugins/android/src/common/qandroidvideooutput.h | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/src/plugins/android/src/common/qandroidvideooutput.h b/src/plugins/android/src/common/qandroidvideooutput.h index 67bac7052..a12db75a2 100644 --- a/src/plugins/android/src/common/qandroidvideooutput.h +++ b/src/plugins/android/src/common/qandroidvideooutput.h @@ -50,7 +50,6 @@ class AndroidSurfaceTexture; class AndroidSurfaceHolder; class QOpenGLFramebufferObject; class QOpenGLShaderProgram; -class OpenGLResourcesDeleter; class QAbstractVideoSurface; class QAndroidVideoOutput : public QObject @@ -75,6 +74,19 @@ protected: QAndroidVideoOutput(QObject *parent) : QObject(parent) { } }; +class OpenGLResourcesDeleter : public QObject +{ + Q_OBJECT +public: + void deleteTexture(quint32 id) { QMetaObject::invokeMethod(this, "deleteTextureHelper", Qt::AutoConnection, Q_ARG(quint32, id)); } + void deleteFbo(QOpenGLFramebufferObject *fbo) { QMetaObject::invokeMethod(this, "deleteFboHelper", Qt::AutoConnection, Q_ARG(void *, fbo)); } + void deleteShaderProgram(QOpenGLShaderProgram *prog) { QMetaObject::invokeMethod(this, "deleteShaderProgramHelper", Qt::AutoConnection, Q_ARG(void *, prog)); } + +private: + Q_INVOKABLE void deleteTextureHelper(quint32 id); + Q_INVOKABLE void deleteFboHelper(void *fbo); + Q_INVOKABLE void deleteShaderProgramHelper(void *prog); +}; class QAndroidTextureVideoOutput : public QAndroidVideoOutput { @@ -114,7 +126,7 @@ private: quint32 m_externalTex; QOpenGLFramebufferObject *m_fbo; QOpenGLShaderProgram *m_program; - OpenGLResourcesDeleter *m_glDeleter; + QScopedPointer<OpenGLResourcesDeleter, QScopedPointerDeleteLater> m_glDeleter; bool m_surfaceTextureCanAttachToContext; |