Merge "Use Minikin grapheme cluster breaking"
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index d07b154..dc30814 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -37,6 +37,7 @@
#include "TextLayout.h"
#ifdef USE_MINIKIN
+#include <minikin/GraphemeBreak.h>
#include <minikin/Layout.h>
#include "MinikinSkia.h"
#include "MinikinUtils.h"
@@ -778,6 +779,11 @@
static jint doTextRunCursor(JNIEnv *env, SkPaint* paint, const jchar *text, jint start,
jint count, jint flags, jint offset, jint opt) {
+#ifdef USE_MINIKIN
+ GraphemeBreak::MoveOpt moveOpt = GraphemeBreak::MoveOpt(opt);
+ size_t result = GraphemeBreak::getTextRunCursor(text, start, count, offset, moveOpt);
+ return static_cast<jint>(result);
+#else
jfloat scalarArray[count];
TextLayout::getTextRunAdvances(paint, text, start, count, start + count, flags,
@@ -818,6 +824,7 @@
}
return pos;
+#endif
}
static jint getTextRunCursor___C(JNIEnv* env, jobject clazz, jlong paintHandle, jcharArray text,