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) {