Chromium Code Reviews| Index: ui/compositor/compositor.cc |
| diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
| index 9c0a5134318ca49b99ff17c17ebd313bd0c65e9f..d8c54d138e3fc355a0d5a7415978966f78fcba34 100644 |
| --- a/ui/compositor/compositor.cc |
| +++ b/ui/compositor/compositor.cc |
| @@ -19,11 +19,11 @@ |
| #include "cc/input/input_handler.h" |
| #include "cc/layers/layer.h" |
| #include "cc/output/context_provider.h" |
| +#include "cc/scheduler/begin_frame_manager.h" |
| #include "cc/trees/layer_tree_host.h" |
| #include "third_party/skia/include/core/SkBitmap.h" |
| #include "ui/compositor/compositor_observer.h" |
| #include "ui/compositor/compositor_switches.h" |
| -#include "ui/compositor/compositor_vsync_manager.h" |
| #include "ui/compositor/dip_util.h" |
| #include "ui/compositor/layer.h" |
| #include "ui/compositor/layer_animator_collection.h" |
| @@ -69,7 +69,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget, |
| widget_(widget), |
| compositor_thread_loop_(context_factory->GetCompositorMessageLoop()), |
| task_runner_(task_runner), |
| - vsync_manager_(new CompositorVSyncManager()), |
| + begin_frame_manager_(new cc::BeginFrameManager), |
| device_scale_factor_(0.0f), |
| disable_schedule_composite_(false), |
| compositor_lock_(NULL), |
| @@ -91,6 +91,10 @@ Compositor::Compositor(gfx::AcceleratedWidget widget, |
| settings.partial_swap_enabled = |
| !command_line->HasSwitch(cc::switches::kUIDisablePartialSwap); |
| #endif |
| +#if defined(USE_AURA) |
| + settings.begin_frame_publisher = |
| + command_line->HasSwitch(cc::switches::kEnableBeginFrameScheduling); |
| +#endif |
| #if defined(OS_CHROMEOS) |
| settings.per_tile_painting_enabled = true; |
| #endif |
| @@ -125,6 +129,8 @@ Compositor::Compositor(gfx::AcceleratedWidget widget, |
| base::TimeTicks before_create = base::TimeTicks::Now(); |
| if (compositor_thread_loop_) { |
| + // --enable-begin-frame-scheduling is not used with threaded compositing. |
| + DCHECK(!settings.begin_frame_publisher); |
| host_ = cc::LayerTreeHost::CreateThreaded( |
| this, |
| context_factory_->GetSharedBitmapManager(), |
| @@ -137,7 +143,8 @@ Compositor::Compositor(gfx::AcceleratedWidget widget, |
| this, |
| context_factory_->GetSharedBitmapManager(), |
| settings, |
| - task_runner_); |
| + task_runner_, |
| + begin_frame_manager_.get()); |
| } |
| UMA_HISTOGRAM_TIMES("GPU.CreateBrowserCompositor", |
| base::TimeTicks::Now() - before_create); |
| @@ -228,8 +235,9 @@ void Compositor::SetBackgroundColor(SkColor color) { |
| ScheduleDraw(); |
| } |
| -scoped_refptr<CompositorVSyncManager> Compositor::vsync_manager() const { |
| - return vsync_manager_; |
| +void Compositor::SetAuthoritativeVSyncInterval( |
| + base::TimeDelta interval) const { |
| + begin_frame_manager_->SetAuthoritativeVSyncInterval(interval); |
|
brianderson
2014/08/28 02:48:07
I think it'll be better to have SetAuthoritativeVS
simonhong
2014/09/03 21:02:23
Done.
|
| } |
| void Compositor::AddObserver(CompositorObserver* observer) { |