Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(614)

Unified Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 2784963002: Optimize the pre-paint tree walk and ClipRects (Closed)
Patch Set: none Created 3 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/core/paint/PaintLayer.h
diff --git a/third_party/WebKit/Source/core/paint/PaintLayer.h b/third_party/WebKit/Source/core/paint/PaintLayer.h
index 988052902d4b1a9057e26adad6be02955f93750f..fb3c6e80fca416c9738b9ebb6f885aeac137b36f 100644
--- a/third_party/WebKit/Source/core/paint/PaintLayer.h
+++ b/third_party/WebKit/Source/core/paint/PaintLayer.h
@@ -901,11 +901,17 @@ class CORE_EXPORT PaintLayer : public DisplayItemClient {
m_previousScrollOffsetAccumulationForPainting = s;
}
- ClipRects* previousPaintingClipRects() const {
- return m_previousPaintingClipRects.get();
+ bool hasPreviousPaintingClipRects() const {
+ return m_hasPreviousPaintingClipRects;
}
- void setPreviousPaintingClipRects(ClipRects& clipRects) {
- m_previousPaintingClipRects = &clipRects;
+
+ const ClipRects& previousPaintingClipRects() const {
+ return m_previousPaintingClipRects;
+ }
+
+ void setPreviousPaintingClipRects(const ClipRects& clipRects) {
+ m_previousPaintingClipRects = clipRects;
+ m_hasPreviousPaintingClipRects = true;
}
LayoutRect previousPaintDirtyRect() const { return m_previousPaintDirtyRect; }
@@ -1200,6 +1206,8 @@ class CORE_EXPORT PaintLayer : public DisplayItemClient {
unsigned m_selfPaintingStatusChanged : 1;
+ unsigned m_hasPreviousPaintingClipRects : 1;
+
LayoutBoxModelObject& m_layoutObject;
PaintLayer* m_parent;
@@ -1235,7 +1243,7 @@ class CORE_EXPORT PaintLayer : public DisplayItemClient {
std::unique_ptr<PaintLayerStackingNode> m_stackingNode;
IntSize m_previousScrollOffsetAccumulationForPainting;
- RefPtr<ClipRects> m_previousPaintingClipRects;
+ ClipRects m_previousPaintingClipRects;
LayoutRect m_previousPaintDirtyRect;
std::unique_ptr<PaintLayerRareData> m_rareData;

Powered by Google App Engine
This is Rietveld 408576698