Chromium Code Reviews| Index: tests/PaintTest.cpp |
| diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp |
| index c41e23ac54630e5844710f6427a7a8c1671bb208..91619e350bbaff086b04625a66f1108b01d2bb4e 100644 |
| --- a/tests/PaintTest.cpp |
| +++ b/tests/PaintTest.cpp |
| @@ -228,6 +228,76 @@ DEF_TEST(Paint_regression_cubic, reporter) { |
| REPORTER_ASSERT(reporter, maxR.contains(strokeR)); |
| } |
| +static void test_filter_flags(skiatest::Reporter* reporter) { |
|
mtklein
2014/04/15 20:11:18
DEF_TEST(Paint_FilterFlags, reporter) {
...
}
?
reed1
2014/04/15 20:31:18
Done.
|
| + 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) { |
| @@ -277,4 +347,6 @@ DEF_TEST(Paint_FlatteningTraits, r) { |
| ASSERT(other.getXfermode()->asMode(&otherMode)); |
| ASSERT(paint.getXfermode()->asMode(&paintMode)); |
| ASSERT(otherMode == paintMode); |
| + |
| + test_filter_flags(r); |
| } |