Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(290)

Side by Side Diff: Source/WebKit/chromium/tests/PlatformContextSkiaTest.cpp

Issue 14160005: Track the region where text is painted. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: rebase with TOT Created 7 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698