<オール>
Linux
1 つの方法は、バック バッファーの内容を glReadPixels()
で読み取り、アプリケーション内からスクリーンショットを取得することです。 .または、内部的に glReadPixels()
を使用する QQuickWindow::grabWindow() を使用します。 正しい方法で。 Qt アプリがフリーズしているときにスクリーンショットを撮る必要があるため、これはオプションではないようです。
もう 1 つの方法は、DRM API を使用してフレームバッファをマップし、次に memcpy
をマップすることです。 マッピングされたピクセル。これは Python を使用して Chromium OS に実装されており、C に簡単に変換できます。https://chromium-review.googlesource.com/c/chromiumos/platform/factory/+/367611 を参照してください。 DRM API は、レンダリングを行う Qt UI プロセス以外の別のプロセスでも使用できます。