diff options
author | vangelis@chromium.org <vangelis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-28 03:30:52 +0000 |
---|---|---|
committer | vangelis@chromium.org <vangelis@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-28 03:30:52 +0000 |
commit | 50120f2dae7a44e4549878ae3c77986aa3f0fd0c (patch) | |
tree | 9413c5eda77c647e162bf900d48a3d53983a6a23 /cc/resources/skpicture_content_layer_updater.cc | |
parent | f079ded96e4e9cb99eb018f3eb2a1cdebc9f7dbd (diff) | |
download | chromium_src-50120f2dae7a44e4549878ae3c77986aa3f0fd0c.zip chromium_src-50120f2dae7a44e4549878ae3c77986aa3f0fd0c.tar.gz chromium_src-50120f2dae7a44e4549878ae3c77986aa3f0fd0c.tar.bz2 |
Skip clearing the canvas before painting the contents of opaque layers
The SkCanvas doesn't need to be cleared before painting the layer contents
if the layer is known to be opaque (e.g. the root layer). Bypassing the clear
gives a sizeable perf boost.
This patch also switches to calling clear() instead of drawRect() for clearing the canvas pixels as clear has been shown to be significantly faster.
BUG=279612
Review URL: https://chromiumcodereview.appspot.com/23484005
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@219894 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'cc/resources/skpicture_content_layer_updater.cc')
-rw-r--r-- | cc/resources/skpicture_content_layer_updater.cc | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/cc/resources/skpicture_content_layer_updater.cc b/cc/resources/skpicture_content_layer_updater.cc index e44dbc2..79769bc 100644 --- a/cc/resources/skpicture_content_layer_updater.cc +++ b/cc/resources/skpicture_content_layer_updater.cc @@ -17,8 +17,7 @@ SkPictureContentLayerUpdater::SkPictureContentLayerUpdater( scoped_ptr<LayerPainter> painter, RenderingStatsInstrumentation* stats_instrumentation, int layer_id) - : ContentLayerUpdater(painter.Pass(), stats_instrumentation, layer_id), - layer_is_opaque_(false) {} + : ContentLayerUpdater(painter.Pass(), stats_instrumentation, layer_id) {} SkPictureContentLayerUpdater::~SkPictureContentLayerUpdater() {} @@ -33,7 +32,7 @@ void SkPictureContentLayerUpdater::PrepareToUpdate( base::TimeTicks start_time = rendering_stats_instrumentation_->StartRecording(); PaintContents(canvas, - content_rect, + content_rect.origin(), contents_width_scale, contents_height_scale, resulting_opaque_rect); @@ -49,8 +48,4 @@ void SkPictureContentLayerUpdater::DrawPicture(SkCanvas* canvas) { canvas->drawPicture(picture_); } -void SkPictureContentLayerUpdater::SetOpaque(bool opaque) { - layer_is_opaque_ = opaque; -} - } // namespace cc |