diff options
-rw-r--r-- | libs/hwui/Properties.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/jni/MaskFilter.cpp | 12 |
2 files changed, 10 insertions, 4 deletions
diff --git a/libs/hwui/Properties.cpp b/libs/hwui/Properties.cpp index b0896daee2a1..33c9eac41cb6 100644 --- a/libs/hwui/Properties.cpp +++ b/libs/hwui/Properties.cpp @@ -21,7 +21,7 @@ #ifdef __ANDROID__ #include "HWUIProperties.sysprop.h" #endif -#include "SkTraceEventCommon.h" +#include "src/core/SkTraceEventCommon.h" #include <algorithm> #include <cstdlib> diff --git a/libs/hwui/jni/MaskFilter.cpp b/libs/hwui/jni/MaskFilter.cpp index 048ce025ce27..cbd452031f69 100644 --- a/libs/hwui/jni/MaskFilter.cpp +++ b/libs/hwui/jni/MaskFilter.cpp @@ -1,6 +1,5 @@ #include "GraphicsJNI.h" #include "SkMaskFilter.h" -#include "SkBlurMask.h" #include "SkBlurMaskFilter.h" #include "SkBlurTypes.h" #include "SkTableMaskFilter.h" @@ -11,6 +10,13 @@ static void ThrowIAE_IfNull(JNIEnv* env, void* ptr) { } } +// From https://skia.googlesource.com/skia/+/d74c99a3cd5eef5f16b2eb226e6b45fe523c8552/src/core/SkBlurMask.cpp#28 +static constexpr float kBLUR_SIGMA_SCALE = 0.57735f; + +static float convertRadiusToSigma(float radius) { + return radius > 0 ? kBLUR_SIGMA_SCALE * radius + 0.5f : 0.0f; +} + class SkMaskFilterGlue { public: static void destructor(JNIEnv* env, jobject, jlong filterHandle) { @@ -19,7 +25,7 @@ public: } static jlong createBlur(JNIEnv* env, jobject, jfloat radius, jint blurStyle) { - SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(radius); + SkScalar sigma = convertRadiusToSigma(radius); SkMaskFilter* filter = SkMaskFilter::MakeBlur((SkBlurStyle)blurStyle, sigma).release(); ThrowIAE_IfNull(env, filter); return reinterpret_cast<jlong>(filter); @@ -34,7 +40,7 @@ public: direction[i] = values[i]; } - SkScalar sigma = SkBlurMask::ConvertRadiusToSigma(radius); + SkScalar sigma = convertRadiusToSigma(radius); SkMaskFilter* filter = SkBlurMaskFilter::MakeEmboss(sigma, direction, ambient, specular).release(); ThrowIAE_IfNull(env, filter); |