summaryrefslogtreecommitdiffstats
path: root/src/gui/effects/qgraphicseffect_p.h
diff options
context:
space:
mode:
authorSamuel Rødal <sroedal@trolltech.com>2009-12-11 11:24:23 (GMT)
committerSamuel Rødal <sroedal@trolltech.com>2009-12-14 14:18:36 (GMT)
commit21c31b4a3ae972a4c2f03adebd43a2d6a27f8c93 (patch)
tree87a9f72381a6119f00fc7e6bbaf291195326c6ab /src/gui/effects/qgraphicseffect_p.h
parent8bbb0e70d189d7027494004a8dece8aeb4e37366 (diff)
downloadQt-21c31b4a3ae972a4c2f03adebd43a2d6a27f8c93.zip
Qt-21c31b4a3ae972a4c2f03adebd43a2d6a27f8c93.tar.gz
Qt-21c31b4a3ae972a4c2f03adebd43a2d6a27f8c93.tar.bz2
Added InvalidateReason to invalidateCache to optimize effects
This lets us ignore the invalidateCache call when the transform of a graphics item with an effect changes, and the cached system is LogicalCoordinates and cached mode is not PadToEffectiveBoundingRect. Reviewed-by: Bjørn Erik Nilsen
Diffstat (limited to 'src/gui/effects/qgraphicseffect_p.h')
-rw-r--r--src/gui/effects/qgraphicseffect_p.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/src/gui/effects/qgraphicseffect_p.h b/src/gui/effects/qgraphicseffect_p.h
index 0011eef..cab7a48 100644
--- a/src/gui/effects/qgraphicseffect_p.h
+++ b/src/gui/effects/qgraphicseffect_p.h
@@ -108,6 +108,13 @@ public:
, m_cachedMode(QGraphicsEffect::PadToTransparentBorder)
{}
+ enum InvalidateReason
+ {
+ TransformChanged,
+ EffectRectChanged,
+ SourceChanged
+ };
+
virtual ~QGraphicsEffectSourcePrivate();
virtual void detach() = 0;
virtual QRectF boundingRect(Qt::CoordinateSystem system) const = 0;
@@ -121,7 +128,9 @@ public:
virtual QPixmap pixmap(Qt::CoordinateSystem system, QPoint *offset = 0,
QGraphicsEffect::PixmapPadMode mode = QGraphicsEffect::PadToTransparentBorder) const = 0;
virtual void effectBoundingRectChanged() = 0;
- void invalidateCache(bool effectRectChanged = false) const;
+
+ void invalidateCache(InvalidateReason reason = SourceChanged) const;
+ Qt::CoordinateSystem currentCachedSystem() const { return m_cachedSystem; }
friend class QGraphicsScenePrivate;
friend class QGraphicsItem;