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 3ca74a2b23d5a44eecab17c5d8468df58e0698ea..13b0735eee52663f2d68c497a30216b7d277ebd0 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_) { |
@@ -426,7 +425,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; |
@@ -441,6 +439,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, |
@@ -523,10 +523,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( |
@@ -575,7 +574,6 @@ void CompositorImpl::ScheduleComposite() { |
} |
void CompositorImpl::ScheduleAnimation() { |
- DCHECK(!needs_animate_ || needs_composite_); |
DCHECK(!needs_composite_ || WillComposite()); |
needs_animate_ = true; |
@@ -605,6 +603,7 @@ void CompositorImpl::DidAbortSwapBuffers() { |
// This really gets called only once from |
// SingleThreadProxy::DidLoseOutputSurfaceOnImplThread() when the |
// context was lost. |
+ ScheduleComposite(); |
client_->OnSwapBuffersCompleted(0); |
} |