| Index: src/core/SkPaint.cpp
|
| diff --git a/src/core/SkPaint.cpp b/src/core/SkPaint.cpp
|
| index 25b6aec1ec46da9239a69aae39acfff5aee6e645..46ea86b8c352d3f4f1e8c24a5ebb15465af3a328 100644
|
| --- a/src/core/SkPaint.cpp
|
| +++ b/src/core/SkPaint.cpp
|
| @@ -711,9 +711,11 @@ SkScalar SkPaint::setupForAsPaths() {
|
|
|
| class SkCanonicalizePaint {
|
| public:
|
| - SkCanonicalizePaint(const SkPaint& paint) : fPaint(&paint), fScale(0) {
|
| - if (paint.isLinearText() || SkDraw::ShouldDrawTextAsPaths(paint, SkMatrix::I())) {
|
| + SkCanonicalizePaint(const SkPaint& paint, bool forceLinearText = false) : fPaint(&paint), fScale(0) {
|
| + if (forceLinearText || paint.isLinearText() || SkDraw::ShouldDrawTextAsPaths(paint, SkMatrix::I())) {
|
| SkPaint* p = fLazy.set(paint);
|
| + if (forceLinearText)
|
| + p->setLinearText(true);
|
| fScale = p->setupForAsPaths();
|
| fPaint = p;
|
| }
|
| @@ -999,7 +1001,7 @@ int SkPaint::getTextWidths(const void* textData, size_t byteLength,
|
| return this->countText(textData, byteLength);
|
| }
|
|
|
| - SkCanonicalizePaint canon(*this);
|
| + SkCanonicalizePaint canon(*this, true);
|
| const SkPaint& paint = canon.getPaint();
|
| SkScalar scale = canon.getScale();
|
|
|
|
|