Index: src/core/SkGlyphCache.h |
diff --git a/src/core/SkGlyphCache.h b/src/core/SkGlyphCache.h |
index 2f1f417250eda9aae45b62e614eb158afdb37048..cd0b05c6e960adc862d94946efa95046c8dafb23 100644 |
--- a/src/core/SkGlyphCache.h |
+++ b/src/core/SkGlyphCache.h |
@@ -77,6 +77,12 @@ public: |
*/ |
const void* findImage(const SkGlyph&); |
+ /** If the advance axis intersects the glyph's path, append the positions scaled and offset |
+ to the array (if non-null), and set the count to the updated array length. |
+ */ |
+ void findIntercepts(const SkScalar bounds[2], SkScalar scale, SkScalar xPos, |
+ bool yAxis, SkGlyph* , SkScalar* array, int* count); |
+ |
/** Return the Path associated with the glyph. If it has not been generated this will trigger |
that. |
*/ |
@@ -232,6 +238,20 @@ private: |
inline static SkGlyphCache* FindTail(SkGlyphCache* head); |
+ static void OffsetResults(const SkGlyph::Intercept* intercept, SkScalar scale, |
+ SkScalar xPos, SkScalar* array, int* count); |
+ static void AddInterval(SkScalar val, SkGlyph::Intercept* intercept); |
+ static void AddPoints(const SkPoint* pts, int ptCount, const SkScalar bounds[2], |
+ bool yAxis, SkGlyph::Intercept* intercept); |
+ static void AddLine(const SkPoint pts[2], SkScalar axis, bool yAxis, |
+ SkGlyph::Intercept* intercept); |
+ static void AddQuad(const SkPoint pts[2], SkScalar axis, bool yAxis, |
+ SkGlyph::Intercept* intercept); |
+ static void AddCubic(const SkPoint pts[3], SkScalar axis, bool yAxis, |
+ SkGlyph::Intercept* intercept); |
+ static const SkGlyph::Intercept* MatchBounds(const SkGlyph* glyph, |
+ const SkScalar bounds[2]); |
+ |
SkGlyphCache* fNext; |
SkGlyphCache* fPrev; |
SkDescriptor* const fDesc; |