| Index: Source/platform/graphics/paint/DisplayItemList.h
|
| diff --git a/Source/platform/graphics/paint/DisplayItemList.h b/Source/platform/graphics/paint/DisplayItemList.h
|
| index ea3ad1b11ace8ecf07f55088e74860d0a826f3c0..46c61a39118ef104f7d919702c53965249d0e741 100644
|
| --- a/Source/platform/graphics/paint/DisplayItemList.h
|
| +++ b/Source/platform/graphics/paint/DisplayItemList.h
|
| @@ -6,6 +6,7 @@
|
| #define DisplayItemList_h
|
|
|
| #include "platform/PlatformExport.h"
|
| +#include "platform/geometry/LayoutPoint.h"
|
| #include "platform/graphics/ContiguousContainer.h"
|
| #include "platform/graphics/paint/DisplayItem.h"
|
| #include "platform/graphics/paint/Transform3DDisplayItem.h"
|
| @@ -46,6 +47,12 @@ public:
|
| void invalidate(DisplayItemClient);
|
| void invalidateAll();
|
|
|
| + // Record when paint offsets change during paint.
|
| + void invalidatePaintOffset(DisplayItemClient);
|
| +#if ENABLE(ASSERT)
|
| + bool paintOffsetWasInvalidated(DisplayItemClient) const;
|
| +#endif
|
| +
|
| // These methods are called during painting.
|
| template <typename DisplayItemClass, typename... Args>
|
| DisplayItemClass& createAndAppend(Args&&... args)
|
| @@ -124,6 +131,7 @@ private:
|
| friend class DisplayItemListPaintTest;
|
| friend class DisplayItemListPaintTestForSlimmingPaintV2;
|
| friend class LayoutObjectDrawingRecorderTest;
|
| + friend class LayoutObjectDrawingRecorderTestForSlimmingPaintV2;
|
|
|
| // Set new item state (scopes, cache skipping, etc) for a new item.
|
| // TODO(pdr): This only passes a pointer to make the patch easier to review. Change to a reference.
|
| @@ -166,6 +174,12 @@ private:
|
| mutable HashSet<DisplayItemClient> m_validlyCachedClients;
|
| mutable bool m_validlyCachedClientsDirty;
|
|
|
| +#if ENABLE(ASSERT)
|
| + // Set of clients which had paint offset changes since the last commit. This is used for
|
| + // ensuring paint offsets are only updated once and are the same in all phases.
|
| + HashSet<DisplayItemClient> m_clientsWithPaintOffsetInvalidations;
|
| +#endif
|
| +
|
| // Allow display item construction to be disabled to isolate the costs of construction
|
| // in performance metrics.
|
| bool m_constructionDisabled;
|
|
|