| Index: tests/TileGridTest.cpp
|
| ===================================================================
|
| --- tests/TileGridTest.cpp (revision 8831)
|
| +++ tests/TileGridTest.cpp (working copy)
|
| @@ -178,6 +178,9 @@
|
| SkBitmap moreThanATileBitmap;
|
| moreThanATileBitmap.setConfig(SkBitmap::kARGB_8888_Config, 11, 11);
|
| moreThanATileBitmap.allocPixels();
|
| + SkBitmap tinyBitmap;
|
| + tinyBitmap.setConfig(SkBitmap::kARGB_8888_Config, 2, 2);
|
| + tinyBitmap.allocPixels();
|
| // Test parts of top-left tile
|
| {
|
| // The offset should cancel the top and left borders of the top left tile
|
| @@ -226,6 +229,20 @@
|
| REPORTER_ASSERT(reporter, rect2 == mockCanvas.fRects[0]);
|
| REPORTER_ASSERT(reporter, rect3 == mockCanvas.fRects[1]);
|
| }
|
| + {
|
| + // Regression test for crbug.com/234688
|
| + // Once the 2x2 device region is inset by margin, it yields an empty
|
| + // adjusted region, sitting right on top of the tile boundary.
|
| + SkDevice device(tinyBitmap);
|
| + MockCanvas mockCanvas(&device);
|
| + mockCanvas.translate(SkFloatToScalar(-8.0f), SkFloatToScalar(-8.0f));
|
| + picture.draw(&mockCanvas);
|
| + // This test passes by not asserting. We do not validate the rects recorded
|
| + // because the result is numerically unstable (floating point equality).
|
| + // The content of any one of the four tiles of the tilegrid would be a valid
|
| + // result since any bbox that covers the center point of the canvas will be
|
| + // recorded in all four tiles.
|
| + }
|
| }
|
|
|
| static void Test(skiatest::Reporter* reporter) {
|
|
|