aboutsummaryrefslogtreecommitdiffhomepage
path: root/gm/drawatlas.cpp
diff options
context:
space:
mode:
authorGravatar Mike Reed <reed@google.com>2018-01-29 14:32:38 -0500
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-01-29 19:52:21 +0000
commitcaaf211e8dd094db6b7408cecdf531ce7d91382c (patch)
tree80e4434f7486ec1fea7489728de38998cc0754a5 /gm/drawatlas.cpp
parent7f1a074600610aead91d8b5e85a5dd45370e11ea (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.cpp22
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"