platform/cc/Paint.cc (219 lines of code) (raw):
#include <iostream>
#include <jni.h>
#include "SkColorFilter.h"
#include "SkImageFilter.h"
#include "SkMaskFilter.h"
#include "SkPaint.h"
#include "SkPathEffect.h"
#include "SkShader.h"
#include "SkFilterQuality.h"
#include "interop.hh"
static void deletePaint(SkPaint* paint) {
// std::cout << "Deleting [SkPaint " << paint << "]" << std::endl;
delete paint;
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetFinalizer
(JNIEnv* env, jclass jclass) {
return static_cast<jlong>(reinterpret_cast<uintptr_t>(&deletePaint));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nMake
(JNIEnv* env, jclass jclass) {
SkPaint* obj = new SkPaint();
obj->setAntiAlias(true);
return reinterpret_cast<jlong>(obj);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nMakeClone
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPaint* obj = new SkPaint(*instance);
return reinterpret_cast<jlong>(obj);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Paint__1nEquals
(JNIEnv* env, jclass jclass, jlong aPtr, jlong bPtr) {
SkPaint* a = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(aPtr));
SkPaint* b = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(bPtr));
return *a == *b;
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nReset
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->reset();
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Paint__1nIsAntiAlias
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->isAntiAlias();
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetAntiAlias
(JNIEnv* env, jclass jclass, jlong ptr, jboolean value) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setAntiAlias(value);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Paint__1nIsDither
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->isDither();
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetDither
(JNIEnv* env, jclass jclass, jlong ptr, jboolean value) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setDither(value);
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Paint__1nGetColor
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->getColor();
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetColor
(JNIEnv* env, jclass jclass, jlong ptr, jint color) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setColor(color);
}
extern "C" JNIEXPORT jobject JNICALL Java_org_jetbrains_skija_Paint__1nGetColor4f
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkColor4f color = instance->getColor4f();
return env->NewObject(skija::Color4f::cls, skija::Color4f::ctor, color.fR, color.fG, color.fB, color.fA);
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetColor4f
(JNIEnv* env, jclass jclass, jlong ptr, jfloat r, jfloat g, jfloat b, jfloat a, jlong colorSpacePtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkColorSpace* colorSpace = reinterpret_cast<SkColorSpace*>(static_cast<uintptr_t>(colorSpacePtr));
instance->setColor4f({r, g, b, a}, colorSpace);
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Paint__1nGetMode
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return static_cast<jlong>(instance->getStyle());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetMode
(JNIEnv* env, jclass jclass, jlong ptr, jint mode) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setStyle(static_cast<SkPaint::Style>(mode));
}
extern "C" JNIEXPORT jfloat JNICALL Java_org_jetbrains_skija_Paint__1nGetStrokeWidth
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->getStrokeWidth();
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetStrokeWidth
(JNIEnv* env, jclass jclass, jlong ptr, jfloat width) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setStrokeWidth(width);
}
extern "C" JNIEXPORT jfloat JNICALL Java_org_jetbrains_skija_Paint__1nGetStrokeMiter
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->getStrokeMiter();
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetStrokeMiter
(JNIEnv* env, jclass jclass, jlong ptr, jfloat miter) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setStrokeMiter(miter);
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Paint__1nGetStrokeCap
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return static_cast<jlong>(instance->getStrokeCap());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetStrokeCap
(JNIEnv* env, jclass jclass, jlong ptr, jint cap) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setStrokeCap(static_cast<SkPaint::Cap>(cap));
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Paint__1nGetStrokeJoin
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return static_cast<jlong>(instance->getStrokeJoin());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetStrokeJoin
(JNIEnv* env, jclass jclass, jlong ptr, jint join) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setStrokeJoin(static_cast<SkPaint::Join>(join));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetFillPath
(JNIEnv* env, jclass jclass, jlong ptr, jlong srcPtr, jfloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPath* src = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(srcPtr));
SkPath* dst = new SkPath();
instance->getFillPath(*src, dst, nullptr, resScale);
return reinterpret_cast<jlong>(dst);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetFillPathCull
(JNIEnv* env, jclass jclass, jlong ptr, jlong srcPtr, jfloat left, jfloat top, jfloat right, jfloat bottom, jfloat resScale) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPath* src = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(srcPtr));
SkPath* dst = new SkPath();
SkRect cull {left, top, right, bottom};
instance->getFillPath(*src, dst, &cull, resScale);
return reinterpret_cast<jlong>(dst);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetMaskFilter
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return reinterpret_cast<jlong>(instance->refMaskFilter().release());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetMaskFilter
(JNIEnv* env, jclass jclass, jlong ptr, jlong filterPtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkMaskFilter* filter = reinterpret_cast<SkMaskFilter*>(static_cast<uintptr_t>(filterPtr));
instance->setMaskFilter(sk_ref_sp<SkMaskFilter>(filter));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetImageFilter
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return reinterpret_cast<jlong>(instance->refImageFilter().release());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetImageFilter
(JNIEnv* env, jclass jclass, jlong ptr, jlong filterPtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkImageFilter* filter = reinterpret_cast<SkImageFilter*>(static_cast<uintptr_t>(filterPtr));
instance->setImageFilter(sk_ref_sp<SkImageFilter>(filter));
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Paint__1nGetBlendMode
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return static_cast<jlong>(instance->getBlendMode_or(SkBlendMode::kSrcOver));
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetBlendMode
(JNIEnv* env, jclass jclass, jlong ptr, jint mode) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
instance->setBlendMode(static_cast<SkBlendMode>(mode));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetPathEffect
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return reinterpret_cast<jlong>(instance->refPathEffect().release());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetPathEffect
(JNIEnv* env, jclass jclass, jlong ptr, jlong pathEffectPtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkPathEffect* pathEffect = reinterpret_cast<SkPathEffect*>(static_cast<uintptr_t>(pathEffectPtr));
instance->setPathEffect(sk_ref_sp(pathEffect));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetShader
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return reinterpret_cast<jlong>(instance->refShader().release());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetShader
(JNIEnv* env, jclass jclass, jlong ptr, jlong shaderPtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkShader* shader = reinterpret_cast<SkShader*>(static_cast<uintptr_t>(shaderPtr));
instance->setShader(sk_ref_sp<SkShader>(shader));
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Paint__1nGetColorFilter
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return reinterpret_cast<jlong>(instance->refColorFilter().release());
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Paint__1nSetColorFilter
(JNIEnv* env, jclass jclass, jlong ptr, jlong colorFilterPtr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
SkColorFilter* colorFilter = reinterpret_cast<SkColorFilter*>(static_cast<uintptr_t>(colorFilterPtr));
instance->setColorFilter(sk_ref_sp<SkColorFilter>(colorFilter));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Paint__1nHasNothingToDraw
(JNIEnv* env, jclass jclass, jlong ptr) {
SkPaint* instance = reinterpret_cast<SkPaint*>(static_cast<uintptr_t>(ptr));
return instance->nothingToDraw();
}