diff options
author | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 21:22:27 +0000 |
---|---|---|
committer | brettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-01-21 21:22:27 +0000 |
commit | 2df1b3656f9442f617966f733dbf66751aa85686 (patch) | |
tree | fe39d42c5e7c4aa1c94485fa6c83fd4f22d173c1 | |
parent | b7f75868cb53eb45d3e15263a663327e381d40db (diff) | |
download | chromium_src-2df1b3656f9442f617966f733dbf66751aa85686.zip chromium_src-2df1b3656f9442f617966f733dbf66751aa85686.tar.gz chromium_src-2df1b3656f9442f617966f733dbf66751aa85686.tar.bz2 |
Don't unnecessarily paint pixles when doing optimized always-on-top pepper paints.
This just intersects the paint rect with the plugin rect (previously we used
the entire plugin rect, even when the paint rect was smaller).
TEST=manual
BUG=none
Review URL: http://codereview.chromium.org/6296010
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@72191 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r-- | chrome/renderer/render_widget.cc | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/chrome/renderer/render_widget.cc b/chrome/renderer/render_widget.cc index ba01020..9f73dc0 100644 --- a/chrome/renderer/render_widget.cc +++ b/chrome/renderer/render_widget.cc @@ -441,7 +441,7 @@ void RenderWidget::PaintRect(const gfx::Rect& rect, // the plugin. Unlike the DoDeferredUpdate case, an extra copy is still // required. optimized_instance->Paint(webkit_glue::ToWebCanvas(canvas), - optimized_copy_location, optimized_copy_location); + optimized_copy_location, rect); } else { // Normal painting case. webwidget_->paint(webkit_glue::ToWebCanvas(canvas), rect); @@ -530,6 +530,8 @@ void RenderWidget::DoDeferredUpdate() { !is_accelerated_compositing_active_ && GetBitmapForOptimizedPluginPaint(bounds, &dib, &optimized_copy_location, &optimized_copy_rect)) { + // Only update the part of the plugin that actually changed. + optimized_copy_rect = optimized_copy_rect.Intersect(bounds); bounds = optimized_copy_location; copy_rects.push_back(optimized_copy_rect); dib_id = dib->id(); |