diff options
author | 2018-06-06 13:29:51 +0000 | |
---|---|---|
committer | 2018-06-06 13:29:57 +0000 | |
commit | 74b390d6b136a60f1df15ac5ecd19bd8ad5a394b (patch) | |
tree | afba5f9d8d8d802e9b6873c5f4c7948a94f76762 /src/svg | |
parent | 102c8cf26e2886ba783a2b54827e1f5d1cf0a774 (diff) |
Revert "Have draw(Text|PosText|PosTextH) use a single entry on the device"
This reverts commit 4225b3220ef4bf50f0d9403f812ea94d50c4ee59.
Reason for revert: made valgrind unhappy.
Original change's description:
> Have draw(Text|PosText|PosTextH) use a single entry on the device
>
> Handle the positioning of drawText at the canvas layer. Simplify
> the code by removing similar implementations.
>
> Change-Id: I8b711783435072f560e29fca1dd934fa2e345ed2
> Reviewed-on: https://skia-review.googlesource.com/127131
> Reviewed-by: Ben Wagner <bungeman@google.com>
> Commit-Queue: Herb Derby <herb@google.com>
TBR=jvanverth@google.com,bungeman@google.com,herb@google.com
Change-Id: I65c9d30ae6ecb1f87e8660e56d8f8ce5daab7551
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://skia-review.googlesource.com/132403
Reviewed-by: Hal Canary <halcanary@google.com>
Commit-Queue: Hal Canary <halcanary@google.com>
Diffstat (limited to 'src/svg')
-rw-r--r-- | src/svg/SkSVGDevice.cpp | 11 | ||||
-rw-r--r-- | src/svg/SkSVGDevice.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/src/svg/SkSVGDevice.cpp b/src/svg/SkSVGDevice.cpp index 3462f7cd6b..e777f60e9f 100644 --- a/src/svg/SkSVGDevice.cpp +++ b/src/svg/SkSVGDevice.cpp @@ -936,6 +936,17 @@ void SkSVGDevice::drawBitmapRect(const SkBitmap& bm, const SkRect* srcOrNull, drawBitmapCommon(MxCp(&adjustedMatrix, cs), bm, paint); } +void SkSVGDevice::drawText(const void* text, size_t len, + SkScalar x, SkScalar y, const SkPaint& paint) { + AutoElement elem("text", fWriter, fResourceBucket.get(), MxCp(this), paint); + elem.addTextAttributes(paint); + + SVGTextBuilder builder(text, len, paint, SkPoint::Make(x, y), 0); + elem.addAttribute("x", builder.posX()); + elem.addAttribute("y", builder.posY()); + elem.addText(builder.text()); +} + void SkSVGDevice::drawPosText(const void* text, size_t len, const SkScalar pos[], int scalarsPerPos, const SkPoint& offset, const SkPaint& paint) { diff --git a/src/svg/SkSVGDevice.h b/src/svg/SkSVGDevice.h index 4784c7e238..222e55d83c 100644 --- a/src/svg/SkSVGDevice.h +++ b/src/svg/SkSVGDevice.h @@ -37,6 +37,8 @@ protected: const SkRect* srcOrNull, const SkRect& dst, const SkPaint& paint, SkCanvas::SrcRectConstraint) override; + void drawText(const void* text, size_t len, + SkScalar x, SkScalar y, const SkPaint& paint) override; void drawPosText(const void* text, size_t len, const SkScalar pos[], int scalarsPerPos, const SkPoint& offset, const SkPaint& paint) override; |