diff options
| -rw-r--r-- | core/jni/android/graphics/Paint.cpp | 9 | ||||
| -rw-r--r-- | graphics/java/android/graphics/Paint.java | 5 |
2 files changed, 11 insertions, 3 deletions
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp index cd7346eb0215..376d6f331d72 100644 --- a/core/jni/android/graphics/Paint.cpp +++ b/core/jni/android/graphics/Paint.cpp @@ -723,13 +723,17 @@ namespace PaintGlue { obj->setStyle(style); } - static void setColor(jlong paintHandle, jlong colorSpaceHandle, + static void setColorLong(jlong paintHandle, jlong colorSpaceHandle, jfloat r, jfloat g, jfloat b, jfloat a) { sk_sp<SkColorSpace> cs = GraphicsJNI::getNativeColorSpace(colorSpaceHandle); SkColor4f color = SkColor4f{r, g, b, a}; reinterpret_cast<Paint*>(paintHandle)->setColor4f(color, cs.get()); } + static void setColor(jlong paintHandle, jint color) { + reinterpret_cast<Paint*>(paintHandle)->setColor(color); + } + static void setAlpha(jlong paintHandle, jint a) { reinterpret_cast<Paint*>(paintHandle)->setAlpha(a); } @@ -1082,7 +1086,8 @@ static const JNINativeMethod methods[] = { {"nSetDither","(JZ)V", (void*) PaintGlue::setDither}, {"nGetStyle","(J)I", (void*) PaintGlue::getStyle}, {"nSetStyle","(JI)V", (void*) PaintGlue::setStyle}, - {"nSetColor","(JJFFFF)V", (void*) PaintGlue::setColor}, + {"nSetColor","(JI)V", (void*) PaintGlue::setColor}, + {"nSetColor","(JJFFFF)V", (void*) PaintGlue::setColorLong}, {"nSetAlpha","(JI)V", (void*) PaintGlue::setAlpha}, {"nGetStrokeWidth","(J)F", (void*) PaintGlue::getStrokeWidth}, {"nSetStrokeWidth","(JF)V", (void*) PaintGlue::setStrokeWidth}, diff --git a/graphics/java/android/graphics/Paint.java b/graphics/java/android/graphics/Paint.java index 452f7c93f8aa..966e171a9c04 100644 --- a/graphics/java/android/graphics/Paint.java +++ b/graphics/java/android/graphics/Paint.java @@ -1048,7 +1048,8 @@ public class Paint { * @param color The new color (including alpha) to set in the paint. */ public void setColor(@ColorInt int color) { - setColor(Color.pack(color)); + nSetColor(mNativePaint, color); + mColor = Color.pack(color); } /** @@ -3192,6 +3193,8 @@ public class Paint { private static native void nSetColor(long paintPtr, long colorSpaceHandle, float r, float g, float b, float a); @CriticalNative + private static native void nSetColor(long paintPtr, @ColorInt int color); + @CriticalNative private static native void nSetStrikeThruText(long paintPtr, boolean strikeThruText); @CriticalNative private static native boolean nIsElegantTextHeight(long paintPtr); |