summaryrefslogtreecommitdiffstats
path: root/src/gui/graphicsview/qgraphicsview.cpp
diff options
context:
space:
mode:
authorBjørn Erik Nilsen <bjorn.nilsen@nokia.com>2009-06-02 16:53:42 (GMT)
committerAndreas Aardal Hanssen <andreas.aardal.hanssen@nokia.com>2009-06-09 07:32:06 (GMT)
commit95949e7ef88eb14b7b22b06d235603f8581f6aa0 (patch)
tree7290a91ce86144cced01d268af39c5b89c3f62c2 /src/gui/graphicsview/qgraphicsview.cpp
parent6887a89b0e0ee7a0eaff2adc34ae71ab01e2ba2f (diff)
downloadQt-95949e7ef88eb14b7b22b06d235603f8581f6aa0.zip
Qt-95949e7ef88eb14b7b22b06d235603f8581f6aa0.tar.gz
Qt-95949e7ef88eb14b7b22b06d235603f8581f6aa0.tar.bz2
Cache QGrahicsItem's scene transform.
Invalidating the scene transform is just a matter of setting a bit on the item. Then, when we ask for the item's scene transform, we traverse its ancestors recursively and find the top-most dirty item. The algorithm then backtracks to that item and start calculating the scene transform for the item itself and all its children in the call stack. If the item itself and all its ancestors are "clean", nothing is calculated, only traversed. We use this approach when processing dirty items / drawing items as well. That way we ensure the scene transform is only calculated once when absolutely needed. G'night :)
Diffstat (limited to 'src/gui/graphicsview/qgraphicsview.cpp')
-rw-r--r--src/gui/graphicsview/qgraphicsview.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/gui/graphicsview/qgraphicsview.cpp b/src/gui/graphicsview/qgraphicsview.cpp
index caa3ffc..e9a432e 100644
--- a/src/gui/graphicsview/qgraphicsview.cpp
+++ b/src/gui/graphicsview/qgraphicsview.cpp
@@ -3301,7 +3301,7 @@ void QGraphicsView::paintEvent(QPaintEvent *event)
// Items
if (!(d->optimizationFlags & IndirectPainting)) {
- d->scene->d_func()->drawSubtreeRecursive(0, &painter, viewTransform, viewTransform, &d->exposedRegion,
+ d->scene->d_func()->drawSubtreeRecursive(0, &painter, viewTransform, &d->exposedRegion,
viewport(), d->optimizationFlags, 0);
} else {
// Find all exposed items