17static void ImageFilter_Release(JNIEnv*
env, jobject, jlong native_imageFilter) {
21static long ImageFilter_DistantLitDiffuse(JNIEnv*
env, jobject, jfloat
x, jfloat
y, jfloat z,
22 jfloat r, jfloat g, jfloat
b,
23 jfloat surfaceScale, jfloat kd,
29 return reinterpret_cast<jlong
>(filter.release());
32static long ImageFilter_Blur(JNIEnv*
env, jobject, jfloat sigmaX, jfloat sigmaY,
33 jint jTileMode, jfloat l, jfloat t, jfloat r,
34 jfloat
b, jlong native_input) {
39 return reinterpret_cast<jlong
>(filter.release());
42static long ImageFilter_DropShadow(JNIEnv*
env, jobject, jfloat dx, jfloat dy,
43 jfloat sigmaX, jfloat sigmaY,
44 jfloat r, jfloat g, jfloat
b,
49 return reinterpret_cast<jlong
>(filter.release());
52static long ImageFilter_Blend(JNIEnv*
env, jobject, jint bm, jlong background, jlong foreground) {
56 return reinterpret_cast<jlong
>(filter.release());
59static long ImageFilter_Image(JNIEnv*
env, jobject, jlong native_image) {
62 return reinterpret_cast<jlong
>(filter.release());
68 static const JNINativeMethod methods[] = {
69 {
"nRelease" ,
"(J)V" ,
reinterpret_cast<void*
>(ImageFilter_Release)},
70 {
"nDistantLitDiffuse",
"(FFFFFFFFJ)J" ,
reinterpret_cast<void*
>(ImageFilter_DistantLitDiffuse)},
71 {
"nBlur" ,
"(FFIFFFFJ)J" ,
reinterpret_cast<void*
>(ImageFilter_Blur)},
72 {
"nDropShadow" ,
"(FFFFFFFJ)J" ,
reinterpret_cast<void*
>(ImageFilter_DropShadow)},
73 {
"nBlend" ,
"(IJJ)J" ,
reinterpret_cast<void*
>(ImageFilter_Blend)},
74 {
"nImage" ,
"(J)J" ,
reinterpret_cast<void*
>(ImageFilter_Image)},
77 const auto clazz =
env->FindClass(
"org/skia/jetski/ImageFilter");
79 ?
env->RegisterNatives(clazz, methods, std::size(methods))
int register_jetski_ImageFilter(JNIEnv *env)
static void SkSafeUnref(T *obj)
sk_sp< T > sk_ref_sp(T *obj)
static sk_sp< SkImageFilter > DropShadow(SkScalar dx, SkScalar dy, SkScalar sigmaX, SkScalar sigmaY, SkColor color, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > DistantLitDiffuse(const SkPoint3 &direction, SkColor lightColor, SkScalar surfaceScale, SkScalar kd, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Blur(SkScalar sigmaX, SkScalar sigmaY, SkTileMode tileMode, sk_sp< SkImageFilter > input, const CropRect &cropRect={})
static sk_sp< SkImageFilter > Image(sk_sp< SkImage > image, const SkRect &srcRect, const SkRect &dstRect, const SkSamplingOptions &sampling)
static sk_sp< SkImageFilter > Blend(SkBlendMode mode, sk_sp< SkImageFilter > background, sk_sp< SkImageFilter > foreground=nullptr, const CropRect &cropRect={})
SkTileMode TileMode(jint tm)
SkBlendMode BlendMode(jint bm)
static SkPoint3 Make(SkScalar x, SkScalar y, SkScalar z)
static constexpr SkRect MakeLTRB(float l, float t, float r, float b)