Index: third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp |
diff --git a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp |
index 1c9b4b1a167d2ff6371797ca85b2b5c43db51086..6615302bc384935ccbf0152db91d034b18c09b9e 100644 |
--- a/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp |
+++ b/third_party/WebKit/Source/platform/graphics/GraphicsContext.cpp |
@@ -47,7 +47,6 @@ |
#include "third_party/skia/include/core/SkData.h" |
#include "third_party/skia/include/core/SkRRect.h" |
#include "third_party/skia/include/core/SkRefCnt.h" |
-#include "third_party/skia/include/effects/SkGradientShader.h" |
#include "third_party/skia/include/effects/SkLumaColorFilter.h" |
#include "third_party/skia/include/effects/SkPictureImageFilter.h" |
#include "third_party/skia/include/pathops/SkPathOps.h" |
@@ -541,138 +540,6 @@ void GraphicsContext::DrawLine(const IntPoint& point1, const IntPoint& point2) { |
canvas_->drawLine(p1.X(), p1.Y(), p2.X(), p2.Y(), flags); |
} |
-namespace { |
- |
-#if !OS(MACOSX) |
- |
-sk_sp<PaintRecord> RecordMarker( |
- GraphicsContext::DocumentMarkerLineStyle style) { |
- SkColor color = (style == GraphicsContext::kDocumentMarkerGrammarLineStyle) |
- ? SkColorSetRGB(0xC0, 0xC0, 0xC0) |
- : SK_ColorRED; |
- |
- // Record the path equivalent to this legacy pattern: |
- // X o o X o o X |
- // o X o o X o |
- |
- static const float kW = 4; |
- static const float kH = 2; |
- |
- // Adjust the phase such that f' == 0 is "pixel"-centered |
- // (for optimal rasterization at native rez). |
- SkPath path; |
- path.moveTo(kW * -3 / 8, kH * 3 / 4); |
- path.cubicTo(kW * -1 / 8, kH * 3 / 4, |
- kW * -1 / 8, kH * 1 / 4, |
- kW * 1 / 8, kH * 1 / 4); |
- path.cubicTo(kW * 3 / 8, kH * 1 / 4, |
- kW * 3 / 8, kH * 3 / 4, |
- kW * 5 / 8, kH * 3 / 4); |
- path.cubicTo(kW * 7 / 8, kH * 3 / 4, |
- kW * 7 / 8, kH * 1 / 4, |
- kW * 9 / 8, kH * 1 / 4); |
- |
- PaintFlags flags; |
- flags.setAntiAlias(true); |
- flags.setColor(color); |
- flags.setStyle(PaintFlags::kStroke_Style); |
- flags.setStrokeWidth(kH * 1 / 2); |
- |
- PaintRecorder recorder; |
- recorder.beginRecording(kW, kH); |
- recorder.getRecordingCanvas()->drawPath(path, flags); |
- |
- return recorder.finishRecordingAsPicture(); |
-} |
- |
-#else // OS(MACOSX) |
- |
-sk_sp<PaintRecord> RecordMarker( |
- GraphicsContext::DocumentMarkerLineStyle style) { |
- SkColor color = (style == GraphicsContext::kDocumentMarkerGrammarLineStyle) |
- ? SkColorSetRGB(0x6B, 0x6B, 0x6B) |
- : SkColorSetRGB(0xFB, 0x2D, 0x1D); |
- |
- // Match the artwork used by the Mac. |
- static const float kW = 4; |
- static const float kH = 3; |
- static const float kR = 1.5f; |
- |
- // top->bottom translucent gradient. |
- const SkColor colors[2] = { |
- SkColorSetARGB(0x48, |
- SkColorGetR(color), |
- SkColorGetG(color), |
- SkColorGetB(color)), |
- color |
- }; |
- const SkPoint pts[2] = { |
- SkPoint::Make(0, 0), |
- SkPoint::Make(0, 2 * kR) |
- }; |
- |
- PaintFlags flags; |
- flags.setAntiAlias(true); |
- flags.setColor(color); |
- flags.setShader(SkGradientShader::MakeLinear( |
- pts, colors, nullptr, ARRAY_SIZE(colors), SkShader::kClamp_TileMode)); |
- PaintRecorder recorder; |
- recorder.beginRecording(kW, kH); |
- recorder.getRecordingCanvas()->drawCircle(kR, kR, kR, flags); |
- |
- return recorder.finishRecordingAsPicture(); |
-} |
- |
-#endif // OS(MACOSX) |
- |
-} // anonymous ns |
- |
-void GraphicsContext::DrawLineForDocumentMarker(const FloatPoint& pt, |
- float width, |
- DocumentMarkerLineStyle style, |
- float zoom) { |
- if (ContextDisabled()) |
- return; |
- |
- DEFINE_STATIC_LOCAL( |
- PaintRecord*, spelling_marker, |
- (RecordMarker(kDocumentMarkerSpellingLineStyle).release())); |
- DEFINE_STATIC_LOCAL( |
- PaintRecord*, grammar_marker, |
- (RecordMarker(kDocumentMarkerGrammarLineStyle).release())); |
- const auto& marker = style == kDocumentMarkerSpellingLineStyle |
- ? spelling_marker |
- : grammar_marker; |
- |
- // Position already includes zoom and device scale factor. |
- SkScalar origin_x = WebCoreFloatToSkScalar(pt.X()); |
- SkScalar origin_y = WebCoreFloatToSkScalar(pt.Y()); |
- |
-#if OS(MACOSX) |
- // Make sure to draw only complete dots, and finish inside the marked text. |
- width -= fmodf(width, marker->cullRect().width() * zoom); |
-#else |
- // Offset it vertically by 1 so that there's some space under the text. |
- origin_y += 1; |
-#endif |
- |
- const auto rect = SkRect::MakeWH(width, marker->cullRect().height() * zoom); |
- const auto local_matrix = SkMatrix::MakeScale(zoom, zoom); |
- |
- PaintFlags flags; |
- flags.setAntiAlias(true); |
- flags.setShader(WrapSkShader(MakePaintShaderRecord( |
- sk_ref_sp(marker), SkShader::kRepeat_TileMode, SkShader::kClamp_TileMode, |
- &local_matrix, nullptr))); |
- |
- // Apply the origin translation as a global transform. This ensures that the |
- // shader local matrix depends solely on zoom => Skia can reuse the same |
- // cached tile for all markers at a given zoom level. |
- PaintCanvasAutoRestore acr(canvas_, true); |
- canvas_->translate(origin_x, origin_y); |
- canvas_->drawRect(rect, flags); |
-} |
- |
void GraphicsContext::DrawLineForText(const FloatPoint& pt, float width) { |
if (ContextDisabled()) |
return; |