aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--tools/bench_pictures_main.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/tools/bench_pictures_main.cpp b/tools/bench_pictures_main.cpp
index 88163110fb..0674598b04 100644
--- a/tools/bench_pictures_main.cpp
+++ b/tools/bench_pictures_main.cpp
@@ -84,17 +84,23 @@ struct TileInfo {
SkCanvas* fCanvas;
};
-static void setup_single_tile(const SkBitmap& bitmap, const Options& options,
- SkTArray<TileInfo>* tiles,
+static void clip_tile(SkPicture* picture, const TileInfo& tile) {
+ SkRect clip = SkRect::MakeWH(picture->width(), picture->height());
+ tile.fCanvas->clipRect(clip);
+}
+
+static void setup_single_tile(SkPicture* picture, const SkBitmap& bitmap,
+ const Options& options, SkTArray<TileInfo>* tiles,
int tile_x_start, int tile_y_start) {
TileInfo& tile = tiles->push_back();
tile.fBitmap = new SkBitmap();
SkIRect rect = SkIRect::MakeXYWH(tile_x_start, tile_y_start,
- options.fTileWidth,
- options.fTileHeight);
+ options.fTileWidth, options.fTileHeight);
bitmap.extractSubset(tile.fBitmap, rect);
tile.fCanvas = new SkCanvas(*(tile.fBitmap));
tile.fCanvas->translate(-tile_x_start, -tile_y_start);
+
+ clip_tile(picture, tile);
}
static void setup_tiles(SkPicture* picture, const SkBitmap& bitmap,
@@ -103,7 +109,7 @@ static void setup_tiles(SkPicture* picture, const SkBitmap& bitmap,
tile_y_start += options.fTileHeight) {
for (int tile_x_start = 0; tile_x_start < picture->width();
tile_x_start += options.fTileWidth) {
- setup_single_tile(bitmap, options, tiles, tile_x_start,
+ setup_single_tile(picture, bitmap, options, tiles, tile_x_start,
tile_y_start);
}
}