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

Side by Side Diff: third_party/WebKit/Source/core/paint/ReplacedPainter.cpp

Issue 2392443009: reflow comments in core/paint (Closed)
Patch Set: Created 4 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 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "core/paint/ReplacedPainter.h" 5 #include "core/paint/ReplacedPainter.h"
6 6
7 #include "core/layout/LayoutReplaced.h" 7 #include "core/layout/LayoutReplaced.h"
8 #include "core/layout/api/SelectionState.h" 8 #include "core/layout/api/SelectionState.h"
9 #include "core/layout/svg/LayoutSVGRoot.h" 9 #include "core/layout/svg/LayoutSVGRoot.h"
10 #include "core/paint/BoxPainter.h" 10 #include "core/paint/BoxPainter.h"
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 if (m_layoutReplaced.getSelectionState() == SelectionNone) 63 if (m_layoutReplaced.getSelectionState() == SelectionNone)
64 return; 64 return;
65 65
66 { 66 {
67 Optional<RoundedInnerRectClipper> clipper; 67 Optional<RoundedInnerRectClipper> clipper;
68 bool completelyClippedOut = false; 68 bool completelyClippedOut = false;
69 if (m_layoutReplaced.style()->hasBorderRadius()) { 69 if (m_layoutReplaced.style()->hasBorderRadius()) {
70 if (borderRect.isEmpty()) { 70 if (borderRect.isEmpty()) {
71 completelyClippedOut = true; 71 completelyClippedOut = true;
72 } else if (shouldApplyViewportClip(m_layoutReplaced)) { 72 } else if (shouldApplyViewportClip(m_layoutReplaced)) {
73 // Push a clip if we have a border radius, since we want to round the fo reground content that gets painted. 73 // Push a clip if we have a border radius, since we want to round the
74 // foreground content that gets painted.
74 FloatRoundedRect roundedInnerRect = 75 FloatRoundedRect roundedInnerRect =
75 m_layoutReplaced.style()->getRoundedInnerBorderFor( 76 m_layoutReplaced.style()->getRoundedInnerBorderFor(
76 borderRect, 77 borderRect,
77 LayoutRectOutsets(-(m_layoutReplaced.paddingTop() + 78 LayoutRectOutsets(-(m_layoutReplaced.paddingTop() +
78 m_layoutReplaced.borderTop()), 79 m_layoutReplaced.borderTop()),
79 -(m_layoutReplaced.paddingRight() + 80 -(m_layoutReplaced.paddingRight() +
80 m_layoutReplaced.borderRight()), 81 m_layoutReplaced.borderRight()),
81 -(m_layoutReplaced.paddingBottom() + 82 -(m_layoutReplaced.paddingBottom() +
82 m_layoutReplaced.borderBottom()), 83 m_layoutReplaced.borderBottom()),
83 -(m_layoutReplaced.paddingLeft() + 84 -(m_layoutReplaced.paddingLeft() +
84 m_layoutReplaced.borderLeft())), 85 m_layoutReplaced.borderLeft())),
85 true, true); 86 true, true);
86 87
87 clipper.emplace(m_layoutReplaced, paintInfo, borderRect, 88 clipper.emplace(m_layoutReplaced, paintInfo, borderRect,
88 roundedInnerRect, ApplyToDisplayList); 89 roundedInnerRect, ApplyToDisplayList);
89 } 90 }
90 } 91 }
91 92
92 if (!completelyClippedOut) { 93 if (!completelyClippedOut) {
93 if (paintInfo.phase == PaintPhaseClippingMask) { 94 if (paintInfo.phase == PaintPhaseClippingMask) {
94 BoxPainter(m_layoutReplaced) 95 BoxPainter(m_layoutReplaced)
95 .paintClippingMask(paintInfo, adjustedPaintOffset); 96 .paintClippingMask(paintInfo, adjustedPaintOffset);
96 } else { 97 } else {
97 m_layoutReplaced.paintReplaced(paintInfo, adjustedPaintOffset); 98 m_layoutReplaced.paintReplaced(paintInfo, adjustedPaintOffset);
98 } 99 }
99 } 100 }
100 } 101 }
101 102
102 // The selection tint never gets clipped by border-radius rounding, since we w ant it to run right up to the edges of 103 // The selection tint never gets clipped by border-radius rounding, since we
103 // surrounding content. 104 // want it to run right up to the edges of surrounding content.
104 bool drawSelectionTint = 105 bool drawSelectionTint =
105 paintInfo.phase == PaintPhaseForeground && 106 paintInfo.phase == PaintPhaseForeground &&
106 m_layoutReplaced.getSelectionState() != SelectionNone && 107 m_layoutReplaced.getSelectionState() != SelectionNone &&
107 !paintInfo.isPrinting(); 108 !paintInfo.isPrinting();
108 if (drawSelectionTint && 109 if (drawSelectionTint &&
109 !LayoutObjectDrawingRecorder::useCachedDrawingIfPossible( 110 !LayoutObjectDrawingRecorder::useCachedDrawingIfPossible(
110 paintInfo.context, m_layoutReplaced, DisplayItem::kSelectionTint)) { 111 paintInfo.context, m_layoutReplaced, DisplayItem::kSelectionTint)) {
111 LayoutRect selectionPaintingRect = m_layoutReplaced.localSelectionRect(); 112 LayoutRect selectionPaintingRect = m_layoutReplaced.localSelectionRect();
112 selectionPaintingRect.moveBy(adjustedPaintOffset); 113 selectionPaintingRect.moveBy(adjustedPaintOffset);
113 IntRect selectionPaintingIntRect = 114 IntRect selectionPaintingIntRect =
(...skipping 11 matching lines...) Expand all
125 const PaintInfo& paintInfo, 126 const PaintInfo& paintInfo,
126 const LayoutPoint& adjustedPaintOffset) const { 127 const LayoutPoint& adjustedPaintOffset) const {
127 if (paintInfo.phase != PaintPhaseForeground && 128 if (paintInfo.phase != PaintPhaseForeground &&
128 !shouldPaintSelfOutline(paintInfo.phase) && 129 !shouldPaintSelfOutline(paintInfo.phase) &&
129 paintInfo.phase != PaintPhaseSelection && 130 paintInfo.phase != PaintPhaseSelection &&
130 paintInfo.phase != PaintPhaseMask && 131 paintInfo.phase != PaintPhaseMask &&
131 paintInfo.phase != PaintPhaseClippingMask) 132 paintInfo.phase != PaintPhaseClippingMask)
132 return false; 133 return false;
133 134
134 // If we're invisible or haven't received a layout yet, just bail. 135 // If we're invisible or haven't received a layout yet, just bail.
135 // But if it's an SVG root, there can be children, so we'll check visibility l ater. 136 // But if it's an SVG root, there can be children, so we'll check visibility
137 // later.
136 if (!m_layoutReplaced.isSVGRoot() && 138 if (!m_layoutReplaced.isSVGRoot() &&
137 m_layoutReplaced.style()->visibility() != EVisibility::Visible) 139 m_layoutReplaced.style()->visibility() != EVisibility::Visible)
138 return false; 140 return false;
139 141
140 LayoutRect paintRect(m_layoutReplaced.visualOverflowRect()); 142 LayoutRect paintRect(m_layoutReplaced.visualOverflowRect());
141 paintRect.unite(m_layoutReplaced.localSelectionRect()); 143 paintRect.unite(m_layoutReplaced.localSelectionRect());
142 paintRect.moveBy(adjustedPaintOffset); 144 paintRect.moveBy(adjustedPaintOffset);
143 145
144 if (!paintInfo.cullRect().intersectsCullRect(paintRect)) 146 if (!paintInfo.cullRect().intersectsCullRect(paintRect))
145 return false; 147 return false;
146 148
147 return true; 149 return true;
148 } 150 }
149 151
150 } // namespace blink 152 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698