summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets/qgraphicsvideoitem.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimediawidgets/qgraphicsvideoitem.cpp')
-rw-r--r--src/multimediawidgets/qgraphicsvideoitem.cpp14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/multimediawidgets/qgraphicsvideoitem.cpp b/src/multimediawidgets/qgraphicsvideoitem.cpp
index 002fc2cc2..38f5c0e5b 100644
--- a/src/multimediawidgets/qgraphicsvideoitem.cpp
+++ b/src/multimediawidgets/qgraphicsvideoitem.cpp
@@ -376,11 +376,15 @@ void QGraphicsVideoItem::paint(
if (widget)
connect(widget, SIGNAL(destroyed()), d->surface, SLOT(viewportDestroyed()));
- d->surface->setGLContext(const_cast<QGLContext *>(QGLContext::currentContext()));
- if (d->surface->supportedShaderTypes() & QPainterVideoSurface::GlslShader) {
- d->surface->setShaderType(QPainterVideoSurface::GlslShader);
- } else {
- d->surface->setShaderType(QPainterVideoSurface::FragmentProgramShader);
+ if (painter->paintEngine()->type() == QPaintEngine::OpenGL
+ || painter->paintEngine()->type() == QPaintEngine::OpenGL2)
+ {
+ d->surface->setGLContext(const_cast<QGLContext *>(QGLContext::currentContext()));
+ if (d->surface->supportedShaderTypes() & QPainterVideoSurface::GlslShader) {
+ d->surface->setShaderType(QPainterVideoSurface::GlslShader);
+ } else {
+ d->surface->setShaderType(QPainterVideoSurface::FragmentProgramShader);
+ }
}
#endif
if (d->rendererControl && d->rendererControl->surface() != d->surface)