// Copyright 2017 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_WORKLET_ANIMATION_H_ #define CC_ANIMATION_WORKLET_ANIMATION_H_ #include <memory> #include <optional> #include <string> #include "base/gtest_prod_util.h" #include "base/time/time.h" #include "cc/animation/animation.h" #include "cc/animation/animation_export.h" #include "cc/animation/animation_host.h" #include "cc/trees/property_tree.h" namespace cc { class AnimationOptions; class AnimationEffectTimings; // A WorkletAnimation is an animation that allows its animation // timing to be controlled by an animator instance that is running in a // AnimationWorkletGlobalScope. // Two instances of this class are created for Blink WorkletAnimation: // 1. UI thread instance that keeps all the meta data. // 2. Impl thread instance that ticks the animations on the Impl thread. // When Blink WorkletAnimation is updated, it calls the UI thread instance to // modify its properties. The updated properties are pushed by the UI thread // instance to the Impl thread instance during commit. class CC_ANIMATION_EXPORT WorkletAnimation final : public Animation { … }; inline WorkletAnimation* ToWorkletAnimation(Animation* animation) { … } } // namespace cc #endif // CC_ANIMATION_WORKLET_ANIMATION_H_