platform/cc/skottie/AnimationBuilder.cc (59 lines of code) (raw):
#include <jni.h>
#include "../interop.hh"
#include "SkStream.h"
#include "Skottie.h"
#include "SkFontMgr.h"
#include "SkResources.h"
#include "src/utils/SkOSPath.h"
using namespace skottie;
static void deleteAnimationBuilder(Animation::Builder* builder) {
delete builder;
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nGetFinalizer
(JNIEnv* env, jclass jclass) {
return static_cast<jlong>(reinterpret_cast<uintptr_t>(&deleteAnimationBuilder));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nMake
(JNIEnv* env, jclass jclass, jint flags) {
return reinterpret_cast<jlong>(new Animation::Builder(flags));
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nSetFontManager
(JNIEnv* env, jclass jclass, jlong ptr, jlong fontMgrPtr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
sk_sp<SkFontMgr> fontMgr = sk_ref_sp(reinterpret_cast<SkFontMgr*>(static_cast<uintptr_t>(fontMgrPtr)));
instance->setFontManager(fontMgr);
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nSetLogger
(JNIEnv* env, jclass jclass, jlong ptr, jlong loggerPtr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
sk_sp<skottie::Logger> logger = sk_ref_sp(reinterpret_cast<skottie::Logger*>(static_cast<uintptr_t>(loggerPtr)));
instance->setLogger(logger);
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nSetResourceProvider
(JNIEnv* env, jclass jclass, jlong ptr, jlong resourceProviderPtr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
sk_sp<ResourceProvider> resourceProvider = sk_ref_sp(reinterpret_cast<ResourceProvider*>(static_cast<uintptr_t>(resourceProviderPtr)));
instance->setResourceProvider(resourceProvider);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nBuildFromString
(JNIEnv* env, jclass jclass, jlong ptr, jstring dataStr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
SkString data = skString(env, dataStr);
sk_sp<Animation> animation = instance->make(data.c_str(), data.size());
return reinterpret_cast<jlong>(animation.release());
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nBuildFromFile
(JNIEnv* env, jclass jclass, jlong ptr, jstring pathStr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
SkString path = skString(env, pathStr);
sk_sp<Animation> animation = instance->makeFromFile(path.c_str());
return reinterpret_cast<jlong>(animation.release());
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_skottie_AnimationBuilder__1nBuildFromData
(JNIEnv* env, jclass jclass, jlong ptr, jlong dataPtr) {
Animation::Builder* instance = reinterpret_cast<Animation::Builder*>(static_cast<uintptr_t>(ptr));
SkData* data = reinterpret_cast<SkData*>(static_cast<uintptr_t>(dataPtr));
SkMemoryStream stream(sk_ref_sp(data));
sk_sp<Animation> animation = instance->make(&stream);
return reinterpret_cast<jlong>(animation.release());
}