diff --git a/plugins/quickinspector/quickinspector.cpp b/plugins/quickinspector/quickinspector.cpp index e765ea227..f7736b0d7 100644 --- a/plugins/quickinspector/quickinspector.cpp +++ b/plugins/quickinspector/quickinspector.cpp @@ -301,15 +301,10 @@ void RenderModeRequest::apply() if (connection) disconnect(connection); -#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0) - // crashes in qrhigles2..bindShaderResources sometimes - return; -#endif - - if (window && window->rendererInterface()->graphicsApi() != QSGRendererInterface::OpenGL) - return; - if (window) { + if (window->rendererInterface()->graphicsApi() != QSGRendererInterface::OpenGL) + return; + emit aboutToCleanSceneGraph(); const QByteArray mode = renderModeToString(RenderModeRequest::mode); QQuickWindowPrivate *winPriv = QQuickWindowPrivate::get(window); diff --git a/plugins/quickinspector/quickscreengrabber.cpp b/plugins/quickinspector/quickscreengrabber.cpp index b704190e8..1b2a50028 100644 --- a/plugins/quickinspector/quickscreengrabber.cpp +++ b/plugins/quickinspector/quickscreengrabber.cpp @@ -806,8 +806,14 @@ UnsupportedScreenGrabber::~UnsupportedScreenGrabber() void UnsupportedScreenGrabber::requestGrabWindow(const QRectF & /*userViewport*/) { + const qreal ratio = m_window->effectiveDevicePixelRatio(); + const int width = m_window->width(), + height = m_window->height(); m_grabbedFrame.image = m_window->grabWindow(); - m_grabbedFrame.image.setDevicePixelRatio(m_window->effectiveDevicePixelRatio()); + if (ratio == 1.0) + m_grabbedFrame.image = m_grabbedFrame.image.copy(0, 0, width, height); + else + m_grabbedFrame.image = m_grabbedFrame.image.copy(0, 0, width, height).scaledToHeight(height * ratio); int alpha = 120; if (m_grabbedFrame.image.isNull()) { @@ -819,14 +825,15 @@ void UnsupportedScreenGrabber::requestGrabWindow(const QRectF & /*userViewport*/ p.setRenderHint(QPainter::TextAntialiasing); QColor gray(Qt::black); gray.setAlpha(alpha); - p.fillRect(QRect(QPoint {}, m_window->size()), gray); + auto textBoxRect = QRect(QPoint(4, 4), m_window->size() - QSize(8, 8)); + p.fillRect(textBoxRect, gray); p.setPen(Qt::white); auto font = qApp->font(); font.setPointSize(font.pointSize() + 1); p.setFont(font); QString backend = VariantHandler::displayString(QVariant::fromValue(m_window->graphicsApi())); QString txt = backend + QStringLiteral(" is not supported yet, please use OpenGL or Software backend"); - p.drawText(QRect { QPoint(0, 0), m_window->size() }, Qt::AlignCenter | Qt::TextWordWrap, txt); + p.drawText(textBoxRect, Qt::AlignCenter | Qt::TextWordWrap, txt); emit sceneGrabbed(m_grabbedFrame); }