| 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 | 752 |
| 753 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver); | 753 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver); |
| 754 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 754 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 755 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 755 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 756 | 756 |
| 757 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver); | 757 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver); |
| 758 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); | 758 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); |
| 759 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 759 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 760 } | 760 } |
| 761 | 761 |
| 762 static inline void writePixels(GraphicsContext* context, const SkBitmap& bm, int
x, int y) |
| 763 { |
| 764 SkAutoLockPixels locker(bm); |
| 765 context->writePixels(bm.info(), bm.getPixels(), bm.rowBytes(), x, y); |
| 766 } |
| 767 |
| 762 TEST(GraphicsContextTest, trackOpaqueWritePixelsTest) | 768 TEST(GraphicsContextTest, trackOpaqueWritePixelsTest) |
| 763 { | 769 { |
| 764 SkBitmap bitmap; | 770 SkBitmap bitmap; |
| 765 bitmap.allocN32Pixels(200, 200); | 771 bitmap.allocN32Pixels(200, 200); |
| 766 bitmap.eraseColor(0); | 772 bitmap.eraseColor(0); |
| 767 SkCanvas canvas(bitmap); | 773 SkCanvas canvas(bitmap); |
| 768 | 774 |
| 769 GraphicsContext context(&canvas); | 775 GraphicsContext context(&canvas); |
| 770 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); | 776 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); |
| 771 | 777 |
| 772 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); | 778 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); |
| 773 | 779 |
| 774 SkBitmap opaqueBitmap; | 780 SkBitmap opaqueBitmap; |
| 775 opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */); | 781 opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */); |
| 776 for (int y = 0; y < opaqueBitmap.height(); ++y) | 782 for (int y = 0; y < opaqueBitmap.height(); ++y) |
| 777 for (int x = 0; x < opaqueBitmap.width(); ++x) | 783 for (int x = 0; x < opaqueBitmap.width(); ++x) |
| 778 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; | 784 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; |
| 779 | 785 |
| 780 SkBitmap alphaBitmap; | 786 SkBitmap alphaBitmap; |
| 781 alphaBitmap.allocN32Pixels(10, 10); | 787 alphaBitmap.allocN32Pixels(10, 10); |
| 782 for (int y = 0; y < alphaBitmap.height(); ++y) | 788 for (int y = 0; y < alphaBitmap.height(); ++y) |
| 783 for (int x = 0; x < alphaBitmap.width(); ++x) | 789 for (int x = 0; x < alphaBitmap.width(); ++x) |
| 784 *alphaBitmap.getAddr32(x, y) = 0x00000000; | 790 *alphaBitmap.getAddr32(x, y) = 0x00000000; |
| 785 | 791 |
| 786 SkPaint paint; | 792 SkPaint paint; |
| 787 paint.setXfermodeMode(SkXfermode::kSrc_Mode); | 793 paint.setXfermodeMode(SkXfermode::kSrc_Mode); |
| 788 | 794 |
| 789 context.writePixels(opaqueBitmap, 50, 50); | 795 writePixels(&context, opaqueBitmap, 50, 50); |
| 790 EXPECT_EQ_RECT(IntRect(50, 50, 10, 10), context.opaqueRegion().asRect()); | 796 EXPECT_EQ_RECT(IntRect(50, 50, 10, 10), context.opaqueRegion().asRect()); |
| 791 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 797 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 792 | 798 |
| 793 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); | 799 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); |
| 794 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); | 800 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); |
| 795 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 801 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 796 | 802 |
| 797 context.writePixels(alphaBitmap, 10, 0); | 803 writePixels(&context, alphaBitmap, 10, 0); |
| 798 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); | 804 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); |
| 799 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 805 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 800 | 806 |
| 801 context.writePixels(alphaBitmap, 10, 1); | 807 writePixels(&context, alphaBitmap, 10, 1); |
| 802 EXPECT_EQ_RECT(IntRect(10, 11, 90, 89), context.opaqueRegion().asRect()); | 808 EXPECT_EQ_RECT(IntRect(10, 11, 90, 89), context.opaqueRegion().asRect()); |
| 803 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 809 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 804 | 810 |
| 805 context.writePixels(alphaBitmap, 0, 10); | 811 writePixels(&context, alphaBitmap, 0, 10); |
| 806 EXPECT_EQ_RECT(IntRect(10, 11, 90, 89), context.opaqueRegion().asRect()); | 812 EXPECT_EQ_RECT(IntRect(10, 11, 90, 89), context.opaqueRegion().asRect()); |
| 807 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 813 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 808 | 814 |
| 809 context.writePixels(alphaBitmap, 1, 10); | 815 writePixels(&context, alphaBitmap, 1, 10); |
| 810 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect()); | 816 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect()); |
| 811 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); | 817 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); |
| 812 } | 818 } |
| 813 | 819 |
| 814 TEST(GraphicsContextTest, trackOpaqueDrawBitmapTest) | 820 TEST(GraphicsContextTest, trackOpaqueDrawBitmapTest) |
| 815 { | 821 { |
| 816 SkBitmap bitmap; | 822 SkBitmap bitmap; |
| 817 bitmap.allocN32Pixels(200, 200); | 823 bitmap.allocN32Pixels(200, 200); |
| 818 bitmap.eraseColor(0); | 824 bitmap.eraseColor(0); |
| 819 SkCanvas canvas(bitmap); | 825 SkCanvas canvas(bitmap); |
| (...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1208 // endRecording finally makes the picture accessible | 1214 // endRecording finally makes the picture accessible |
| 1209 RefPtr<DisplayList> dl = context.endRecording(); | 1215 RefPtr<DisplayList> dl = context.endRecording(); |
| 1210 SkPicture* pic = dl->picture(); | 1216 SkPicture* pic = dl->picture(); |
| 1211 EXPECT_TRUE(pic); | 1217 EXPECT_TRUE(pic); |
| 1212 EXPECT_EQ(1, pic->getRefCnt()); | 1218 EXPECT_EQ(1, pic->getRefCnt()); |
| 1213 | 1219 |
| 1214 context.endRecording(); | 1220 context.endRecording(); |
| 1215 } | 1221 } |
| 1216 | 1222 |
| 1217 } // namespace | 1223 } // namespace |
| OLD | NEW |