platform/cc/Region.cc (137 lines of code) (raw):
#include <iostream>
#include <jni.h>
#include "SkRegion.h"
#include "interop.hh"
static void deleteRegion(SkRegion* region) {
// std::cout << "Deleting [SkRegion " << Region << "]" << std::endl;
delete region;
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Region__1nMake(JNIEnv* env, jclass jclass) {
SkRegion* obj = new SkRegion();
return reinterpret_cast<jlong>(obj);
}
extern "C" JNIEXPORT jlong JNICALL Java_org_jetbrains_skija_Region__1nGetFinalizer(JNIEnv* env, jclass jclass) {
return static_cast<jlong>(reinterpret_cast<uintptr_t>(&deleteRegion));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSet(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* other = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->set(*other);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nIsEmpty(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->isEmpty();
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nIsRect(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->isRect();
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nIsComplex(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->isComplex();
}
extern "C" JNIEXPORT jobject JNICALL Java_org_jetbrains_skija_Region__1nGetBounds(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return skija::IRect::fromSkIRect(env, instance->getBounds());
}
extern "C" JNIEXPORT jint JNICALL Java_org_jetbrains_skija_Region__1nComputeRegionComplexity(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->computeRegionComplexity();
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nGetBoundaryPath(JNIEnv* env, jclass jclass, jlong ptr, jlong pathPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkPath* path = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(pathPtr));
return instance->getBoundaryPath(path);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSetEmpty(JNIEnv* env, jclass jclass, jlong ptr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->setEmpty();
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSetRect(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->setRect({left, top, right, bottom});
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSetRects(JNIEnv* env, jclass jclass, jlong ptr, jintArray coords) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
int len = env->GetArrayLength(coords);
std::vector<SkIRect> rects(len / 4);
jint* arr = env->GetIntArrayElements(coords, 0);
for (int i = 0; i < len; i += 4)
rects[i / 4] = {arr[i], arr[i+1], arr[i+2], arr[i+3]};
env->ReleaseIntArrayElements(coords, arr, 0);
return instance->setRects(rects.data(), len / 4);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSetRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->setRegion(*region);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nSetPath(JNIEnv* env, jclass jclass, jlong ptr, jlong pathPtr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkPath* path = reinterpret_cast<SkPath*>(static_cast<uintptr_t>(pathPtr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->setPath(*path, *region);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nIntersectsIRect(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->intersects({left, top, right, bottom});
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nIntersectsRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->intersects(*region);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nContainsIPoint(JNIEnv* env, jclass jclass, jlong ptr, jint x, jint y) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->contains(x, y);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nContainsIRect(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->contains({left, top, right, bottom});
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nContainsRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->contains(*region);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nQuickContains(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->quickContains({left, top, right, bottom});
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nQuickRejectIRect(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->quickReject({left, top, right, bottom});
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nQuickRejectRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->contains(*region);
}
extern "C" JNIEXPORT void JNICALL Java_org_jetbrains_skija_Region__1nTranslate(JNIEnv* env, jclass jclass, jlong ptr, jint dx, jint dy) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
instance->translate(dx, dy);
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nOpIRect(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom, jint op) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
return instance->op({left, top, right, bottom}, static_cast<SkRegion::Op>(op));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nOpRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr, jint op) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->op(*region, static_cast<SkRegion::Op>(op));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nOpIRectRegion(JNIEnv* env, jclass jclass, jlong ptr, jint left, jint top, jint right, jint bottom, jlong regionPtr, jint op) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->op({left, top, right, bottom}, *region, static_cast<SkRegion::Op>(op));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nOpRegionIRect(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtr, jint left, jint top, jint right, jint bottom, jint op) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* region = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtr));
return instance->op(*region, {left, top, right, bottom}, static_cast<SkRegion::Op>(op));
}
extern "C" JNIEXPORT jboolean JNICALL Java_org_jetbrains_skija_Region__1nOpRegionRegion(JNIEnv* env, jclass jclass, jlong ptr, jlong regionPtrA, jlong regionPtrB, jint op) {
SkRegion* instance = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(ptr));
SkRegion* regionA = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtrA));
SkRegion* regionB = reinterpret_cast<SkRegion*>(static_cast<uintptr_t>(regionPtrB));
return instance->op(*regionA, *regionB, static_cast<SkRegion::Op>(op));
}