Fix range on blur intrinsic.
The intrinsic fails when the radius was 0. A blur
of radius 0 is a nop and should be disallowed. Fix the
test to allow sub-pixel radius to be selected.
bug 7273437
Change-Id: I2805674e29d557615eb7ac65c7910d4dffa28b58
diff --git a/graphics/java/android/renderscript/ScriptIntrinsicBlur.java b/graphics/java/android/renderscript/ScriptIntrinsicBlur.java
index 61e5d4f..2a04b42 100644
--- a/graphics/java/android/renderscript/ScriptIntrinsicBlur.java
+++ b/graphics/java/android/renderscript/ScriptIntrinsicBlur.java
@@ -69,13 +69,13 @@
/**
* Set the radius of the Blur.
*
- * Supported range 0-25
+ * Supported range 0 < radius <= 25
*
* @param radius The radius of the blur
*/
public void setRadius(float radius) {
- if (radius < 0 || radius > 25) {
- throw new RSIllegalArgumentException("Radius out of range (0-25).");
+ if (radius <= 0 || radius > 25) {
+ throw new RSIllegalArgumentException("Radius out of range (0 < r <= 25).");
}
setVar(0, radius);
}
diff --git a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java
index a2e4298..0c6d41d 100644
--- a/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java
+++ b/tests/RenderScriptTests/ImageProcessing/src/com/android/rs/image/Blur25.java
@@ -33,7 +33,7 @@
private int MAX_RADIUS = 25;
private ScriptC_threshold mScript;
- private int mRadius = MAX_RADIUS;
+ private float mRadius = MAX_RADIUS;
private float mSaturation = 1.0f;
private Allocation mScratchPixelsAllocation1;
private Allocation mScratchPixelsAllocation2;
@@ -51,13 +51,14 @@
public void onBar1Changed(int progress) {
- float fRadius = progress / 100.0f;
- fRadius *= (float)(MAX_RADIUS);
- mRadius = (int)fRadius;
+ mRadius = ((float)progress) / 100.0f * MAX_RADIUS;
+ if (mRadius <= 0.10f) {
+ mRadius = 0.10f;
+ }
if (mUseIntrinsic) {
mIntrinsic.setRadius(mRadius);
} else {
- mScript.invoke_setRadius(mRadius);
+ mScript.invoke_setRadius((int)mRadius);
}
}
@@ -111,7 +112,7 @@
if (mUseIntrinsic) {
mIntrinsic.setRadius(mRadius);
} else {
- mScript.invoke_setRadius(mRadius);
+ mScript.invoke_setRadius((int)mRadius);
}
}
}