Check whether current context can be obtained when deleting textures.

Add a warning in that case.

Task-number: QTBUG-41966
Change-Id: I491ee9e13c9504040ab789951656983a736d9203
Reviewed-by: Yoann Lopes <yoann.lopes@theqtcompany.com>
This commit is contained in:
Friedemann Kleint
2014-11-06 16:24:57 +01:00
parent e92bcbfa4d
commit 2020b032e8
2 changed files with 12 additions and 4 deletions

View File

@@ -184,8 +184,12 @@ D3DPresentEngine::~D3DPresentEngine()
m_egl->destroySurface(m_eglDisplay, m_eglSurface);
m_eglSurface = NULL;
}
if (m_glTexture)
QOpenGLContext::currentContext()->functions()->glDeleteTextures(1, &m_glTexture);
if (m_glTexture) {
if (QOpenGLContext *current = QOpenGLContext::currentContext())
current->functions()->glDeleteTextures(1, &m_glTexture);
else
qWarning() << "D3DPresentEngine: Cannot obtain GL context, unable to delete textures";
}
delete m_glContext;
delete m_offscreenSurface;

View File

@@ -227,8 +227,12 @@ QSGVideoMaterial_YUV420::QSGVideoMaterial_YUV420(const QVideoSurfaceFormat &form
QSGVideoMaterial_YUV420::~QSGVideoMaterial_YUV420()
{
if (!m_textureSize.isEmpty())
QOpenGLContext::currentContext()->functions()->glDeleteTextures(Num_Texture_IDs, m_textureIds);
if (!m_textureSize.isEmpty()) {
if (QOpenGLContext *current = QOpenGLContext::currentContext())
current->functions()->glDeleteTextures(Num_Texture_IDs, m_textureIds);
else
qWarning() << "QSGVideoMaterial_YUV420: Cannot obtain GL context, unable to delete textures";
}
}
void QSGVideoMaterial_YUV420::bind()