Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(471)

Unified Diff: ui/compositor/compositor.cc

Issue 423773002: Unified BeginFrame scheduling (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/compositor/compositor.cc
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc
index 9c0a5134318ca49b99ff17c17ebd313bd0c65e9f..dead21c06f78bacf9003a843a69eb7bcf5b90e7c 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),
@@ -90,6 +90,8 @@ Compositor::Compositor(gfx::AcceleratedWidget widget,
#if !defined(OS_MACOSX)
settings.partial_swap_enabled =
!command_line->HasSwitch(cc::switches::kUIDisablePartialSwap);
+ settings.begin_frame_publisher =
+ command_line->HasSwitch(cc::switches::kEnableBeginFrameScheduling);
#endif
#if defined(OS_CHROMEOS)
settings.per_tile_painting_enabled = true;
@@ -125,6 +127,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 +141,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 +233,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);
}
void Compositor::AddObserver(CompositorObserver* observer) {

Powered by Google App Engine
This is Rietveld 408576698