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

Side by Side Diff: cc/trees/layer_tree_host_impl.cc

Issue 2357533002: CC Animation: Use std::bitset to update animation state. (Closed)
Patch Set: Reparent. Created 4 years, 2 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/trees/layer_tree_host_impl.h ('k') | cc/trees/mutator_host_client.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/trees/layer_tree_host_impl.h" 5 #include "cc/trees/layer_tree_host_impl.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <algorithm> 10 #include <algorithm>
(...skipping 3988 matching lines...) Expand 10 before | Expand all | Expand 10 after
3999 ElementListType list_type, 3999 ElementListType list_type,
4000 const gfx::ScrollOffset& scroll_offset) { 4000 const gfx::ScrollOffset& scroll_offset) {
4001 if (list_type == ElementListType::ACTIVE) { 4001 if (list_type == ElementListType::ACTIVE) {
4002 SetTreeLayerScrollOffsetMutated(element_id, active_tree(), scroll_offset); 4002 SetTreeLayerScrollOffsetMutated(element_id, active_tree(), scroll_offset);
4003 } else { 4003 } else {
4004 SetTreeLayerScrollOffsetMutated(element_id, pending_tree(), scroll_offset); 4004 SetTreeLayerScrollOffsetMutated(element_id, pending_tree(), scroll_offset);
4005 SetTreeLayerScrollOffsetMutated(element_id, recycle_tree(), scroll_offset); 4005 SetTreeLayerScrollOffsetMutated(element_id, recycle_tree(), scroll_offset);
4006 } 4006 }
4007 } 4007 }
4008 4008
4009 void LayerTreeHostImpl::ElementTransformIsAnimatingChanged( 4009 void LayerTreeHostImpl::ElementIsAnimatingChanged(
4010 ElementId element_id, 4010 ElementId element_id,
4011 ElementListType list_type, 4011 ElementListType list_type,
4012 AnimationChangeType change_type, 4012 const PropertyAnimationState& mask,
4013 bool is_animating) { 4013 const PropertyAnimationState& state) {
4014 LayerTreeImpl* tree = 4014 LayerTreeImpl* tree =
4015 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree(); 4015 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4016 if (!tree) 4016 if (!tree)
4017 return; 4017 return;
4018 LayerImpl* layer = tree->LayerByElementId(element_id); 4018 LayerImpl* layer = tree->LayerByElementId(element_id);
4019 if (layer) { 4019 if (layer)
4020 switch (change_type) { 4020 layer->OnIsAnimatingChanged(mask, state);
4021 case AnimationChangeType::POTENTIAL:
4022 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
4023 break;
4024 case AnimationChangeType::RUNNING:
4025 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
4026 break;
4027 case AnimationChangeType::BOTH:
4028 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
4029 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
4030 break;
4031 }
4032 }
4033 }
4034
4035 void LayerTreeHostImpl::ElementOpacityIsAnimatingChanged(
4036 ElementId element_id,
4037 ElementListType list_type,
4038 AnimationChangeType change_type,
4039 bool is_animating) {
4040 LayerTreeImpl* tree =
4041 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4042 if (!tree)
4043 return;
4044 LayerImpl* layer = tree->LayerByElementId(element_id);
4045 if (layer) {
4046 switch (change_type) {
4047 case AnimationChangeType::POTENTIAL:
4048 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4049 break;
4050 case AnimationChangeType::RUNNING:
4051 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4052 break;
4053 case AnimationChangeType::BOTH:
4054 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4055 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4056 break;
4057 }
4058 }
4059 }
4060
4061 void LayerTreeHostImpl::ElementFilterIsAnimatingChanged(
4062 ElementId element_id,
4063 ElementListType list_type,
4064 AnimationChangeType change_type,
4065 bool is_animating) {
4066 LayerTreeImpl* tree =
4067 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4068 if (!tree)
4069 return;
4070 LayerImpl* layer = tree->LayerByElementId(element_id);
4071 if (layer) {
4072 switch (change_type) {
4073 case AnimationChangeType::POTENTIAL:
4074 layer->OnFilterIsPotentiallyAnimatingChanged(is_animating);
4075 break;
4076 case AnimationChangeType::RUNNING:
4077 layer->OnFilterIsCurrentlyAnimatingChanged(is_animating);
4078 break;
4079 case AnimationChangeType::BOTH:
4080 layer->OnFilterIsPotentiallyAnimatingChanged(is_animating);
4081 layer->OnFilterIsCurrentlyAnimatingChanged(is_animating);
4082 break;
4083 }
4084 }
4085 } 4021 }
4086 4022
4087 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { 4023 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() {
4088 // TODO(majidvp): We should pass in the original starting scroll position here 4024 // TODO(majidvp): We should pass in the original starting scroll position here
4089 ScrollStateData scroll_state_data; 4025 ScrollStateData scroll_state_data;
4090 ScrollState scroll_state(scroll_state_data); 4026 ScrollState scroll_state(scroll_state_data);
4091 // TODO(Sahel): Once the touchpad scroll latching for Non-mac devices is 4027 // TODO(Sahel): Once the touchpad scroll latching for Non-mac devices is
4092 // implemented, the current scrolling layer should not get cleared after 4028 // implemented, the current scrolling layer should not get cleared after
4093 // each animation (crbug.com/526463). 4029 // each animation (crbug.com/526463).
4094 ScrollEnd(&scroll_state); 4030 ScrollEnd(&scroll_state);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
4154 if (is_visible) { 4090 if (is_visible) {
4155 worker_context_visibility_ = 4091 worker_context_visibility_ =
4156 worker_context->CacheController()->ClientBecameVisible(); 4092 worker_context->CacheController()->ClientBecameVisible();
4157 } else { 4093 } else {
4158 worker_context->CacheController()->ClientBecameNotVisible( 4094 worker_context->CacheController()->ClientBecameNotVisible(
4159 std::move(worker_context_visibility_)); 4095 std::move(worker_context_visibility_));
4160 } 4096 }
4161 } 4097 }
4162 4098
4163 } // namespace cc 4099 } // namespace cc
OLDNEW
« no previous file with comments | « cc/trees/layer_tree_host_impl.h ('k') | cc/trees/mutator_host_client.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698