extern Q_GUI_EXPORT QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_format, bool include_alpha);
+void QSGCanvasRenderLoop::updateFocusItemTransform()
+{
+ QSGItem *focus = renderer->activeFocusItem();
+ if (focus && qApp->inputPanel()->inputItem() == focus)
+ qApp->inputPanel()->setInputItemTranform(QSGItemPrivate::get(focus)->itemToCanvasTransform());
+}
+
class QSGCanvasPlainRenderLoop : public QObject, public QSGCanvasRenderLoop
{
public:
virtual void paint() {
if (animationRunning && animationDriver())
animationDriver()->advance();
+ updateFocusItemTransform();
syncSceneGraph();
makeCurrent();
glViewport(0, 0, size.width(), size.height());
renderThreadAwakened = false;
polishItems();
+ updateFocusItemTransform();
wake();
wait();
#include <qopenglcontext.h>
#include <QtGui/qopenglframebufferobject.h>
#include <QtGui/qevent.h>
+#include <QtGui/qinputpanel.h>
QT_BEGIN_NAMESPACE
void renderSceneGraph(const QSize &size) { d->renderSceneGraph(size); }
void polishItems() { d->polishItems(); }
QAnimationDriver *animationDriver() const { return d->animationDriver; }
+ void updateFocusItemTransform();
inline QOpenGLContext *glContext() const { return gl; }
void createGLContext();