| Index: third_party/WebKit/Source/platform/graphics/paint/PaintController.h
|
| diff --git a/third_party/WebKit/Source/platform/graphics/paint/PaintController.h b/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
|
| index 0445de805867e5cbe22abbf75a8ff17d296975b0..74608b44e8b24f5ec1d5c15b2457db2e6b9ec0e2 100644
|
| --- a/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
|
| +++ b/third_party/WebKit/Source/platform/graphics/paint/PaintController.h
|
| @@ -15,6 +15,7 @@
|
| #include "platform/graphics/paint/PaintArtifact.h"
|
| #include "platform/graphics/paint/PaintChunk.h"
|
| #include "platform/graphics/paint/PaintChunker.h"
|
| +#include "platform/graphics/paint/RasterInvalidationTracking.h"
|
| #include "platform/graphics/paint/Transform3DDisplayItem.h"
|
| #include "third_party/skia/include/core/SkRefCnt.h"
|
| #include "wtf/Alignment.h"
|
| @@ -34,6 +35,8 @@ class GraphicsContext;
|
|
|
| static const size_t kInitialDisplayItemListCapacityBytes = 512;
|
|
|
| +template class RasterInvalidationTrackingMap<const PaintChunk>;
|
| +
|
| // Responsible for processing display items as they are produced, and producing
|
| // a final paint artifact when complete. This class includes logic for caching,
|
| // cache invalidation, and merging.
|
| @@ -178,6 +181,12 @@ class PLATFORM_EXPORT PaintController {
|
| void assertDisplayItemClientsAreLive();
|
| #endif
|
|
|
| + void setTracksRasterInvalidations(bool value);
|
| + RasterInvalidationTrackingMap<const PaintChunk>*
|
| + paintChunksRasterInvalidationTrackingMap() {
|
| + return m_paintChunksRasterInvalidationTrackingMap.get();
|
| + }
|
| +
|
| protected:
|
| PaintController()
|
| : m_newDisplayItemList(0),
|
| @@ -196,6 +205,8 @@ class PLATFORM_EXPORT PaintController {
|
| #endif
|
| {
|
| resetCurrentListIndices();
|
| + setTracksRasterInvalidations(
|
| + RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled());
|
| }
|
|
|
| private:
|
| @@ -244,6 +255,9 @@ class PLATFORM_EXPORT PaintController {
|
| void generateChunkRasterInvalidationRectsComparingOldChunk(
|
| PaintChunk& newChunk,
|
| const PaintChunk& oldChunk);
|
| + void addRasterInvalidationInfo(const DisplayItemClient*,
|
| + PaintChunk&,
|
| + const FloatRect&);
|
|
|
| // The following two methods are for checking under-invalidations
|
| // (when RuntimeEnabledFeatures::paintUnderInvalidationCheckingEnabled).
|
| @@ -334,6 +348,9 @@ class PLATFORM_EXPORT PaintController {
|
| int m_skippedProbableUnderInvalidationCount;
|
| String m_underInvalidationMessagePrefix;
|
|
|
| + std::unique_ptr<RasterInvalidationTrackingMap<const PaintChunk>>
|
| + m_paintChunksRasterInvalidationTrackingMap;
|
| +
|
| #if CHECK_DISPLAY_ITEM_CLIENT_ALIVENESS
|
| // A stack recording subsequence clients that are currently painting.
|
| Vector<const DisplayItemClient*> m_currentSubsequenceClients;
|
|
|