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

Side by Side Diff: Source/platform/graphics/GraphicsContextTest.cpp

Issue 413313002: Treat calls to CanvasRenderingContext2D.clearRect as operations that clear the canvas (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: regionTrackingEnabled Created 6 years, 4 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 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 } 67 }
68 68
69 TEST(GraphicsContextTest, trackOpaqueTest) 69 TEST(GraphicsContextTest, trackOpaqueTest)
70 { 70 {
71 SkBitmap bitmap; 71 SkBitmap bitmap;
72 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 72 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
73 bitmap.eraseColor(0); 73 bitmap.eraseColor(0);
74 SkCanvas canvas(bitmap); 74 SkCanvas canvas(bitmap);
75 75
76 GraphicsContext context(&canvas); 76 GraphicsContext context(&canvas);
77 context.setTrackOpaqueRegion(true); 77 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
78 78
79 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 79 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
80 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 80 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
81 81
82 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); 82 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver);
83 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 83 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
84 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 84 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
85 85
86 context.fillRect(FloatRect(10, 10, 90, 90), alpha, CompositeSourceOver); 86 context.fillRect(FloatRect(10, 10, 90, 90), alpha, CompositeSourceOver);
87 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 87 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 124 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
125 } 125 }
126 126
127 TEST(GraphicsContextTest, trackOpaqueClipTest) 127 TEST(GraphicsContextTest, trackOpaqueClipTest)
128 { 128 {
129 SkBitmap bitmap; 129 SkBitmap bitmap;
130 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 130 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
131 SkCanvas canvas(bitmap); 131 SkCanvas canvas(bitmap);
132 132
133 GraphicsContext context(&canvas); 133 GraphicsContext context(&canvas);
134 context.setTrackOpaqueRegion(true); 134 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
135 135
136 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 136 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
137 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 137 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
138 138
139 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); 139 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver);
140 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 140 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
141 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 141 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
142 142
143 context.clearRect(FloatRect(10, 10, 90, 90)); 143 context.clearRect(FloatRect(10, 10, 90, 90));
144 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 144 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after
219 } 219 }
220 220
221 TEST(GraphicsContextTest, trackImageMask) 221 TEST(GraphicsContextTest, trackImageMask)
222 { 222 {
223 SkBitmap bitmap; 223 SkBitmap bitmap;
224 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 224 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
225 bitmap.eraseColor(0); 225 bitmap.eraseColor(0);
226 SkCanvas canvas(bitmap); 226 SkCanvas canvas(bitmap);
227 227
228 GraphicsContext context(&canvas); 228 GraphicsContext context(&canvas);
229 context.setTrackOpaqueRegion(true); 229 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
230 230
231 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 231 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
232 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 232 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
233 233
234 // Image masks are done by drawing a bitmap into a transparency layer that u ses DstIn to mask 234 // Image masks are done by drawing a bitmap into a transparency layer that u ses DstIn to mask
235 // out a transparency layer below that is filled with the mask color. In the end this should 235 // out a transparency layer below that is filled with the mask color. In the end this should
236 // not be marked opaque. 236 // not be marked opaque.
237 237
238 context.setCompositeOperation(CompositeSourceOver); 238 context.setCompositeOperation(CompositeSourceOver);
239 context.beginTransparencyLayer(1); 239 context.beginTransparencyLayer(1);
(...skipping 16 matching lines...) Expand all
256 } 256 }
257 257
258 TEST(GraphicsContextTest, trackImageMaskWithOpaqueRect) 258 TEST(GraphicsContextTest, trackImageMaskWithOpaqueRect)
259 { 259 {
260 SkBitmap bitmap; 260 SkBitmap bitmap;
261 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 261 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
262 bitmap.eraseColor(0); 262 bitmap.eraseColor(0);
263 SkCanvas canvas(bitmap); 263 SkCanvas canvas(bitmap);
264 264
265 GraphicsContext context(&canvas); 265 GraphicsContext context(&canvas);
266 context.setTrackOpaqueRegion(true); 266 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
267 267
268 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 268 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
269 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 269 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
270 270
271 // Image masks are done by drawing a bitmap into a transparency layer that u ses DstIn to mask 271 // Image masks are done by drawing a bitmap into a transparency layer that u ses DstIn to mask
272 // out a transparency layer below that is filled with the mask color. In the end this should 272 // out a transparency layer below that is filled with the mask color. In the end this should
273 // not be marked opaque. 273 // not be marked opaque.
274 274
275 context.setCompositeOperation(CompositeSourceOver); 275 context.setCompositeOperation(CompositeSourceOver);
276 context.beginTransparencyLayer(1); 276 context.beginTransparencyLayer(1);
(...skipping 18 matching lines...) Expand all
295 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect()); 295 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect());
296 } 296 }
297 297
298 TEST(GraphicsContextTest, trackOpaqueJoinTest) 298 TEST(GraphicsContextTest, trackOpaqueJoinTest)
299 { 299 {
300 SkBitmap bitmap; 300 SkBitmap bitmap;
301 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 301 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
302 SkCanvas canvas(bitmap); 302 SkCanvas canvas(bitmap);
303 303
304 GraphicsContext context(&canvas); 304 GraphicsContext context(&canvas);
305 context.setTrackOpaqueRegion(true); 305 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
306 306
307 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 307 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
308 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 308 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
309 309
310 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver); 310 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver);
311 EXPECT_EQ_RECT(IntRect(20, 20, 10, 10), context.opaqueRegion().asRect()); 311 EXPECT_EQ_RECT(IntRect(20, 20, 10, 10), context.opaqueRegion().asRect());
312 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 312 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
313 313
314 // Doesn't join 314 // Doesn't join
315 context.fillRect(FloatRect(31, 20, 10, 10), opaque, CompositeSourceOver); 315 context.fillRect(FloatRect(31, 20, 10, 10), opaque, CompositeSourceOver);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
353 } 353 }
354 354
355 TEST(GraphicsContextTest, trackOpaqueLineTest) 355 TEST(GraphicsContextTest, trackOpaqueLineTest)
356 { 356 {
357 SkBitmap bitmap; 357 SkBitmap bitmap;
358 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 358 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
359 bitmap.eraseColor(0); 359 bitmap.eraseColor(0);
360 SkCanvas canvas(bitmap); 360 SkCanvas canvas(bitmap);
361 361
362 GraphicsContext context(&canvas); 362 GraphicsContext context(&canvas);
363 context.setTrackOpaqueRegion(true); 363 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
364 364
365 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 365 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
366 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 366 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
367 367
368 context.setShouldAntialias(false); 368 context.setShouldAntialias(false);
369 context.setMiterLimit(0); 369 context.setMiterLimit(0);
370 context.setStrokeThickness(4); 370 context.setStrokeThickness(4);
371 context.setLineCap(SquareCap); 371 context.setLineCap(SquareCap);
372 context.setStrokeStyle(SolidStroke); 372 context.setStrokeStyle(SolidStroke);
373 context.setCompositeOperation(CompositeSourceOver); 373 context.setCompositeOperation(CompositeSourceOver);
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
446 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 446 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
447 } 447 }
448 448
449 TEST(GraphicsContextTest, trackOpaquePathTest) 449 TEST(GraphicsContextTest, trackOpaquePathTest)
450 { 450 {
451 SkBitmap bitmap; 451 SkBitmap bitmap;
452 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 452 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
453 SkCanvas canvas(bitmap); 453 SkCanvas canvas(bitmap);
454 454
455 GraphicsContext context(&canvas); 455 GraphicsContext context(&canvas);
456 context.setTrackOpaqueRegion(true); 456 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
457 457
458 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 458 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
459 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 459 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
460 460
461 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); 461 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver);
462 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 462 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
463 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 463 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
464 464
465 context.setShouldAntialias(false); 465 context.setShouldAntialias(false);
466 context.setMiterLimit(1); 466 context.setMiterLimit(1);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
504 path.clear(); 504 path.clear();
505 } 505 }
506 506
507 TEST(GraphicsContextTest, trackOpaqueImageTest) 507 TEST(GraphicsContextTest, trackOpaqueImageTest)
508 { 508 {
509 SkBitmap bitmap; 509 SkBitmap bitmap;
510 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 510 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
511 SkCanvas canvas(bitmap); 511 SkCanvas canvas(bitmap);
512 512
513 GraphicsContext context(&canvas); 513 GraphicsContext context(&canvas);
514 context.setTrackOpaqueRegion(true); 514 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
515 515
516 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 516 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
517 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 517 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
518 518
519 SkBitmap opaqueBitmap; 519 SkBitmap opaqueBitmap;
520 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */)); 520 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */));
521 521
522 for (int y = 0; y < opaqueBitmap.height(); ++y) 522 for (int y = 0; y < opaqueBitmap.height(); ++y)
523 for (int x = 0; x < opaqueBitmap.width(); ++x) 523 for (int x = 0; x < opaqueBitmap.width(); ++x)
524 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; 524 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF;
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
587 } 587 }
588 588
589 TEST(GraphicsContextTest, trackOpaqueOvalTest) 589 TEST(GraphicsContextTest, trackOpaqueOvalTest)
590 { 590 {
591 SkBitmap bitmap; 591 SkBitmap bitmap;
592 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 592 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
593 bitmap.eraseColor(0); 593 bitmap.eraseColor(0);
594 SkCanvas canvas(bitmap); 594 SkCanvas canvas(bitmap);
595 595
596 GraphicsContext context(&canvas); 596 GraphicsContext context(&canvas);
597 context.setTrackOpaqueRegion(true); 597 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
598 598
599 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 599 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
600 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 600 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
601 601
602 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); 602 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect());
603 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 603 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
604 604
605 context.fillEllipse(FloatRect(10, 10, 90, 90)); 605 context.fillEllipse(FloatRect(10, 10, 90, 90));
606 context.strokeEllipse(FloatRect(10, 10, 90, 90)); 606 context.strokeEllipse(FloatRect(10, 10, 90, 90));
607 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); 607 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect());
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
642 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 642 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
643 } 643 }
644 644
645 TEST(GraphicsContextTest, trackOpaqueRoundedRectTest) 645 TEST(GraphicsContextTest, trackOpaqueRoundedRectTest)
646 { 646 {
647 SkBitmap bitmap; 647 SkBitmap bitmap;
648 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 648 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
649 SkCanvas canvas(bitmap); 649 SkCanvas canvas(bitmap);
650 650
651 GraphicsContext context(&canvas); 651 GraphicsContext context(&canvas);
652 context.setTrackOpaqueRegion(true); 652 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
653 653
654 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 654 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
655 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 655 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
656 IntSize radii(10, 10); 656 IntSize radii(10, 10);
657 657
658 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); 658 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect());
659 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 659 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
660 660
661 context.fillRoundedRect(IntRect(10, 10, 90, 90), radii, radii, radii, radii, opaque); 661 context.fillRoundedRect(IntRect(10, 10, 90, 90), radii, radii, radii, radii, opaque);
662 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect()); 662 EXPECT_EQ_RECT(IntRect(0, 0, 0, 0), context.opaqueRegion().asRect());
(...skipping 26 matching lines...) Expand all
689 TEST(GraphicsContextTest, trackOpaqueTextTest) 689 TEST(GraphicsContextTest, trackOpaqueTextTest)
690 { 690 {
691 int width = 200, height = 200; 691 int width = 200, height = 200;
692 SkBitmap bitmap; 692 SkBitmap bitmap;
693 ASSERT_TRUE(bitmap.allocN32Pixels(width, height)); 693 ASSERT_TRUE(bitmap.allocN32Pixels(width, height));
694 bitmap.eraseColor(0); 694 bitmap.eraseColor(0);
695 SkCanvas canvas(bitmap); 695 SkCanvas canvas(bitmap);
696 SkRect textRect = SkRect::MakeWH(width, height); 696 SkRect textRect = SkRect::MakeWH(width, height);
697 697
698 GraphicsContext context(&canvas); 698 GraphicsContext context(&canvas);
699 context.setTrackOpaqueRegion(true); 699 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
700 700
701 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 701 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
702 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 702 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
703 703
704 SkPaint opaquePaint; 704 SkPaint opaquePaint;
705 opaquePaint.setColor(opaque.rgb()); 705 opaquePaint.setColor(opaque.rgb());
706 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode); 706 opaquePaint.setXfermodeMode(SkXfermode::kSrc_Mode);
707 SkPaint alphaPaint; 707 SkPaint alphaPaint;
708 alphaPaint.setColor(alpha.rgb()); 708 alphaPaint.setColor(alpha.rgb());
709 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode); 709 alphaPaint.setXfermodeMode(SkXfermode::kSrc_Mode);
(...skipping 22 matching lines...) Expand all
732 } 732 }
733 733
734 TEST(GraphicsContextTest, trackOpaqueWritePixelsTest) 734 TEST(GraphicsContextTest, trackOpaqueWritePixelsTest)
735 { 735 {
736 SkBitmap bitmap; 736 SkBitmap bitmap;
737 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 737 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
738 bitmap.eraseColor(0); 738 bitmap.eraseColor(0);
739 SkCanvas canvas(bitmap); 739 SkCanvas canvas(bitmap);
740 740
741 GraphicsContext context(&canvas); 741 GraphicsContext context(&canvas);
742 context.setTrackOpaqueRegion(true); 742 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
743 743
744 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 744 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
745 745
746 SkBitmap opaqueBitmap; 746 SkBitmap opaqueBitmap;
747 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */)); 747 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */));
748 for (int y = 0; y < opaqueBitmap.height(); ++y) 748 for (int y = 0; y < opaqueBitmap.height(); ++y)
749 for (int x = 0; x < opaqueBitmap.width(); ++x) 749 for (int x = 0; x < opaqueBitmap.width(); ++x)
750 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; 750 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF;
751 751
752 SkBitmap alphaBitmap; 752 SkBitmap alphaBitmap;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
784 } 784 }
785 785
786 TEST(GraphicsContextTest, trackOpaqueDrawBitmapTest) 786 TEST(GraphicsContextTest, trackOpaqueDrawBitmapTest)
787 { 787 {
788 SkBitmap bitmap; 788 SkBitmap bitmap;
789 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 789 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
790 bitmap.eraseColor(0); 790 bitmap.eraseColor(0);
791 SkCanvas canvas(bitmap); 791 SkCanvas canvas(bitmap);
792 792
793 GraphicsContext context(&canvas); 793 GraphicsContext context(&canvas);
794 context.setTrackOpaqueRegion(true); 794 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
795 795
796 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 796 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
797 797
798 SkBitmap opaqueBitmap; 798 SkBitmap opaqueBitmap;
799 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */)); 799 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */));
800 for (int y = 0; y < opaqueBitmap.height(); ++y) 800 for (int y = 0; y < opaqueBitmap.height(); ++y)
801 for (int x = 0; x < opaqueBitmap.width(); ++x) 801 for (int x = 0; x < opaqueBitmap.width(); ++x)
802 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; 802 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF;
803 803
804 SkBitmap alphaBitmap; 804 SkBitmap alphaBitmap;
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
836 } 836 }
837 837
838 TEST(GraphicsContextTest, trackOpaqueDrawBitmapRectTest) 838 TEST(GraphicsContextTest, trackOpaqueDrawBitmapRectTest)
839 { 839 {
840 SkBitmap bitmap; 840 SkBitmap bitmap;
841 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200)); 841 ASSERT_TRUE(bitmap.allocN32Pixels(200, 200));
842 bitmap.eraseColor(0); 842 bitmap.eraseColor(0);
843 SkCanvas canvas(bitmap); 843 SkCanvas canvas(bitmap);
844 844
845 GraphicsContext context(&canvas); 845 GraphicsContext context(&canvas);
846 context.setTrackOpaqueRegion(true); 846 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
847 847
848 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 848 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
849 849
850 SkBitmap opaqueBitmap; 850 SkBitmap opaqueBitmap;
851 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */)); 851 ASSERT_TRUE(opaqueBitmap.allocN32Pixels(10, 10, true /* opaque */));
852 for (int y = 0; y < opaqueBitmap.height(); ++y) 852 for (int y = 0; y < opaqueBitmap.height(); ++y)
853 for (int x = 0; x < opaqueBitmap.width(); ++x) 853 for (int x = 0; x < opaqueBitmap.width(); ++x)
854 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF; 854 *opaqueBitmap.getAddr32(x, y) = 0xFFFFFFFF;
855 855
856 SkBitmap alphaBitmap; 856 SkBitmap alphaBitmap;
(...skipping 27 matching lines...) Expand all
884 } 884 }
885 885
886 TEST(GraphicsContextTest, contextTransparencyLayerTest) 886 TEST(GraphicsContextTest, contextTransparencyLayerTest)
887 { 887 {
888 SkBitmap bitmap; 888 SkBitmap bitmap;
889 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 889 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
890 bitmap.eraseColor(0); 890 bitmap.eraseColor(0);
891 SkCanvas canvas(bitmap); 891 SkCanvas canvas(bitmap);
892 892
893 GraphicsContext context(&canvas); 893 GraphicsContext context(&canvas);
894 context.setTrackOpaqueRegion(true); 894 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
895 895
896 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 896 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
897 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver); 897 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver);
898 EXPECT_EQ_RECT(IntRect(20, 20, 10, 10), context.opaqueRegion().asRect()); 898 EXPECT_EQ_RECT(IntRect(20, 20, 10, 10), context.opaqueRegion().asRect());
899 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 899 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
900 900
901 context.clearRect(FloatRect(20, 20, 10, 10)); 901 context.clearRect(FloatRect(20, 20, 10, 10));
902 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 902 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
903 903
904 context.beginTransparencyLayer(0.5); 904 context.beginTransparencyLayer(0.5);
(...skipping 13 matching lines...) Expand all
918 } 918 }
919 919
920 TEST(GraphicsContextTest, UnboundedDrawsAreClipped) 920 TEST(GraphicsContextTest, UnboundedDrawsAreClipped)
921 { 921 {
922 SkBitmap bitmap; 922 SkBitmap bitmap;
923 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 923 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
924 bitmap.eraseColor(0); 924 bitmap.eraseColor(0);
925 SkCanvas canvas(bitmap); 925 SkCanvas canvas(bitmap);
926 926
927 GraphicsContext context(&canvas); 927 GraphicsContext context(&canvas);
928 context.setTrackOpaqueRegion(true); 928 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
929 929
930 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 930 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
931 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 931 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
932 932
933 Path path; 933 Path path;
934 context.setShouldAntialias(false); 934 context.setShouldAntialias(false);
935 context.setMiterLimit(1); 935 context.setMiterLimit(1);
936 context.setStrokeThickness(5); 936 context.setStrokeThickness(5);
937 context.setLineCap(SquareCap); 937 context.setLineCap(SquareCap);
938 context.setStrokeStyle(SolidStroke); 938 context.setStrokeStyle(SolidStroke);
(...skipping 24 matching lines...) Expand all
963 } 963 }
964 964
965 TEST(GraphicsContextTest, PreserveOpaqueOnlyMattersForFirstLayer) 965 TEST(GraphicsContextTest, PreserveOpaqueOnlyMattersForFirstLayer)
966 { 966 {
967 SkBitmap bitmap; 967 SkBitmap bitmap;
968 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 968 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400));
969 bitmap.eraseColor(0); 969 bitmap.eraseColor(0);
970 SkCanvas canvas(bitmap); 970 SkCanvas canvas(bitmap);
971 971
972 GraphicsContext context(&canvas); 972 GraphicsContext context(&canvas);
973 context.setTrackOpaqueRegion(true); 973 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
974 974
975 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 975 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
976 Color alpha(0.0f, 0.0f, 0.0f, 0.0f); 976 Color alpha(0.0f, 0.0f, 0.0f, 0.0f);
977 977
978 Path path; 978 Path path;
979 context.setShouldAntialias(false); 979 context.setShouldAntialias(false);
980 context.setMiterLimit(1); 980 context.setMiterLimit(1);
981 context.setStrokeThickness(5); 981 context.setStrokeThickness(5);
982 context.setLineCap(SquareCap); 982 context.setLineCap(SquareCap);
983 context.setStrokeStyle(SolidStroke); 983 context.setStrokeStyle(SolidStroke);
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after
1114 EXPECT_FALSE(pic); 1114 EXPECT_FALSE(pic);
1115 1115
1116 // endRecording finally makes the picture accessible 1116 // endRecording finally makes the picture accessible
1117 dl->endRecording(); 1117 dl->endRecording();
1118 pic = dl->picture(); 1118 pic = dl->picture();
1119 EXPECT_TRUE(pic); 1119 EXPECT_TRUE(pic);
1120 EXPECT_EQ(1, pic->getRefCnt()); 1120 EXPECT_EQ(1, pic->getRefCnt());
1121 } 1121 }
1122 1122
1123 } // namespace 1123 } // namespace
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698