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

Side by Side Diff: third_party/WebKit/Source/core/paint/PaintLayer.h

Issue 1497873002: Make DisplayItemClient an interface (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 5 years 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 // concept. 149 // concept.
150 // 150 //
151 // Its features need to be migrated to helper objects. This was started with the 151 // Its features need to be migrated to helper objects. This was started with the
152 // introduction of satellite objects: PaintLayer*. Those helper objects then 152 // introduction of satellite objects: PaintLayer*. Those helper objects then
153 // need to be moved to the appropriate LayoutObject class, probably to a rare 153 // need to be moved to the appropriate LayoutObject class, probably to a rare
154 // data field to avoid growing all the LayoutObjects. 154 // data field to avoid growing all the LayoutObjects.
155 // 155 //
156 // A good example of this is PaintLayerScrollableArea, which can only happen 156 // A good example of this is PaintLayerScrollableArea, which can only happen
157 // be instanciated for LayoutBoxes. With the current design, it's hard to know 157 // be instanciated for LayoutBoxes. With the current design, it's hard to know
158 // that by reading the code. 158 // that by reading the code.
159 class CORE_EXPORT PaintLayer { 159 class CORE_EXPORT PaintLayer : public DisplayItemClient {
160 WTF_MAKE_NONCOPYABLE(PaintLayer); 160 WTF_MAKE_NONCOPYABLE(PaintLayer);
161 public: 161 public:
162 PaintLayer(LayoutBoxModelObject*, PaintLayerType); 162 PaintLayer(LayoutBoxModelObject*, PaintLayerType);
163 ~PaintLayer(); 163 ~PaintLayer();
164 164
165 String debugName() const; 165 String debugName() const final;
166 166
167 LayoutBoxModelObject* layoutObject() const { return m_layoutObject; } 167 LayoutBoxModelObject* layoutObject() const { return m_layoutObject; }
168 LayoutBox* layoutBox() const { return m_layoutObject && m_layoutObject->isBo x() ? toLayoutBox(m_layoutObject) : 0; } 168 LayoutBox* layoutBox() const { return m_layoutObject && m_layoutObject->isBo x() ? toLayoutBox(m_layoutObject) : 0; }
169 PaintLayer* parent() const { return m_parent; } 169 PaintLayer* parent() const { return m_parent; }
170 PaintLayer* previousSibling() const { return m_previous; } 170 PaintLayer* previousSibling() const { return m_previous; }
171 PaintLayer* nextSibling() const { return m_next; } 171 PaintLayer* nextSibling() const { return m_next; }
172 PaintLayer* firstChild() const { return m_first; } 172 PaintLayer* firstChild() const { return m_first; }
173 PaintLayer* lastChild() const { return m_last; } 173 PaintLayer* lastChild() const { return m_last; }
174 174
175 // TODO(wangxianzhu): Find a better name for it. 'paintContainer' might be g ood but 175 // TODO(wangxianzhu): Find a better name for it. 'paintContainer' might be g ood but
(...skipping 435 matching lines...) Expand 10 before | Expand all | Expand 10 after
611 bool needsRepaint() const { return m_needsRepaint; } 611 bool needsRepaint() const { return m_needsRepaint; }
612 void setNeedsRepaint(); 612 void setNeedsRepaint();
613 void clearNeedsRepaintRecursively(); 613 void clearNeedsRepaintRecursively();
614 614
615 IntSize previousScrollOffsetAccumulationForPainting() const { return m_previ ousScrollOffsetAccumulationForPainting; } 615 IntSize previousScrollOffsetAccumulationForPainting() const { return m_previ ousScrollOffsetAccumulationForPainting; }
616 void setPreviousScrollOffsetAccumulationForPainting(const IntSize& s) { m_pr eviousScrollOffsetAccumulationForPainting = s; } 616 void setPreviousScrollOffsetAccumulationForPainting(const IntSize& s) { m_pr eviousScrollOffsetAccumulationForPainting = s; }
617 617
618 ClipRects* previousPaintingClipRects() const { return m_previousPaintingClip Rects.get(); } 618 ClipRects* previousPaintingClipRects() const { return m_previousPaintingClip Rects.get(); }
619 void setPreviousPaintingClipRects(ClipRects* clipRects) { m_previousPainting ClipRects = clipRects; } 619 void setPreviousPaintingClipRects(ClipRects* clipRects) { m_previousPainting ClipRects = clipRects; }
620 620
621 // For subsequence display items.
622 DisplayItemClient displayItemClient() const { return toDisplayItemClient(thi s); }
623
624 PaintTiming* paintTiming(); 621 PaintTiming* paintTiming();
625 622
626 private: 623 private:
627 // Bounding box in the coordinates of this layer. 624 // Bounding box in the coordinates of this layer.
628 LayoutRect logicalBoundingBox() const; 625 LayoutRect logicalBoundingBox() const;
629 626
630 bool hasOverflowControls() const; 627 bool hasOverflowControls() const;
631 628
632 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); 629 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
633 630
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
816 813
817 } // namespace blink 814 } // namespace blink
818 815
819 #ifndef NDEBUG 816 #ifndef NDEBUG
820 // Outside the WebCore namespace for ease of invocation from gdb. 817 // Outside the WebCore namespace for ease of invocation from gdb.
821 void showLayerTree(const blink::PaintLayer*); 818 void showLayerTree(const blink::PaintLayer*);
822 void showLayerTree(const blink::LayoutObject*); 819 void showLayerTree(const blink::LayoutObject*);
823 #endif 820 #endif
824 821
825 #endif // Layer_h 822 #endif // Layer_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/PaintControllerPaintTest.h ('k') | third_party/WebKit/Source/core/paint/ScrollRecorder.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698