Index: Source/platform/graphics/paint/DisplayItemList.h |
diff --git a/Source/platform/graphics/paint/DisplayItemList.h b/Source/platform/graphics/paint/DisplayItemList.h |
index fb9798be017adb3e3d8d0e84f229a0e47e0e5a41..a6780c4ef636ec2561e1f1cc0e596c5edf6bc746 100644 |
--- a/Source/platform/graphics/paint/DisplayItemList.h |
+++ b/Source/platform/graphics/paint/DisplayItemList.h |
@@ -27,6 +27,10 @@ static const size_t kDisplayItemAlignment = WTF_ALIGN_OF(BeginTransform3DDisplay |
static const size_t kInitialDisplayItemsCapacity = 64; |
static const size_t kMaximumDisplayItemSize = sizeof(BeginTransform3DDisplayItem); |
+// Map from SimpleLayer.startPoint to the DrawingDisplayItems within its range |
+// which were invalidated on this frame and do not change SimpleLayers. |
+using DisplayListDiff = HashMap<DisplayItemClient, DisplayItem*>; |
+ |
using DisplayItems = ContiguousContainer<DisplayItem, kDisplayItemAlignment>; |
class PLATFORM_EXPORT DisplayItemList { |
@@ -70,8 +74,9 @@ public: |
void endSkippingCache() { ASSERT(m_skippingCacheCount > 0); --m_skippingCacheCount; } |
bool skippingCache() const { return m_skippingCacheCount; } |
- // Must be called when a painting is finished. |
- void commitNewDisplayItems(); |
+ // Must be called when a painting is finished. If passed, a DisplayListDiff |
+ // is initialized and created. |
+ void commitNewDisplayItems(DisplayListDiff* = 0); |
// Returns the approximate memory usage, excluding memory likely to be |
// shared with the embedder after copying to WebDisplayItemList. |
@@ -90,6 +95,7 @@ public: |
replay(context); |
} |
+ void appendToWebDisplayItemList(WebDisplayItemList*); |
void commitNewDisplayItemsAndAppendToWebDisplayItemList(WebDisplayItemList*); |
bool displayItemConstructionIsDisabled() const { return m_constructionDisabled; } |
@@ -116,6 +122,7 @@ protected: |
private: |
friend class DisplayItemListTest; |
friend class DisplayItemListPaintTest; |
+ friend class DisplayItemListPaintTestForSlimmingPaintV2; |
friend class LayoutObjectDrawingRecorderTest; |
// Set new item state (scopes, cache skipping, etc) for a new item. |