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 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |