aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/qsgadaptationlayer_p.h
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@digia.com>2014-08-19 16:08:23 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2014-08-27 08:13:46 +0200
commit9ae3e24e339b6f9b1f4f3bcf66d76b8f045932e7 (patch)
tree608d814a6dc576782590d6dde7ac12410b9ee8e1 /src/quick/scenegraph/qsgadaptationlayer_p.h
parentbfee76bdc96cfa8b4decf6d099ff690446d2f8eb (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.h25
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: