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

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: Clean it up. Created 4 years, 3 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
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 4031 matching lines...) Expand 10 before | Expand all | Expand 10 after
4042 ElementListType list_type, 4042 ElementListType list_type,
4043 const gfx::ScrollOffset& scroll_offset) { 4043 const gfx::ScrollOffset& scroll_offset) {
4044 if (list_type == ElementListType::ACTIVE) { 4044 if (list_type == ElementListType::ACTIVE) {
4045 SetTreeLayerScrollOffsetMutated(element_id, active_tree(), scroll_offset); 4045 SetTreeLayerScrollOffsetMutated(element_id, active_tree(), scroll_offset);
4046 } else { 4046 } else {
4047 SetTreeLayerScrollOffsetMutated(element_id, pending_tree(), scroll_offset); 4047 SetTreeLayerScrollOffsetMutated(element_id, pending_tree(), scroll_offset);
4048 SetTreeLayerScrollOffsetMutated(element_id, recycle_tree(), scroll_offset); 4048 SetTreeLayerScrollOffsetMutated(element_id, recycle_tree(), scroll_offset);
4049 } 4049 }
4050 } 4050 }
4051 4051
4052 void LayerTreeHostImpl::ElementTransformIsAnimatingChanged( 4052 void LayerTreeHostImpl::ElementIsAnimatingChanged(
4053 ElementId element_id, 4053 ElementId element_id,
4054 ElementListType list_type, 4054 ElementListType list_type,
4055 AnimationChangeType change_type, 4055 const PropertyAnimationState& mask,
4056 bool is_animating) { 4056 const PropertyAnimationState& state) {
4057 LayerTreeImpl* tree = 4057 LayerTreeImpl* tree =
4058 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree(); 4058 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4059 if (!tree) 4059 if (!tree)
4060 return; 4060 return;
4061 LayerImpl* layer = tree->LayerByElementId(element_id); 4061 LayerImpl* layer = tree->LayerByElementId(element_id);
4062 if (layer) { 4062 if (layer)
4063 switch (change_type) { 4063 layer->OnIsAnimatingChanged(mask, state);
4064 case AnimationChangeType::POTENTIAL:
4065 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
4066 break;
4067 case AnimationChangeType::RUNNING:
4068 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
4069 break;
4070 case AnimationChangeType::BOTH:
4071 layer->OnTransformIsPotentiallyAnimatingChanged(is_animating);
4072 layer->OnTransformIsCurrentlyAnimatingChanged(is_animating);
4073 break;
4074 }
4075 }
4076 }
4077
4078 void LayerTreeHostImpl::ElementOpacityIsAnimatingChanged(
4079 ElementId element_id,
4080 ElementListType list_type,
4081 AnimationChangeType change_type,
4082 bool is_animating) {
4083 LayerTreeImpl* tree =
4084 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4085 if (!tree)
4086 return;
4087 LayerImpl* layer = tree->LayerByElementId(element_id);
4088 if (layer) {
4089 switch (change_type) {
4090 case AnimationChangeType::POTENTIAL:
4091 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4092 break;
4093 case AnimationChangeType::RUNNING:
4094 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4095 break;
4096 case AnimationChangeType::BOTH:
4097 layer->OnOpacityIsPotentiallyAnimatingChanged(is_animating);
4098 layer->OnOpacityIsCurrentlyAnimatingChanged(is_animating);
4099 break;
4100 }
4101 }
4102 }
4103
4104 void LayerTreeHostImpl::ElementFilterIsAnimatingChanged(
4105 ElementId element_id,
4106 ElementListType list_type,
4107 AnimationChangeType change_type,
4108 bool is_animating) {
4109 LayerTreeImpl* tree =
4110 list_type == ElementListType::ACTIVE ? active_tree() : pending_tree();
4111 if (!tree)
4112 return;
4113 LayerImpl* layer = tree->LayerByElementId(element_id);
4114 if (layer) {
4115 switch (change_type) {
4116 case AnimationChangeType::POTENTIAL:
4117 layer->OnFilterIsPotentiallyAnimatingChanged(is_animating);
4118 break;
4119 case AnimationChangeType::RUNNING:
4120 layer->OnFilterIsCurrentlyAnimatingChanged(is_animating);
4121 break;
4122 case AnimationChangeType::BOTH:
4123 layer->OnFilterIsPotentiallyAnimatingChanged(is_animating);
4124 layer->OnFilterIsCurrentlyAnimatingChanged(is_animating);
4125 break;
4126 }
4127 }
4128 } 4064 }
4129 4065
4130 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() { 4066 void LayerTreeHostImpl::ScrollOffsetAnimationFinished() {
4131 // TODO(majidvp): We should pass in the original starting scroll position here 4067 // TODO(majidvp): We should pass in the original starting scroll position here
4132 ScrollStateData scroll_state_data; 4068 ScrollStateData scroll_state_data;
4133 ScrollState scroll_state(scroll_state_data); 4069 ScrollState scroll_state(scroll_state_data);
4134 // TODO(Sahel): Once the touchpad scroll latching for Non-mac devices is 4070 // TODO(Sahel): Once the touchpad scroll latching for Non-mac devices is
4135 // implemented, the current scrolling layer should not get cleared after 4071 // implemented, the current scrolling layer should not get cleared after
4136 // each animation (crbug.com/526463). 4072 // each animation (crbug.com/526463).
4137 ScrollEnd(&scroll_state); 4073 ScrollEnd(&scroll_state);
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
4197 if (is_visible) { 4133 if (is_visible) {
4198 worker_context_visibility_ = 4134 worker_context_visibility_ =
4199 worker_context->CacheController()->ClientBecameVisible(); 4135 worker_context->CacheController()->ClientBecameVisible();
4200 } else { 4136 } else {
4201 worker_context->CacheController()->ClientBecameNotVisible( 4137 worker_context->CacheController()->ClientBecameNotVisible(
4202 std::move(worker_context_visibility_)); 4138 std::move(worker_context_visibility_));
4203 } 4139 }
4204 } 4140 }
4205 4141
4206 } // namespace cc 4142 } // namespace cc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698