| 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 |