use new non-255 colormatrix
also use new naming convention for asAColorMode Test: make Change-Id: I32ddaf6d2d0ce9b0f29ee32e866879884fc926b4
This commit is contained in:
@@ -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());
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user