diff options
author | 2019-04-26 09:22:13 -0400 | |
---|---|---|
committer | 2019-04-29 13:10:54 +0000 | |
commit | 2ee3743456f4f9c0d8eb28331be462fd0e06fe05 (patch) | |
tree | 91fd08d2a613d9bf6278c2f62a7db29ec65f293c | |
parent | 2f89e306aec95250b00af3b518d441fb98441622 (diff) |
use new non-255 colormatrix
also use new naming convention for asAColorMode
Test: make
Change-Id: I32ddaf6d2d0ce9b0f29ee32e866879884fc926b4
-rw-r--r-- | core/jni/android/graphics/ColorFilter.cpp | 16 | ||||
-rw-r--r-- | libs/hwui/CanvasTransform.cpp | 2 | ||||
-rw-r--r-- | libs/hwui/tests/common/scenes/SimpleColorMatrixAnimation.cpp | 1 | ||||
-rw-r--r-- | libs/hwui/tests/unit/SkiaBehaviorTests.cpp | 4 |
4 files changed, 11 insertions, 12 deletions
diff --git a/core/jni/android/graphics/ColorFilter.cpp b/core/jni/android/graphics/ColorFilter.cpp index c0fc28ab7830..164d35f46a47 100644 --- a/core/jni/android/graphics/ColorFilter.cpp +++ b/core/jni/android/graphics/ColorFilter.cpp @@ -46,14 +46,14 @@ public: } static jlong CreateColorMatrixFilter(JNIEnv* env, jobject, jfloatArray jarray) { - AutoJavaFloatArray autoArray(env, jarray, 20); - const float* src = autoArray.ptr(); - -#ifdef SK_SCALAR_IS_FLOAT - return reinterpret_cast<jlong>(SkColorFilters::MatrixRowMajor255(src).release()); -#else - SkASSERT(false); -#endif + float matrix[20]; + env->GetFloatArrayRegion(jarray, 0, 20, matrix); + // java biases the translates by 255, so undo that before calling skia + matrix[ 4] *= (1.0f/255); + matrix[ 9] *= (1.0f/255); + matrix[14] *= (1.0f/255); + matrix[19] *= (1.0f/255); + return reinterpret_cast<jlong>(SkColorFilters::Matrix(matrix).release()); } }; diff --git a/libs/hwui/CanvasTransform.cpp b/libs/hwui/CanvasTransform.cpp index 83e02b9e8c77..8c37d73366c2 100644 --- a/libs/hwui/CanvasTransform.cpp +++ b/libs/hwui/CanvasTransform.cpp @@ -100,7 +100,7 @@ static void applyColorTransform(ColorTransform transform, SkPaint& paint) { SkBlendMode mode; SkColor color; // TODO: LRU this or something to avoid spamming new color mode filters - if (paint.getColorFilter()->asColorMode(&color, &mode)) { + if (paint.getColorFilter()->asAColorMode(&color, &mode)) { color = transformColor(transform, color); paint.setColorFilter(SkColorFilters::Blend(color, mode)); } diff --git a/libs/hwui/tests/common/scenes/SimpleColorMatrixAnimation.cpp b/libs/hwui/tests/common/scenes/SimpleColorMatrixAnimation.cpp index c899a3c8cfc6..06205f67f20a 100644 --- a/libs/hwui/tests/common/scenes/SimpleColorMatrixAnimation.cpp +++ b/libs/hwui/tests/common/scenes/SimpleColorMatrixAnimation.cpp @@ -53,7 +53,6 @@ private: x, y, x + width, y + height, [width, height](RenderProperties& props, Canvas& canvas) { SkPaint paint; - // Simple scale/translate case where R, G, and B are all treated equivalently SkColorMatrix cm; cm.setScale(1.1f, 1.1f, 1.1f, 0.5f); diff --git a/libs/hwui/tests/unit/SkiaBehaviorTests.cpp b/libs/hwui/tests/unit/SkiaBehaviorTests.cpp index df5f45618070..7951537e1525 100644 --- a/libs/hwui/tests/unit/SkiaBehaviorTests.cpp +++ b/libs/hwui/tests/unit/SkiaBehaviorTests.cpp @@ -48,14 +48,14 @@ TEST(SkiaBehavior, lightingColorFilter_simplify) { SkColor observedColor; SkBlendMode observedMode; - ASSERT_TRUE(filter->asColorMode(&observedColor, &observedMode)); + ASSERT_TRUE(filter->asAColorMode(&observedColor, &observedMode)); EXPECT_EQ(0xFF223344, observedColor); EXPECT_EQ(SkBlendMode::kModulate, observedMode); } { sk_sp<SkColorFilter> failFilter(SkColorMatrixFilter::MakeLightingFilter(0x11223344, 0x1)); - EXPECT_FALSE(failFilter->asColorMode(nullptr, nullptr)); + EXPECT_FALSE(failFilter->asAColorMode(nullptr, nullptr)); } } |