diff options
author | Keisuke Kuroyanagi <ksk@google.com> | 2015-10-13 19:20:09 +0900 |
---|---|---|
committer | Keisuke Kuroyanagi <ksk@google.com> | 2016-01-21 18:23:25 +0900 |
commit | 6344de60fa37c4e4246cb37d82215564826c2b8b (patch) | |
tree | aa2084df9b1d1100116accf1d6484f7bf4615942 /include | |
parent | f3b1a821f54b0ff13c2b2897a3123d4bd4ebc4f9 (diff) | |
download | android_frameworks_minikin-6344de60fa37c4e4246cb37d82215564826c2b8b.tar.gz android_frameworks_minikin-6344de60fa37c4e4246cb37d82215564826c2b8b.tar.bz2 android_frameworks_minikin-6344de60fa37c4e4246cb37d82215564826c2b8b.zip |
Add light weight methods for text measurement.
The intruduced method measureText can be used instead of
doLayout for text measurement purpose.
Bug: 24505153
Change-Id: Ic29bbb347daf18d1f6c13f86970dcdd11dd6a2bd
Diffstat (limited to 'include')
-rw-r--r-- | include/minikin/Layout.h | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/include/minikin/Layout.h b/include/minikin/Layout.h index cb68db9..d9bb01f 100644 --- a/include/minikin/Layout.h +++ b/include/minikin/Layout.h @@ -93,6 +93,10 @@ public: void doLayout(const uint16_t* buf, size_t start, size_t count, size_t bufSize, int bidiFlags, const FontStyle &style, const MinikinPaint &paint); + static float measureText(const uint16_t* buf, size_t start, size_t count, size_t bufSize, + int bidiFlags, const FontStyle &style, const MinikinPaint &paint, + const FontCollection* collection, float* advances); + void draw(minikin::Bitmap*, int x0, int y0, float size) const; // Deprecated. Nont needed. Remove when callers are removed. @@ -129,12 +133,16 @@ private: int findFace(FakedFont face, LayoutContext* ctx); // Lay out a single bidi run - void doLayoutRunCached(const uint16_t* buf, size_t runStart, size_t runLength, size_t bufSize, - bool isRtl, LayoutContext* ctx, size_t dstStart); + // When layout is not null, layout info will be stored in the object. + // When advances is not null, measurement results will be stored in the array. + static float doLayoutRunCached(const uint16_t* buf, size_t runStart, size_t runLength, + size_t bufSize, bool isRtl, LayoutContext* ctx, size_t dstStart, + const FontCollection* collection, Layout* layout, float* advances); // Lay out a single word - void doLayoutWord(const uint16_t* buf, size_t start, size_t count, size_t bufSize, - bool isRtl, LayoutContext* ctx, size_t bufStart); + static float doLayoutWord(const uint16_t* buf, size_t start, size_t count, size_t bufSize, + bool isRtl, LayoutContext* ctx, size_t bufStart, const FontCollection* collection, + Layout* layout, float* advances); // Lay out a single bidi run void doLayoutRun(const uint16_t* buf, size_t start, size_t count, size_t bufSize, |