aboutsummaryrefslogtreecommitdiffstats
path: root/softwarecontext
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2014-08-13 10:15:34 +0200
committerLars Knoll <lars.knoll@digia.com>2014-08-13 14:26:56 +0300
commit03a38f4609a69f6a8b3a5ed776f62d0277935709 (patch)
treeb8fa95cd0690d5c727e24bd3c250bb84975b51e4 /softwarecontext
parent7c995a3a200f9ff8979a5e5c2c1126fb63a41ceb (diff)
Adapt to internal scene graph API changes
The changed visitor API requires a boolean to visit() to indicate whether a sub-tree should be processed or not. Change-Id: Iede12fb50d5aad7843af19855d72c18f968b8d55 Reviewed-by: Lars Knoll <lars.knoll@digia.com>
Diffstat (limited to 'softwarecontext')
-rw-r--r--softwarecontext/renderingvisitor.cpp36
-rw-r--r--softwarecontext/renderingvisitor.h18
2 files changed, 36 insertions, 18 deletions
diff --git a/softwarecontext/renderingvisitor.cpp b/softwarecontext/renderingvisitor.cpp
index fb4d2f4025..dcad6b35ae 100644
--- a/softwarecontext/renderingvisitor.cpp
+++ b/softwarecontext/renderingvisitor.cpp
@@ -30,10 +30,11 @@ RenderingVisitor::RenderingVisitor(QPainter *painter)
}
-void RenderingVisitor::visit(QSGTransformNode *node)
+bool RenderingVisitor::visit(QSGTransformNode *node)
{
painter->save();
painter->setTransform(node->matrix().toTransform(), /*combine*/true);
+ return true;
}
void RenderingVisitor::endVisit(QSGTransformNode *)
@@ -41,10 +42,11 @@ void RenderingVisitor::endVisit(QSGTransformNode *)
painter->restore();
}
-void RenderingVisitor::visit(QSGClipNode *node)
+bool RenderingVisitor::visit(QSGClipNode *node)
{
painter->save();
painter->setClipRect(node->clipRect(), Qt::IntersectClip);
+ return true;
}
void RenderingVisitor::endVisit(QSGClipNode *)
@@ -52,20 +54,22 @@ void RenderingVisitor::endVisit(QSGClipNode *)
painter->restore();
}
-void RenderingVisitor::visit(QSGGeometryNode *node)
+bool RenderingVisitor::visit(QSGGeometryNode *node)
{
-// Q_UNREACHABLE();
+ Q_UNREACHABLE();
+ return true;
}
void RenderingVisitor::endVisit(QSGGeometryNode *node)
{
-// Q_UNREACHABLE();
+ Q_UNREACHABLE();
}
-void RenderingVisitor::visit(QSGOpacityNode *node)
+bool RenderingVisitor::visit(QSGOpacityNode *node)
{
painter->save();
painter->setOpacity(node->opacity());
+ return true;
}
void RenderingVisitor::endVisit(QSGOpacityNode *node)
@@ -73,39 +77,51 @@ void RenderingVisitor::endVisit(QSGOpacityNode *node)
painter->restore();
}
-void RenderingVisitor::visit(QSGImageNode *node)
+bool RenderingVisitor::visit(QSGImageNode *node)
{
static_cast<ImageNode*>(node)->paint(painter);
+ return true;
}
void RenderingVisitor::endVisit(QSGImageNode *)
{
}
-void RenderingVisitor::visit(QSGRectangleNode *node)
+bool RenderingVisitor::visit(QSGRectangleNode *node)
{
static_cast<RectangleNode*>(node)->paint(painter);
+ return true;
}
void RenderingVisitor::endVisit(QSGRectangleNode *)
{
}
-void RenderingVisitor::visit(QSGGlyphNode *node)
+bool RenderingVisitor::visit(QSGGlyphNode *node)
{
static_cast<GlyphNode*>(node)->paint(painter);
+ return true;
}
void RenderingVisitor::endVisit(QSGGlyphNode *)
{
}
-void RenderingVisitor::visit(QSGNinePatchNode *node)
+bool RenderingVisitor::visit(QSGNinePatchNode *node)
{
static_cast<NinePatchNode*>(node)->paint(painter);
+ return true;
}
void RenderingVisitor::endVisit(QSGNinePatchNode *)
{
+}
+bool RenderingVisitor::visit(QSGRootNode *)
+{
+ return true;
+}
+
+void RenderingVisitor::endVisit(QSGRootNode *)
+{
}
diff --git a/softwarecontext/renderingvisitor.h b/softwarecontext/renderingvisitor.h
index 7e30c85968..397c2053c2 100644
--- a/softwarecontext/renderingvisitor.h
+++ b/softwarecontext/renderingvisitor.h
@@ -27,22 +27,24 @@ class RenderingVisitor : public QSGNodeVisitorEx
public:
RenderingVisitor(QPainter *painter);
- virtual void visit(QSGTransformNode *node);
+ virtual bool visit(QSGTransformNode *node);
virtual void endVisit(QSGTransformNode *);
- virtual void visit(QSGClipNode *node);
+ virtual bool visit(QSGClipNode *node);
virtual void endVisit(QSGClipNode *node);
- virtual void visit(QSGGeometryNode *node);
+ virtual bool visit(QSGGeometryNode *node);
virtual void endVisit(QSGGeometryNode *node);
- virtual void visit(QSGOpacityNode *node);
+ virtual bool visit(QSGOpacityNode *node);
virtual void endVisit(QSGOpacityNode *node);
- virtual void visit(QSGImageNode *node);
+ virtual bool visit(QSGImageNode *node);
virtual void endVisit(QSGImageNode *node);
- virtual void visit(QSGRectangleNode *node);
+ virtual bool visit(QSGRectangleNode *node);
virtual void endVisit(QSGRectangleNode *node);
- virtual void visit(QSGGlyphNode *node);
+ virtual bool visit(QSGGlyphNode *node);
virtual void endVisit(QSGGlyphNode *node);
- virtual void visit(QSGNinePatchNode *node);
+ virtual bool visit(QSGNinePatchNode *node);
virtual void endVisit(QSGNinePatchNode *);
+ virtual bool visit(QSGRootNode *);
+ virtual void endVisit(QSGRootNode *);
private:
QPainter *painter;