Improve CPU usage by ignoring ScheduleAnimation() and ScheduleComposite() calls when not using accelerated compositing (issue #456).

git-svn-id: https://chromiumembedded.googlecode.com/svn/trunk@420 5089003a-bbd8-11dd-ad1f-f1f9622dbc98
This commit is contained in:
Marshall Greenblatt 2011-12-15 16:06:02 +00:00
parent 2bbd89f97d
commit bbe2a2f2d3
4 changed files with 11 additions and 1 deletions

View File

@ -15,6 +15,9 @@ using WebKit::WebSize;
void WebWidgetHost::ScheduleAnimation() {
if (!webwidget_ || !webwidget_->isAcceleratedCompositingActive())
return;
MessageLoop::current()->PostDelayedTask(FROM_HERE,
base::Bind(&WebWidgetHost::ScheduleComposite, weak_factory_.GetWeakPtr()),
10);

View File

@ -303,6 +303,9 @@ void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) {
}
void WebWidgetHost::ScheduleComposite() {
if (!webwidget_ || !webwidget_->isAcceleratedCompositingActive())
return;
int width = logical_size_.width();
int height = logical_size_.height();
GdkRectangle grect = {

View File

@ -228,6 +228,9 @@ void WebWidgetHost::Paint(SkRegion& update_rgn) {
}
void WebWidgetHost::ScheduleComposite() {
if (!webwidget_ || !webwidget_->isAcceleratedCompositingActive())
return;
[view_ setNeedsDisplay:YES];
}

View File

@ -309,8 +309,9 @@ void WebWidgetHost::DidScrollRect(int dx, int dy, const gfx::Rect& clip_rect) {
}
void WebWidgetHost::ScheduleComposite() {
if (!webwidget_)
if (!webwidget_ || !webwidget_->isAcceleratedCompositingActive())
return;
WebSize size = webwidget_->size();
InvalidateRect(gfx::Rect(0, 0, size.width, size.height));
}