#include "cc/animation/scroll_timeline.h"
#include <memory>
#include <vector>
#include "cc/animation/animation_id_provider.h"
#include "cc/animation/worklet_animation.h"
#include "cc/trees/property_tree.h"
#include "cc/trees/scroll_node.h"
#include "ui/gfx/geometry/point_f.h"
#include "ui/gfx/geometry/size.h"
namespace cc {
namespace {
bool IsVertical(ScrollTimeline::ScrollDirection direction) { … }
bool IsReverse(ScrollTimeline::ScrollDirection direction) { … }
}
ScrollTimeline::ScrollTimeline(std::optional<ElementId> scroller_id,
ScrollDirection direction,
std::optional<ScrollOffsets> scroll_offsets,
int animation_timeline_id)
: … { … }
ScrollTimeline::~ScrollTimeline() = default;
scoped_refptr<ScrollTimeline> ScrollTimeline::Create(
std::optional<ElementId> scroller_id,
ScrollTimeline::ScrollDirection direction,
std::optional<ScrollOffsets> scroll_offsets) { … }
scoped_refptr<AnimationTimeline> ScrollTimeline::CreateImplInstance() const { … }
bool ScrollTimeline::IsActive(const ScrollTree& scroll_tree,
bool is_active_tree) const { … }
std::optional<base::TimeTicks> ScrollTimeline::CurrentTime(
const ScrollTree& scroll_tree,
bool is_active_tree) const { … }
std::optional<base::TimeTicks> ScrollTimeline::Duration(
const ScrollTree& scroll_tree,
bool is_active_tree) const { … }
void ScrollTimeline::PushPropertiesTo(AnimationTimeline* impl_timeline) { … }
void ScrollTimeline::ActivateTimeline() { … }
bool ScrollTimeline::TickScrollLinkedAnimations(
const std::vector<scoped_refptr<Animation>>& ticking_animations,
const ScrollTree& scroll_tree,
bool is_active_tree) { … }
void ScrollTimeline::UpdateScrollerIdAndScrollOffsets(
std::optional<ElementId> pending_id,
std::optional<ScrollOffsets> pending_offsets) { … }
bool ScrollTimeline::IsScrollTimeline() const { … }
bool ScrollTimeline::IsLinkedToScroller(ElementId scroller) const { … }
}