diff options
author | Andy Nichols <andy.nichols@digia.com> | 2014-08-19 16:08:23 +0200 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@digia.com> | 2014-08-27 08:13:46 +0200 |
commit | 9ae3e24e339b6f9b1f4f3bcf66d76b8f045932e7 (patch) | |
tree | 608d814a6dc576782590d6dde7ac12410b9ee8e1 /src/quick/scenegraph/qsgadaptationlayer_p.h | |
parent | bfee76bdc96cfa8b4decf6d099ff690446d2f8eb (diff) |
Added QSGPainterNode abstraction to QSGAdaptationLayer
This allows the scenegraph backend to customize how QSGPainterNodes are
rendered.
Change-Id: I640dcf121d0be6bda615cf30591d502329fc89d0
Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Reviewed-by: Gunnar Sletta <gunnar@sletta.org>
Diffstat (limited to 'src/quick/scenegraph/qsgadaptationlayer_p.h')
-rw-r--r-- | src/quick/scenegraph/qsgadaptationlayer_p.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/quick/scenegraph/qsgadaptationlayer_p.h b/src/quick/scenegraph/qsgadaptationlayer_p.h index 33ee180864..c96d0a99e3 100644 --- a/src/quick/scenegraph/qsgadaptationlayer_p.h +++ b/src/quick/scenegraph/qsgadaptationlayer_p.h @@ -60,6 +60,7 @@ class QSGDistanceFieldGlyphCacheManager; class QSGDistanceFieldGlyphNode; class QOpenGLContext; class QSGImageNode; +class QSGPainterNode; class QSGRectangleNode; class QSGGlyphNode; class QSGNinePatchNode; @@ -81,6 +82,8 @@ public: virtual void endVisit(QSGOpacityNode *) = 0; virtual bool visit(QSGImageNode *) = 0; virtual void endVisit(QSGImageNode *) = 0; + virtual bool visit(QSGPainterNode *) = 0; + virtual void endVisit(QSGPainterNode *) = 0; virtual bool visit(QSGRectangleNode *) = 0; virtual void endVisit(QSGRectangleNode *) = 0; virtual bool visit(QSGGlyphNode *) = 0; @@ -143,6 +146,28 @@ public: virtual void accept(QSGNodeVisitorEx *visitor) { if (visitor->visit(this)) visitor->visitChildren(this); visitor->endVisit(this); } }; +class Q_QUICK_PRIVATE_EXPORT QSGPainterNode : public QSGVisitableNode +{ +public: + + virtual void setPreferredRenderTarget(QQuickPaintedItem::RenderTarget target) = 0; + virtual void setSize(const QSize &size) = 0; + virtual void setDirty(const QRect &dirtyRect = QRect()) = 0; + virtual void setOpaquePainting(bool opaque) = 0; + virtual void setLinearFiltering(bool linearFiltering) = 0; + virtual void setMipmapping(bool mipmapping) = 0; + virtual void setSmoothPainting(bool s) = 0; + virtual void setFillColor(const QColor &c) = 0; + virtual void setContentsScale(qreal s) = 0; + virtual void setFastFBOResizing(bool dynamic) = 0; + + virtual QImage toImage() const = 0; + virtual void update() = 0; + virtual QSGTexture *texture() const = 0; + + virtual void accept(QSGNodeVisitorEx *visitor) { if (visitor->visit(this)) visitor->visitChildren(this); visitor->endVisit(this); } +}; + class Q_QUICK_PRIVATE_EXPORT QSGNinePatchNode : public QSGVisitableNode { public: |