Chromium Code Reviews| 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_; |