diff -r 000000000000 -r 6474c204b198 gfx/skia/trunk/src/core/SkTextToPathIter.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/gfx/skia/trunk/src/core/SkTextToPathIter.h Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,49 @@ +/* + * Copyright 2012 Google Inc. + * + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + */ + +#ifndef SkTextToPathIter_DEFINED +#define SkTextToPathIter_DEFINED + +#include "SkAutoKern.h" +#include "SkPaint.h" + +class SkGlyphCache; + +class SkTextToPathIter { +public: + SkTextToPathIter(const char text[], size_t length, const SkPaint& paint, + bool applyStrokeAndPathEffects); + ~SkTextToPathIter(); + + const SkPaint& getPaint() const { return fPaint; } + SkScalar getPathScale() const { return fScale; } + + struct Rec { + const SkPath* fPath; // may be null for "whitespace" glyphs + SkScalar fXPos; + }; + + /** + * Returns false when all of the text has been consumed + */ + bool next(const SkPath** path, SkScalar* xpos); + +private: + SkGlyphCache* fCache; + SkPaint fPaint; + SkScalar fScale; + SkFixed fPrevAdvance; + const char* fText; + const char* fStop; + SkMeasureCacheProc fGlyphCacheProc; + + SkScalar fXPos; // accumulated xpos, returned in next + SkAutoKern fAutoKern; + int fXYIndex; // cache for horizontal -vs- vertical text +}; + +#endif