diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-12-19 13:53:29 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2016-12-21 13:59:03 +0000 |
commit | bf7c6226264bd45095711b2c0556c42b6f267f72 (patch) | |
tree | 7959929e8722580322de3019972aeca7d213c31c /examples/quick | |
parent | c9023c28764e70cd1c6f9cfc3506e6185299548e (diff) |
software backend: Fix clipping of QSGRenderNodes
Change-Id: I27aa5f94165fb07807d2bb711d81eade552b9f76
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'examples/quick')
-rw-r--r-- | examples/quick/scenegraph/rendernode/softwarerenderer.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/examples/quick/scenegraph/rendernode/softwarerenderer.cpp b/examples/quick/scenegraph/rendernode/softwarerenderer.cpp index d303b9ef13..f4ee976705 100644 --- a/examples/quick/scenegraph/rendernode/softwarerenderer.cpp +++ b/examples/quick/scenegraph/rendernode/softwarerenderer.cpp @@ -64,11 +64,12 @@ void SoftwareRenderNode::render(const RenderState *renderState) QPainter *p = static_cast<QPainter *>(rif->getResource(m_item->window(), QSGRendererInterface::PainterResource)); Q_ASSERT(p); - p->setTransform(matrix()->toTransform()); - p->setOpacity(inheritedOpacity()); const QRegion *clipRegion = renderState->clipRegion(); if (clipRegion && !clipRegion->isEmpty()) - p->setClipRegion(*clipRegion, Qt::IntersectClip); + p->setClipRegion(*clipRegion, Qt::ReplaceClip); // must be done before setTransform + + p->setTransform(matrix()->toTransform()); + p->setOpacity(inheritedOpacity()); const QPointF p0(m_item->width() - 1, m_item->height() - 1); const QPointF p1(0, 0); |