Chromium Code Reviews| Index: third_party/WebKit/Source/core/paint/TextPainter.cpp |
| diff --git a/third_party/WebKit/Source/core/paint/TextPainter.cpp b/third_party/WebKit/Source/core/paint/TextPainter.cpp |
| index 274b395f30f443bc2f389e92c5abbd614ea0a6f6..77d78da1d921a6c2d66b2262c230c1860912371c 100644 |
| --- a/third_party/WebKit/Source/core/paint/TextPainter.cpp |
| +++ b/third_party/WebKit/Source/core/paint/TextPainter.cpp |
| @@ -252,6 +252,35 @@ void TextPainter::paintInternal(unsigned startOffset, |
| } |
| } |
| +void TextPainter::clipDecorationsStripe(float upper, |
| + float stripeWidth, |
| + float dilation) { |
| + TextRunPaintInfo textRunPaintInfo(m_run); |
| + |
| + if (!m_run.length()) |
| + return; |
| + |
| + SkScalar lineBounds[] = {upper, upper + stripeWidth}; |
| + const int numIntervals = m_graphicsContext.getTextIntercepts( |
| + m_font, textRunPaintInfo, lineBounds, nullptr); |
| + SkScalar intervals[numIntervals]; |
| + m_graphicsContext.getTextIntercepts(m_font, textRunPaintInfo, lineBounds, |
| + intervals); |
| + |
| + for (int i = 0; i < numIntervals; i += 2) { |
|
eae
2016/10/13 18:18:54
Do we want to assert that the number of intervals
drott
2016/10/13 18:39:29
Makes sense, adding an assert.
|
| + FloatPoint clipOrigin(m_textOrigin); |
| + FloatRect clipRect(clipOrigin + FloatPoint(intervals[i], upper), |
| + FloatSize(intervals[i + 1] - intervals[i], stripeWidth)); |
| + clipRect.inflateX(dilation); |
| + clipRect = enclosingIntRect(clipRect); |
| + m_graphicsContext.setFillColor(Color(127, 0, 0, 127)); |
|
eae
2016/10/13 18:18:54
Hard coded color? This is temporary, right?
drott
2016/10/13 18:39:29
Yep, the whole paintRect can go, and no color sett
|
| + FloatRect paintClipRect(clipRect); |
| + paintClipRect.inflateX(clipRect.width() * -0.25); |
|
eae
2016/10/13 18:18:54
Please add a comment explaining the 0.25 value.
|
| + // m_graphicsContext.fillRect(paintClipRect); |
| + m_graphicsContext.clipOut(clipRect); |
| + } |
| +} |
| + |
| void TextPainter::paintEmphasisMarkForCombinedText() { |
| ASSERT(m_combinedText); |
| TextRun placeholderTextRun(&ideographicFullStopCharacter, 1); |