From d3477f8decddb40cc3a64b1e647239dd3579ea16 Mon Sep 17 00:00:00 2001 From: Andy Nichols Date: Mon, 25 Aug 2014 12:38:15 +0200 Subject: Add support for rendering QSGSimpleRectNode Change-Id: Ic43877a9128cf0f944abeefd7819f8e99175fbeb Reviewed-by: Lars Knoll --- softwarecontext/renderingvisitor.cpp | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/softwarecontext/renderingvisitor.cpp b/softwarecontext/renderingvisitor.cpp index f90b23850e..247c4b7c3b 100644 --- a/softwarecontext/renderingvisitor.cpp +++ b/softwarecontext/renderingvisitor.cpp @@ -25,6 +25,8 @@ #include "ninepatchnode.h" #include "painternode.h" +#include + RenderingVisitor::RenderingVisitor(QPainter *painter) : painter(painter) { @@ -57,13 +59,22 @@ void RenderingVisitor::endVisit(QSGClipNode *) bool RenderingVisitor::visit(QSGGeometryNode *node) { - Q_UNREACHABLE(); + //Check for QSGSimpleRect + QSGSimpleRectNode *rectNode = 0; + rectNode = dynamic_cast(node); + if (rectNode) { + if (!rectNode->material()->flags() & QSGMaterial::Blending) + painter->setCompositionMode(QPainter::CompositionMode_Source); + painter->fillRect(rectNode->rect(), rectNode->color()); + painter->setCompositionMode(QPainter::CompositionMode_SourceOver); + } + return true; } void RenderingVisitor::endVisit(QSGGeometryNode *node) { - Q_UNREACHABLE(); + } bool RenderingVisitor::visit(QSGOpacityNode *node) -- cgit v1.2.3