diff options
Diffstat (limited to 'src/core/SkBBoxRecord.cpp')
-rw-r--r-- | src/core/SkBBoxRecord.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/core/SkBBoxRecord.cpp b/src/core/SkBBoxRecord.cpp index 69139ad54d..5837a88f5a 100644 --- a/src/core/SkBBoxRecord.cpp +++ b/src/core/SkBBoxRecord.cpp @@ -9,6 +9,8 @@ #include "SkBBoxRecord.h" #include "SkPatchUtils.h" +#include "SkTextBlob.h" + SkBBoxRecord::~SkBBoxRecord() { fSaveStack.deleteAll(); } @@ -272,6 +274,20 @@ void SkBBoxRecord::onDrawTextOnPath(const void* text, size_t byteLength, const S } } +void SkBBoxRecord::onDrawTextBlob(const SkTextBlob* blob, SkScalar x, SkScalar y, + const SkPaint& paint) { + SkRect bbox = blob->bounds(); + bbox.offset(x, y); + // FIXME: implement implicit blob bounds! + if (bbox.isEmpty()) { + this->getClipBounds(&bbox); + } + + if (this->transformBounds(bbox, &paint)) { + INHERITED::onDrawTextBlob(blob, x, y, paint); + } +} + void SkBBoxRecord::drawVertices(VertexMode mode, int vertexCount, const SkPoint vertices[], const SkPoint texs[], const SkColor colors[], SkXfermode* xfer, |