19 Q_DECLARE_PRIVATE(QQuickFramebufferObject)
21 Q_PROPERTY(
bool textureFollowsItemSize READ textureFollowsItemSize WRITE setTextureFollowsItemSize NOTIFY textureFollowsItemSizeChanged)
22 Q_PROPERTY(
bool mirrorVertically READ mirrorVertically WRITE setMirrorVertically NOTIFY mirrorVerticallyChanged)
26 class Q_QUICK_EXPORT Renderer {
30 virtual void render() = 0;
31 virtual QOpenGLFramebufferObject *createFramebufferObject(
const QSize &size);
32 virtual void synchronize(QQuickFramebufferObject *);
33 QOpenGLFramebufferObject *framebufferObject()
const;
35 void invalidateFramebufferObject();
37 friend class QSGFramebufferObjectNode;
38 friend class QQuickFramebufferObject;
42 QQuickFramebufferObject(QQuickItem *parent =
nullptr);
44 bool textureFollowsItemSize()
const;
45 void setTextureFollowsItemSize(
bool follows);
47 bool mirrorVertically()
const;
48 void setMirrorVertically(
bool enable);
50 virtual Renderer *createRenderer()
const = 0;
52 bool isTextureProvider()
const override;
53 QSGTextureProvider *textureProvider()
const override;
54 void releaseResources() override;
57 void geometryChange(
const QRectF &newGeometry,
const QRectF &oldGeometry) override;
60 QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *) override;
63 void textureFollowsItemSizeChanged(
bool);
64 void mirrorVerticallyChanged(
bool);
67 void invalidateSceneGraph();