// Copyright 2021 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_PAINT_SKOTTIE_FRAME_DATA_PROVIDER_H_ #define CC_PAINT_SKOTTIE_FRAME_DATA_PROVIDER_H_ #include <optional> #include <string_view> #include "base/files/file_path.h" #include "base/memory/ref_counted.h" #include "base/memory/scoped_refptr.h" #include "cc/paint/paint_export.h" #include "cc/paint/skottie_frame_data.h" #include "ui/gfx/geometry/size.h" namespace cc { // A Chromium-specific version of the skresources::ResourceProvider API, which // allows the code driving the animation to specify which image should be used // for each asset in each frame of the animation. Callers rendering Skottie // animations that may have images embedded in them must implement this API. In // the most basic case where an image asset does not change throughout the // course of the animation, the same image can be provided for every frame. But // more complex logic such as providing a different image at the start of each // animation cycle can be implemented if desired. // // Implementations are not required to be thread-safe (the provider and its // ImageAssets shall always be invoked from the same sequence). class CC_PAINT_EXPORT SkottieFrameDataProvider { … }; } // namespace cc #endif // CC_PAINT_SKOTTIE_FRAME_DATA_PROVIDER_H_