Index: cc/playback/display_item_list.h |
diff --git a/cc/playback/display_item_list.h b/cc/playback/display_item_list.h |
index 21422600d8648a6d9ab31f84d5752a811803c98d..b0f49428ff3983d7043208d0530f25b00fc240ec 100644 |
--- a/cc/playback/display_item_list.h |
+++ b/cc/playback/display_item_list.h |
@@ -61,10 +61,11 @@ class CC_EXPORT DisplayItemList |
void RasterIntoCanvas(const DisplayItem& display_item); |
template <typename DisplayItemType> |
- DisplayItemType* CreateAndAppendItem() { |
+ DisplayItemType* CreateAndAppendItem(const gfx::Rect& visual_rect) { |
#if DCHECK_IS_ON() |
needs_process_ = true; |
#endif |
+ visual_rects_.push_back(visual_rect); |
wkorman
2015/11/17 21:49:47
We could consider not storing these, and clearing
enne (OOO)
2015/11/17 22:28:20
I don't think we need a flag for this. We should
|
ProcessAppendedItemsOnTheFly(); |
return items_.AllocateAndConstruct<DisplayItemType>(); |
} |
@@ -113,6 +114,12 @@ class CC_EXPORT DisplayItemList |
#endif |
ListContainer<DisplayItem> items_; |
+ // The visual rects associated with each of the display items in the |
+ // display item list. There is one rect per display item, and the |
+ // position in |visual_rects_| matches the position of the item in |
+ // |items_| . These rects are intentionally kept separate |
+ // because they are not needed while walking the |items_| for raster. |
+ std::vector<gfx::Rect> visual_rects_; |
skia::RefPtr<SkPicture> picture_; |
scoped_ptr<SkPictureRecorder> recorder_; |