QRhi software-rendering example
-
I am trying to find a working example where
QSGRendererInterface::Software
independent of any OpenGL requirement would work for offscreen rendering.m_renderControl = new QQuickRenderControl(); m_quickWindow = new QQuickWindow(m_renderControl); m_quickWindow->setGraphicsApi(QSGRendererInterface::Software); QImage qimage = QImage(1920, 1080, QImage::Format_ARGB32); QQuickRenderTarget renderTarget = QQuickRenderTarget::fromPaintDevice(&qimage); m_quickWindow->setRenderTarget(renderTarget); m_renderControl->beginFrame(); m_renderControl->render(); m_renderControl->endFrame();
I end up with:
QQuickRenderControl: No QRhi in beginFrame() QQuickRenderControl: No QRhi in endFrame()
-
-
So the solution here is not to use QRhi but the OpenGL api and setting
QCoreApplication::setAttribute(Qt::AA_UseSoftwareOpenGL);
to force LLVMPipe OpenGL software rendering
https://doc.qt.io/qt-6/qtquick-rendercontrol-rendercontrol-rhi-example.html