| 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 741 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 752 EXPECT_EQ_RECT(IntRect(10, 20, 90, 80), platformContext.opaqueRegion().asRec
t()); | 752 EXPECT_EQ_RECT(IntRect(10, 20, 90, 80), platformContext.opaqueRegion().asRec
t()); |
| 753 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 753 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 754 | 754 |
| 755 platformContext.drawIRect(SkIRect::MakeXYWH(50, 0, 50, 100), alphaPaint); | 755 platformContext.drawIRect(SkIRect::MakeXYWH(50, 0, 50, 100), alphaPaint); |
| 756 EXPECT_EQ_RECT(IntRect(10, 20, 40, 80), platformContext.opaqueRegion().asRec
t()); | 756 EXPECT_EQ_RECT(IntRect(10, 20, 40, 80), platformContext.opaqueRegion().asRec
t()); |
| 757 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 757 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 758 } | 758 } |
| 759 | 759 |
| 760 TEST(PlatformContextSkiaTest, trackOpaqueTextTest) | 760 TEST(PlatformContextSkiaTest, trackOpaqueTextTest) |
| 761 { | 761 { |
| 762 int width = 200, height = 200; |
| 762 SkBitmap bitmap; | 763 SkBitmap bitmap; |
| 763 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); | 764 bitmap.setConfig(SkBitmap::kARGB_8888_Config, width, height); |
| 764 bitmap.allocPixels(); | 765 bitmap.allocPixels(); |
| 765 bitmap.eraseColor(0); | 766 bitmap.eraseColor(0); |
| 766 SkCanvas canvas(bitmap); | 767 SkCanvas canvas(bitmap); |
| 768 SkRect textRect = SkRect::MakeWH(width, height); |
| 767 | 769 |
| 768 PlatformContextSkia platformContext(&canvas); | 770 PlatformContextSkia platformContext(&canvas); |
| 769 platformContext.setTrackOpaqueRegion(true); | 771 platformContext.setTrackOpaqueRegion(true); |
| 770 GraphicsContext context(&platformContext); | 772 GraphicsContext context(&platformContext); |
| 771 | 773 |
| 772 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); | 774 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); |
| 773 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); | 775 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); |
| 774 | 776 |
| 775 SkPaint opaquePaint; | 777 SkPaint opaquePaint; |
| 776 opaquePaint.setColor(opaque.rgb()); | 778 opaquePaint.setColor(opaque.rgb()); |
| 777 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode); | 779 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 778 SkPaint alphaPaint; | 780 SkPaint alphaPaint; |
| 779 alphaPaint.setColor(alpha.rgb()); | 781 alphaPaint.setColor(alpha.rgb()); |
| 780 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); | 782 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 781 | 783 |
| 782 SkPoint point = SkPoint::Make(0, 0); | 784 SkPoint point = SkPoint::Make(0, 0); |
| 783 SkScalar pointX = 0; | 785 SkScalar pointX = 0; |
| 784 SkPath path; | 786 SkPath path; |
| 785 path.moveTo(SkPoint::Make(0, 0)); | 787 path.moveTo(SkPoint::Make(0, 0)); |
| 786 path.lineTo(SkPoint::Make(100, 0)); | 788 path.lineTo(SkPoint::Make(100, 0)); |
| 787 | 789 |
| 788 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 790 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 789 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 791 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 790 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 792 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 791 | 793 |
| 792 platformContext.drawPosText("A", 1, &point, opaquePaint); | 794 platformContext.drawPosText("A", 1, &point, textRect, opaquePaint); |
| 793 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 795 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 794 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 796 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 795 | 797 |
| 796 platformContext.drawPosText("A", 1, &point, alphaPaint); | 798 platformContext.drawPosText("A", 1, &point, textRect, alphaPaint); |
| 797 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; | 799 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; |
| 798 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 800 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 799 | 801 |
| 800 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 802 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 801 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 803 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 802 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 804 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 803 | 805 |
| 804 platformContext.drawPosTextH("A", 1, &pointX, 0, opaquePaint); | 806 platformContext.drawPosTextH("A", 1, &pointX, 0, textRect, opaquePaint); |
| 805 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 807 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 806 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 808 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 807 | 809 |
| 808 platformContext.drawPosTextH("A", 1, &pointX, 0, alphaPaint); | 810 platformContext.drawPosTextH("A", 1, &pointX, 0, textRect, alphaPaint); |
| 809 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; | 811 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; |
| 810 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 812 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 811 | 813 |
| 812 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); | 814 context.fillRect(FloatRect(50, 50, 50, 50), opaque, ColorSpaceDeviceRGB, Com
positeSourceOver); |
| 813 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 815 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 814 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 816 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 815 | 817 |
| 816 platformContext.drawTextOnPath("A", 1, path, 0, opaquePaint); | 818 platformContext.drawTextOnPath("A", 1, path, textRect, 0, opaquePaint); |
| 817 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); | 819 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), platformContext.opaqueRegion().asRec
t()); |
| 818 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 820 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 819 | 821 |
| 820 platformContext.drawTextOnPath("A", 1, path, 0, alphaPaint); | 822 platformContext.drawTextOnPath("A", 1, path, textRect, 0, alphaPaint); |
| 821 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; | 823 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), platformContext.opaqueRegion().asRect())
; |
| 822 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); | 824 EXPECT_PIXELS_MATCH(bitmap, platformContext.opaqueRegion().asRect()); |
| 823 } | 825 } |
| 824 | 826 |
| 825 TEST(PlatformContextSkiaTest, trackOpaqueWritePixelsTest) | 827 TEST(PlatformContextSkiaTest, trackOpaqueWritePixelsTest) |
| 826 { | 828 { |
| 827 SkBitmap bitmap; | 829 SkBitmap bitmap; |
| 828 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); | 830 bitmap.setConfig(SkBitmap::kARGB_8888_Config, 200, 200); |
| 829 bitmap.allocPixels(); | 831 bitmap.allocPixels(); |
| 830 bitmap.eraseColor(0); | 832 bitmap.eraseColor(0); |
| (...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1152 path.moveTo(FloatPoint(10, 10)); | 1154 path.moveTo(FloatPoint(10, 10)); |
| 1153 path.addLineTo(FloatPoint(40, 40)); | 1155 path.addLineTo(FloatPoint(40, 40)); |
| 1154 context.strokePath(path); | 1156 context.strokePath(path); |
| 1155 | 1157 |
| 1156 context.endTransparencyLayer(); | 1158 context.endTransparencyLayer(); |
| 1157 EXPECT_EQ_RECT(IntRect(), platformContext.opaqueRegion().asRect()); | 1159 EXPECT_EQ_RECT(IntRect(), platformContext.opaqueRegion().asRect()); |
| 1158 EXPECT_PIXELS_MATCH_EXACT(bitmap, platformContext.opaqueRegion().asRect()); | 1160 EXPECT_PIXELS_MATCH_EXACT(bitmap, platformContext.opaqueRegion().asRect()); |
| 1159 } | 1161 } |
| 1160 | 1162 |
| 1161 } // namespace | 1163 } // namespace |
| OLD | NEW |