Merge "Revert "Call minikin::getBounds instead of using Layout.""
diff --git a/libs/hwui/hwui/MinikinUtils.cpp b/libs/hwui/hwui/MinikinUtils.cpp
index b802908..5f6b53a 100644
--- a/libs/hwui/hwui/MinikinUtils.cpp
+++ b/libs/hwui/hwui/MinikinUtils.cpp
@@ -21,7 +21,6 @@
#include <log/log.h>
#include <minikin/MeasuredText.h>
-#include <minikin/Measurement.h>
#include "Paint.h"
#include "SkPathMeasure.h"
#include "Typeface.h"
@@ -70,18 +69,6 @@
}
}
-void MinikinUtils::getBounds(const Paint* paint, minikin::Bidi bidiFlags, const Typeface* typeface,
- const uint16_t* buf, size_t bufSize, minikin::MinikinRect* out) {
- minikin::MinikinPaint minikinPaint = prepareMinikinPaint(paint, typeface);
-
- const minikin::U16StringPiece textBuf(buf, bufSize);
- const minikin::StartHyphenEdit startHyphen = paint->getStartHyphenEdit();
- const minikin::EndHyphenEdit endHyphen = paint->getEndHyphenEdit();
-
- minikin::getBounds(textBuf, minikin::Range(0, textBuf.size()), bidiFlags, minikinPaint,
- startHyphen, endHyphen, out);
-}
-
float MinikinUtils::measureText(const Paint* paint, minikin::Bidi bidiFlags,
const Typeface* typeface, const uint16_t* buf, size_t start,
size_t count, size_t bufSize, float* advances) {
diff --git a/libs/hwui/hwui/MinikinUtils.h b/libs/hwui/hwui/MinikinUtils.h
index a15803a..7c3f0d8 100644
--- a/libs/hwui/hwui/MinikinUtils.h
+++ b/libs/hwui/hwui/MinikinUtils.h
@@ -48,9 +48,6 @@
size_t contextStart, size_t contextCount,
minikin::MeasuredText* mt);
- static void getBounds(const Paint* paint, minikin::Bidi bidiFlags, const Typeface* typeface,
- const uint16_t* buf, size_t bufSize, minikin::MinikinRect* out);
-
static float measureText(const Paint* paint, minikin::Bidi bidiFlags,
const Typeface* typeface, const uint16_t* buf,
size_t start, size_t count, size_t bufSize,
diff --git a/libs/hwui/jni/Paint.cpp b/libs/hwui/jni/Paint.cpp
index 3c86b28..89ff9b2 100644
--- a/libs/hwui/jni/Paint.cpp
+++ b/libs/hwui/jni/Paint.cpp
@@ -339,13 +339,18 @@
}
static void doTextBounds(JNIEnv* env, const jchar* text, int count, jobject bounds,
- const Paint& paint, const Typeface* typeface, jint bidiFlagsInt) {
+ const Paint& paint, const Typeface* typeface, jint bidiFlags) {
SkRect r;
SkIRect ir;
+ minikin::Layout layout = MinikinUtils::doLayout(&paint,
+ static_cast<minikin::Bidi>(bidiFlags), typeface,
+ text, count, // text buffer
+ 0, count, // draw range
+ 0, count, // context range
+ nullptr);
minikin::MinikinRect rect;
- minikin::Bidi bidiFlags = static_cast<minikin::Bidi>(bidiFlagsInt);
- MinikinUtils::getBounds(&paint, bidiFlags, typeface, text, count, &rect);
+ layout.getBounds(&rect);
r.fLeft = rect.mLeft;
r.fTop = rect.mTop;
r.fRight = rect.mRight;