28static constexpr char kWebFontResource[] =
"fonts/Roboto-Regular.ttf";
29static constexpr char kSkottieResource[] =
"skottie/skottie_sample_webfont.json";
67 *errorMsg =
"No animation";
68 return DrawResult::kFail;
72 fAnimation->
render(canvas, &dest);
73 return DrawResult::kOk;
87 inline static constexpr SkScalar kSize = 800;
100 , fResource(resource)
110 fPropManager = std::make_unique<skottie_utils::CustomPropertyManager>();
116 fColorProps = fPropManager->getColorProps();
117 fTextProps = fPropManager->getTextProps();
123 *errorMsg =
"No animation";
124 return DrawResult::kFail;
128 fAnimation->
render(canvas, &dest);
129 return DrawResult::kOk;
143 static constexpr SkColor kColors[] = {
152 fColorIndex = (fColorIndex + 1) % std::size(kColors);
153 for (
const auto&
prop : fColorProps) {
154 fPropManager->setColor(
prop, kColors[fColorIndex]);
156 for (
const auto&
prop : fTextProps) {
157 auto txtval = fPropManager->getText(
prop);
158 txtval.fFillColor = kColors[fColorIndex];
159 fPropManager->setText(
prop, txtval);
171 const char* fResource;
174 std::unique_ptr<skottie_utils::CustomPropertyManager> fPropManager;
175 std::vector<skottie_utils::CustomPropertyManager::PropKey> fColorProps,
177 size_t fColorIndex = 0;
203 *errorMsg =
"No animation";
204 return DrawResult::kFail;
208 fAnimation->
render(canvas, &dest);
209 return DrawResult::kOk;
226 const char[])
const override {
std::unique_ptr< SkStreamAsset > GetResourceAsStream(const char *resource, bool useFileStream)
sk_sp< SkData > GetResourceAsData(const char *resource)
constexpr SkColor SK_ColorYELLOW
constexpr SkColor SK_ColorCYAN
constexpr SkColor SK_ColorRED
constexpr SkColor SK_ColorBLACK
constexpr SkColor SK_ColorGREEN
#define INHERITED(method,...)
SK_API SkString static SkString SkStringPrintf()
DrawResult onDraw(SkCanvas *canvas, SkString *errorMsg) override
void onOnceBeforeDraw() override
SkISize getISize() override
SkString getName() const override
bool onAnimate(double nanos) override
bool onChar(SkUnichar uni) override
SkISize getISize() override
bool onAnimate(double nanos) override
void onOnceBeforeDraw() override
DrawResult onDraw(SkCanvas *canvas, SkString *errorMsg) override
SkISize getISize() override
bool onAnimate(double nanos) override
void onOnceBeforeDraw() override
DrawResult onDraw(SkCanvas *canvas, SkString *errorMsg) override
SkString getName() const override
Builder & setPropertyObserver(sk_sp< PropertyObserver >)
Builder & setResourceProvider(sk_sp< ResourceProvider >)
Builder & setFontManager(sk_sp< SkFontMgr >)
sk_sp< Animation > make(SkStream *)
Builder & setTextShapingFactory(sk_sp< SkShapers::Factory >)
void render(SkCanvas *canvas, const SkRect *dst=nullptr) const
void seek(SkScalar t, sksg::InvalidationController *ic=nullptr)
static sk_sp< MultiFrameImageAsset > Make(sk_sp< SkData >, ImageDecodeStrategy=ImageDecodeStrategy::kLazyDecode)
virtual sk_sp< ImageAsset > loadImageAsset(const char[], const char[], const char[]) const
virtual sk_sp< SkTypeface > loadTypeface(const char[], const char[]) const
static constexpr int kSize
SK_API std::unique_ptr< SkCodec > Decode(std::unique_ptr< SkStream >, SkCodec::Result *, SkCodecs::DecodeContext=nullptr)
sk_sp< Factory > BestAvailable()
static SkScalar prop(SkScalar radius, SkScalar newSize, SkScalar oldSize)
static constexpr SkISize Make(int32_t w, int32_t h)
static constexpr SkRect MakeWH(float w, float h)