diff options
author | vmpstr <vmpstr@chromium.org> | 2016-03-02 17:48:27 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-03 01:49:35 +0000 |
commit | afb46c11bdde02fe8cd4a76ae5b08e30543d6255 (patch) | |
tree | 14fba0e42457ecd5dda27c5629af3c48f755611c /cc/playback | |
parent | 35606c90c45cc32aff5ccd2b288e2414c491d6d0 (diff) | |
download | chromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.zip chromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.tar.gz chromium_src-afb46c11bdde02fe8cd4a76ae5b08e30543d6255.tar.bz2 |
cc: Disable image hijack canvas when we don't have images in the map.
This patch ensures that we don't use the hijack canvas when there are
no images in the discardable map, since this is the way we "disable"
things on android.
Note we already do this in PlaybackToSharedCanvas, so this is just
ensuring that we also do that in PlaybackToCanvas.
BUG=591246
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
Review URL: https://codereview.chromium.org/1756413002
Cr-Commit-Position: refs/heads/master@{#378913}
Diffstat (limited to 'cc/playback')
-rw-r--r-- | cc/playback/display_list_raster_source.cc | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/cc/playback/display_list_raster_source.cc b/cc/playback/display_list_raster_source.cc index 53ac4ce..e20d610 100644 --- a/cc/playback/display_list_raster_source.cc +++ b/cc/playback/display_list_raster_source.cc @@ -293,12 +293,17 @@ void DisplayListRasterSource::PlaybackToCanvas( PrepareForPlaybackToCanvas(raster_canvas, canvas_bitmap_rect, canvas_playback_rect, contents_scale); - SkImageInfo info = raster_canvas->imageInfo(); - ImageHijackCanvas canvas(info.width(), info.height(), - image_decode_controller_); - canvas.addCanvas(raster_canvas); - RasterCommon(&canvas, NULL, canvas_bitmap_rect, canvas_playback_rect, - contents_scale); + if (display_list_->MayHaveDiscardableImages()) { + const SkImageInfo& info = raster_canvas->imageInfo(); + ImageHijackCanvas canvas(info.width(), info.height(), + image_decode_controller_); + canvas.addCanvas(raster_canvas); + RasterCommon(&canvas, nullptr, canvas_bitmap_rect, canvas_playback_rect, + contents_scale); + } else { + RasterCommon(raster_canvas, nullptr, canvas_bitmap_rect, + canvas_playback_rect, contents_scale); + } } void DisplayListRasterSource::PrepareForPlaybackToCanvas( |