summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/jni/android/graphics/Paint.cpp9
-rw-r--r--graphics/java/android/graphics/Paint.java5
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);