[skottie] Fix image loading in Viewer
With the switch to ImageAsset, I forgot to update the default/local
resource loader.
TBR=
Change-Id: I1ab898a896162718df04094a31648bf8e876d91b
Reviewed-on: https://skia-review.googlesource.com/c/161546
Reviewed-by: Florin Malita <fmalita@chromium.org>
Commit-Queue: Florin Malita <fmalita@chromium.org>
diff --git a/modules/skottie/src/Skottie.cpp b/modules/skottie/src/Skottie.cpp
index 598a7c7..792ca05 100644
--- a/modules/skottie/src/Skottie.cpp
+++ b/modules/skottie/src/Skottie.cpp
@@ -10,6 +10,7 @@
#include "SkCanvas.h"
#include "SkData.h"
#include "SkFontMgr.h"
+#include "SkImage.h"
#include "SkMakeUnique.h"
#include "SkOSPath.h"
#include "SkPaint.h"
@@ -398,7 +399,29 @@
return SkData::MakeFromFileName(full_path.c_str());
}
+ sk_sp<ImageAsset> loadImageAsset(const char resource_path[],
+ const char resource_name[]) const override {
+ auto data = this->load(resource_path, resource_name);
+
+ return data
+ ? sk_make_sp<StaticImageAsset>(SkImage::MakeFromEncoded(std::move(data)))
+ : nullptr;
+ }
+
private:
+ class StaticImageAsset final : public ImageAsset {
+ public:
+ explicit StaticImageAsset(sk_sp<SkImage> image)
+ : fImage(std::move(image)) {}
+
+ bool isMultiFrame() override { return false; }
+
+ sk_sp<SkImage> getFrame(float) override { return fImage; }
+
+ private:
+ sk_sp<SkImage> fImage;
+ };
+
const SkString fDir;
};