diff options
author | Mike Reed <reed@google.com> | 2018-01-29 14:32:38 -0500 |
---|---|---|
committer | Skia Commit-Bot <skia-commit-bot@chromium.org> | 2018-01-29 19:52:21 +0000 |
commit | caaf211e8dd094db6b7408cecdf531ce7d91382c (patch) | |
tree | 80e4434f7486ec1fea7489728de38998cc0754a5 /gm/drawatlas.cpp | |
parent | 7f1a074600610aead91d8b5e85a5dd45370e11ea (diff) |
handle conics in text warper
Bug: skia:7507
Change-Id: I8d0d9b5f51f13ee52ed42c40664b8bafb5ff9420
Reviewed-on: https://skia-review.googlesource.com/101420
Reviewed-by: Mike Reed <reed@google.com>
Commit-Queue: Mike Reed <reed@google.com>
Diffstat (limited to 'gm/drawatlas.cpp')
-rw-r--r-- | gm/drawatlas.cpp | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp index d916451430..be939c7505 100644 --- a/gm/drawatlas.cpp +++ b/gm/drawatlas.cpp @@ -150,7 +150,7 @@ static void draw_text_on_path(SkCanvas* canvas, const void* text, size_t length, } } -static void drawTextPath(SkCanvas* canvas, bool useRSX) { +static void drawTextPath(SkCanvas* canvas, bool useRSX, bool doStroke) { const char text0[] = "ABCDFGHJKLMNOPQRSTUVWXYZ"; const int N = sizeof(text0) - 1; SkPoint pos[N]; @@ -158,6 +158,11 @@ static void drawTextPath(SkCanvas* canvas, bool useRSX) { SkPaint paint; paint.setAntiAlias(true); paint.setTextSize(100); + if (doStroke) { + paint.setStyle(SkPaint::kStroke_Style); + paint.setStrokeWidth(2.25f); + paint.setStrokeJoin(SkPaint::kRound_Join); + } SkScalar x = 0; for (int i = 0; i < N; ++i) { @@ -177,15 +182,22 @@ static void drawTextPath(SkCanvas* canvas, bool useRSX) { draw_text_on_path(canvas, text0, N, pos, path, paint, baseline_offset, useRSX); } + paint.reset(); paint.setStyle(SkPaint::kStroke_Style); canvas->drawPath(path, paint); } -DEF_SIMPLE_GM(drawTextRSXform, canvas, 860, 430) { +DEF_SIMPLE_GM(drawTextRSXform, canvas, 860, 860) { canvas->scale(0.5f, 0.5f); - drawTextPath(canvas, false); - canvas->translate(860, 0); - drawTextPath(canvas, true); + const bool doStroke[] = { false, true }; + for (auto st : doStroke) { + canvas->save(); + drawTextPath(canvas, false, st); + canvas->translate(860, 0); + drawTextPath(canvas, true, st); + canvas->restore(); + canvas->translate(0, 860); + } } #include "Resources.h" |