各 QML (QtQuick 2) 描画フレームを取得し、ネットワーク経由で送信する必要があります。現時点では以下の方法を使用していますが、この方法には2つの大きな欠点があります
1) Qt5 のドキュメントにより、grabWindow() 関数にはパフォーマンスの問題があります。
2) 非表示の QML ウィンドウでは機能しません。
QQuickWindow::afterRendering の直後に OpenGL レンダー バッファを取得することは可能ですか? FBOを使用していますか?共有openglコンテキスト?
class Grab: public QObject
{
public:
Grab( QQuickWindow * wnd ) : wnd_(wnd) {}
public slots:
void Grabme()
{
QImage image = wnd_->grabWindow();
}
private:
QQuickWindow *wnd_;
};
int main(int argc, char *argv[])
{
QGuiApplication app(argc, argv);
QtQuick2ApplicationViewer viewer;
viewer.setMainQmlFile(QStringLiteral("qml/grab1/main.qml"));
viewer.showExpanded();
Grab grab( &viewer );
QObject::connect( &viewer, &QtQuick2ApplicationViewer::frameSwapped,
&grab, &Grab::Grabme, Qt::DirectConnection );
return app.exec();
}