| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2012 Google Inc. All rights reserved. | 2 * Copyright (C) 2012 Google Inc. All rights reserved. |
| 3 * | 3 * |
| 4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
| 5 * modification, are permitted provided that the following conditions | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * 1. Redistributions of source code must retain the above copyright | 7 * 1. Redistributions of source code must retain the above copyright |
| 8 * notice, this list of conditions and the following disclaimer. | 8 * notice, this list of conditions and the following disclaimer. |
| 9 * 2. Redistributions in binary form must reproduce the above copyright | 9 * 2. Redistributions in binary form must reproduce the above copyright |
| 10 * notice, this list of conditions and the following disclaimer in the | 10 * notice, this list of conditions and the following disclaimer in the |
| (...skipping 687 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 698 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect()); | 698 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect()); |
| 699 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 699 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 700 | 700 |
| 701 context.fillRoundedRect(IntRect(30, 0, 70, 50), radii, radii, radii, radii,
opaque, ColorSpaceDeviceRGB); | 701 context.fillRoundedRect(IntRect(30, 0, 70, 50), radii, radii, radii, radii,
opaque, ColorSpaceDeviceRGB); |
| 702 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect()); | 702 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect()); |
| 703 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 703 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 704 } | 704 } |
| 705 | 705 |
| 706 TEST(PlatformContextSkiaTest, trackOpaqueTextTest) | 706 TEST(PlatformContextSkiaTest, trackOpaqueTextTest) |
| 707 { | 707 { |
| 708 int width = 200, height = 200; |
| 708 SkBitmap bitmap; | 709 SkBitmap bitmap; |
| 709 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); | 710 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
| 710 bitmap.allocPixels(); | 711 bitmap.allocPixels(); |
| 711 bitmap.eraseColor(0); | 712 bitmap.eraseColor(0); |
| 712 SkCanvas canvas(bitmap); | 713 SkCanvas canvas(bitmap); |
| 714 SkRect textRect = SkRect::MakeWH(width, height); |
| 713 | 715 |
| 714 GraphicsContext context(&canvas); | 716 GraphicsContext context(&canvas); |
| 715 context.setTrackOpaqueRegion(true); | 717 context.setTrackOpaqueRegion(true); |
| 716 | 718 |
| 717 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); | 719 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); |
| 718 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); | 720 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); |
| 719 | 721 |
| 720 SkPaint opaquePaint; | 722 SkPaint opaquePaint; |
| 721 opaquePaint.setColor(opaque.rgb()); | 723 opaquePaint.setColor(opaque.rgb()); |
| 722 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode); | 724 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 723 SkPaint alphaPaint; | 725 SkPaint alphaPaint; |
| 724 alphaPaint.setColor(alpha.rgb()); | 726 alphaPaint.setColor(alpha.rgb()); |
| 725 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); | 727 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 726 | 728 |
| 727 SkPoint point = SkPoint::Make(0, 0); | 729 SkPoint point = SkPoint::Make(0, 0); |
| 728 SkScalar pointX = 0; | 730 SkScalar pointX = 0; |
| 729 SkPath path; | 731 SkPath path; |
| 730 path.moveTo(SkPoint::Make(0, 0)); | 732 path.moveTo(SkPoint::Make(0, 0)); |
| 731 path.lineTo(SkPoint::Make(100, 0)); | 733 path.lineTo(SkPoint::Make(100, 0)); |
| 732 | 734 |
| 733 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 735 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 734 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 736 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 735 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 737 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 736 | 738 |
| 737 context.drawPosText("A", 1, &point, opaquePaint); | 739 context.drawPosText("A", 1, &point, textRect, opaquePaint); |
| 738 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 740 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 739 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 741 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 740 | 742 |
| 741 context.drawPosText("A", 1, &point, alphaPaint); | 743 context.drawPosText("A", 1, &point, textRect, alphaPaint); |
| 742 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); | 744 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); |
| 743 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 745 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 744 | 746 |
| 745 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 747 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 746 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 748 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 747 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 749 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 748 | 750 |
| 749 context.drawPosTextH("A", 1, &pointX, 0, opaquePaint); | 751 context.drawPosTextH("A", 1, &pointX, 0, textRect, opaquePaint); |
| 750 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 752 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 751 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 753 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 752 | 754 |
| 753 context.drawPosTextH("A", 1, &pointX, 0, alphaPaint); | 755 context.drawPosTextH("A", 1, &pointX, 0, textRect, alphaPaint); |
| 754 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); | 756 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); |
| 755 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 757 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 756 | 758 |
| 757 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 759 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 758 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 760 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 759 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 761 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 760 | 762 |
| 761 context.drawTextOnPath("A", 1, path, 0, opaquePaint); | 763 context.drawTextOnPath("A", 1, path, textRect, 0, opaquePaint); |
| 762 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 764 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 763 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 765 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 764 | 766 |
| 765 context.drawTextOnPath("A", 1, path, 0, alphaPaint); | 767 context.drawTextOnPath("A", 1, path, textRect, 0, alphaPaint); |
| 766 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); | 768 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); |
| 767 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 769 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 768 } | 770 } |
| 769 | 771 |
| 770 TEST(PlatformContextSkiaTest, trackOpaqueWritePixelsTest) | 772 TEST(PlatformContextSkiaTest, trackOpaqueWritePixelsTest) |
| 771 { | 773 { |
| 772 SkBitmap bitmap; | 774 SkBitmap bitmap; |
| 773 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); | 775 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); |
| 774 bitmap.allocPixels(); | 776 bitmap.allocPixels(); |
| 775 bitmap.eraseColor(0); | 777 bitmap.eraseColor(0); |
| (...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1090 path.moveTo(FloatPoint(10, 10)); | 1092 path.moveTo(FloatPoint(10, 10)); |
| 1091 path.addLineTo(FloatPoint(40, 40)); | 1093 path.addLineTo(FloatPoint(40, 40)); |
| 1092 context.strokePath(path); | 1094 context.strokePath(path); |
| 1093 | 1095 |
| 1094 context.endTransparencyLayer(); | 1096 context.endTransparencyLayer(); |
| 1095 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); | 1097 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); |
| 1096 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect()); | 1098 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect()); |
| 1097 } | 1099 } |
| 1098 | 1100 |
| 1099 } // namespace | 1101 } // namespace |
| OLD | NEW |