#include "third_party/blink/renderer/core/animation/interpolable_shadow.h"
#include <memory>
#include "third_party/blink/renderer/core/animation/css_color_interpolation_type.h"
#include "third_party/blink/renderer/core/animation/interpolable_color.h"
#include "third_party/blink/renderer/core/animation/interpolable_value.h"
#include "third_party/blink/renderer/core/animation/underlying_value.h"
#include "third_party/blink/renderer/core/css/css_identifier_value.h"
#include "third_party/blink/renderer/core/css/css_shadow_value.h"
#include "third_party/blink/renderer/core/css/resolver/style_resolver_state.h"
#include "ui/gfx/geometry/point_f.h"
namespace blink {
namespace {
InterpolableLength* MaybeConvertLength(const CSSPrimitiveValue* value) { … }
InterpolableColor* MaybeConvertColor(const CSSValue* value,
mojom::blink::ColorScheme color_scheme,
const ui::ColorProvider* color_provider) { … }
}
InterpolableShadow::InterpolableShadow(InterpolableLength* x,
InterpolableLength* y,
InterpolableLength* blur,
InterpolableLength* spread,
InterpolableColor* color,
ShadowStyle shadow_style)
: … { … }
InterpolableShadow* InterpolableShadow::Create(
const ShadowData& shadow_data,
double zoom,
mojom::blink::ColorScheme color_scheme,
const ui::ColorProvider* color_provider) { … }
InterpolableShadow* InterpolableShadow::CreateNeutral() { … }
InterpolableShadow* InterpolableShadow::MaybeConvertCSSValue(
const CSSValue& value,
mojom::blink::ColorScheme color_scheme,
const ui::ColorProvider* color_provider) { … }
PairwiseInterpolationValue InterpolableShadow::MaybeMergeSingles(
InterpolableValue* start,
InterpolableValue* end) { … }
bool InterpolableShadow::CompatibleForCompositing(const InterpolableValue* from,
const InterpolableValue* to) { … }
void InterpolableShadow::Composite(UnderlyingValue& underlying_value,
double underlying_fraction,
const InterpolableValue& interpolable_value,
const NonInterpolableValue*) { … }
ShadowData InterpolableShadow::CreateShadowData(
const StyleResolverState& state) const { … }
InterpolableShadow* InterpolableShadow::RawClone() const { … }
InterpolableShadow* InterpolableShadow::RawCloneAndZero() const { … }
void InterpolableShadow::Scale(double scale) { … }
void InterpolableShadow::Add(const InterpolableValue& other) { … }
void InterpolableShadow::AssertCanInterpolateWith(
const InterpolableValue& other) const { … }
void InterpolableShadow::Interpolate(const InterpolableValue& to,
const double progress,
InterpolableValue& result) const { … }
}