Index: ui/compositor/compositor.cc |
diff --git a/ui/compositor/compositor.cc b/ui/compositor/compositor.cc |
index 7a1b2928a8890ac7d73b46511fa8191782788865..c16c2e70da8d0e32769fc804ffa67b5bf3d15211 100644 |
--- a/ui/compositor/compositor.cc |
+++ b/ui/compositor/compositor.cc |
@@ -26,6 +26,7 @@ |
#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" |
#include "ui/gfx/frame_time.h" |
#include "ui/gl/gl_context.h" |
#include "ui/gl/gl_switches.h" |
@@ -97,6 +98,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget) |
waiting_on_compositing_end_(false), |
draw_on_compositing_end_(false), |
swap_state_(SWAP_NONE), |
+ layer_animator_collection_(this), |
schedule_draw_factory_(this) { |
Init(); |
} |
@@ -117,6 +119,7 @@ Compositor::Compositor(gfx::AcceleratedWidget widget, |
waiting_on_compositing_end_(false), |
draw_on_compositing_end_(false), |
swap_state_(SWAP_NONE), |
+ layer_animator_collection_(this), |
schedule_draw_factory_(this) { |
Init(); |
} |
@@ -257,7 +260,9 @@ void Compositor::Draw() { |
// TODO(nduca): Temporary while compositor calls |
// compositeImmediately() directly. |
Layout(); |
- host_->Composite(gfx::FrameTime::Now()); |
+ base::TimeTicks now = gfx::FrameTime::Now(); |
+ Animate(now); |
piman
2014/05/23 21:38:56
nit: in threaded mode, the compositor calls Animat
sadrul
2014/05/23 21:56:11
Done.
|
+ host_->Composite(now); |
} |
if (swap_state_ == SWAP_NONE) |
NotifyEnd(); |
@@ -317,6 +322,12 @@ bool Compositor::HasObserver(CompositorObserver* observer) { |
return observer_list_.HasObserver(observer); |
} |
+void Compositor::Animate(base::TimeTicks frame_begin_time) { |
+ layer_animator_collection_.Progress(frame_begin_time); |
+ if (layer_animator_collection_.HasActiveAnimators()) |
+ host_->SetNeedsAnimate(); |
+} |
+ |
void Compositor::Layout() { |
// We're sending damage that will be addressed during this composite |
// cycle, so we don't need to schedule another composite to address it. |
@@ -382,6 +393,10 @@ void Compositor::DidAbortSwapBuffers() { |
OnCompositingAborted(this)); |
} |
+void Compositor::ScheduleAnimationForLayerCollection() { |
+ ScheduleAnimation(); |
+} |
+ |
const cc::LayerTreeDebugState& Compositor::GetLayerTreeDebugState() const { |
return host_->debug_state(); |
} |