diff --git a/src/output/video/OpenGLWindowRenderer.cpp b/src/output/video/OpenGLWindowRenderer.cpp index b24d92b0..dc71561f 100644 --- a/src/output/video/OpenGLWindowRenderer.cpp +++ b/src/output/video/OpenGLWindowRenderer.cpp @@ -68,4 +68,9 @@ void OpenGLWindowRenderer::resizeEvent(QResizeEvent *e) QOpenGLWindow::resizeEvent(e); //will call resizeGL(). TODO:will call paintEvent()? } +void OpenGLWindowRenderer::showEvent(QShowEvent *) +{ + onShowEvent(); + resizeGL(width(), height()); +} } //namespace QtAV diff --git a/widgets/GLWidgetRenderer2.cpp b/widgets/GLWidgetRenderer2.cpp index 780b5300..94407c24 100644 --- a/widgets/GLWidgetRenderer2.cpp +++ b/widgets/GLWidgetRenderer2.cpp @@ -92,6 +92,6 @@ void GLWidgetRenderer2::resizeEvent(QResizeEvent *e) void GLWidgetRenderer2::showEvent(QShowEvent *) { onShowEvent(); + resizeGL(width(), height()); } - } //namespace QtAV diff --git a/widgets/OpenGLWidgetRenderer.cpp b/widgets/OpenGLWidgetRenderer.cpp index 6fa8ceda..4f15982b 100644 --- a/widgets/OpenGLWidgetRenderer.cpp +++ b/widgets/OpenGLWidgetRenderer.cpp @@ -62,6 +62,8 @@ void OpenGLWidgetRenderer::resizeGL(int w, int h) { // QGLWidget uses window()->windowHandle()->devicePixelRatio() for resizeGL(), while QOpenGLWidget does not, so scale here #if QT_VERSION >= QT_VERSION_CHECK(5, 5, 0) + if (!context()) + return; const qreal dpr = context()->screen()->devicePixelRatio(); #elif QT_VERSION >= QT_VERSION_CHECK(5, 1, 0) // qApp->devicePixelRatio() is global, window()->windowHandle()->devicePixelRatio() depends on screen, check window() and windowHandle() is required. @@ -79,9 +81,9 @@ void OpenGLWidgetRenderer::resizeEvent(QResizeEvent *e) QOpenGLWidget::resizeEvent(e); //will call resizeGL(). TODO:will call paintEvent()? } -void OpenGLWidgetRenderer::showEvent(QShowEvent *) +void OpenGLWidgetRenderer::showEvent(QShowEvent *e) { - onShowEvent(); + onShowEvent(); // TODO: onShowEvent(w, h)? + resizeGL(width(), height()); } - } //namespace QtAV