aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/TypefaceTest.cpp
diff options
context:
space:
mode:
authorGravatar bungeman <bungeman@google.com>2017-03-29 13:38:53 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2017-03-30 15:23:53 +0000
commit9aec8945f0e0cc88c33c2440f2163d36c7198bf6 (patch)
tree7a5060b1966784a92d148c806e54b5eb9fe4bbc3 /tests/TypefaceTest.cpp
parenta811b1200cc0b5e3819c89f62def23ec203d4b5a (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.cpp16
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);
}