Index: content/browser/renderer_host/compositor_impl_android.cc |
diff --git a/content/browser/renderer_host/compositor_impl_android.cc b/content/browser/renderer_host/compositor_impl_android.cc |
index 6232bcdb434467966c7e2ba5b0d99ad07063a930..2be0077a8f15d892d4b4dd1b49d124a8391c8ede 100644 |
--- a/content/browser/renderer_host/compositor_impl_android.cc |
+++ b/content/browser/renderer_host/compositor_impl_android.cc |
@@ -314,7 +314,6 @@ void CompositorImpl::Composite(CompositingTrigger trigger) { |
// animation updates that will already be reflected in the current frame |
// we are about to draw. |
ignore_schedule_composite_ = true; |
- client_->Layout(); |
const base::TimeTicks frame_time = gfx::FrameTime::Now(); |
if (needs_animate_) { |
@@ -402,7 +401,6 @@ void CompositorImpl::SetVisible(bool visible) { |
} else if (!host_) { |
DCHECK(!WillComposite()); |
needs_composite_ = false; |
- needs_animate_ = false; |
pending_swapbuffers_ = 0; |
cc::LayerTreeSettings settings; |
settings.refresh_rate = 60.0; |
@@ -417,6 +415,8 @@ void CompositorImpl::SetVisible(bool visible) { |
command_line->HasSwitch(cc::switches::kEnableGpuBenchmarking)); |
settings.initial_debug_state.show_fps_counter = |
command_line->HasSwitch(cc::switches::kUIShowFPSCounter); |
+ // TODO(enne): Update this this compositor to use the scheduler. |
+ settings.single_thread_proxy_scheduler = false; |
host_ = cc::LayerTreeHost::CreateSingleThreaded( |
this, this, HostSharedBitmapManager::current(), settings); |
@@ -495,10 +495,9 @@ CreateGpuProcessViewContext( |
} |
void CompositorImpl::Layout() { |
- // TODO: If we get this callback from the SingleThreadProxy, we need |
- // to stop calling it ourselves in CompositorImpl::Composite(). |
- NOTREACHED(); |
+ ignore_schedule_composite_ = true; |
client_->Layout(); |
+ ignore_schedule_composite_ = false; |
} |
scoped_ptr<cc::OutputSurface> CompositorImpl::CreateOutputSurface( |
@@ -547,7 +546,6 @@ void CompositorImpl::ScheduleComposite() { |
} |
void CompositorImpl::ScheduleAnimation() { |
- DCHECK(!needs_animate_ || needs_composite_); |
DCHECK(!needs_composite_ || WillComposite()); |
needs_animate_ = true; |
@@ -577,6 +575,7 @@ void CompositorImpl::DidAbortSwapBuffers() { |
// This really gets called only once from |
// SingleThreadProxy::DidLoseOutputSurfaceOnImplThread() when the |
// context was lost. |
+ ScheduleComposite(); |
client_->OnSwapBuffersCompleted(0); |
} |