| OLD | NEW |
| 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 "core/animation/InvalidatableInterpolation.h" | 5 #include "core/animation/InvalidatableInterpolation.h" |
| 6 | 6 |
| 7 #include "core/animation/InterpolationEnvironment.h" | 7 #include <memory> |
| 8 #include "core/animation/CSSInterpolationEnvironment.h" |
| 8 #include "core/animation/StringKeyframe.h" | 9 #include "core/animation/StringKeyframe.h" |
| 9 #include "core/css/resolver/StyleResolverState.h" | 10 #include "core/css/resolver/StyleResolverState.h" |
| 10 #include <memory> | |
| 11 | 11 |
| 12 namespace blink { | 12 namespace blink { |
| 13 | 13 |
| 14 void InvalidatableInterpolation::Interpolate(int, double fraction) { | 14 void InvalidatableInterpolation::Interpolate(int, double fraction) { |
| 15 if (fraction == current_fraction_) | 15 if (fraction == current_fraction_) |
| 16 return; | 16 return; |
| 17 | 17 |
| 18 if (current_fraction_ == 0 || current_fraction_ == 1 || fraction == 0 || | 18 if (current_fraction_ == 0 || current_fraction_ == 1 || fraction == 0 || |
| 19 fraction == 1) { | 19 fraction == 1) { |
| 20 ClearConversionCache(); | 20 ClearConversionCache(); |
| (...skipping 170 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 191 ClearConversionCache(); | 191 ClearConversionCache(); |
| 192 } | 192 } |
| 193 interpolation_types_ = latest_interpolation_types; | 193 interpolation_types_ = latest_interpolation_types; |
| 194 interpolation_types_version_ = latest_version; | 194 interpolation_types_version_ = latest_version; |
| 195 } | 195 } |
| 196 | 196 |
| 197 void InvalidatableInterpolation::SetFlagIfInheritUsed( | 197 void InvalidatableInterpolation::SetFlagIfInheritUsed( |
| 198 InterpolationEnvironment& environment) const { | 198 InterpolationEnvironment& environment) const { |
| 199 if (!property_.IsCSSProperty() && !property_.IsPresentationAttribute()) | 199 if (!property_.IsCSSProperty() && !property_.IsPresentationAttribute()) |
| 200 return; | 200 return; |
| 201 if (!environment.GetState().ParentStyle()) | 201 StyleResolverState& state = |
| 202 ToCSSInterpolationEnvironment(environment).GetState(); |
| 203 if (!state.ParentStyle()) |
| 202 return; | 204 return; |
| 203 const CSSValue* start_value = | 205 const CSSValue* start_value = |
| 204 ToCSSPropertySpecificKeyframe(*start_keyframe_).Value(); | 206 ToCSSPropertySpecificKeyframe(*start_keyframe_).Value(); |
| 205 const CSSValue* end_value = | 207 const CSSValue* end_value = |
| 206 ToCSSPropertySpecificKeyframe(*end_keyframe_).Value(); | 208 ToCSSPropertySpecificKeyframe(*end_keyframe_).Value(); |
| 207 if ((start_value && start_value->IsInheritedValue()) || | 209 if ((start_value && start_value->IsInheritedValue()) || |
| 208 (end_value && end_value->IsInheritedValue())) { | 210 (end_value && end_value->IsInheritedValue())) { |
| 209 environment.GetState().ParentStyle()->SetHasExplicitlyInheritedProperties(); | 211 state.ParentStyle()->SetHasExplicitlyInheritedProperties(); |
| 210 } | 212 } |
| 211 } | 213 } |
| 212 | 214 |
| 213 double InvalidatableInterpolation::UnderlyingFraction() const { | 215 double InvalidatableInterpolation::UnderlyingFraction() const { |
| 214 if (current_fraction_ == 0) | 216 if (current_fraction_ == 0) |
| 215 return start_keyframe_->UnderlyingFraction(); | 217 return start_keyframe_->UnderlyingFraction(); |
| 216 if (current_fraction_ == 1) | 218 if (current_fraction_ == 1) |
| 217 return end_keyframe_->UnderlyingFraction(); | 219 return end_keyframe_->UnderlyingFraction(); |
| 218 return cached_pair_conversion_->InterpolateUnderlyingFraction( | 220 return cached_pair_conversion_->InterpolateUnderlyingFraction( |
| 219 start_keyframe_->UnderlyingFraction(), | 221 start_keyframe_->UnderlyingFraction(), |
| (...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 277 } | 279 } |
| 278 | 280 |
| 279 if (should_apply && underlying_value_owner) | 281 if (should_apply && underlying_value_owner) |
| 280 underlying_value_owner.GetType().Apply( | 282 underlying_value_owner.GetType().Apply( |
| 281 *underlying_value_owner.Value().interpolable_value, | 283 *underlying_value_owner.Value().interpolable_value, |
| 282 underlying_value_owner.Value().non_interpolable_value.Get(), | 284 underlying_value_owner.Value().non_interpolable_value.Get(), |
| 283 environment); | 285 environment); |
| 284 } | 286 } |
| 285 | 287 |
| 286 } // namespace blink | 288 } // namespace blink |
| OLD | NEW |