Chromium Code Reviews| Index: src/core/SkCanvas.cpp |
| diff --git a/src/core/SkCanvas.cpp b/src/core/SkCanvas.cpp |
| index 5a694db3b8e68067f3a4c888eeedae3ddf845e7a..c3b04eed9023618a48ca612c53736e74f6d4c8ef 100644 |
| --- a/src/core/SkCanvas.cpp |
| +++ b/src/core/SkCanvas.cpp |
| @@ -2226,20 +2226,22 @@ void SkCanvas::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, |
| this->translate(x, y); |
| } |
| + SkPaint runPaint = paint; |
| SkTextBlob::RunIterator it(blob); |
| while (!it.done()) { |
| size_t textLen = it.glyphCount() * sizeof(uint16_t); |
| const SkPoint& offset = it.offset(); |
| + it.applyFontToPaint(&runPaint); |
|
reed1
2014/08/22 15:36:41
As long as we always overwrite exactly the same st
|
| switch (it.positioning()) { |
| case SkTextBlob::kDefault_Positioning: |
| - this->drawText(it.glyphs(), textLen, offset.x(), offset.y(), paint); |
| + this->drawText(it.glyphs(), textLen, offset.x(), offset.y(), runPaint); |
| break; |
| case SkTextBlob::kHorizontal_Positioning: |
| - this->drawPosTextH(it.glyphs(), textLen, it.pos(), offset.y(), paint); |
| + this->drawPosTextH(it.glyphs(), textLen, it.pos(), offset.y(), runPaint); |
| break; |
| case SkTextBlob::kFull_Positioning: |
| - this->drawPosText(it.glyphs(), textLen, (const SkPoint*)it.pos(), paint); |
| + this->drawPosText(it.glyphs(), textLen, (const SkPoint*)it.pos(), runPaint); |
| break; |
| default: |
| SkFAIL("unhandled positioning mode"); |