[jetski] ask for a crop rect when using ImageFilter.blur
b/40039025
Change-Id: I5aa6bb232e7d8482200ddda48752d2d522e39113
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/743497
Reviewed-by: Michael Ludwig <michaelludwig@google.com>
Commit-Queue: Jorge Betancourt <jmbetancourt@google.com>
diff --git a/modules/jetski/src/ImageFilter.cpp b/modules/jetski/src/ImageFilter.cpp
index 7384a84..fdfc307 100644
--- a/modules/jetski/src/ImageFilter.cpp
+++ b/modules/jetski/src/ImageFilter.cpp
@@ -30,11 +30,12 @@
}
static long ImageFilter_Blur(JNIEnv* env, jobject, jfloat sigmaX, jfloat sigmaY,
- jint jTileMode, jlong native_input) {
+ jint jTileMode, jfloat l, jfloat t, jfloat r,
+ jfloat b, jlong native_input) {
auto input = sk_ref_sp(reinterpret_cast<SkImageFilter*>(native_input));
auto filter = SkImageFilters::Blur(sigmaX, sigmaY,
jetski::utils::TileMode(jTileMode),
- std::move(input));
+ std::move(input), SkRect::MakeLTRB(l,t,r,b));
return reinterpret_cast<jlong>(filter.release());
}
@@ -65,12 +66,12 @@
int register_jetski_ImageFilter(JNIEnv* env) {
static const JNINativeMethod methods[] = {
- {"nRelease" , "(J)V" , reinterpret_cast<void*>(ImageFilter_Release)},
- {"nDistantLitDiffuse", "(FFFFFFFFJ)J", reinterpret_cast<void*>(ImageFilter_DistantLitDiffuse)},
- {"nBlur" , "(FFIJ)J" , reinterpret_cast<void*>(ImageFilter_Blur)},
- {"nDropShadow" , "(FFFFFFFJ)J" , reinterpret_cast<void*>(ImageFilter_DropShadow)},
- {"nBlend" , "(IJJ)J" , reinterpret_cast<void*>(ImageFilter_Blend)},
- {"nImage" , "(J)J" , reinterpret_cast<void*>(ImageFilter_Image)},
+ {"nRelease" , "(J)V" , reinterpret_cast<void*>(ImageFilter_Release)},
+ {"nDistantLitDiffuse", "(FFFFFFFFJ)J" , reinterpret_cast<void*>(ImageFilter_DistantLitDiffuse)},
+ {"nBlur" , "(FFIFFFFJ)J" , reinterpret_cast<void*>(ImageFilter_Blur)},
+ {"nDropShadow" , "(FFFFFFFJ)J" , reinterpret_cast<void*>(ImageFilter_DropShadow)},
+ {"nBlend" , "(IJJ)J" , reinterpret_cast<void*>(ImageFilter_Blend)},
+ {"nImage" , "(J)J" , reinterpret_cast<void*>(ImageFilter_Image)},
};
const auto clazz = env->FindClass("org/skia/jetski/ImageFilter");
diff --git a/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java b/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java
index 04c5c1a..bbd08c6 100644
--- a/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java
+++ b/platform_tools/android/apps/jetski/src/main/java/org/skia/jetski/ImageFilter.java
@@ -45,14 +45,18 @@
* @param sigmaX The Gaussian sigma value for blurring along the X axis.
* @param sigmaY The Gaussian sigma value for blurring along the Y axis.
* @param tileMode The tile mode applied at edges
+ * @param left Left, top, right, bottom are used to make the crop rect
* @param input The input filter that is blurred, uses source bitmap if this is null.
*/
- public static ImageFilter blur(float sigmaX, float sigmaY, TileMode tileMode, @Nullable ImageFilter input) {
+ public static ImageFilter blur(float sigmaX, float sigmaY, TileMode tileMode,
+ float left, float top, float right, float bottom,
+ @Nullable ImageFilter input) {
long nativeInput = 0;
if (input != null) {
nativeInput = input.getNativeInstance();
}
- return new ImageFilter(nBlur(sigmaX, sigmaY, tileMode.nativeInt, nativeInput));
+ return new ImageFilter(nBlur(sigmaX, sigmaY, tileMode.nativeInt,
+ left, top, right, bottom, nativeInput));
}
/**
@@ -112,7 +116,8 @@
float r, float g, float b,
float surfaceScale, float kd,
long native_input);
- private static native long nBlur(float sigmaX, float sigmaY, int tileMode, long native_input);
+ private static native long nBlur(float sigmaX, float sigmaY, int tileMode,
+ float l, float t, float r, float b, long native_input);
private static native long nDropShadow(float dx, float dy, float sigmaX, float sigmaY,
float r, float g, float b, long native_input);
private static native long nBlend(int blendMode, long native_background, long native_foreground);