// Copyright 2017 The Chromium Authors. All rights reserved. // 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_WORKLET_ANIMATION_BASE_H_ #define THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_WORKLET_ANIMATION_BASE_H_ #include "third_party/blink/renderer/core/core_export.h" #include "third_party/blink/renderer/platform/bindings/script_wrappable.h" #include "third_party/blink/renderer/platform/graphics/animation_worklet_mutators_state.h" #include "third_party/blink/renderer/platform/wtf/forward.h" namespace blink { class AnimationTimeline; class Document; class KeyframeEffect; class CORE_EXPORT WorkletAnimationBase : public ScriptWrappable { public: ~WorkletAnimationBase() override = default; // Asks the animation to update its effect inherited time. virtual void Update(TimingUpdateReason) = 0; // Updates the animation on the compositor side to reflect the main thread // state. virtual void UpdateCompositingState() = 0; virtual void InvalidateCompositingState() = 0; virtual Document* GetDocument() const = 0; virtual KeyframeEffect* GetEffect() const = 0; virtual const WorkletAnimationId& GetWorkletAnimationId() const = 0; virtual bool IsActiveAnimation() const = 0; virtual void UpdateInputState(AnimationWorkletDispatcherInput*) = 0; virtual void SetOutputState( const AnimationWorkletOutput::AnimationState&) = 0; virtual AnimationTimeline* GetTimeline() const = 0; }; } // namespace blink #endif // THIRD_PARTY_BLINK_RENDERER_CORE_ANIMATION_WORKLET_ANIMATION_BASE_H_