summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 21:22:27 +0000
committerbrettw@chromium.org <brettw@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-01-21 21:22:27 +0000
commit2df1b3656f9442f617966f733dbf66751aa85686 (patch)
treefe39d42c5e7c4aa1c94485fa6c83fd4f22d173c1
parentb7f75868cb53eb45d3e15263a663327e381d40db (diff)
downloadchromium_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.cc4
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();