| Index: tests/PaintTest.cpp
|
| diff --git a/tests/PaintTest.cpp b/tests/PaintTest.cpp
|
| index c41e23ac54630e5844710f6427a7a8c1671bb208..70084e7d498f2953d0bfe37c7b6710304806c6ce 100644
|
| --- a/tests/PaintTest.cpp
|
| +++ b/tests/PaintTest.cpp
|
| @@ -228,6 +228,43 @@ DEF_TEST(Paint_regression_cubic, reporter) {
|
| REPORTER_ASSERT(reporter, maxR.contains(strokeR));
|
| }
|
|
|
| +static void test_filter_flags(skiatest::Reporter* 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,
|
| + };
|
| +
|
| + for (size_t i = 0; i < SK_ARRAY_COUNT(levels); ++i) {
|
| + for (size_t j = 0; j < SK_ARRAY_COUNT(hinting); ++j) {
|
| + SkPaint paint;
|
| + paint.setFilterLevel(levels[i]);
|
| + paint.setHinting(hinting[j]);
|
| + REPORTER_ASSERT(reporter, paint.getFilterLevel() == levels[i]);
|
| + REPORTER_ASSERT(reporter, paint.getHinting() == hinting[j]);
|
| +
|
| + 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.getFilterLevel() == levels[i]);
|
| + REPORTER_ASSERT(reporter, paint2.getHinting() == hinting[j]);
|
| + }
|
| + }
|
| +}
|
| +
|
| // found and fixed for android: not initializing rect for string's of length 0
|
| DEF_TEST(Paint_regression_measureText, reporter) {
|
|
|
| @@ -277,4 +314,6 @@ DEF_TEST(Paint_FlatteningTraits, r) {
|
| ASSERT(other.getXfermode()->asMode(&otherMode));
|
| ASSERT(paint.getXfermode()->asMode(&paintMode));
|
| ASSERT(otherMode == paintMode);
|
| +
|
| + test_filter_flags(r);
|
| }
|
|
|