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

Side by Side Diff: cc/layer_tree_host.cc

Issue 11783101: Make LayerTreeHost::animateLayers take a wall clock time in addition to a monotonic time (Closed) Base URL: http://git.chromium.org/chromium/src.git@master
Patch Set: Fix nits Created 7 years, 11 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 unified diff | Download patch
« no previous file with comments | « cc/layer_tree_host.h ('k') | cc/thread_proxy.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2011 The Chromium Authors. All rights reserved. 1 // Copyright 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "cc/layer_tree_host.h" 5 #include "cc/layer_tree_host.h"
6 6
7 #include "base/command_line.h" 7 #include "base/command_line.h"
8 #include "base/debug/trace_event.h" 8 #include "base/debug/trace_event.h"
9 #include "base/message_loop.h" 9 #include "base/message_loop.h"
10 #include "base/stl_util.h" 10 #include "base/stl_util.h"
(...skipping 200 matching lines...) Expand 10 before | Expand all | Expand 10 after
211 { 211 {
212 DCHECK(m_proxy->isMainThread()); 212 DCHECK(m_proxy->isMainThread());
213 m_proxy->acquireLayerTextures(); 213 m_proxy->acquireLayerTextures();
214 } 214 }
215 215
216 void LayerTreeHost::didBeginFrame() 216 void LayerTreeHost::didBeginFrame()
217 { 217 {
218 m_client->didBeginFrame(); 218 m_client->didBeginFrame();
219 } 219 }
220 220
221 void LayerTreeHost::updateAnimations(base::TimeTicks frameBeginTime) 221 void LayerTreeHost::updateAnimations(base::TimeTicks monotonicFrameBeginTime, ba se::Time wallClockFrameBeginTime)
222 { 222 {
223 m_animating = true; 223 m_animating = true;
224 m_client->animate((frameBeginTime - base::TimeTicks()).InSecondsF()); 224 m_client->animate((monotonicFrameBeginTime - base::TimeTicks()).InSecondsF() );
225 animateLayers(frameBeginTime); 225 animateLayers(monotonicFrameBeginTime, wallClockFrameBeginTime);
226 m_animating = false; 226 m_animating = false;
227 227
228 m_renderingStats.numAnimationFrames++; 228 m_renderingStats.numAnimationFrames++;
229 } 229 }
230 230
231 void LayerTreeHost::didStopFlinging() 231 void LayerTreeHost::didStopFlinging()
232 { 232 {
233 m_proxy->mainThreadHasStoppedFlinging(); 233 m_proxy->mainThreadHasStoppedFlinging();
234 } 234 }
235 235
(...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after
814 814
815 void LayerTreeHost::setDeviceScaleFactor(float deviceScaleFactor) 815 void LayerTreeHost::setDeviceScaleFactor(float deviceScaleFactor)
816 { 816 {
817 if (deviceScaleFactor == m_deviceScaleFactor) 817 if (deviceScaleFactor == m_deviceScaleFactor)
818 return; 818 return;
819 m_deviceScaleFactor = deviceScaleFactor; 819 m_deviceScaleFactor = deviceScaleFactor;
820 820
821 setNeedsCommit(); 821 setNeedsCommit();
822 } 822 }
823 823
824 void LayerTreeHost::animateLayers(base::TimeTicks time) 824 void LayerTreeHost::animateLayers(base::TimeTicks monotonicTime, base::Time wall ClockTime)
825 { 825 {
826 if (!m_settings.acceleratedAnimationEnabled || m_animationRegistrar->active_ animation_controllers().empty()) 826 if (!m_settings.acceleratedAnimationEnabled || m_animationRegistrar->active_ animation_controllers().empty())
827 return; 827 return;
828 828
829 TRACE_EVENT0("cc", "LayerTreeHostImpl::animateLayers"); 829 TRACE_EVENT0("cc", "LayerTreeHostImpl::animateLayers");
830 830
831 double monotonicTime = (time - base::TimeTicks()).InSecondsF(); 831 double monotonicTimeInSeconds = (monotonicTime - base::TimeTicks()).InSecond sF();
832 832
833 AnimationRegistrar::AnimationControllerMap copy = m_animationRegistrar->acti ve_animation_controllers(); 833 AnimationRegistrar::AnimationControllerMap copy = m_animationRegistrar->acti ve_animation_controllers();
834 for (AnimationRegistrar::AnimationControllerMap::iterator iter = copy.begin( ); iter != copy.end(); ++iter) 834 for (AnimationRegistrar::AnimationControllerMap::iterator iter = copy.begin( ); iter != copy.end(); ++iter)
835 (*iter).second->animate(monotonicTime, 0); 835 (*iter).second->animate(monotonicTimeInSeconds, 0);
836 } 836 }
837 837
838 void LayerTreeHost::setAnimationEventsRecursive(const AnimationEventsVector& eve nts, Layer* layer, base::Time wallClockTime) 838 void LayerTreeHost::setAnimationEventsRecursive(const AnimationEventsVector& eve nts, Layer* layer, base::Time wallClockTime)
839 { 839 {
840 if (!layer) 840 if (!layer)
841 return; 841 return;
842 842
843 for (size_t eventIndex = 0; eventIndex < events.size(); ++eventIndex) { 843 for (size_t eventIndex = 0; eventIndex < events.size(); ++eventIndex) {
844 if (layer->id() == events[eventIndex].layerId) { 844 if (layer->id() == events[eventIndex].layerId) {
845 if (events[eventIndex].type == AnimationEvent::Started) 845 if (events[eventIndex].type == AnimationEvent::Started)
846 layer->notifyAnimationStarted(events[eventIndex], wallClockTime. ToDoubleT()); 846 layer->notifyAnimationStarted(events[eventIndex], wallClockTime. ToDoubleT());
847 else 847 else
848 layer->notifyAnimationFinished(wallClockTime.ToDoubleT()); 848 layer->notifyAnimationFinished(wallClockTime.ToDoubleT());
849 } 849 }
850 } 850 }
851 851
852 for (size_t childIndex = 0; childIndex < layer->children().size(); ++childIn dex) 852 for (size_t childIndex = 0; childIndex < layer->children().size(); ++childIn dex)
853 setAnimationEventsRecursive(events, layer->children()[childIndex].get(), wallClockTime); 853 setAnimationEventsRecursive(events, layer->children()[childIndex].get(), wallClockTime);
854 } 854 }
855 855
856 skia::RefPtr<SkPicture> LayerTreeHost::capturePicture() 856 skia::RefPtr<SkPicture> LayerTreeHost::capturePicture()
857 { 857 {
858 return m_proxy->capturePicture(); 858 return m_proxy->capturePicture();
859 } 859 }
860 860
861 } // namespace cc 861 } // namespace cc
OLDNEW
« no previous file with comments | « cc/layer_tree_host.h ('k') | cc/thread_proxy.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698