[skottie] Surface composition markers in CK

Change-Id: Ie53c81f4dbe981327469d8a9990d27f8a41d8b4c
Reviewed-on: https://skia-review.googlesource.com/c/173983
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Florin Malita <fmalita@chromium.org>
This commit is contained in:
Florin Malita 2018-12-03 09:55:52 -05:00 committed by Skia Commit-Bot
parent 4fbdb12348
commit 6ba8c7ea84

View File

@ -169,6 +169,7 @@ public:
static sk_sp<ManagedAnimation> Make(const std::string& json) {
auto mgr = skstd::make_unique<skottie_utils::CustomPropertyManager>();
auto animation = skottie::Animation::Builder()
.setMarkerObserver(mgr->getMarkerObserver())
.setPropertyObserver(mgr->getPropertyObserver())
.make(json.c_str(), json.size());
@ -220,6 +221,18 @@ public:
return fPropMgr->setOpacity(key, o);
}
JSArray getMarkers() const {
JSArray markers = emscripten::val::array();
for (const auto& m : fPropMgr->markers()) {
JSObject marker = emscripten::val::object();
marker.set("name", m.name);
marker.set("t0" , m.t0);
marker.set("t1" , m.t1);
markers.call<void>("push", marker);
}
return markers;
}
private:
ManagedAnimation(sk_sp<skottie::Animation> animation,
std::unique_ptr<skottie_utils::CustomPropertyManager> propMgr)
@ -977,6 +990,7 @@ EMSCRIPTEN_BINDINGS(Skia) {
(&ManagedAnimation::render), allow_raw_pointers())
.function("setColor" , &ManagedAnimation::setColor)
.function("setOpacity", &ManagedAnimation::setOpacity)
.function("getMarkers", &ManagedAnimation::getMarkers)
.function("getColorProps" , &ManagedAnimation::getColorProps)
.function("getOpacityProps", &ManagedAnimation::getOpacityProps);