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

Side by Side Diff: Source/core/layout/Layer.h

Issue 945803004: Merge back LayoutLayerModelObject into RenderBoxModelObject (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Better rebasing. Created 5 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/layout/Layer.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
81 WTF_MAKE_NONCOPYABLE(DisableCompositingQueryAsserts); 81 WTF_MAKE_NONCOPYABLE(DisableCompositingQueryAsserts);
82 public: 82 public:
83 DisableCompositingQueryAsserts(); 83 DisableCompositingQueryAsserts();
84 private: 84 private:
85 TemporaryChange<CompositingQueryMode> m_disabler; 85 TemporaryChange<CompositingQueryMode> m_disabler;
86 }; 86 };
87 87
88 class Layer { 88 class Layer {
89 WTF_MAKE_NONCOPYABLE(Layer); 89 WTF_MAKE_NONCOPYABLE(Layer);
90 public: 90 public:
91 Layer(LayoutLayerModelObject*, LayerType); 91 Layer(LayoutBoxModelObject*, LayerType);
92 ~Layer(); 92 ~Layer();
93 93
94 String debugName() const; 94 String debugName() const;
95 95
96 LayoutLayerModelObject* renderer() const { return m_renderer; } 96 LayoutBoxModelObject* renderer() const { return m_renderer; }
97 RenderBox* renderBox() const { return m_renderer && m_renderer->isBox() ? to RenderBox(m_renderer) : 0; } 97 RenderBox* renderBox() const { return m_renderer && m_renderer->isBox() ? to RenderBox(m_renderer) : 0; }
98 Layer* parent() const { return m_parent; } 98 Layer* parent() const { return m_parent; }
99 Layer* previousSibling() const { return m_previous; } 99 Layer* previousSibling() const { return m_previous; }
100 Layer* nextSibling() const { return m_next; } 100 Layer* nextSibling() const { return m_next; }
101 Layer* firstChild() const { return m_first; } 101 Layer* firstChild() const { return m_first; }
102 Layer* lastChild() const { return m_last; } 102 Layer* lastChild() const { return m_last; }
103 103
104 const Layer* compositingContainer() const; 104 const Layer* compositingContainer() const;
105 105
106 void addChild(Layer* newChild, Layer* beforeChild = 0); 106 void addChild(Layer* newChild, Layer* beforeChild = 0);
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
275 bool preserves3D() const { return renderer()->style()->transformStyle3D() == TransformStyle3DPreserve3D; } 275 bool preserves3D() const { return renderer()->style()->transformStyle3D() == TransformStyle3DPreserve3D; }
276 bool has3DTransform() const { return m_transform && !m_transform->isAffine() ; } 276 bool has3DTransform() const { return m_transform && !m_transform->isAffine() ; }
277 277
278 // FIXME: reflections should force transform-style to be flat in the style: https://bugs.webkit.org/show_bug.cgi?id=106959 278 // FIXME: reflections should force transform-style to be flat in the style: https://bugs.webkit.org/show_bug.cgi?id=106959
279 bool shouldPreserve3D() const { return !renderer()->hasReflection() && rende rer()->style()->transformStyle3D() == TransformStyle3DPreserve3D; } 279 bool shouldPreserve3D() const { return !renderer()->hasReflection() && rende rer()->style()->transformStyle3D() == TransformStyle3DPreserve3D; }
280 280
281 void filterNeedsPaintInvalidation(); 281 void filterNeedsPaintInvalidation();
282 bool hasFilter() const { return renderer()->hasFilter(); } 282 bool hasFilter() const { return renderer()->hasFilter(); }
283 283
284 void* operator new(size_t); 284 void* operator new(size_t);
285 // Only safe to call from LayoutLayerModelObject::destroyLayer() 285 // Only safe to call from LayoutBoxModelObject::destroyLayer()
286 void operator delete(void*); 286 void operator delete(void*);
287 287
288 CompositingState compositingState() const; 288 CompositingState compositingState() const;
289 289
290 // This returns true if our document is in a phase of its lifestyle during w hich 290 // This returns true if our document is in a phase of its lifestyle during w hich
291 // compositing state may legally be read. 291 // compositing state may legally be read.
292 bool isAllowedToQueryCompositingState() const; 292 bool isAllowedToQueryCompositingState() const;
293 293
294 // Don't null check this. 294 // Don't null check this.
295 CompositedLayerMapping* compositedLayerMapping() const; 295 CompositedLayerMapping* compositedLayerMapping() const;
296 GraphicsLayer* graphicsLayerBacking() const; 296 GraphicsLayer* graphicsLayerBacking() const;
297 GraphicsLayer* graphicsLayerBackingForScrolling() const; 297 GraphicsLayer* graphicsLayerBackingForScrolling() const;
298 // NOTE: If you are using hasCompositedLayerMapping to determine the state o f compositing for this layer, 298 // NOTE: If you are using hasCompositedLayerMapping to determine the state o f compositing for this layer,
299 // (and not just to do bookkeeping related to the mapping like, say, allocat ing or deallocating a mapping), 299 // (and not just to do bookkeeping related to the mapping like, say, allocat ing or deallocating a mapping),
300 // then you may have incorrect logic. Use compositingState() instead. 300 // then you may have incorrect logic. Use compositingState() instead.
301 // FIXME: This is identical to null checking compositedLayerMapping(), why n ot just call that? 301 // FIXME: This is identical to null checking compositedLayerMapping(), why n ot just call that?
302 bool hasCompositedLayerMapping() const { return m_compositedLayerMapping.get (); } 302 bool hasCompositedLayerMapping() const { return m_compositedLayerMapping.get (); }
303 void ensureCompositedLayerMapping(); 303 void ensureCompositedLayerMapping();
304 void clearCompositedLayerMapping(bool layerBeingDestroyed = false); 304 void clearCompositedLayerMapping(bool layerBeingDestroyed = false);
305 CompositedLayerMapping* groupedMapping() const { return m_groupedMapping; } 305 CompositedLayerMapping* groupedMapping() const { return m_groupedMapping; }
306 void setGroupedMapping(CompositedLayerMapping* groupedMapping, bool layerBei ngDestroyed = false); 306 void setGroupedMapping(CompositedLayerMapping* groupedMapping, bool layerBei ngDestroyed = false);
307 307
308 bool hasCompositedMask() const; 308 bool hasCompositedMask() const;
309 bool hasCompositedClippingMask() const; 309 bool hasCompositedClippingMask() const;
310 bool needsCompositedScrolling() const { return m_scrollableArea && m_scrolla bleArea->needsCompositedScrolling(); } 310 bool needsCompositedScrolling() const { return m_scrollableArea && m_scrolla bleArea->needsCompositedScrolling(); }
311 311
312 // Computes the position of the given render object in the space of |paintIn validationContainer|. 312 // Computes the position of the given render object in the space of |paintIn validationContainer|.
313 // FIXME: invert the logic to have paint invalidation containers take care o f painting objects into them, rather than the reverse. 313 // FIXME: invert the logic to have paint invalidation containers take care o f painting objects into them, rather than the reverse.
314 // This will allow us to clean up this static method messiness. 314 // This will allow us to clean up this static method messiness.
315 static LayoutPoint positionFromPaintInvalidationBacking(const LayoutObject*, const LayoutLayerModelObject* paintInvalidationContainer, const PaintInvalidati onState* = 0); 315 static LayoutPoint positionFromPaintInvalidationBacking(const LayoutObject*, const LayoutBoxModelObject* paintInvalidationContainer, const PaintInvalidation State* = 0);
316 316
317 static void mapPointToPaintBackingCoordinates(const LayoutLayerModelObject* paintInvalidationContainer, FloatPoint&); 317 static void mapPointToPaintBackingCoordinates(const LayoutBoxModelObject* pa intInvalidationContainer, FloatPoint&);
318 static void mapRectToPaintBackingCoordinates(const LayoutLayerModelObject* p aintInvalidationContainer, LayoutRect&); 318 static void mapRectToPaintBackingCoordinates(const LayoutBoxModelObject* pai ntInvalidationContainer, LayoutRect&);
319 319
320 // Adjusts the given rect (in the coordinate space of the LayoutObject) to t he coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing. 320 // Adjusts the given rect (in the coordinate space of the LayoutObject) to t he coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing.
321 static void mapRectToPaintInvalidationBacking(const LayoutObject*, const Lay outLayerModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalid ationState* = 0); 321 static void mapRectToPaintInvalidationBacking(const LayoutObject*, const Lay outBoxModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalidat ionState* = 0);
322 322
323 // Computes the bounding paint invalidation rect for |layoutObject|, in the coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing. 323 // Computes the bounding paint invalidation rect for |layoutObject|, in the coordinate space of |paintInvalidationContainer|'s GraphicsLayer backing.
324 static LayoutRect computePaintInvalidationRect(const LayoutObject*, const La yer* paintInvalidationContainer, const PaintInvalidationState* = 0); 324 static LayoutRect computePaintInvalidationRect(const LayoutObject*, const La yer* paintInvalidationContainer, const PaintInvalidationState* = 0);
325 325
326 bool paintsWithTransparency(PaintBehavior paintBehavior) const 326 bool paintsWithTransparency(PaintBehavior paintBehavior) const
327 { 327 {
328 return isTransparent() && ((paintBehavior & PaintBehaviorFlattenComposit ingLayers) || compositingState() != PaintsIntoOwnBacking); 328 return isTransparent() && ((paintBehavior & PaintBehaviorFlattenComposit ingLayers) || compositingState() != PaintsIntoOwnBacking);
329 } 329 }
330 330
331 bool paintsWithTransform(PaintBehavior) const; 331 bool paintsWithTransform(PaintBehavior) const;
(...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after
373 // FIXME: This should probably return a ScrollableArea but a lot of internal methods are mistakenly exposed. 373 // FIXME: This should probably return a ScrollableArea but a lot of internal methods are mistakenly exposed.
374 LayerScrollableArea* scrollableArea() const { return m_scrollableArea.get(); } 374 LayerScrollableArea* scrollableArea() const { return m_scrollableArea.get(); }
375 LayerClipper& clipper() { return m_clipper; } 375 LayerClipper& clipper() { return m_clipper; }
376 const LayerClipper& clipper() const { return m_clipper; } 376 const LayerClipper& clipper() const { return m_clipper; }
377 377
378 inline bool isPositionedContainer() const 378 inline bool isPositionedContainer() const
379 { 379 {
380 // FIXME: This is not in sync with containingBlock. 380 // FIXME: This is not in sync with containingBlock.
381 // LayoutObject::canContainFixedPositionedObject() should probably be us ed 381 // LayoutObject::canContainFixedPositionedObject() should probably be us ed
382 // instead. 382 // instead.
383 LayoutLayerModelObject* layerRenderer = renderer(); 383 LayoutBoxModelObject* layerRenderer = renderer();
384 return isRootLayer() || layerRenderer->isPositioned() || hasTransformRel atedProperty(); 384 return isRootLayer() || layerRenderer->isPositioned() || hasTransformRel atedProperty();
385 } 385 }
386 386
387 bool scrollsOverflow() const; 387 bool scrollsOverflow() const;
388 388
389 CompositingReasons potentialCompositingReasonsFromStyle() const { return m_p otentialCompositingReasonsFromStyle; } 389 CompositingReasons potentialCompositingReasonsFromStyle() const { return m_p otentialCompositingReasonsFromStyle; }
390 void setPotentialCompositingReasonsFromStyle(CompositingReasons reasons) { A SSERT(reasons == (reasons & CompositingReasonComboAllStyleDeterminedReasons)); m _potentialCompositingReasonsFromStyle = reasons; } 390 void setPotentialCompositingReasonsFromStyle(CompositingReasons reasons) { A SSERT(reasons == (reasons & CompositingReasonComboAllStyleDeterminedReasons)); m _potentialCompositingReasonsFromStyle = reasons; }
391 391
392 bool hasStyleDeterminedDirectCompositingReasons() const { return m_potential CompositingReasonsFromStyle & CompositingReasonComboAllDirectStyleDeterminedReas ons; } 392 bool hasStyleDeterminedDirectCompositingReasons() const { return m_potential CompositingReasonsFromStyle & CompositingReasonComboAllDirectStyleDeterminedReas ons; }
393 393
(...skipping 257 matching lines...) Expand 10 before | Expand all | Expand 10 after
651 // as opposed to the tree formed by the z-order and normal flow lists). 651 // as opposed to the tree formed by the z-order and normal flow lists).
652 unsigned m_hasNonCompositedChild : 1; 652 unsigned m_hasNonCompositedChild : 1;
653 653
654 // Should be for stacking contexts having unisolated blending descendants. 654 // Should be for stacking contexts having unisolated blending descendants.
655 unsigned m_shouldIsolateCompositedDescendants : 1; 655 unsigned m_shouldIsolateCompositedDescendants : 1;
656 656
657 // True if this render layer just lost its grouped mapping due to the Compos itedLayerMapping being destroyed, 657 // True if this render layer just lost its grouped mapping due to the Compos itedLayerMapping being destroyed,
658 // and we don't yet know to what graphics layer this Layer will be assigned. 658 // and we don't yet know to what graphics layer this Layer will be assigned.
659 unsigned m_lostGroupedMapping : 1; 659 unsigned m_lostGroupedMapping : 1;
660 660
661 LayoutLayerModelObject* m_renderer; 661 LayoutBoxModelObject* m_renderer;
662 662
663 Layer* m_parent; 663 Layer* m_parent;
664 Layer* m_previous; 664 Layer* m_previous;
665 Layer* m_next; 665 Layer* m_next;
666 Layer* m_first; 666 Layer* m_first;
667 Layer* m_last; 667 Layer* m_last;
668 668
669 // Our current relative position offset. 669 // Our current relative position offset.
670 LayoutSize m_offsetForInFlowPosition; 670 LayoutSize m_offsetForInFlowPosition;
671 671
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 717
718 } // namespace blink 718 } // namespace blink
719 719
720 #ifndef NDEBUG 720 #ifndef NDEBUG
721 // Outside the WebCore namespace for ease of invocation from gdb. 721 // Outside the WebCore namespace for ease of invocation from gdb.
722 void showLayerTree(const blink::Layer*); 722 void showLayerTree(const blink::Layer*);
723 void showLayerTree(const blink::LayoutObject*); 723 void showLayerTree(const blink::LayoutObject*);
724 #endif 724 #endif
725 725
726 #endif // Layer_h 726 #endif // Layer_h
OLDNEW
« no previous file with comments | « Source/core/core.gypi ('k') | Source/core/layout/Layer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698