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

Side by Side Diff: third_party/WebKit/Source/core/layout/compositing/CompositedLayerMapping.h

Issue 1636563003: Put rare PaintLayer fields into PaintLayerRareData (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Rebase Created 4 years, 10 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2009, 2010, 2011 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 54
55 GraphicsLayerPaintInfo() : paintLayer(nullptr), offsetFromLayoutObjectSet(fa lse) { } 55 GraphicsLayerPaintInfo() : paintLayer(nullptr), offsetFromLayoutObjectSet(fa lse) { }
56 }; 56 };
57 57
58 enum GraphicsLayerUpdateScope { 58 enum GraphicsLayerUpdateScope {
59 GraphicsLayerUpdateNone, 59 GraphicsLayerUpdateNone,
60 GraphicsLayerUpdateLocal, 60 GraphicsLayerUpdateLocal,
61 GraphicsLayerUpdateSubtree, 61 GraphicsLayerUpdateSubtree,
62 }; 62 };
63 63
64 // CompositedLayerMapping keeps track of how Layers of the layout tree correspon d to 64 // CompositedLayerMapping keeps track of how PaintLayers correspond to
65 // GraphicsLayers of the composited layer tree. Each instance of CompositedLayer Mapping 65 // GraphicsLayers of the composited layer tree. Each instance of CompositedLayer Mapping
66 // manages a small cluster of GraphicsLayers and the references to which Layers 66 // manages a small cluster of GraphicsLayers and the references to which Layers
67 // and paint phases contribute to each GraphicsLayer. 67 // and paint phases contribute to each GraphicsLayer.
68 // 68 //
69 // Currently (Oct. 2013) there is one CompositedLayerMapping for each Layer, 69 // - If a PaintLayer is composited,
70 // but this is likely to evolve soon. 70 // - if it paints into its own backings (GraphicsLayers), it owns a
71 // CompositedLayerMapping (PaintLayer::compositedLayerMapping()) to keep
72 // track the backings;
73 // - if it paints into grouped backing (i.e. it's squashed), it has a pointer
74 // (PaintLayer::groupedMapping()) to the CompositedLayerMapping into which
75 // the layer is squashed;
chrishtr 2016/01/28 18:04:29 s/layer/PaintLayer/
Xianzhu 2016/01/28 18:30:30 Done.
76 // - Otherwise the layer doesn't own or directly reference any CompositedLayerMa pping.
chrishtr 2016/01/28 18:04:29 s/layer/PaintLayer/
Xianzhu 2016/01/28 18:30:30 Done.
71 class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient { 77 class CORE_EXPORT CompositedLayerMapping final : public GraphicsLayerClient {
72 78
73 WTF_MAKE_NONCOPYABLE(CompositedLayerMapping); USING_FAST_MALLOC(CompositedLa yerMapping); 79 WTF_MAKE_NONCOPYABLE(CompositedLayerMapping); USING_FAST_MALLOC(CompositedLa yerMapping);
74 public: 80 public:
75 explicit CompositedLayerMapping(PaintLayer&); 81 explicit CompositedLayerMapping(PaintLayer&);
76 ~CompositedLayerMapping() override; 82 ~CompositedLayerMapping() override;
77 83
78 PaintLayer& owningLayer() const { return m_owningLayer; } 84 PaintLayer& owningLayer() const { return m_owningLayer; }
79 85
80 bool updateGraphicsLayerConfiguration(); 86 bool updateGraphicsLayerConfiguration();
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
246 bool updateChildTransformLayer(bool needsChildTransformLayer); 252 bool updateChildTransformLayer(bool needsChildTransformLayer);
247 bool updateOverflowControlsLayers(bool needsHorizontalScrollbarLayer, bool n eedsVerticalScrollbarLayer, bool needsScrollCornerLayer, bool needsAncestorClip) ; 253 bool updateOverflowControlsLayers(bool needsHorizontalScrollbarLayer, bool n eedsVerticalScrollbarLayer, bool needsScrollCornerLayer, bool needsAncestorClip) ;
248 bool updateForegroundLayer(bool needsForegroundLayer); 254 bool updateForegroundLayer(bool needsForegroundLayer);
249 bool updateBackgroundLayer(bool needsBackgroundLayer); 255 bool updateBackgroundLayer(bool needsBackgroundLayer);
250 bool updateMaskLayer(bool needsMaskLayer); 256 bool updateMaskLayer(bool needsMaskLayer);
251 void updateChildClippingMaskLayer(bool needsChildClippingMaskLayer); 257 void updateChildClippingMaskLayer(bool needsChildClippingMaskLayer);
252 bool requiresHorizontalScrollbarLayer() const { return m_owningLayer.scrolla bleArea() && m_owningLayer.scrollableArea()->horizontalScrollbar(); } 258 bool requiresHorizontalScrollbarLayer() const { return m_owningLayer.scrolla bleArea() && m_owningLayer.scrollableArea()->horizontalScrollbar(); }
253 bool requiresVerticalScrollbarLayer() const { return m_owningLayer.scrollabl eArea() && m_owningLayer.scrollableArea()->verticalScrollbar(); } 259 bool requiresVerticalScrollbarLayer() const { return m_owningLayer.scrollabl eArea() && m_owningLayer.scrollableArea()->verticalScrollbar(); }
254 bool requiresScrollCornerLayer() const { return m_owningLayer.scrollableArea () && !m_owningLayer.scrollableArea()->scrollCornerAndResizerRect().isEmpty(); } 260 bool requiresScrollCornerLayer() const { return m_owningLayer.scrollableArea () && !m_owningLayer.scrollableArea()->scrollCornerAndResizerRect().isEmpty(); }
255 bool updateScrollingLayers(bool scrollingLayers); 261 bool updateScrollingLayers(bool scrollingLayers);
256 void updateScrollParent(PaintLayer*); 262 void updateScrollParent(const PaintLayer*);
257 void updateClipParent(PaintLayer* scrollParent); 263 void updateClipParent(const PaintLayer* scrollParent);
258 bool updateSquashingLayers(bool needsSquashingLayers); 264 bool updateSquashingLayers(bool needsSquashingLayers);
259 void updateDrawsContent(); 265 void updateDrawsContent();
260 void updateChildrenTransform(); 266 void updateChildrenTransform();
261 void updateCompositedBounds(); 267 void updateCompositedBounds();
262 void registerScrollingLayers(); 268 void registerScrollingLayers();
263 269
264 // Also sets subpixelAccumulation on the layer. 270 // Also sets subpixelAccumulation on the layer.
265 void computeBoundsOfOwningLayer(const PaintLayer* compositedAncestor, IntRec t& localCompositingBounds, IntRect& compositingBoundsRelativeToCompositedAncesto r, LayoutPoint& offsetFromCompositedAncestor, IntPoint& snappedOffsetFromComposi tedAncestor); 271 void computeBoundsOfOwningLayer(const PaintLayer* compositedAncestor, IntRec t& localCompositingBounds, IntRect& compositingBoundsRelativeToCompositedAncesto r, LayoutPoint& offsetFromCompositedAncestor, IntPoint& snappedOffsetFromComposi tedAncestor);
266 272
267 void setBackgroundLayerPaintsFixedRootBackground(bool); 273 void setBackgroundLayerPaintsFixedRootBackground(bool);
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
299 305
300 // Computes the background clip rect for the given squashed layer, up to any containing layer that is squashed into the 306 // Computes the background clip rect for the given squashed layer, up to any containing layer that is squashed into the
301 // same squashing layer and contains this squashed layer's clipping ancestor . 307 // same squashing layer and contains this squashed layer's clipping ancestor .
302 // The clip rect is returned in the coordinate space of the given squashed l ayer. 308 // The clip rect is returned in the coordinate space of the given squashed l ayer.
303 // If there is no such containing layer, returns the infinite rect. 309 // If there is no such containing layer, returns the infinite rect.
304 // FIXME: unify this code with the code that sets up m_ancestorClippingLayer . They are doing very similar things. 310 // FIXME: unify this code with the code that sets up m_ancestorClippingLayer . They are doing very similar things.
305 static IntRect localClipRectForSquashedLayer(const PaintLayer& referenceLaye r, const GraphicsLayerPaintInfo&, const Vector<GraphicsLayerPaintInfo>& layers) ; 311 static IntRect localClipRectForSquashedLayer(const PaintLayer& referenceLaye r, const GraphicsLayerPaintInfo&, const Vector<GraphicsLayerPaintInfo>& layers) ;
306 312
307 // Return true if |m_owningLayer|'s compositing ancestor is not a descendant (inclusive) of the 313 // Return true if |m_owningLayer|'s compositing ancestor is not a descendant (inclusive) of the
308 // clipping container for |m_owningLayer|. 314 // clipping container for |m_owningLayer|.
309 bool owningLayerClippedByLayerNotAboveCompositedAncestor(PaintLayer* scrollP arent); 315 bool owningLayerClippedByLayerNotAboveCompositedAncestor(const PaintLayer* s crollParent);
310 316
311 PaintLayer* scrollParent(); 317 const PaintLayer* scrollParent();
312 318
313 // Clear the groupedMapping entry on the layer at the given index, only if t hat layer does 319 // Clear the groupedMapping entry on the layer at the given index, only if t hat layer does
314 // not appear earlier in the set of layers for this object. 320 // not appear earlier in the set of layers for this object.
315 bool invalidateLayerIfNoPrecedingEntry(size_t); 321 bool invalidateLayerIfNoPrecedingEntry(size_t);
316 322
317 PaintLayer& m_owningLayer; 323 PaintLayer& m_owningLayer;
318 324
319 // The hierarchy of layers that is maintained by the CompositedLayerMapping looks like this: 325 // The hierarchy of layers that is maintained by the CompositedLayerMapping looks like this:
320 // 326 //
321 // + m_ancestorClippingLayer [OPTIONAL] 327 // + m_ancestorClippingLayer [OPTIONAL]
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 443
438 unsigned m_backgroundLayerPaintsFixedRootBackground : 1; 444 unsigned m_backgroundLayerPaintsFixedRootBackground : 1;
439 unsigned m_scrollingContentsAreEmpty : 1; 445 unsigned m_scrollingContentsAreEmpty : 1;
440 446
441 friend class CompositedLayerMappingTest; 447 friend class CompositedLayerMappingTest;
442 }; 448 };
443 449
444 } // namespace blink 450 } // namespace blink
445 451
446 #endif // CompositedLayerMapping_h 452 #endif // CompositedLayerMapping_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698