chromium/cc/animation/scroll_offset_animations_impl.h

// Copyright 2016 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef CC_ANIMATION_SCROLL_OFFSET_ANIMATIONS_IMPL_H_
#define CC_ANIMATION_SCROLL_OFFSET_ANIMATIONS_IMPL_H_

#include <memory>

#include "base/memory/raw_ptr.h"
#include "base/memory/ref_counted.h"
#include "cc/animation/animation_delegate.h"
#include "cc/animation/scroll_offset_animation_curve.h"
#include "cc/trees/mutator_host_client.h"
#include "ui/gfx/geometry/vector2d_f.h"

namespace cc {

class Animation;
class AnimationHost;
class AnimationTimeline;

// This class represents a scroll offset animation that is managed by only the
// impl thread, i.e. an impl-only scroll animation. It contains an
// AnimationTimeline and owns the (impl-only) scroll offset Animation running
// on a particular CC Layer. It exists only on the compositor thread.
class CC_ANIMATION_EXPORT ScrollOffsetAnimationImpl : public AnimationDelegate {};

// Contains an ScrollOffsetAnimationImpl which encapsulates the scroll offset
// animation running on a particular CC Layer.
// We have just one animation for impl-only scroll offset animations. I.e. only
// one element can have an impl-only scroll offset animation at any given time.
// To support multiple elements having impl-only scroll offset animations, this
// class will need to have a set (or map) of ScrollOffsetAnimations rather
// than just one.
// Note that this class only exists on the compositor thread.
class CC_ANIMATION_EXPORT ScrollOffsetAnimationsImpl {};

}  // namespace cc

#endif  // CC_ANIMATION_SCROLL_OFFSET_ANIMATIONS_IMPL_H_