remove legacy filter-flags, and store FilterLevel directly

BUG=skia:
R=robertphillips@google.com, humper@google.com, jvanverth@google.com, mtklein@google.com

Author: reed@google.com

Review URL: https://codereview.chromium.org/239393002

git-svn-id: http://skia.googlecode.com/svn/trunk@14217 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
index cfbe23a..98110e0 100644
--- a/tests/PaintTest.cpp
+++ b/tests/PaintTest.cpp
@@ -229,6 +229,76 @@
     REPORTER_ASSERT(reporter, maxR.contains(strokeR));
 }
 
+DEF_TEST(Paint_flattening, reporter) {
+    const SkPaint::FilterLevel levels[] = {
+        SkPaint::kNone_FilterLevel,
+        SkPaint::kLow_FilterLevel,
+        SkPaint::kMedium_FilterLevel,
+        SkPaint::kHigh_FilterLevel,
+    };
+    const SkPaint::Hinting hinting[] = {
+        SkPaint::kNo_Hinting,
+        SkPaint::kSlight_Hinting,
+        SkPaint::kNormal_Hinting,
+        SkPaint::kFull_Hinting,
+    };
+    const SkPaint::Align align[] = {
+        SkPaint::kLeft_Align,
+        SkPaint::kCenter_Align,
+        SkPaint::kRight_Align
+    };
+    const SkPaint::Cap caps[] = {
+        SkPaint::kButt_Cap,
+        SkPaint::kRound_Cap,
+        SkPaint::kSquare_Cap,
+    };
+    const SkPaint::Join joins[] = {
+        SkPaint::kMiter_Join,
+        SkPaint::kRound_Join,
+        SkPaint::kBevel_Join,
+    };
+    const SkPaint::TextEncoding encodings[] = {
+        SkPaint::kUTF8_TextEncoding,
+        SkPaint::kUTF16_TextEncoding,
+        SkPaint::kUTF32_TextEncoding,
+        SkPaint::kGlyphID_TextEncoding,
+    };
+    const SkPaint::Style styles[] = {
+        SkPaint::kFill_Style,
+        SkPaint::kStroke_Style,
+        SkPaint::kStrokeAndFill_Style,
+    };
+
+#define FOR_SETUP(index, array, setter)                                 \
+    for (size_t index = 0; index < SK_ARRAY_COUNT(array); ++index) {    \
+        paint.setter(array[index]);                                     \
+
+    SkPaint paint;
+    paint.setFlags(0x1234);
+
+    FOR_SETUP(i, levels, setFilterLevel)
+    FOR_SETUP(j, hinting, setHinting)
+    FOR_SETUP(k, align, setTextAlign)
+    FOR_SETUP(l, caps, setStrokeCap)
+    FOR_SETUP(m, joins, setStrokeJoin)
+    FOR_SETUP(n, encodings, setTextEncoding)
+    FOR_SETUP(p, styles, setStyle)
+
+    SkWriteBuffer writer;
+    paint.flatten(writer);
+
+    const uint32_t* written = writer.getWriter32()->contiguousArray();
+    SkReadBuffer reader(written, writer.bytesWritten());
+    
+    SkPaint paint2;
+    paint2.unflatten(reader);
+    REPORTER_ASSERT(reporter, paint2 == paint);
+
+    }}}}}}}
+#undef FOR_SETUP
+
+}
+
 // found and fixed for android: not initializing rect for string's of length 0
 DEF_TEST(Paint_regression_measureText, reporter) {