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

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

Issue 540033002: use tryAllocPixels to check the result, allocPixels to require success (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 3 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
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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 for (int x = 0; x < bitmap.width(); ++x) { \ 62 for (int x = 0; x < bitmap.width(); ++x) { \
63 int alpha = *bitmap.getAddr32(x, y) >> 24; \ 63 int alpha = *bitmap.getAddr32(x, y) >> 24; \
64 bool opaque = opaqueRect.contains(x, y); \ 64 bool opaque = opaqueRect.contains(x, y); \
65 EXPECT_EQ(opaque, alpha == 255); \ 65 EXPECT_EQ(opaque, alpha == 255); \
66 } \ 66 } \
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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);
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 120 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
121 121
122 context.fillRect(FloatRect(10, 10, 390, 50), opaque, CompositeSourceOver); 122 context.fillRect(FloatRect(10, 10, 390, 50), opaque, CompositeSourceOver);
123 EXPECT_EQ_RECT(IntRect(30, 10, 290, 310), context.opaqueRegion().asRect()); 123 EXPECT_EQ_RECT(IntRect(30, 10, 290, 310), context.opaqueRegion().asRect());
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 bitmap.allocN32Pixels(400, 400);
131 SkCanvas canvas(bitmap); 131 SkCanvas canvas(bitmap);
132 132
133 GraphicsContext context(&canvas); 133 GraphicsContext context(&canvas);
134 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
214 context.clipOut(IntRect(30, 30, 10, 10)); 214 context.clipOut(IntRect(30, 30, 10, 10));
215 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); 215 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver);
216 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 216 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
217 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 217 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
218 context.restore(); 218 context.restore();
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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
(...skipping 16 matching lines...) Expand all
251 context.endLayer(); 251 context.endLayer();
252 context.endLayer(); 252 context.endLayer();
253 253
254 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 254 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
255 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect()); 255 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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
(...skipping 19 matching lines...) Expand all
291 context.endLayer(); 291 context.endLayer();
292 context.endLayer(); 292 context.endLayer();
293 293
294 EXPECT_EQ_RECT(IntRect(12, 12, 3, 3), context.opaqueRegion().asRect()); 294 EXPECT_EQ_RECT(IntRect(12, 12, 3, 3), context.opaqueRegion().asRect());
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 bitmap.allocN32Pixels(400, 400);
302 SkCanvas canvas(bitmap); 302 SkCanvas canvas(bitmap);
303 303
304 GraphicsContext context(&canvas); 304 GraphicsContext context(&canvas);
305 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
348 348
349 // Does join 349 // Does join
350 context.fillRect(FloatRect(10, 10, 30, 10), opaque, CompositeSourceOver); 350 context.fillRect(FloatRect(10, 10, 30, 10), opaque, CompositeSourceOver);
351 EXPECT_EQ_RECT(IntRect(10, 10, 30, 30), context.opaqueRegion().asRect()); 351 EXPECT_EQ_RECT(IntRect(10, 10, 30, 30), context.opaqueRegion().asRect());
352 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 352 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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);
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 context.setStrokeColor(alpha); 442 context.setStrokeColor(alpha);
443 context.drawLine(IntPoint(0, 11), IntPoint(100, 11)); 443 context.drawLine(IntPoint(0, 11), IntPoint(100, 11));
444 context.restore(); 444 context.restore();
445 EXPECT_EQ_RECT(IntRect(10, 14, 90, 86), context.opaqueRegion().asRect()); 445 EXPECT_EQ_RECT(IntRect(10, 14, 90, 86), context.opaqueRegion().asRect());
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 bitmap.allocN32Pixels(200, 200);
453 SkCanvas canvas(bitmap); 453 SkCanvas canvas(bitmap);
454 454
455 GraphicsContext context(&canvas); 455 GraphicsContext context(&canvas);
456 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
500 path.addLineTo(FloatPoint(100, 10)); 500 path.addLineTo(FloatPoint(100, 10));
501 context.fillPath(path); 501 context.fillPath(path);
502 EXPECT_EQ_RECT(IntRect(10, 14, 90, 86), context.opaqueRegion().asRect()); 502 EXPECT_EQ_RECT(IntRect(10, 14, 90, 86), context.opaqueRegion().asRect());
503 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 503 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 bitmap.allocN32Pixels(200, 200);
511 SkCanvas canvas(bitmap); 511 SkCanvas canvas(bitmap);
512 512
513 GraphicsContext context(&canvas); 513 GraphicsContext context(&canvas);
514 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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 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;
525 RefPtr<BitmapImage> opaqueImage = BitmapImage::create(NativeImageSkia::creat e(opaqueBitmap)); 525 RefPtr<BitmapImage> opaqueImage = BitmapImage::create(NativeImageSkia::creat e(opaqueBitmap));
526 EXPECT_TRUE(opaqueImage->currentFrameKnownToBeOpaque()); 526 EXPECT_TRUE(opaqueImage->currentFrameKnownToBeOpaque());
527 527
528 SkBitmap alphaBitmap; 528 SkBitmap alphaBitmap;
529 ASSERT_TRUE(alphaBitmap.allocN32Pixels(10, 10)); 529 alphaBitmap.allocN32Pixels(10, 10);
530 530
531 for (int y = 0; y < alphaBitmap.height(); ++y) 531 for (int y = 0; y < alphaBitmap.height(); ++y)
532 for (int x = 0; x < alphaBitmap.width(); ++x) 532 for (int x = 0; x < alphaBitmap.width(); ++x)
533 *alphaBitmap.getAddr32(x, y) = 0x00000000; 533 *alphaBitmap.getAddr32(x, y) = 0x00000000;
534 RefPtr<BitmapImage> alphaImage = BitmapImage::create(NativeImageSkia::create (alphaBitmap)); 534 RefPtr<BitmapImage> alphaImage = BitmapImage::create(NativeImageSkia::create (alphaBitmap));
535 EXPECT_FALSE(alphaImage->currentFrameKnownToBeOpaque()); 535 EXPECT_FALSE(alphaImage->currentFrameKnownToBeOpaque());
536 536
537 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver); 537 context.fillRect(FloatRect(10, 10, 90, 90), opaque, CompositeSourceOver);
538 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 538 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
539 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 539 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
582 context.setAlphaAsFloat(0.5); 582 context.setAlphaAsFloat(0.5);
583 context.drawImage(opaqueImage.get(), IntPoint(15, 25), CompositeSourceIn); 583 context.drawImage(opaqueImage.get(), IntPoint(15, 25), CompositeSourceIn);
584 context.restore(); 584 context.restore();
585 EXPECT_EQ_RECT(IntRect(25, 10, 75, 90), context.opaqueRegion().asRect()); 585 EXPECT_EQ_RECT(IntRect(25, 10, 75, 90), context.opaqueRegion().asRect());
586 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 586 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
638 context.setFillColor(alpha); 638 context.setFillColor(alpha);
639 context.fillEllipse(FloatRect(20, 10, 30, 50)); 639 context.fillEllipse(FloatRect(20, 10, 30, 50));
640 context.strokeEllipse(FloatRect(20, 10, 30, 50)); 640 context.strokeEllipse(FloatRect(20, 10, 30, 50));
641 EXPECT_EQ_RECT(IntRect(51, 41, 49, 59), context.opaqueRegion().asRect()); 641 EXPECT_EQ_RECT(IntRect(51, 41, 49, 59), context.opaqueRegion().asRect());
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 bitmap.allocN32Pixels(200, 200);
649 SkCanvas canvas(bitmap); 649 SkCanvas canvas(bitmap);
650 650
651 GraphicsContext context(&canvas); 651 GraphicsContext context(&canvas);
652 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 24 matching lines...) Expand all
683 683
684 context.fillRoundedRect(IntRect(30, 0, 70, 50), radii, radii, radii, radii, opaque); 684 context.fillRoundedRect(IntRect(30, 0, 70, 50), radii, radii, radii, radii, opaque);
685 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect()); 685 EXPECT_EQ_RECT(IntRect(40, 30, 60, 70), context.opaqueRegion().asRect());
686 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 686 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
687 } 687 }
688 688
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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
(...skipping 23 matching lines...) Expand all
727 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 727 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
728 728
729 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver); 729 context.fillRect(FloatRect(50, 50, 50, 50), opaque, CompositeSourceOver);
730 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect()); 730 EXPECT_EQ_RECT(IntRect(50, 50, 50, 50), context.opaqueRegion().asRect());
731 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 731 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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 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;
753 ASSERT_TRUE(alphaBitmap.allocN32Pixels(10, 10)); 753 alphaBitmap.allocN32Pixels(10, 10);
754 for (int y = 0; y < alphaBitmap.height(); ++y) 754 for (int y = 0; y < alphaBitmap.height(); ++y)
755 for (int x = 0; x < alphaBitmap.width(); ++x) 755 for (int x = 0; x < alphaBitmap.width(); ++x)
756 *alphaBitmap.getAddr32(x, y) = 0x00000000; 756 *alphaBitmap.getAddr32(x, y) = 0x00000000;
757 757
758 SkPaint paint; 758 SkPaint paint;
759 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 759 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
760 760
761 context.writePixels(opaqueBitmap, 50, 50); 761 context.writePixels(opaqueBitmap, 50, 50);
762 EXPECT_EQ_RECT(IntRect(50, 50, 10, 10), context.opaqueRegion().asRect()); 762 EXPECT_EQ_RECT(IntRect(50, 50, 10, 10), context.opaqueRegion().asRect());
763 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 763 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
(...skipping 15 matching lines...) Expand all
779 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 779 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
780 780
781 context.writePixels(alphaBitmap, 1, 10); 781 context.writePixels(alphaBitmap, 1, 10);
782 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect()); 782 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect());
783 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 783 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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 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;
805 ASSERT_TRUE(alphaBitmap.allocN32Pixels(10, 10)); 805 alphaBitmap.allocN32Pixels(10, 10);
806 for (int y = 0; y < alphaBitmap.height(); ++y) 806 for (int y = 0; y < alphaBitmap.height(); ++y)
807 for (int x = 0; x < alphaBitmap.width(); ++x) 807 for (int x = 0; x < alphaBitmap.width(); ++x)
808 *alphaBitmap.getAddr32(x, y) = 0x00000000; 808 *alphaBitmap.getAddr32(x, y) = 0x00000000;
809 809
810 SkPaint paint; 810 SkPaint paint;
811 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 811 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
812 812
813 context.drawBitmap(opaqueBitmap, 10, 10, &paint); 813 context.drawBitmap(opaqueBitmap, 10, 10, &paint);
814 EXPECT_EQ_RECT(IntRect(10, 10, 10, 10), context.opaqueRegion().asRect()); 814 EXPECT_EQ_RECT(IntRect(10, 10, 10, 10), context.opaqueRegion().asRect());
815 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 815 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
(...skipping 15 matching lines...) Expand all
831 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 831 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
832 832
833 context.drawBitmap(alphaBitmap, 1, 10, &paint); 833 context.drawBitmap(alphaBitmap, 1, 10, &paint);
834 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect()); 834 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect());
835 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 835 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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 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;
857 ASSERT_TRUE(alphaBitmap.allocN32Pixels(10, 10)); 857 alphaBitmap.allocN32Pixels(10, 10);
858 for (int y = 0; y < alphaBitmap.height(); ++y) 858 for (int y = 0; y < alphaBitmap.height(); ++y)
859 for (int x = 0; x < alphaBitmap.width(); ++x) 859 for (int x = 0; x < alphaBitmap.width(); ++x)
860 *alphaBitmap.getAddr32(x, y) = 0x00000000; 860 *alphaBitmap.getAddr32(x, y) = 0x00000000;
861 861
862 SkPaint paint; 862 SkPaint paint;
863 paint.setXfermodeMode(SkXfermode::kSrc_Mode); 863 paint.setXfermodeMode(SkXfermode::kSrc_Mode);
864 864
865 context.drawBitmapRect(opaqueBitmap, 0, SkRect::MakeXYWH(10, 10, 90, 90), &p aint); 865 context.drawBitmapRect(opaqueBitmap, 0, SkRect::MakeXYWH(10, 10, 90, 90), &p aint);
866 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect()); 866 EXPECT_EQ_RECT(IntRect(10, 10, 90, 90), context.opaqueRegion().asRect());
867 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 867 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
(...skipping 11 matching lines...) Expand all
879 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 879 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
880 880
881 context.drawBitmapRect(alphaBitmap, 0, SkRect::MakeXYWH(0, 10, 11, 10), &pai nt); 881 context.drawBitmapRect(alphaBitmap, 0, SkRect::MakeXYWH(0, 10, 11, 10), &pai nt);
882 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect()); 882 EXPECT_EQ_RECT(IntRect(11, 11, 89, 89), context.opaqueRegion().asRect());
883 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 883 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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());
(...skipping 13 matching lines...) Expand all
913 913
914 context.beginTransparencyLayer(0.5); 914 context.beginTransparencyLayer(0.5);
915 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver); 915 context.fillRect(FloatRect(20, 20, 10, 10), opaque, CompositeSourceOver);
916 context.endLayer(); 916 context.endLayer();
917 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 917 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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;
(...skipping 24 matching lines...) Expand all
958 path.addLineTo(FloatPoint(40, 40)); 958 path.addLineTo(FloatPoint(40, 40));
959 context.strokePath(path); 959 context.strokePath(path);
960 960
961 EXPECT_EQ_RECT(IntRect(20, 10, 30, 40), context.opaqueRegion().asRect()); 961 EXPECT_EQ_RECT(IntRect(20, 10, 30, 40), context.opaqueRegion().asRect());
962 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 962 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
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 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.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 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;
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
1038 context.strokePath(path); 1038 context.strokePath(path);
1039 1039
1040 context.endLayer(); 1040 context.endLayer();
1041 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 1041 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
1042 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect()); 1042 EXPECT_PIXELS_MATCH_EXACT(bitmap, context.opaqueRegion().asRect());
1043 } 1043 }
1044 1044
1045 TEST(GraphicsContextTest, OpaqueRegionForLayerWithNonRectDeviceClip) 1045 TEST(GraphicsContextTest, OpaqueRegionForLayerWithNonRectDeviceClip)
1046 { 1046 {
1047 SkBitmap bitmap; 1047 SkBitmap bitmap;
1048 ASSERT_TRUE(bitmap.allocN32Pixels(100, 100)); 1048 bitmap.allocN32Pixels(100, 100);
1049 bitmap.eraseColor(0); 1049 bitmap.eraseColor(0);
1050 SkCanvas canvas(bitmap); 1050 SkCanvas canvas(bitmap);
1051 1051
1052 GraphicsContext context(&canvas); 1052 GraphicsContext context(&canvas);
1053 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 1053 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
1054 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 1054 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
1055 1055
1056 context.fillRect(FloatRect(30, 30, 90, 90), opaque, CompositeSourceOver); 1056 context.fillRect(FloatRect(30, 30, 90, 90), opaque, CompositeSourceOver);
1057 1057
1058 context.setCompositeOperation(CompositeSourceOver); 1058 context.setCompositeOperation(CompositeSourceOver);
(...skipping 19 matching lines...) Expand all
1078 context.setCompositeOperation(CompositeSourceOut); 1078 context.setCompositeOperation(CompositeSourceOut);
1079 context.beginTransparencyLayer(0.5); 1079 context.beginTransparencyLayer(0.5);
1080 1080
1081 context.endLayer(); 1081 context.endLayer();
1082 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect()); 1082 EXPECT_EQ_RECT(IntRect(), context.opaqueRegion().asRect());
1083 } 1083 }
1084 1084
1085 TEST(GraphicsContextTest, OpaqueRegionForLayerWithRectDeviceClip) 1085 TEST(GraphicsContextTest, OpaqueRegionForLayerWithRectDeviceClip)
1086 { 1086 {
1087 SkBitmap bitmap; 1087 SkBitmap bitmap;
1088 ASSERT_TRUE(bitmap.allocN32Pixels(100, 100)); 1088 bitmap.allocN32Pixels(100, 100);
1089 bitmap.eraseColor(0); 1089 bitmap.eraseColor(0);
1090 SkCanvas canvas(bitmap); 1090 SkCanvas canvas(bitmap);
1091 1091
1092 Color opaque(1.0f, 0.0f, 0.0f, 1.0f); 1092 Color opaque(1.0f, 0.0f, 0.0f, 1.0f);
1093 1093
1094 GraphicsContext context(&canvas); 1094 GraphicsContext context(&canvas);
1095 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque); 1095 context.setRegionTrackingMode(GraphicsContext::RegionTrackingOpaque);
1096 1096
1097 context.fillRect(FloatRect(30, 30, 90, 90), opaque, CompositeSourceOver); 1097 context.fillRect(FloatRect(30, 30, 90, 90), opaque, CompositeSourceOver);
1098 EXPECT_EQ_RECT(IntRect(30, 30, 70, 70), context.opaqueRegion().asRect()); 1098 EXPECT_EQ_RECT(IntRect(30, 30, 70, 70), context.opaqueRegion().asRect());
(...skipping 17 matching lines...) Expand all
1116 EXPECT_EQ_RECT(IntRect(20, 20, 30, 30), context.opaqueRegion().asRect()); 1116 EXPECT_EQ_RECT(IntRect(20, 20, 30, 30), context.opaqueRegion().asRect());
1117 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect()); 1117 EXPECT_PIXELS_MATCH(bitmap, context.opaqueRegion().asRect());
1118 } 1118 }
1119 1119
1120 #define DISPATCH1(c1, c2, op, param1) do { c1.op(param1); c2.op(param1); } while (0); 1120 #define DISPATCH1(c1, c2, op, param1) do { c1.op(param1); c2.op(param1); } while (0);
1121 #define DISPATCH2(c1, c2, op, param1, param2) do { c1.op(param1, param2); c2.op( param1, param2); } while (0); 1121 #define DISPATCH2(c1, c2, op, param1, param2) do { c1.op(param1, param2); c2.op( param1, param2); } while (0);
1122 1122
1123 TEST(GraphicsContextTest, RecordingTotalMatrix) 1123 TEST(GraphicsContextTest, RecordingTotalMatrix)
1124 { 1124 {
1125 SkBitmap bitmap; 1125 SkBitmap bitmap;
1126 ASSERT_TRUE(bitmap.allocN32Pixels(400, 400)); 1126 bitmap.allocN32Pixels(400, 400);
1127 bitmap.eraseColor(0); 1127 bitmap.eraseColor(0);
1128 SkCanvas canvas(bitmap); 1128 SkCanvas canvas(bitmap);
1129 GraphicsContext context(&canvas); 1129 GraphicsContext context(&canvas);
1130 1130
1131 SkCanvas controlCanvas(400, 400); 1131 SkCanvas controlCanvas(400, 400);
1132 GraphicsContext controlContext(&controlCanvas); 1132 GraphicsContext controlContext(&controlCanvas);
1133 1133
1134 EXPECT_EQ(context.getCTM(), controlContext.getCTM()); 1134 EXPECT_EQ(context.getCTM(), controlContext.getCTM());
1135 DISPATCH2(context, controlContext, scale, 2, 2); 1135 DISPATCH2(context, controlContext, scale, 2, 2);
1136 EXPECT_EQ(context.getCTM(), controlContext.getCTM()); 1136 EXPECT_EQ(context.getCTM(), controlContext.getCTM());
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after
1189 EXPECT_FALSE(pic); 1189 EXPECT_FALSE(pic);
1190 1190
1191 // endRecording finally makes the picture accessible 1191 // endRecording finally makes the picture accessible
1192 dl->endRecording(); 1192 dl->endRecording();
1193 pic = dl->picture(); 1193 pic = dl->picture();
1194 EXPECT_TRUE(pic); 1194 EXPECT_TRUE(pic);
1195 EXPECT_EQ(1, pic->getRefCnt()); 1195 EXPECT_EQ(1, pic->getRefCnt());
1196 } 1196 }
1197 1197
1198 } // namespace 1198 } // namespace
OLDNEW
« no previous file with comments | « Source/platform/graphics/GraphicsContext.cpp ('k') | Source/platform/graphics/ImageLayerChromiumTest.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698