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

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

Issue 899163003: Move rendering/RenderObject to layout/LayoutObject. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: 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/layout/HitTestResult.cpp ('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 190 matching lines...) Expand 10 before | Expand all | Expand 10 after
201 // Returns the enclosing layer root into which this layer paints, inclusive of this one. Note that the enclosing layer may or may not have its own 201 // Returns the enclosing layer root into which this layer paints, inclusive of this one. Note that the enclosing layer may or may not have its own
202 // GraphicsLayer backing, but is nevertheless the root for a call to the Lay er::paint*() methods. 202 // GraphicsLayer backing, but is nevertheless the root for a call to the Lay er::paint*() methods.
203 Layer* enclosingLayerForPaintInvalidation() const; 203 Layer* enclosingLayerForPaintInvalidation() const;
204 204
205 Layer* enclosingLayerForPaintInvalidationCrossingFrameBoundaries() const; 205 Layer* enclosingLayerForPaintInvalidationCrossingFrameBoundaries() const;
206 206
207 bool hasAncestorWithFilterOutsets() const; 207 bool hasAncestorWithFilterOutsets() const;
208 208
209 bool canUseConvertToLayerCoords() const 209 bool canUseConvertToLayerCoords() const
210 { 210 {
211 // These RenderObjects have an impact on their layers without the render ers knowing about it. 211 // These LayoutObjects have an impact on their layers without the render ers knowing about it.
212 return !renderer()->hasColumns() && !renderer()->hasTransformRelatedProp erty() && !renderer()->isSVGRoot(); 212 return !renderer()->hasColumns() && !renderer()->hasTransformRelatedProp erty() && !renderer()->isSVGRoot();
213 } 213 }
214 214
215 void convertToLayerCoords(const Layer* ancestorLayer, LayoutPoint&) const; 215 void convertToLayerCoords(const Layer* ancestorLayer, LayoutPoint&) const;
216 void convertToLayerCoords(const Layer* ancestorLayer, LayoutRect&) const; 216 void convertToLayerCoords(const Layer* ancestorLayer, LayoutRect&) const;
217 217
218 // Does the same as convertToLayerCoords() when not in multicol. For multico l, however, 218 // Does the same as convertToLayerCoords() when not in multicol. For multico l, however,
219 // convertToLayerCoords() calculates the offset in flow-thread coordinates ( what the layout 219 // convertToLayerCoords() calculates the offset in flow-thread coordinates ( what the layout
220 // engine uses internally), while this method calculates the visual coordina tes; i.e. it figures 220 // engine uses internally), while this method calculates the visual coordina tes; i.e. it figures
221 // out which column the layer starts in and adds in the offset. See 221 // out which column the layer starts in and adds in the offset. See
(...skipping 83 matching lines...) Expand 10 before | Expand all | Expand 10 after
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 RenderObject*, const LayoutLayerModelObject* paintInvalidationContainer, const PaintInvalidati onState* = 0); 315 static LayoutPoint positionFromPaintInvalidationBacking(const LayoutObject*, const LayoutLayerModelObject* paintInvalidationContainer, const PaintInvalidati onState* = 0);
316 316
317 static void mapPointToPaintBackingCoordinates(const LayoutLayerModelObject* paintInvalidationContainer, FloatPoint&); 317 static void mapPointToPaintBackingCoordinates(const LayoutLayerModelObject* paintInvalidationContainer, FloatPoint&);
318 static void mapRectToPaintBackingCoordinates(const LayoutLayerModelObject* p aintInvalidationContainer, LayoutRect&); 318 static void mapRectToPaintBackingCoordinates(const LayoutLayerModelObject* p aintInvalidationContainer, LayoutRect&);
319 319
320 // Adjusts the given rect (in the coordinate space of the RenderObject) 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 RenderObject*, const Lay outLayerModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalid ationState* = 0); 321 static void mapRectToPaintInvalidationBacking(const LayoutObject*, const Lay outLayerModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalid ationState* = 0);
322 322
323 // Computes the bounding paint invalidation rect for |renderObject|, 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 RenderObject*, 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;
332 332
333 // Returns true if background phase is painted opaque in the given rect. 333 // Returns true if background phase is painted opaque in the given rect.
334 // The query rect is given in local coordinates. 334 // The query rect is given in local coordinates.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
371 void computeSelfHitTestRects(LayerHitTestRects&) const; 371 void computeSelfHitTestRects(LayerHitTestRects&) const;
372 372
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 // RenderObject::canContainFixedPositionedObject() should probably be us ed 381 // LayoutObject::canContainFixedPositionedObject() should probably be us ed
382 // instead. 382 // instead.
383 LayoutLayerModelObject* layerRenderer = renderer(); 383 LayoutLayerModelObject* 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
394 class AncestorDependentCompositingInputs { 394 class AncestorDependentCompositingInputs {
395 public: 395 public:
396 AncestorDependentCompositingInputs() 396 AncestorDependentCompositingInputs()
397 : opacityAncestor(0) 397 : opacityAncestor(0)
398 , transformAncestor(0) 398 , transformAncestor(0)
399 , filterAncestor(0) 399 , filterAncestor(0)
400 , clippingContainer(0) 400 , clippingContainer(0)
401 , ancestorScrollingLayer(0) 401 , ancestorScrollingLayer(0)
402 , scrollParent(0) 402 , scrollParent(0)
403 , clipParent(0) 403 , clipParent(0)
404 , hasAncestorWithClipPath(false) 404 , hasAncestorWithClipPath(false)
405 { } 405 { }
406 406
407 IntRect clippedAbsoluteBoundingBox; 407 IntRect clippedAbsoluteBoundingBox;
408 const Layer* opacityAncestor; 408 const Layer* opacityAncestor;
409 const Layer* transformAncestor; 409 const Layer* transformAncestor;
410 const Layer* filterAncestor; 410 const Layer* filterAncestor;
411 const RenderObject* clippingContainer; 411 const LayoutObject* clippingContainer;
412 const Layer* ancestorScrollingLayer; 412 const Layer* ancestorScrollingLayer;
413 413
414 // A scroll parent is a compositor concept. It's only needed in blink 414 // A scroll parent is a compositor concept. It's only needed in blink
415 // because we need to use it as a promotion trigger. A layer has a 415 // because we need to use it as a promotion trigger. A layer has a
416 // scroll parent if neither its compositor scrolling ancestor, nor any 416 // scroll parent if neither its compositor scrolling ancestor, nor any
417 // other layer scrolled by this ancestor, is a stacking ancestor of this 417 // other layer scrolled by this ancestor, is a stacking ancestor of this
418 // layer. Layers with scroll parents must be scrolled with the main 418 // layer. Layers with scroll parents must be scrolled with the main
419 // scrolling layer by the compositor. 419 // scrolling layer by the compositor.
420 const Layer* scrollParent; 420 const Layer* scrollParent;
421 421
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
454 void updateDescendantDependentCompositingInputs(const DescendantDependentCom positingInputs&); 454 void updateDescendantDependentCompositingInputs(const DescendantDependentCom positingInputs&);
455 void didUpdateCompositingInputs(); 455 void didUpdateCompositingInputs();
456 456
457 const AncestorDependentCompositingInputs& ancestorDependentCompositingInputs () const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_an cestorDependentCompositingInputs; } 457 const AncestorDependentCompositingInputs& ancestorDependentCompositingInputs () const { ASSERT(!m_needsAncestorDependentCompositingInputsUpdate); return m_an cestorDependentCompositingInputs; }
458 const DescendantDependentCompositingInputs& descendantDependentCompositingIn puts() const { ASSERT(!m_needsDescendantDependentCompositingInputsUpdate); retur n m_descendantDependentCompositingInputs; } 458 const DescendantDependentCompositingInputs& descendantDependentCompositingIn puts() const { ASSERT(!m_needsDescendantDependentCompositingInputsUpdate); retur n m_descendantDependentCompositingInputs; }
459 459
460 IntRect clippedAbsoluteBoundingBox() const { return ancestorDependentComposi tingInputs().clippedAbsoluteBoundingBox; } 460 IntRect clippedAbsoluteBoundingBox() const { return ancestorDependentComposi tingInputs().clippedAbsoluteBoundingBox; }
461 const Layer* opacityAncestor() const { return ancestorDependentCompositingIn puts().opacityAncestor; } 461 const Layer* opacityAncestor() const { return ancestorDependentCompositingIn puts().opacityAncestor; }
462 const Layer* transformAncestor() const { return ancestorDependentCompositing Inputs().transformAncestor; } 462 const Layer* transformAncestor() const { return ancestorDependentCompositing Inputs().transformAncestor; }
463 const Layer* filterAncestor() const { return ancestorDependentCompositingInp uts().filterAncestor; } 463 const Layer* filterAncestor() const { return ancestorDependentCompositingInp uts().filterAncestor; }
464 const RenderObject* clippingContainer() const { return ancestorDependentComp ositingInputs().clippingContainer; } 464 const LayoutObject* clippingContainer() const { return ancestorDependentComp ositingInputs().clippingContainer; }
465 const Layer* ancestorScrollingLayer() const { return ancestorDependentCompos itingInputs().ancestorScrollingLayer; } 465 const Layer* ancestorScrollingLayer() const { return ancestorDependentCompos itingInputs().ancestorScrollingLayer; }
466 Layer* scrollParent() const { return const_cast<Layer*>(ancestorDependentCom positingInputs().scrollParent); } 466 Layer* scrollParent() const { return const_cast<Layer*>(ancestorDependentCom positingInputs().scrollParent); }
467 Layer* clipParent() const { return const_cast<Layer*>(ancestorDependentCompo sitingInputs().clipParent); } 467 Layer* clipParent() const { return const_cast<Layer*>(ancestorDependentCompo sitingInputs().clipParent); }
468 bool hasAncestorWithClipPath() const { return ancestorDependentCompositingIn puts().hasAncestorWithClipPath; } 468 bool hasAncestorWithClipPath() const { return ancestorDependentCompositingIn puts().hasAncestorWithClipPath; }
469 bool hasDescendantWithClipPath() const { return descendantDependentCompositi ngInputs().hasDescendantWithClipPath; } 469 bool hasDescendantWithClipPath() const { return descendantDependentCompositi ngInputs().hasDescendantWithClipPath; }
470 bool hasNonIsolatedDescendantWithBlendMode() const; 470 bool hasNonIsolatedDescendantWithBlendMode() const;
471 471
472 bool lostGroupedMapping() const { ASSERT(isAllowedToQueryCompositingState()) ; return m_lostGroupedMapping; } 472 bool lostGroupedMapping() const { ASSERT(isAllowedToQueryCompositingState()) ; return m_lostGroupedMapping; }
473 void setLostGroupedMapping(bool b) { m_lostGroupedMapping = b; } 473 void setLostGroupedMapping(bool b) { m_lostGroupedMapping = b; }
474 474
(...skipping 237 matching lines...) Expand 10 before | Expand all | Expand 10 after
712 OwnPtr<LayerReflectionInfo> m_reflectionInfo; 712 OwnPtr<LayerReflectionInfo> m_reflectionInfo;
713 713
714 LayoutSize m_subpixelAccumulation; // The accumulated subpixel offset of a c omposited layer's composited bounds compared to absolute coordinates. 714 LayoutSize m_subpixelAccumulation; // The accumulated subpixel offset of a c omposited layer's composited bounds compared to absolute coordinates.
715 }; 715 };
716 716
717 } // namespace blink 717 } // namespace blink
718 718
719 #ifndef NDEBUG 719 #ifndef NDEBUG
720 // Outside the WebCore namespace for ease of invocation from gdb. 720 // Outside the WebCore namespace for ease of invocation from gdb.
721 void showLayerTree(const blink::Layer*); 721 void showLayerTree(const blink::Layer*);
722 void showLayerTree(const blink::RenderObject*); 722 void showLayerTree(const blink::LayoutObject*);
723 #endif 723 #endif
724 724
725 #endif // Layer_h 725 #endif // Layer_h
OLDNEW
« no previous file with comments | « Source/core/layout/HitTestResult.cpp ('k') | Source/core/layout/Layer.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698