diff options
author | 2017-03-29 13:38:53 -0400 | |
---|---|---|
committer | 2017-03-30 15:23:53 +0000 | |
commit | 9aec8945f0e0cc88c33c2440f2163d36c7198bf6 (patch) | |
tree | 7a5060b1966784a92d148c806e54b5eb9fe4bbc3 /tests/TypefaceTest.cpp | |
parent | a811b1200cc0b5e3819c89f62def23ec203d4b5a (diff) |
Use last value for axis for variation position.
SkFontArguments::VariationPosition may be over specified. If there are
multiple values for a given axis, ensure the last value specified is
used, since that's what css-fonts-4 requires.
BUG=chromium:674878
Change-Id: I6704c15c520c89efb9ee84659a3e16e0d07691c9
Reviewed-on: https://skia-review.googlesource.com/10513
Commit-Queue: Mike Klein <mtklein@chromium.org>
Reviewed-by: Mike Klein <mtklein@chromium.org>
Diffstat (limited to 'tests/TypefaceTest.cpp')
-rw-r--r-- | tests/TypefaceTest.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/tests/TypefaceTest.cpp b/tests/TypefaceTest.cpp index 4786cc278c..8d7ac31b99 100644 --- a/tests/TypefaceTest.cpp +++ b/tests/TypefaceTest.cpp @@ -96,10 +96,14 @@ DEF_TEST(TypefaceAxes, reporter) { REPORT_FAILURE(reporter, "distortable", SkString()); return; } + constexpr int numberOfAxesInDistortable = 1; sk_sp<SkFontMgr> fm = SkFontMgr::RefDefault(); + // The position may be over specified. If there are multiple values for a given axis, + // ensure the last one since that's what css-fonts-4 requires. const SkFontArguments::VariationPosition::Coordinate position[] = { - { SkSetFourByteTag('w','g','h','t'), SK_ScalarSqrt2 } + { SkSetFourByteTag('w','g','h','t'), 1.618033988749895f }, + { SkSetFourByteTag('w','g','h','t'), SK_ScalarSqrt2 }, }; SkFontArguments params; params.setVariationDesignPosition({position, SK_ARRAY_COUNT(position)}); @@ -110,17 +114,17 @@ DEF_TEST(TypefaceAxes, reporter) { if (count == -1) { return; } - REPORTER_ASSERT(reporter, count == SK_ARRAY_COUNT(position)); + REPORTER_ASSERT(reporter, count == numberOfAxesInDistortable); - SkFontArguments::VariationPosition::Coordinate positionRead[SK_ARRAY_COUNT(position)]; + SkFontArguments::VariationPosition::Coordinate positionRead[numberOfAxesInDistortable]; count = typeface->getVariationDesignPosition(positionRead, SK_ARRAY_COUNT(positionRead)); - REPORTER_ASSERT(reporter, count == SK_ARRAY_COUNT(position)); + REPORTER_ASSERT(reporter, count == SK_ARRAY_COUNT(positionRead)); - REPORTER_ASSERT(reporter, positionRead[0].axis == position[0].axis); + REPORTER_ASSERT(reporter, positionRead[0].axis == position[1].axis); // Convert to fixed for "almost equal". SkFixed fixedRead = SkScalarToFixed(positionRead[0].value); - SkFixed fixedOriginal = SkScalarToFixed(position[0].value); + SkFixed fixedOriginal = SkScalarToFixed(position[1].value); REPORTER_ASSERT(reporter, fixedRead == fixedOriginal); } |