// Copyright 2015 The Chromium Authors // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_INVALIDATABLE_INTERPOLATION_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_INVALIDATABLE_INTERPOLATION_H_ #include <memory> #include "third_party/blink/renderer/core/animation/interpolation.h" #include "third_party/blink/renderer/core/animation/interpolation_type.h" #include "third_party/blink/renderer/core/animation/interpolation_types_map.h" #include "third_party/blink/renderer/core/animation/primitive_interpolation.h" #include "third_party/blink/renderer/core/animation/typed_interpolation_value.h" #include "third_party/blink/renderer/core/core_export.h" namespace blink { // See the documentation of Interpolation for general information about this // class hierarchy. // // The InvalidatableInterpolation subclass stores the start and end keyframes as // PropertySpecificKeyframe objects. // // InvalidatableInterpolation uses conversion checkers and the interpolation // environment to respond to changes to the underlying property value during // interpolation. // // InvalidatableInterpolation is used to implement additive animations. During // the effect application phase of animation computation, the current animated // value of the property is applied to the element by calling the static // ApplyStack function with an ordered list of InvalidatableInterpolation // objects. class CORE_EXPORT InvalidatableInterpolation : public Interpolation { … }; template <> struct DowncastTraits<InvalidatableInterpolation> { … }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_INVALIDATABLE_INTERPOLATION_H_