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

Side by Side Diff: cc/animation/animation_host.cc

Issue 1973083002: Use element id's for animations (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase Created 4 years, 5 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/animation/animation_host.h ('k') | cc/animation/animation_host_perftest.cc » ('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 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 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/animation/animation_host.h" 5 #include "cc/animation/animation_host.h"
6 6
7 #include <algorithm> 7 #include <algorithm>
8 8
9 #include "base/macros.h" 9 #include "base/macros.h"
10 #include "base/memory/ptr_util.h" 10 #include "base/memory/ptr_util.h"
(...skipping 217 matching lines...) Expand 10 before | Expand all | Expand 10 after
228 element_animations->PushPropertiesTo(std::move(element_animations_impl)); 228 element_animations->PushPropertiesTo(std::move(element_animations_impl));
229 } 229 }
230 230
231 // Update the impl-only scroll offset animations. 231 // Update the impl-only scroll offset animations.
232 scroll_offset_animations_->PushPropertiesTo( 232 scroll_offset_animations_->PushPropertiesTo(
233 host_impl->scroll_offset_animations_impl_.get()); 233 host_impl->scroll_offset_animations_impl_.get());
234 } 234 }
235 235
236 scoped_refptr<ElementAnimations> 236 scoped_refptr<ElementAnimations>
237 AnimationHost::GetElementAnimationsForElementId(ElementId element_id) const { 237 AnimationHost::GetElementAnimationsForElementId(ElementId element_id) const {
238 DCHECK(element_id); 238 if (!element_id)
239 return nullptr;
239 auto iter = element_to_animations_map_.find(element_id); 240 auto iter = element_to_animations_map_.find(element_id);
240 return iter == element_to_animations_map_.end() ? nullptr : iter->second; 241 return iter == element_to_animations_map_.end() ? nullptr : iter->second;
241 } 242 }
242 243
243 void AnimationHost::SetSupportsScrollAnimations( 244 void AnimationHost::SetSupportsScrollAnimations(
244 bool supports_scroll_animations) { 245 bool supports_scroll_animations) {
245 supports_scroll_animations_ = supports_scroll_animations; 246 supports_scroll_animations_ = supports_scroll_animations;
246 } 247 }
247 248
248 bool AnimationHost::SupportsScrollAnimations() const { 249 bool AnimationHost::SupportsScrollAnimations() const {
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
294 } 295 }
295 296
296 std::unique_ptr<AnimationEvents> AnimationHost::CreateEvents() { 297 std::unique_ptr<AnimationEvents> AnimationHost::CreateEvents() {
297 return base::WrapUnique(new AnimationEvents()); 298 return base::WrapUnique(new AnimationEvents());
298 } 299 }
299 300
300 void AnimationHost::SetAnimationEvents( 301 void AnimationHost::SetAnimationEvents(
301 std::unique_ptr<AnimationEvents> events) { 302 std::unique_ptr<AnimationEvents> events) {
302 for (size_t event_index = 0; event_index < events->events_.size(); 303 for (size_t event_index = 0; event_index < events->events_.size();
303 ++event_index) { 304 ++event_index) {
304 int event_layer_id = events->events_[event_index].element_id; 305 ElementId element_id = events->events_[event_index].element_id;
305 306
306 // Use the map of all ElementAnimations, not just active ones, since 307 // Use the map of all ElementAnimations, not just active ones, since
307 // non-active ElementAnimations may still receive events for impl-only 308 // non-active ElementAnimations may still receive events for impl-only
308 // animations. 309 // animations.
309 const ElementToAnimationsMap& all_element_animations = 310 const ElementToAnimationsMap& all_element_animations =
310 element_to_animations_map_; 311 element_to_animations_map_;
311 auto iter = all_element_animations.find(event_layer_id); 312 auto iter = all_element_animations.find(element_id);
312 if (iter != all_element_animations.end()) { 313 if (iter != all_element_animations.end()) {
313 switch (events->events_[event_index].type) { 314 switch (events->events_[event_index].type) {
314 case AnimationEvent::STARTED: 315 case AnimationEvent::STARTED:
315 (*iter).second->NotifyAnimationStarted(events->events_[event_index]); 316 (*iter).second->NotifyAnimationStarted(events->events_[event_index]);
316 break; 317 break;
317 318
318 case AnimationEvent::FINISHED: 319 case AnimationEvent::FINISHED:
319 (*iter).second->NotifyAnimationFinished(events->events_[event_index]); 320 (*iter).second->NotifyAnimationFinished(events->events_[event_index]);
320 break; 321 break;
321 322
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after
566 const AnimationHost::ElementToAnimationsMap& 567 const AnimationHost::ElementToAnimationsMap&
567 AnimationHost::all_element_animations_for_testing() const { 568 AnimationHost::all_element_animations_for_testing() const {
568 return element_to_animations_map_; 569 return element_to_animations_map_;
569 } 570 }
570 571
571 void AnimationHost::OnAnimationWaitingForDeletion() { 572 void AnimationHost::OnAnimationWaitingForDeletion() {
572 animation_waiting_for_deletion_ = true; 573 animation_waiting_for_deletion_ = true;
573 } 574 }
574 575
575 } // namespace cc 576 } // namespace cc
OLDNEW
« no previous file with comments | « cc/animation/animation_host.h ('k') | cc/animation/animation_host_perftest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698