aboutsummaryrefslogtreecommitdiffstats
path: root/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
diff options
context:
space:
mode:
authorAndy Nichols <andy.nichols@theqtcompany.com>2016-04-02 23:59:48 +0200
committerLaszlo Agocs <laszlo.agocs@theqtcompany.com>2016-04-06 21:27:35 +0000
commit62df019fc367511da4f949bed5afefcf5f3c0940 (patch)
tree45946b5054f446ad9ec44e395615cf6701a7ee8e /src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
parent8ab2625c42a904681fa95a888aebe87b6b5626ff (diff)
2DRenderer: Allow clipping when items are rotated
Previously clipping was only possible if items were rotated in increments of 90 degrees. Now it is possible to clip items that are rotated at any angle, but there is a performance and accuracy penalty because QRegion is terrible. Change-Id: Ibcb57b6d8718458eff718de117d113975cfe26db Reviewed-by: Laszlo Agocs <laszlo.agocs@theqtcompany.com>
Diffstat (limited to 'src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h')
-rw-r--r--src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
index 1c7e6bb8ab..37f953d576 100644
--- a/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
+++ b/src/quick/scenegraph/adaptations/software/qsgsoftwarerenderablenodeupdater_p.h
@@ -83,7 +83,7 @@ public:
private:
struct NodeState {
float opacity;
- QRectF clip;
+ QRegion clip;
QTransform transform;
QSGNode *parent;
};
@@ -95,7 +95,7 @@ private:
QSGAbstractSoftwareRenderer *m_renderer;
QStack<float> m_opacityState;
- QStack<QRectF> m_clipState;
+ QStack<QRegion> m_clipState;
QStack<QTransform> m_transformState;
QHash<QSGNode*,NodeState> m_stateMap;
};
@@ -113,7 +113,7 @@ bool QSGSoftwareRenderableNodeUpdater::updateRenderableNode(QSGSoftwareRenderabl
//Update the node
renderableNode->setTransform(m_transformState.top());
renderableNode->setOpacity(m_opacityState.top());
- renderableNode->setClipRect(m_clipState.top());
+ renderableNode->setClipRegion(m_clipState.top());
renderableNode->update();
m_stateMap[node] = currentState(node);