summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2015-10-13 19:20:09 +0900
committerKeisuke Kuroyanagi <ksk@google.com>2016-01-21 18:23:25 +0900
commit6344de60fa37c4e4246cb37d82215564826c2b8b (patch)
treeaa2084df9b1d1100116accf1d6484f7bf4615942 /include
parentf3b1a821f54b0ff13c2b2897a3123d4bd4ebc4f9 (diff)
downloadandroid_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.h16
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,