diff options
author | reed <reed@google.com> | 2016-07-08 03:31:09 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-07-08 03:31:09 -0700 |
commit | dde2b1f1a8b888d233120b8b8f66ec7cf546cac8 (patch) | |
tree | 19fd7c924d5b47fc4933b5ed5070f531121a4c71 | |
parent | f48c62fa6ae703f0e4fa7b97a381eb06afaadc4b (diff) |
update path->rsxform to correctly interp dy
BUG=skia:
GOLD_TRYBOT_URL= https://gold.skia.org/search?issue=2131043002
TBR=
Review-Url: https://codereview.chromium.org/2131043002
-rw-r--r-- | gm/drawatlas.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/gm/drawatlas.cpp b/gm/drawatlas.cpp index ba71eaea57..ca0e9b91ba 100644 --- a/gm/drawatlas.cpp +++ b/gm/drawatlas.cpp @@ -121,16 +121,17 @@ static void draw_text_on_path_rigid(SkCanvas* canvas, const void* text, size_t l } xform[i].fSCos = tan.x(); xform[i].fSSin = tan.y(); - xform[i].fTx = pos.x(); - xform[i].fTy = pos.y(); + xform[i].fTx = pos.x() - tan.y() * xy[i].y(); + xform[i].fTy = pos.y() + tan.x() * xy[i].y(); } canvas->drawTextRSXform(text, length, &xform[0], nullptr, paint); } -DEF_SIMPLE_GM(drawTextRSXform, canvas, 510, 310) { - const char text[] = "ABCDFGHJKLMNOPQRSTUVWXYZ"; - const int N = sizeof(text) - 1; +DEF_SIMPLE_GM(drawTextRSXform, canvas, 510, 370) { + const char text0[] = "ABCDFGHJKLMNOPQRSTUVWXYZ"; + const char text1[] = "AAAAAAAAAAAAAAAAAAAAAAAAAA"; + const int N = sizeof(text0) - 1; SkPoint pos[N]; SkRSXform xform[N]; @@ -145,7 +146,7 @@ DEF_SIMPLE_GM(drawTextRSXform, canvas, 510, 310) { xform[i].fSSin = SkScalarSin(rad); xform[i].fTx = x; xform[i].fTy = 0; - pos[i].set(x, 0); + pos[i].set(x, -10); x += dx; rad += drad; } @@ -153,12 +154,12 @@ DEF_SIMPLE_GM(drawTextRSXform, canvas, 510, 310) { SkPaint paint; paint.setAntiAlias(true); paint.setTextSize(20); - canvas->drawTextRSXform(text, N, xform, nullptr, paint); + canvas->drawTextRSXform(text0, N, xform, nullptr, paint); SkPath path; - path.addOval(SkRect::MakeXYWH(150, 50, 200, 200)); + path.addOval(SkRect::MakeXYWH(150, 100, 200, 200)); - draw_text_on_path_rigid(canvas, text, N, pos, path, paint); + draw_text_on_path_rigid(canvas, text1, N, pos, path, paint); paint.setStyle(SkPaint::kStroke_Style); canvas->drawPath(path, paint); |