-
Eine Möglichkeit wäre, einen Screenshot aus Ihrer Anwendung heraus zu erhalten und den Inhalt des Hintergrundpuffers mit
glReadPixels()
zu lesen . Oder verwenden Sie QQuickWindow::grabWindow(), das internglReadPixels()
verwendet auf die richtige Art und Weise. Dies scheint keine Option für Sie zu sein, da Sie einen Screenshot machen müssen, wenn die Qt-App eingefroren ist. -
Der andere Weg wäre, die DRM-API zu verwenden, um den Framebuffer abzubilden, und dann
memcpy
die gemappten Pixel. Dies ist in Chromium OS mit Python implementiert und kann einfach in C übersetzt werden, siehe https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/367611. Die DRM-API kann auch von einem anderen Prozess als dem Qt-UI-Prozess verwendet werden, der das Rendern durchführt.