Всем привет.
Возникла задача "грабить" вьюху приложения на QML.
В старом добром, теплом, ламповом, растровом Qt с плюсами для этого достаточно
было переопределить метод paintEvent() и делай что хочешь - и оно не тормозило.
Но в QML ничего не работает или оно тормозит жутко, т.к. надо грабить фреймы быстро.
Я знаю что:
1) есть
QQuickWindow::grabWindow метод,
но он не подходит, т.к. медленный.
2) есть
QQuickItem::grabToImage метод,
но он не подходит, т.к. через некоторое время начинают приходить нулевые имиджи, и чем большее
разрешение мы грабим, тем быстрее оно перестает слать имиджы. Да и медленно также.
3) для определения факта того, что вьюха перерисовалась я использовал сигнал
QQuickWindow::afterRendering,
но оно вызывается из потока рендера, и, может по этой причине останавливаются имиджы
из п.2. Да и медленно также.
Может кто сталкивался, можно ли быстро отловить момент "перерисовки" вьюхи с быстренько
сграбить его картинку при использовании QML? А то прямо беда-печаль какая-то.
Было бы очень здорово, если бы, к примеру можно было бы получать только изменившийся
рект, а не рект всей вьюхи (например, как могет QGraphicsScene делать более менее).