summaryrefslogtreecommitdiffstats
path: root/src/multimediawidgets
diff options
context:
space:
mode:
Diffstat (limited to 'src/multimediawidgets')
-rw-r--r--src/multimediawidgets/multimediawidgets.pro2
-rw-r--r--src/multimediawidgets/qpaintervideosurface.cpp8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/multimediawidgets/multimediawidgets.pro b/src/multimediawidgets/multimediawidgets.pro
index 8e4a78278..57d4194ec 100644
--- a/src/multimediawidgets/multimediawidgets.pro
+++ b/src/multimediawidgets/multimediawidgets.pro
@@ -28,4 +28,6 @@ qtConfig(graphicsview) {
HEADERS += $$PUBLIC_HEADERS $$PRIVATE_HEADERS
+msvc:lessThan(QMAKE_MSC_VER, 1900): QMAKE_CXXFLAGS += -Zm200
+
load(qt_module)
diff --git a/src/multimediawidgets/qpaintervideosurface.cpp b/src/multimediawidgets/qpaintervideosurface.cpp
index 214e5ec7e..0147690e1 100644
--- a/src/multimediawidgets/qpaintervideosurface.cpp
+++ b/src/multimediawidgets/qpaintervideosurface.cpp
@@ -191,6 +191,10 @@ QAbstractVideoSurface::Error QVideoSurfaceGenericPainter::paint(
m_imageSize.height(),
m_frame.bytesPerLine(),
m_imageFormat);
+ // Do not render into ARGB32 images using QPainter.
+ // Using QImage::Format_ARGB32_Premultiplied is significantly faster.
+ if (m_imageFormat == QImage::Format_ARGB32)
+ image = image.convertToFormat(QImage::Format_ARGB32_Premultiplied);
const QTransform oldTransform = painter->transform();
QTransform transform = oldTransform;
@@ -1250,8 +1254,8 @@ QAbstractVideoSurface::Error QVideoSurfaceGlslPainter::paint(
if (scissorTestEnabled)
glEnable(GL_SCISSOR_TEST);
- const int width = QOpenGLContext::currentContext()->surface()->size().width();
- const int height = QOpenGLContext::currentContext()->surface()->size().height();
+ const int width = painter->viewport().width();
+ const int height = painter->viewport().height();
const QTransform transform = painter->deviceTransform();