remove mutable apis on SkColorMatrixFilter, must use constructor.
fix flattening to not write function-ptrs (no go for serialization), so we
store the raw float values now.
Slight change to GM/DRT images for GPU possible. Just rebaseline.
Review URL: https://codereview.appspot.com/6273052
git-svn-id: http://skia.googlecode.com/svn/trunk@4143 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/gm/colormatrix.cpp b/gm/colormatrix.cpp
index cc5cfbc..518ccd0 100644
--- a/gm/colormatrix.cpp
+++ b/gm/colormatrix.cpp
@@ -27,6 +27,14 @@
mutable bool fOnce;
};
+static void setColorMatrix(SkPaint* paint, const SkColorMatrix& matrix) {
+ paint->setColorFilter(SkNEW_ARGS(SkColorMatrixFilter, (matrix)))->unref();
+}
+
+static void setArray(SkPaint* paint, const SkScalar array[]) {
+ paint->setColorFilter(SkNEW_ARGS(SkColorMatrixFilter, (array)))->unref();
+}
+
namespace skiagm {
class ColorMatrixGM : public GM {
@@ -72,47 +80,45 @@
SkPaint paint;
SkColorMatrix matrix;
- SkColorMatrixFilter* filter = new SkColorMatrixFilter();
- paint.setColorFilter(filter)->unref();
matrix.setIdentity();
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 0, 0, &paint);
matrix.setRotate(SkColorMatrix::kR_Axis, 90);
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 80, 0, &paint);
matrix.setRotate(SkColorMatrix::kG_Axis, 90);
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 160, 0, &paint);
matrix.setRotate(SkColorMatrix::kB_Axis, 90);
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 240, 0, &paint);
matrix.setSaturation(SkFloatToScalar(0.0f));
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 0, 80, &paint);
matrix.setSaturation(SkFloatToScalar(0.5f));
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 80, 80, &paint);
matrix.setSaturation(SkFloatToScalar(1.0f));
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 160, 80, &paint);
matrix.setSaturation(SkFloatToScalar(2.0f));
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 240, 80, &paint);
matrix.setRGB2YUV();
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 0, 160, &paint);
matrix.setYUV2RGB();
- filter->setMatrix(matrix);
+ setColorMatrix(&paint, matrix);
canvas->drawBitmap(fBitmap, 80, 160, &paint);
SkScalar s1 = SK_Scalar1;
@@ -125,7 +131,7 @@
s1, 0, 0, 0, 0,
};
- filter->setArray(data);
+ setArray(&paint, data);
canvas->drawBitmap(fBitmap, 160, 160, &paint);
}