diff options
author | 2015-07-15 08:58:12 -0700 | |
---|---|---|
committer | 2015-07-15 08:58:13 -0700 | |
commit | cae3ca65d2b3ae8c8c878ec860ea0620231af81a (patch) | |
tree | efc6915ab63c08e7cb914ff72f7cbd7826015972 /gm | |
parent | 82874f8b28f2d04bf5a88f4203ca087b2b8684ce (diff) |
make path-reverse gm portable
Put font glyph data in test as path
instead of getting data from the Mac
font. THe font may change, and is
not available on most platforms.
Also remove unreachable code.
R=reed@google.com
Review URL: https://codereview.chromium.org/1230703005
Diffstat (limited to 'gm')
-rw-r--r-- | gm/pathreverse.cpp | 72 |
1 files changed, 38 insertions, 34 deletions
diff --git a/gm/pathreverse.cpp b/gm/pathreverse.cpp index 9f4deb484b..4487f9ada2 100644 --- a/gm/pathreverse.cpp +++ b/gm/pathreverse.cpp @@ -10,6 +10,43 @@ #include "SkPath.h" #include "SkTypeface.h" +/* The hiragino_maru_goth_pro_e path was generated with Mac-specific code: + * + * paint.setTextSize(SkIntToScalar(100)); + * paint.setTypeface(SkTypeface::CreateFromName("Hiragino Maru Gothic Pro")); + * paint.getTextPath("e", 1, 50, 50, &path); + * + * The path data is duplicated here to allow the test to + * run on all platforms and to remove the bug dependency + * should future Macs edit or delete the font. + */ +static SkPath hiragino_maru_goth_pro_e() { + SkPath path; + path.moveTo(98.6f, 24.7f); + path.cubicTo(101.7f, 24.7f, 103.6f, 22.8f, 103.6f, 19.2f); + path.cubicTo(103.6f, 18.9f, 103.6f, 18.7f, 103.6f, 18.4f); + path.cubicTo(102.6f, 5.3f, 94.4f, -6.1f, 79.8f, -6.1f); + path.cubicTo(63.5f, -6.1f, 54.5f, 6, 54.5f, 23.3f); + path.cubicTo(54.5f, 40.6f, 64, 52.2f, 80.4f, 52.2f); + path.cubicTo(93.4f, 52.2f, 99.2f, 45.6f, 102.4f, 39); + path.cubicTo(102.8f, 38.4f, 102.9f, 37.8f, 102.9f, 37.2f); + path.cubicTo(102.9f, 35.4f, 101.5f, 34.2f, 99.8f, 33.7f); + path.cubicTo(99.1f, 33.5f, 98.4f, 33.3f, 97.7f, 33.3f); + path.cubicTo(96.3f, 33.3f, 95, 34, 94.1f, 35.8f); + path.cubicTo(91.7f, 41.1f, 87.7f, 44.7f, 80.5f, 44.7f); + path.cubicTo(69.7f, 44.7f, 63.6f, 37, 63.4f, 24.7f); + path.lineTo(98.6f, 24.7f); + path.close(); + path.moveTo(63.7f, 17.4f); + path.cubicTo(65, 7.6f, 70.2f, 1.2f, 79.8f, 1.2f); + path.cubicTo(89, 1.2f, 93.3f, 8.5f, 94.5f, 15.6f); + path.cubicTo(94.5f, 15.8f, 94.5f, 16, 94.5f, 16.1f); + path.cubicTo(94.5f, 17, 94.1f, 17.4f, 93, 17.4f); + path.lineTo(63.7f, 17.4f); + path.close(); + return path; +} + static void test_path(SkCanvas* canvas, const SkPath& path) { SkPaint paint; paint.setAntiAlias(true); @@ -31,34 +68,6 @@ static void test_rev(SkCanvas* canvas, const SkPath& path) { canvas->restore(); } -static void test_rev(SkCanvas* canvas) { - SkRect r = { 10, 10, 100, 60 }; - - SkPath path; - - path.addRect(r); test_rev(canvas, path); - - canvas->translate(0, 100); - path.offset(20, 20); - path.addRect(r); test_rev(canvas, path); - - canvas->translate(0, 100); - path.reset(); - path.moveTo(10, 10); path.lineTo(30, 30); - path.addOval(r); - r.offset(50, 20); - path.addOval(r); - test_rev(canvas, path); - - SkPaint paint; - paint.setTextSize(SkIntToScalar(100)); - sk_tool_utils::set_portable_typeface(&paint, "Hiragino Maru Gothic Pro"); - path.reset(); - paint.getTextPath("e", 1, 50, 50, &path); - canvas->translate(0, 100); - test_rev(canvas, path); -} - namespace skiagm { class PathReverseGM : public GM { @@ -78,7 +87,6 @@ protected: } void onDraw(SkCanvas* canvas) override { - if (false) test_rev(canvas); // avoid bit rot, suppress warning SkRect r = { 10, 10, 100, 60 }; SkPath path; @@ -97,11 +105,7 @@ protected: path.addOval(r); test_rev(canvas, path); - SkPaint paint; - paint.setTextSize(SkIntToScalar(100)); - sk_tool_utils::set_portable_typeface(&paint, "Hiragino Maru Gothic Pro"); - path.reset(); - paint.getTextPath("e", 1, 50, 50, &path); + path = hiragino_maru_goth_pro_e(); canvas->translate(0, 100); test_rev(canvas, path); } |