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

Side by Side Diff: Source/core/rendering/RenderLayer.h

Issue 669803002: Optimize for horizontal writing mode (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: w compile fix Created 6 years, 2 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) 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 210 matching lines...) Expand 10 before | Expand all | Expand 10 after
221 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&); 221 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&);
222 222
223 // Pass offsetFromRoot if known. 223 // Pass offsetFromRoot if known.
224 bool intersectsDamageRect(const LayoutRect& layerBounds, const LayoutRect& d amageRect, const RenderLayer* rootLayer, const LayoutPoint* offsetFromRoot = 0) const; 224 bool intersectsDamageRect(const LayoutRect& layerBounds, const LayoutRect& d amageRect, const RenderLayer* rootLayer, const LayoutPoint* offsetFromRoot = 0) const;
225 225
226 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n. 226 // Bounding box relative to some ancestor layer. Pass offsetFromRoot if know n.
227 LayoutRect physicalBoundingBox(const RenderLayer* ancestorLayer, const Layou tPoint* offsetFromRoot = 0) const; 227 LayoutRect physicalBoundingBox(const RenderLayer* ancestorLayer, const Layou tPoint* offsetFromRoot = 0) const;
228 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const R enderLayer* ancestorLayer, const LayoutPoint& offsetFromRoot) const; 228 LayoutRect physicalBoundingBoxIncludingReflectionAndStackingChildren(const R enderLayer* ancestorLayer, const LayoutPoint& offsetFromRoot) const;
229 LayoutRect fragmentsBoundingBox(const RenderLayer* ancestorLayer) const; 229 LayoutRect fragmentsBoundingBox(const RenderLayer* ancestorLayer) const;
230 230
231 LayoutRect boundingBoxForCompositingOverlapTest() const { return overlapBoun dsIncludeChildren() ? boundingBoxForCompositing() : flippedLogicalBoundingBox(); } 231 LayoutRect boundingBoxForCompositingOverlapTest() const;
232 232
233 // If true, this layer's children are included in its bounds for overlap tes ting. 233 // If true, this layer's children are included in its bounds for overlap tes ting.
234 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. 234 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around.
235 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); } 235 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); }
236 236
237 enum CalculateBoundsOptions { 237 enum CalculateBoundsOptions {
238 ApplyBoundsChickenEggHacks, 238 ApplyBoundsChickenEggHacks,
239 DoNotApplyBoundsChickenEggHacks, 239 DoNotApplyBoundsChickenEggHacks,
240 }; 240 };
241 LayoutRect boundingBoxForCompositing(const RenderLayer* ancestorLayer = 0, C alculateBoundsOptions = DoNotApplyBoundsChickenEggHacks) const; 241 LayoutRect boundingBoxForCompositing(const RenderLayer* ancestorLayer = 0, C alculateBoundsOptions = DoNotApplyBoundsChickenEggHacks) const;
(...skipping 290 matching lines...) Expand 10 before | Expand all | Expand 10 after
532 DescendantsOfTransparencyClipBox, 532 DescendantsOfTransparencyClipBox,
533 RootOfTransparencyClipBox 533 RootOfTransparencyClipBox
534 }; 534 };
535 535
536 static LayoutRect transparencyClipBox(const RenderLayer*, const RenderLayer* rootLayer, TransparencyClipBoxBehavior transparencyBehavior, 536 static LayoutRect transparencyClipBox(const RenderLayer*, const RenderLayer* rootLayer, TransparencyClipBoxBehavior transparencyBehavior,
537 TransparencyClipBoxMode transparencyMode, const LayoutSize& subPixelAccu mulation, PaintBehavior = 0); 537 TransparencyClipBoxMode transparencyMode, const LayoutSize& subPixelAccu mulation, PaintBehavior = 0);
538 538
539 private: 539 private:
540 // Bounding box in the coordinates of this layer. 540 // Bounding box in the coordinates of this layer.
541 LayoutRect logicalBoundingBox() const; 541 LayoutRect logicalBoundingBox() const;
542 LayoutRect flippedLogicalBoundingBox() const;
543 542
544 bool hasOverflowControls() const; 543 bool hasOverflowControls() const;
545 544
546 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus(); 545 void dirtyAncestorChainHasSelfPaintingLayerDescendantStatus();
547 546
548 void updateLayerPositionRecursive(); 547 void updateLayerPositionRecursive();
549 548
550 void setNextSibling(RenderLayer* next) { m_next = next; } 549 void setNextSibling(RenderLayer* next) { m_next = next; }
551 void setPreviousSibling(RenderLayer* prev) { m_previous = prev; } 550 void setPreviousSibling(RenderLayer* prev) { m_previous = prev; }
552 void setFirstChild(RenderLayer* first) { m_first = first; } 551 void setFirstChild(RenderLayer* first) { m_first = first; }
(...skipping 156 matching lines...) Expand 10 before | Expand all | Expand 10 after
709 708
710 } // namespace blink 709 } // namespace blink
711 710
712 #ifndef NDEBUG 711 #ifndef NDEBUG
713 // Outside the WebCore namespace for ease of invocation from gdb. 712 // Outside the WebCore namespace for ease of invocation from gdb.
714 void showLayerTree(const blink::RenderLayer*); 713 void showLayerTree(const blink::RenderLayer*);
715 void showLayerTree(const blink::RenderObject*); 714 void showLayerTree(const blink::RenderObject*);
716 #endif 715 #endif
717 716
718 #endif // RenderLayer_h 717 #endif // RenderLayer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698