-
Un modo potrebbe essere quello di ottenere uno screenshot dall'interno della tua applicazione, leggendo il contenuto del back buffer con
glReadPixels()
. Oppure usa QQuickWindow::grabWindow(), che usa internamenteglReadPixels()
nel modo corretto. Questa sembra non essere un'opzione per te, poiché devi fare uno screenshot quando l'app Qt è bloccata. -
L'altro modo sarebbe utilizzare l'API DRM per mappare il framebuffer e quindi
memcpy
i pixel mappati. Questo è implementato in Chromium OS con Python e può essere tradotto facilmente in C, vedere https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/367611. L'API DRM può essere utilizzata anche da un processo diverso dal processo Qt UI che esegue il rendering.
Come acquisire schermate su Ubuntu