| OLD | NEW |
| 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 * | 3 * |
| 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. | 4 * Portions are Copyright (C) 1998 Netscape Communications Corporation. |
| 5 * | 5 * |
| 6 * Other contributors: | 6 * Other contributors: |
| 7 * Robert O'Callahan <roc+@cs.cmu.edu> | 7 * Robert O'Callahan <roc+@cs.cmu.edu> |
| 8 * David Baron <dbaron@fas.harvard.edu> | 8 * David Baron <dbaron@fas.harvard.edu> |
| 9 * Christian Biesinger <cbiesinger@web.de> | 9 * Christian Biesinger <cbiesinger@web.de> |
| 10 * Randall Jesup <rjesup@wgate.com> | 10 * Randall Jesup <rjesup@wgate.com> |
| (...skipping 597 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 608 // paints the layers that intersect the damage rect from back to | 608 // paints the layers that intersect the damage rect from back to |
| 609 // front. The hitTest method looks for mouse events by walking | 609 // front. The hitTest method looks for mouse events by walking |
| 610 // layers that intersect the point from front to back. | 610 // layers that intersect the point from front to back. |
| 611 void paint(GraphicsContext*, const LayoutRect& damageRect, PaintBehavior = P
aintBehaviorNormal, RenderObject* paintingRoot = 0, | 611 void paint(GraphicsContext*, const LayoutRect& damageRect, PaintBehavior = P
aintBehaviorNormal, RenderObject* paintingRoot = 0, |
| 612 RenderRegion* = 0, PaintLayerFlags = 0); | 612 RenderRegion* = 0, PaintLayerFlags = 0); |
| 613 bool hitTest(const HitTestRequest&, HitTestResult&); | 613 bool hitTest(const HitTestRequest&, HitTestResult&); |
| 614 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&); | 614 bool hitTest(const HitTestRequest&, const HitTestLocation&, HitTestResult&); |
| 615 void paintOverlayScrollbars(GraphicsContext*, const LayoutRect& damageRect,
PaintBehavior, RenderObject* paintingRoot = 0); | 615 void paintOverlayScrollbars(GraphicsContext*, const LayoutRect& damageRect,
PaintBehavior, RenderObject* paintingRoot = 0); |
| 616 | 616 |
| 617 struct ClipRectsContext { | 617 struct ClipRectsContext { |
| 618 ClipRectsContext(const RenderLayer* inRootLayer, RenderRegion* inRegion,
ClipRectsType inClipRectsType, OverlayScrollbarSizeRelevancy inOverlayScrollbar
SizeRelevancy = IgnoreOverlayScrollbarSize, ShouldRespectOverflowClip inRespectO
verflowClip = RespectOverflowClip) | 618 ClipRectsContext(const RenderLayer* inRootLayer, RenderRegion* inRegion,
ClipRectsType inClipRectsType, |
| 619 OverlayScrollbarSizeRelevancy inOverlayScrollbarSizeRelevancy = Igno
reOverlayScrollbarSize, |
| 620 ShouldRespectOverflowClip inRespectOverflowClip = RespectOverflowCli
p, const LayoutSize& inSubPixelAccumulation = LayoutSize()) |
| 619 : rootLayer(inRootLayer) | 621 : rootLayer(inRootLayer) |
| 620 , region(inRegion) | 622 , region(inRegion) |
| 621 , clipRectsType(inClipRectsType) | 623 , clipRectsType(inClipRectsType) |
| 622 , overlayScrollbarSizeRelevancy(inOverlayScrollbarSizeRelevancy) | 624 , overlayScrollbarSizeRelevancy(inOverlayScrollbarSizeRelevancy) |
| 623 , respectOverflowClip(inRespectOverflowClip) | 625 , respectOverflowClip(inRespectOverflowClip) |
| 626 , subPixelAccumulation(inSubPixelAccumulation) |
| 624 { } | 627 { } |
| 625 const RenderLayer* rootLayer; | 628 const RenderLayer* rootLayer; |
| 626 RenderRegion* region; | 629 RenderRegion* region; |
| 627 ClipRectsType clipRectsType; | 630 ClipRectsType clipRectsType; |
| 628 OverlayScrollbarSizeRelevancy overlayScrollbarSizeRelevancy; | 631 OverlayScrollbarSizeRelevancy overlayScrollbarSizeRelevancy; |
| 629 ShouldRespectOverflowClip respectOverflowClip; | 632 ShouldRespectOverflowClip respectOverflowClip; |
| 633 const LayoutSize& subPixelAccumulation; |
| 630 }; | 634 }; |
| 631 | 635 |
| 632 // This method figures out our layerBounds in coordinates relative to | 636 // This method figures out our layerBounds in coordinates relative to |
| 633 // |rootLayer}. It also computes our background and foreground clip rects | 637 // |rootLayer}. It also computes our background and foreground clip rects |
| 634 // for painting/event handling. | 638 // for painting/event handling. |
| 635 // Pass offsetFromRoot if known. | 639 // Pass offsetFromRoot if known. |
| 636 void calculateRects(const ClipRectsContext&, const LayoutRect& paintDirtyRec
t, LayoutRect& layerBounds, | 640 void calculateRects(const ClipRectsContext&, const LayoutRect& paintDirtyRec
t, LayoutRect& layerBounds, |
| 637 ClipRect& backgroundRect, ClipRect& foregroundRect, ClipRect& outlineRec
t, const LayoutPoint* offsetFromRoot = 0) const; | 641 ClipRect& backgroundRect, ClipRect& foregroundRect, ClipRect& outlineRec
t, const LayoutPoint* offsetFromRoot = 0) const; |
| 638 | 642 |
| 639 // Compute and cache clip rects computed with the given layer as the root | 643 // Compute and cache clip rects computed with the given layer as the root |
| (...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 675 IntRect absoluteBoundingBox() const; | 679 IntRect absoluteBoundingBox() const; |
| 676 | 680 |
| 677 // Bounds used for layer overlap testing in RenderLayerCompositor. | 681 // Bounds used for layer overlap testing in RenderLayerCompositor. |
| 678 LayoutRect overlapBounds() const { return overlapBoundsIncludeChildren() ? c
alculateLayerBounds(this) : localBoundingBox(); } | 682 LayoutRect overlapBounds() const { return overlapBoundsIncludeChildren() ? c
alculateLayerBounds(this) : localBoundingBox(); } |
| 679 | 683 |
| 680 // If true, this layer's children are included in its bounds for overlap tes
ting. | 684 // If true, this layer's children are included in its bounds for overlap tes
ting. |
| 681 // We can't rely on the children's positions if this layer has a filter that
could have moved the children's pixels around. | 685 // We can't rely on the children's positions if this layer has a filter that
could have moved the children's pixels around. |
| 682 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer()
->style()->filter().hasFilterThatMovesPixels(); } | 686 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer()
->style()->filter().hasFilterThatMovesPixels(); } |
| 683 | 687 |
| 684 // Can pass offsetFromRoot if known. | 688 // Can pass offsetFromRoot if known. |
| 685 IntRect calculateLayerBounds(const RenderLayer* ancestorLayer, const LayoutP
oint* offsetFromRoot = 0, CalculateLayerBoundsFlags = DefaultCalculateLayerBound
sFlags) const; | 689 LayoutRect calculateLayerBounds(const RenderLayer* ancestorLayer, const Layo
utPoint* offsetFromRoot = 0, CalculateLayerBoundsFlags = DefaultCalculateLayerBo
undsFlags) const; |
| 686 | 690 |
| 687 // WARNING: This method returns the offset for the parent as this is what up
dateLayerPositions expects. | 691 // WARNING: This method returns the offset for the parent as this is what up
dateLayerPositions expects. |
| 688 LayoutPoint computeOffsetFromRoot(bool& hasLayerOffset) const; | 692 LayoutPoint computeOffsetFromRoot(bool& hasLayerOffset) const; |
| 689 | 693 |
| 690 // Return a cached repaint rect, computed relative to the layer renderer's c
ontainerForRepaint. | 694 // Return a cached repaint rect, computed relative to the layer renderer's c
ontainerForRepaint. |
| 691 LayoutRect repaintRect() const { return m_repaintRect; } | 695 LayoutRect repaintRect() const { return m_repaintRect; } |
| 692 LayoutRect repaintRectIncludingNonCompositingDescendants() const; | 696 LayoutRect repaintRectIncludingNonCompositingDescendants() const; |
| 693 | 697 |
| 694 void setRepaintStatus(RepaintStatus status) { m_repaintStatus = status; } | 698 void setRepaintStatus(RepaintStatus status) { m_repaintStatus = status; } |
| 695 | 699 |
| (...skipping 245 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 941 void paintLayer(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags)
; | 945 void paintLayer(GraphicsContext*, const LayerPaintingInfo&, PaintLayerFlags)
; |
| 942 void paintLayerContentsAndReflection(GraphicsContext*, const LayerPaintingIn
fo&, PaintLayerFlags); | 946 void paintLayerContentsAndReflection(GraphicsContext*, const LayerPaintingIn
fo&, PaintLayerFlags); |
| 943 void paintLayerByApplyingTransform(GraphicsContext*, const LayerPaintingInfo
&, PaintLayerFlags, const LayoutPoint& translationOffset = LayoutPoint()); | 947 void paintLayerByApplyingTransform(GraphicsContext*, const LayerPaintingInfo
&, PaintLayerFlags, const LayoutPoint& translationOffset = LayoutPoint()); |
| 944 void paintLayerContents(GraphicsContext*, const LayerPaintingInfo&, PaintLay
erFlags); | 948 void paintLayerContents(GraphicsContext*, const LayerPaintingInfo&, PaintLay
erFlags); |
| 945 void paintList(Vector<RenderLayer*>*, GraphicsContext*, const LayerPaintingI
nfo&, PaintLayerFlags); | 949 void paintList(Vector<RenderLayer*>*, GraphicsContext*, const LayerPaintingI
nfo&, PaintLayerFlags); |
| 946 void paintPaginatedChildLayer(RenderLayer* childLayer, GraphicsContext*, con
st LayerPaintingInfo&, PaintLayerFlags); | 950 void paintPaginatedChildLayer(RenderLayer* childLayer, GraphicsContext*, con
st LayerPaintingInfo&, PaintLayerFlags); |
| 947 void paintChildLayerIntoColumns(RenderLayer* childLayer, GraphicsContext*, c
onst LayerPaintingInfo&, PaintLayerFlags, const Vector<RenderLayer*>& columnLaye
rs, size_t columnIndex); | 951 void paintChildLayerIntoColumns(RenderLayer* childLayer, GraphicsContext*, c
onst LayerPaintingInfo&, PaintLayerFlags, const Vector<RenderLayer*>& columnLaye
rs, size_t columnIndex); |
| 948 | 952 |
| 949 void collectFragments(LayerFragments&, const RenderLayer* rootLayer, RenderR
egion*, const LayoutRect& dirtyRect, | 953 void collectFragments(LayerFragments&, const RenderLayer* rootLayer, RenderR
egion*, const LayoutRect& dirtyRect, |
| 950 ClipRectsType, OverlayScrollbarSizeRelevancy inOverlayScrollbarSizeRelev
ancy = IgnoreOverlayScrollbarSize, | 954 ClipRectsType, OverlayScrollbarSizeRelevancy inOverlayScrollbarSizeRelev
ancy = IgnoreOverlayScrollbarSize, |
| 951 ShouldRespectOverflowClip = RespectOverflowClip, const LayoutPoint* offs
etFromRoot = 0, const LayoutRect* layerBoundingBox = 0); | 955 ShouldRespectOverflowClip = RespectOverflowClip, const LayoutPoint* offs
etFromRoot = 0, |
| 956 const LayoutSize& subPixelAccumulation = LayoutSize(), const LayoutRect*
layerBoundingBox = 0); |
| 952 void updatePaintingInfoForFragments(LayerFragments&, const LayerPaintingInfo
&, PaintLayerFlags, bool shouldPaintContent, const LayoutPoint* offsetFromRoot); | 957 void updatePaintingInfoForFragments(LayerFragments&, const LayerPaintingInfo
&, PaintLayerFlags, bool shouldPaintContent, const LayoutPoint* offsetFromRoot); |
| 953 void paintBackgroundForFragments(const LayerFragments&, GraphicsContext*, Gr
aphicsContext* transparencyLayerContext, | 958 void paintBackgroundForFragments(const LayerFragments&, GraphicsContext*, Gr
aphicsContext* transparencyLayerContext, |
| 954 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con
st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); | 959 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con
st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); |
| 955 void paintForegroundForFragments(const LayerFragments&, GraphicsContext*, Gr
aphicsContext* transparencyLayerContext, | 960 void paintForegroundForFragments(const LayerFragments&, GraphicsContext*, Gr
aphicsContext* transparencyLayerContext, |
| 956 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con
st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer, | 961 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con
st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer, |
| 957 bool selectionOnly, bool forceBlackText); | 962 bool selectionOnly, bool forceBlackText); |
| 958 void paintForegroundForFragmentsWithPhase(PaintPhase, const LayerFragments&,
GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* painti
ngRootForRenderer); | 963 void paintForegroundForFragmentsWithPhase(PaintPhase, const LayerFragments&,
GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* painti
ngRootForRenderer); |
| 959 void paintOutlineForFragments(const LayerFragments&, GraphicsContext*, const
LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); | 964 void paintOutlineForFragments(const LayerFragments&, GraphicsContext*, const
LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); |
| 960 void paintOverflowControlsForFragments(const LayerFragments&, GraphicsContex
t*, const LayerPaintingInfo&); | 965 void paintOverflowControlsForFragments(const LayerFragments&, GraphicsContex
t*, const LayerPaintingInfo&); |
| 961 void paintMaskForFragments(const LayerFragments&, GraphicsContext*, const La
yerPaintingInfo&, RenderObject* paintingRootForRenderer); | 966 void paintMaskForFragments(const LayerFragments&, GraphicsContext*, const La
yerPaintingInfo&, RenderObject* paintingRootForRenderer); |
| (...skipping 378 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1340 | 1345 |
| 1341 } // namespace WebCore | 1346 } // namespace WebCore |
| 1342 | 1347 |
| 1343 #ifndef NDEBUG | 1348 #ifndef NDEBUG |
| 1344 // Outside the WebCore namespace for ease of invocation from gdb. | 1349 // Outside the WebCore namespace for ease of invocation from gdb. |
| 1345 void showLayerTree(const WebCore::RenderLayer*); | 1350 void showLayerTree(const WebCore::RenderLayer*); |
| 1346 void showLayerTree(const WebCore::RenderObject*); | 1351 void showLayerTree(const WebCore::RenderObject*); |
| 1347 #endif | 1352 #endif |
| 1348 | 1353 |
| 1349 #endif // RenderLayer_h | 1354 #endif // RenderLayer_h |
| OLD | NEW |