| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. | 2 * Copyright (C) 2003, 2004, 2005, 2006, 2009 Apple Inc. All rights reserved. |
| 3 * Copyright (C) 2013 Google Inc. All rights reserved. | 3 * Copyright (C) 2013 Google Inc. All rights reserved. |
| 4 * | 4 * |
| 5 * Redistribution and use in source and binary forms, with or without | 5 * Redistribution and use in source and binary forms, with or without |
| 6 * modification, are permitted provided that the following conditions | 6 * modification, are permitted provided that the following conditions |
| 7 * are met: | 7 * are met: |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. Redistributions of source code must retain the above copyright |
| 9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
| 10 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 28 matching lines...) Expand all Loading... |
| 39 #include "skia/ext/platform_canvas.h" | 39 #include "skia/ext/platform_canvas.h" |
| 40 #include "third_party/skia/include/core/SkAnnotation.h" | 40 #include "third_party/skia/include/core/SkAnnotation.h" |
| 41 #include "third_party/skia/include/core/SkColorFilter.h" | 41 #include "third_party/skia/include/core/SkColorFilter.h" |
| 42 #include "third_party/skia/include/core/SkData.h" | 42 #include "third_party/skia/include/core/SkData.h" |
| 43 #include "third_party/skia/include/core/SkPicture.h" | 43 #include "third_party/skia/include/core/SkPicture.h" |
| 44 #include "third_party/skia/include/core/SkPictureRecorder.h" | 44 #include "third_party/skia/include/core/SkPictureRecorder.h" |
| 45 #include "third_party/skia/include/core/SkRRect.h" | 45 #include "third_party/skia/include/core/SkRRect.h" |
| 46 #include "third_party/skia/include/core/SkRefCnt.h" | 46 #include "third_party/skia/include/core/SkRefCnt.h" |
| 47 #include "third_party/skia/include/effects/SkLumaColorFilter.h" | 47 #include "third_party/skia/include/effects/SkLumaColorFilter.h" |
| 48 #include "third_party/skia/include/effects/SkPictureImageFilter.h" | 48 #include "third_party/skia/include/effects/SkPictureImageFilter.h" |
| 49 #include "third_party/skia/include/pathops/SkPathOps.h" |
| 49 #include "third_party/skia/include/utils/SkNullCanvas.h" | 50 #include "third_party/skia/include/utils/SkNullCanvas.h" |
| 50 #include "wtf/Assertions.h" | 51 #include "wtf/Assertions.h" |
| 51 #include "wtf/MathExtras.h" | 52 #include "wtf/MathExtras.h" |
| 52 #include <memory> | 53 #include <memory> |
| 53 | 54 |
| 54 namespace blink { | 55 namespace blink { |
| 55 | 56 |
| 56 GraphicsContext::GraphicsContext(PaintController& paintController, | 57 GraphicsContext::GraphicsContext(PaintController& paintController, |
| 57 DisabledMode disableContextOrPainting, | 58 DisabledMode disableContextOrPainting, |
| 58 SkMetaData* metaData) | 59 SkMetaData* metaData) |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 637 | 638 |
| 638 if (deviceScaleFactor == 2) { | 639 if (deviceScaleFactor == 2) { |
| 639 save(); | 640 save(); |
| 640 scale(0.5, 0.5); | 641 scale(0.5, 0.5); |
| 641 } | 642 } |
| 642 drawRect(rect, paint); | 643 drawRect(rect, paint); |
| 643 if (deviceScaleFactor == 2) | 644 if (deviceScaleFactor == 2) |
| 644 restore(); | 645 restore(); |
| 645 } | 646 } |
| 646 | 647 |
| 647 void GraphicsContext::drawLineForText(const FloatPoint& pt, | 648 void GraphicsContext::drawLineForText(const FloatPoint& pt, float width) { |
| 648 float width, | |
| 649 bool printing) { | |
| 650 if (contextDisabled()) | 649 if (contextDisabled()) |
| 651 return; | 650 return; |
| 652 | 651 |
| 653 if (width <= 0) | 652 if (width <= 0) |
| 654 return; | 653 return; |
| 655 | 654 |
| 656 SkPaint paint; | 655 SkPaint paint; |
| 657 switch (getStrokeStyle()) { | 656 switch (getStrokeStyle()) { |
| 658 case NoStroke: | 657 case NoStroke: |
| 659 case SolidStroke: | 658 case SolidStroke: |
| 660 case DoubleStroke: | 659 case DoubleStroke: { |
| 661 case WavyStroke: { | |
| 662 int thickness = SkMax32(static_cast<int>(strokeThickness()), 1); | 660 int thickness = SkMax32(static_cast<int>(strokeThickness()), 1); |
| 663 SkRect r; | 661 SkRect r; |
| 664 r.fLeft = WebCoreFloatToSkScalar(pt.x()); | 662 r.fLeft = WebCoreFloatToSkScalar(pt.x()); |
| 665 // Avoid anti-aliasing lines. Currently, these are always horizontal. | 663 // Avoid anti-aliasing lines. Currently, these are always horizontal. |
| 666 // Round to nearest pixel to match text and other content. | 664 // Round to nearest pixel to match text and other content. |
| 667 r.fTop = WebCoreFloatToSkScalar(floorf(pt.y() + 0.5f)); | 665 r.fTop = WebCoreFloatToSkScalar(floorf(pt.y() + 0.5f)); |
| 668 r.fRight = r.fLeft + WebCoreFloatToSkScalar(width); | 666 r.fRight = r.fLeft + WebCoreFloatToSkScalar(width); |
| 669 r.fBottom = r.fTop + SkIntToScalar(thickness); | 667 r.fBottom = r.fTop + SkIntToScalar(thickness); |
| 670 paint = immutableState()->fillPaint(); | 668 paint = immutableState()->fillPaint(); |
| 671 // Text lines are drawn using the stroke color. | 669 // Text lines are drawn using the stroke color. |
| 672 paint.setColor(strokeColor().rgb()); | 670 paint.setColor(strokeColor().rgb()); |
| 673 drawRect(r, paint); | 671 drawRect(r, paint); |
| 674 return; | 672 return; |
| 675 } | 673 } |
| 676 case DottedStroke: | 674 case DottedStroke: |
| 677 case DashedStroke: { | 675 case DashedStroke: { |
| 678 int y = floorf(pt.y() + std::max<float>(strokeThickness() / 2.0f, 0.5f)); | 676 int y = floorf(pt.y() + std::max<float>(strokeThickness() / 2.0f, 0.5f)); |
| 679 drawLine(IntPoint(pt.x(), y), IntPoint(pt.x() + width, y)); | 677 drawLine(IntPoint(pt.x(), y), IntPoint(pt.x() + width, y)); |
| 680 return; | 678 return; |
| 681 } | 679 } |
| 680 case WavyStroke: |
| 681 default: |
| 682 break; |
| 682 } | 683 } |
| 683 | 684 |
| 684 ASSERT_NOT_REACHED(); | 685 ASSERT_NOT_REACHED(); |
| 685 } | 686 } |
| 686 | 687 |
| 687 // Draws a filled rectangle with a stroked border. | 688 // Draws a filled rectangle with a stroked border. |
| 688 void GraphicsContext::drawRect(const IntRect& rect) { | 689 void GraphicsContext::drawRect(const IntRect& rect) { |
| 689 if (contextDisabled()) | 690 if (contextDisabled()) |
| 690 return; | 691 return; |
| 691 | 692 |
| (...skipping 730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1422 static const SkPMColor colors[] = { | 1423 static const SkPMColor colors[] = { |
| 1423 SkPreMultiplyARGB(0x60, 0xFF, 0x00, 0x00), // More transparent red | 1424 SkPreMultiplyARGB(0x60, 0xFF, 0x00, 0x00), // More transparent red |
| 1424 SkPreMultiplyARGB(0x60, 0xC0, 0xC0, 0xC0) // More transparent gray | 1425 SkPreMultiplyARGB(0x60, 0xC0, 0xC0, 0xC0) // More transparent gray |
| 1425 }; | 1426 }; |
| 1426 | 1427 |
| 1427 return colors[index]; | 1428 return colors[index]; |
| 1428 } | 1429 } |
| 1429 #endif | 1430 #endif |
| 1430 | 1431 |
| 1431 } // namespace blink | 1432 } // namespace blink |
| OLD | NEW |