Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fa5180ed authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "use new non-255 colormatrix"

parents d0565e7f 2ee37434
Loading
Loading
Loading
Loading
+8 −8
Original line number Diff line number Diff line
@@ -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());
    }
};

+1 −1
Original line number Diff line number Diff line
@@ -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));
        }
+0 −1
Original line number Diff line number Diff line
@@ -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);
+2 −2
Original line number Diff line number Diff line
@@ -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));
    }
}