diff options
author | 2012-07-09 19:51:05 +0000 | |
---|---|---|
committer | 2012-07-09 19:51:05 +0000 | |
commit | 70b4222344fc290ba03922ce246da2b3e980071d (patch) | |
tree | ff05ca33d37622b0cd4188d0d90e4363f51414d2 /tools | |
parent | cf6c44cf9287af8b425fb0d9d286a6d57ad03897 (diff) |
Tiles that extend beyond the picture are now clipped.
Review URL: https://codereview.appspot.com/6352078
git-svn-id: http://skia.googlecode.com/svn/trunk@4491 2bbb7eff-a529-9590-31e7-b0007b416f81
Diffstat (limited to 'tools')
-rw-r--r-- | tools/bench_pictures_main.cpp | 16 |
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); } } |