| /* |
| * Copyright 2015 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| #ifndef SkTextBlobRunIterator_DEFINED |
| #define SkTextBlobRunIterator_DEFINED |
| |
| #include "SkTextBlob.h" |
| |
| /** |
| * Iterate through all of the text runs of the text blob. For example: |
| * for (SkTextBlobRunIterator it(blob); !it.done(); it.next()) { |
| * ..... |
| * } |
| */ |
| class SkTextBlobRunIterator { |
| public: |
| SkTextBlobRunIterator(const SkTextBlob* blob); |
| |
| bool done() const; |
| void next(); |
| |
| uint32_t glyphCount() const; |
| const uint16_t* glyphs() const; |
| const SkScalar* pos() const; |
| const SkPoint& offset() const; |
| void applyFontToPaint(SkPaint*) const; |
| SkTextBlob::GlyphPositioning positioning() const; |
| uint32_t* clusters() const; |
| uint32_t textSize() const; |
| char* text() const; |
| |
| bool isLCD() const; |
| |
| private: |
| const SkTextBlob::RunRecord* fCurrentRun; |
| |
| SkDEBUGCODE(uint8_t* fStorageTop;) |
| }; |
| |
| #endif // SkTextBlobRunIterator_DEFINED |