Index: include/core/SkPaint.h |
diff --git a/include/core/SkPaint.h b/include/core/SkPaint.h |
index a0def42f12077a207093675ac5f2488932775478..cd170bc94f9f8fb209305e1232c1cfd449554ed9 100644 |
--- a/include/core/SkPaint.h |
+++ b/include/core/SkPaint.h |
@@ -885,15 +885,67 @@ public: |
SkRect bounds[] = NULL) const; |
/** Return the path (outline) for the specified text. |
- Note: just like SkCanvas::drawText, this will respect the Align setting |
- in the paint. |
- */ |
+ * Note: just like SkCanvas::drawText, this will respect the Align setting |
+ * in the paint. |
+ * |
+ * @param text the text |
+ * @param length number of bytes of text |
+ * @param x The x-coordinate of the origin of the text. |
+ * @param y The y-coordinate of the origin of the text. |
+ * @param path The outline of the text. |
+ */ |
void getTextPath(const void* text, size_t length, SkScalar x, SkScalar y, |
SkPath* path) const; |
+ /** Return the path (outline) for the specified text. |
+ * Note: just like SkCanvas::drawText, this will respect the Align setting |
+ * in the paint. |
+ * |
+ * @param text the text |
+ * @param length number of bytes of text |
+ * @param pos array of positions, used to position each character |
+ * @param path The outline of the text. |
+ */ |
void getPosTextPath(const void* text, size_t length, |
const SkPoint pos[], SkPath* path) const; |
+ /** Return the number of intervals that intersect the intercept along the axis of the advance. |
+ * The return count is zero or a multiple of two, and is at most the number of glyphs * 2 in |
+ * the string. The caller may pass nullptr for intervals to determine the size of the interval |
+ * array, or may conservatively pre-allocate an array with length * 2 entries. The computed |
+ * intervals are cached by glyph to improve performance for multiple calls. |
+ * This permits constructing an underline that skips the descenders. |
+ * |
+ * @param text the text |
+ * @param length number of bytes of text |
+ * @param x The x-coordinate of the origin of the text. |
+ * @param y The y-coordinate of the origin of the text. |
+ * @param bounds The lower and upper line parallel to the advance. |
+ * @param array If not null, the found intersections. |
+ * |
+ * @return The number of intersections, which may be zero. |
+ */ |
+ int getTextIntercepts(const void* text, size_t length, SkScalar x, SkScalar y, |
+ const SkScalar bounds[2], SkScalar* intervals) const; |
+ |
+ /** Return the number of intervals that intersect the intercept along the axis of the advance. |
+ * The return count is zero or a multiple of two, and is at most the number of glyphs * 2 in |
+ * string. The caller may pass nullptr for intervals to determine the size of the interval |
+ * array, or may conservatively pre-allocate an array with length * 2 entries. The computed |
+ * intervals are cached by glyph to improve performance for multiple calls. |
+ * This permits constructing an underline that skips the descenders. |
+ * |
+ * @param text the text |
+ * @param length number of bytes of text |
+ * @param pos array of positions, used to position each character |
+ * @param bounds The lower and upper line parallel to the advance. |
+ * @param array If not null, the glyph bounds contained by the advance parallel lines. |
+ * |
+ * @return The number of intersections, which may be zero. |
+ */ |
+ int getPosTextIntercepts(const void* text, size_t length, const SkPoint pos[], |
+ const SkScalar bounds[2], SkScalar* intervals) const; |
+ |
/** |
* Return a rectangle that represents the union of the bounds of all |
* of the glyphs, but each one positioned at (0,0). This may be conservatively large, and |
@@ -1091,7 +1143,7 @@ private: |
friend class GrTextUtils; |
friend class GrGLPathRendering; |
friend class SkScalerContext; |
- friend class SkTextToPathIter; |
+ friend class SkTextBaseIter; |
friend class SkCanonicalizePaint; |
}; |