aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm
diff options
context:
space:
mode:
Diffstat (limited to 'gm')
-rw-r--r--gm/fontscalerdistortable.cpp18
1 files changed, 13 insertions, 5 deletions
diff --git a/gm/fontscalerdistortable.cpp b/gm/fontscalerdistortable.cpp
index 49d254de36..5778ce0200 100644
--- a/gm/fontscalerdistortable.cpp
+++ b/gm/fontscalerdistortable.cpp
@@ -35,8 +35,10 @@ protected:
paint.setLCDRenderText(true);
sk_sp<SkFontMgr> fontMgr(SkFontMgr::RefDefault());
- std::unique_ptr<SkStreamAsset> distortable(GetResourceAsStream("fonts/Distortable.ttf"));
- if (!distortable) {
+ std::unique_ptr<SkStreamAsset> distortableStream(GetResourceAsStream("fonts/Distortable.ttf"));
+ sk_sp<SkTypeface> distortable(MakeResourceAsTypeface("fonts/Distortable.ttf"));
+
+ if (!distortableStream) {
return;
}
const char* text = "abc";
@@ -48,13 +50,19 @@ protected:
SkScalar y = SkIntToScalar(20);
SkFourByteTag tag = SkSetFourByteTag('w','g','h','t');
- SkScalar styleValue = SkDoubleToScalar(0.5 + (5*j + i) * ((2.0 - 0.5) / (2 * 5)));
+ SkScalar styleValue = SkDoubleToScalar(0.5 + (5 * j + i) * ((2.0 - 0.5) / (2 * 5)));
SkFontArguments::VariationPosition::Coordinate coordinates[] = {{tag, styleValue}};
SkFontArguments::VariationPosition position =
{ coordinates, SK_ARRAY_COUNT(coordinates) };
- paint.setTypeface(sk_sp<SkTypeface>(fontMgr->makeFromStream(
- distortable->duplicate(),
+ if (j == 0 && distortable) {
+ paint.setTypeface(sk_sp<SkTypeface>(
+ distortable->makeClone(
+ SkFontArguments().setVariationDesignPosition(position))));
+ } else {
+ paint.setTypeface(sk_sp<SkTypeface>(fontMgr->makeFromStream(
+ distortableStream->duplicate(),
SkFontArguments().setVariationDesignPosition(position))));
+ }
SkAutoCanvasRestore acr(canvas, true);
canvas->translate(SkIntToScalar(30 + i * 100), SkIntToScalar(20));