platform/cc/shaper/TextBlobBuilderRunHandler.cc (21 lines of code) (raw):

#include <jni.h> #include "../interop.hh" #include "SkShaper.h" static void deleteTextBlobBuilderRunHandler(SkTextBlobBuilderRunHandler* instance) { // std::cout << "Deleting [SkTextBlobBuilderRunHandler " << instance << "]" << std::endl; delete instance; } extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_shaper_TextBlobBuilderRunHandler__1nGetFinalizer (JNIEnv* env, jclass jclass) { return static_cast<jlong>(reinterpret_cast<uintptr_t>(&deleteTextBlobBuilderRunHandler)); } extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_shaper_TextBlobBuilderRunHandler__1nMake (JNIEnv* env, jclass jclass, jlong textPtr, jfloat offsetX, jfloat offsetY) { SkString* text = reinterpret_cast<SkString*>(static_cast<uintptr_t>(textPtr)); auto instance = new SkTextBlobBuilderRunHandler(text->c_str(), {offsetX, offsetY}); return reinterpret_cast<jlong>(instance); } extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_shaper_TextBlobBuilderRunHandler__1nMakeBlob (JNIEnv* env, jclass jclass, jlong ptr) { SkTextBlobBuilderRunHandler* instance = reinterpret_cast<SkTextBlobBuilderRunHandler*>(static_cast<uintptr_t>(ptr)); return reinterpret_cast<jlong>(instance->makeBlob().release()); }