| Index: trunk/src/content/renderer/gpu/render_widget_compositor.cc
|
| ===================================================================
|
| --- trunk/src/content/renderer/gpu/render_widget_compositor.cc (revision 280520)
|
| +++ trunk/src/content/renderer/gpu/render_widget_compositor.cc (working copy)
|
| @@ -320,6 +320,7 @@
|
| RenderWidgetCompositor::RenderWidgetCompositor(RenderWidget* widget,
|
| bool threaded)
|
| : threaded_(threaded),
|
| + suppress_schedule_composite_(false),
|
| widget_(widget) {
|
| }
|
|
|
| @@ -331,13 +332,26 @@
|
| }
|
|
|
| void RenderWidgetCompositor::SetSuppressScheduleComposite(bool suppress) {
|
| - layer_tree_host_->SetDeferCommits(suppress);
|
| + if (suppress_schedule_composite_ == suppress)
|
| + return;
|
| +
|
| + if (suppress)
|
| + TRACE_EVENT_ASYNC_BEGIN0("gpu",
|
| + "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
|
| + else
|
| + TRACE_EVENT_ASYNC_END0("gpu",
|
| + "RenderWidgetCompositor::SetSuppressScheduleComposite", this);
|
| + suppress_schedule_composite_ = suppress;
|
| }
|
|
|
| bool RenderWidgetCompositor::BeginMainFrameRequested() const {
|
| return layer_tree_host_->BeginMainFrameRequested();
|
| }
|
|
|
| +void RenderWidgetCompositor::UpdateAnimations(base::TimeTicks time) {
|
| + layer_tree_host_->UpdateClientAnimations(time);
|
| +}
|
| +
|
| void RenderWidgetCompositor::SetNeedsDisplayOnAllLayers() {
|
| layer_tree_host_->SetNeedsDisplayOnAllLayers();
|
| }
|
| @@ -430,10 +444,7 @@
|
| }
|
|
|
| void RenderWidgetCompositor::setSurfaceReady() {
|
| - // In tests without a RenderThreadImpl, don't set ready as this kicks
|
| - // off creating output surfaces that the test can't create.
|
| - if (RenderThreadImpl::current())
|
| - layer_tree_host_->SetLayerTreeHostClientReady();
|
| + layer_tree_host_->SetLayerTreeHostClientReady();
|
| }
|
|
|
| void RenderWidgetCompositor::setRootLayer(const blink::WebLayer& layer) {
|
| @@ -672,6 +683,15 @@
|
| widget_->OnSwapBuffersComplete();
|
| }
|
|
|
| +void RenderWidgetCompositor::ScheduleComposite() {
|
| + if (!suppress_schedule_composite_)
|
| + widget_->scheduleComposite();
|
| +}
|
| +
|
| +void RenderWidgetCompositor::ScheduleAnimation() {
|
| + widget_->scheduleAnimation();
|
| +}
|
| +
|
| void RenderWidgetCompositor::DidPostSwapBuffers() {
|
| widget_->OnSwapBuffersPosted();
|
| }
|
|
|