diff options
Diffstat (limited to 'core')
-rw-r--r-- | core/java/android/text/GraphicsOperations.java | 4 | ||||
-rw-r--r-- | core/java/android/text/SpannableStringBuilder.java | 16 | ||||
-rw-r--r-- | core/java/android/widget/TextView.java | 8 | ||||
-rw-r--r-- | core/jni/android/graphics/Paint.cpp | 58 |
4 files changed, 34 insertions, 52 deletions
diff --git a/core/java/android/text/GraphicsOperations.java b/core/java/android/text/GraphicsOperations.java index 6e2168b..831ccc5 100644 --- a/core/java/android/text/GraphicsOperations.java +++ b/core/java/android/text/GraphicsOperations.java @@ -61,8 +61,8 @@ extends CharSequence * Just like {@link Paint#getTextRunAdvances}. * @hide */ - float getTextRunAdvancesICU(int start, int end, int contextStart, int contextEnd, - int flags, float[] advances, int advancesIndex, Paint paint); + float getTextRunAdvances(int start, int end, int contextStart, int contextEnd, + int flags, float[] advances, int advancesIndex, Paint paint, int reserved); /** * Just like {@link Paint#getTextRunCursor}. diff --git a/core/java/android/text/SpannableStringBuilder.java b/core/java/android/text/SpannableStringBuilder.java index ff6a4cd..6b2d8e4 100644 --- a/core/java/android/text/SpannableStringBuilder.java +++ b/core/java/android/text/SpannableStringBuilder.java @@ -1173,8 +1173,8 @@ implements CharSequence, GetChars, Spannable, Editable, Appendable, * Don't call this yourself -- exists for Paint to use internally. * {@hide} */ - public float getTextRunAdvancesICU(int start, int end, int contextStart, int contextEnd, int flags, - float[] advances, int advancesPos, Paint p) { + public float getTextRunAdvances(int start, int end, int contextStart, int contextEnd, int flags, + float[] advances, int advancesPos, Paint p, int reserved) { float ret; @@ -1182,16 +1182,16 @@ implements CharSequence, GetChars, Spannable, Editable, Appendable, int len = end - start; if (end <= mGapStart) { - ret = p.getTextRunAdvancesICU(mText, start, len, contextStart, contextLen, - flags, advances, advancesPos); + ret = p.getTextRunAdvances(mText, start, len, contextStart, contextLen, + flags, advances, advancesPos, reserved); } else if (start >= mGapStart) { - ret = p.getTextRunAdvancesICU(mText, start + mGapLength, len, - contextStart + mGapLength, contextLen, flags, advances, advancesPos); + ret = p.getTextRunAdvances(mText, start + mGapLength, len, + contextStart + mGapLength, contextLen, flags, advances, advancesPos, reserved); } else { char[] buf = TextUtils.obtain(contextLen); getChars(contextStart, contextEnd, buf, 0); - ret = p.getTextRunAdvancesICU(buf, start - contextStart, len, - 0, contextLen, flags, advances, advancesPos); + ret = p.getTextRunAdvances(buf, start - contextStart, len, + 0, contextLen, flags, advances, advancesPos, reserved); TextUtils.recycle(buf); } diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index 83f3c6b..4d3aa68 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -2967,14 +2967,14 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener advancesIndex); } - public float getTextRunAdvancesICU(int start, int end, int contextStart, + public float getTextRunAdvances(int start, int end, int contextStart, int contextEnd, int flags, float[] advances, int advancesIndex, - Paint p) { + Paint p, int reserved) { int count = end - start; int contextCount = contextEnd - contextStart; - return p.getTextRunAdvancesICU(mChars, start + mStart, count, + return p.getTextRunAdvances(mChars, start + mStart, count, contextStart + mStart, contextCount, flags, advances, - advancesIndex); + advancesIndex, reserved); } public int getTextRunCursor(int contextStart, int contextEnd, int flags, diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp index 0a54e17..768b836 100644 --- a/core/jni/android/graphics/Paint.cpp +++ b/core/jni/android/graphics/Paint.cpp @@ -482,44 +482,28 @@ public: return totalAdvance; } - static float getTextRunAdvances___CIIIII_FI(JNIEnv* env, jobject clazz, SkPaint* paint, + static float getTextRunAdvances___CIIIII_FII(JNIEnv* env, jobject clazz, SkPaint* paint, jcharArray text, jint index, jint count, jint contextIndex, jint contextCount, - jint flags, jfloatArray advances, jint advancesIndex) { + jint flags, jfloatArray advances, jint advancesIndex, jint reserved) { jchar* textArray = env->GetCharArrayElements(text, NULL); - jfloat result = doTextRunAdvances(env, paint, textArray + contextIndex, - index - contextIndex, count, contextCount, flags, advances, advancesIndex); + jfloat result = (reserved == 0) ? + doTextRunAdvances(env, paint, textArray + contextIndex, index - contextIndex, + count, contextCount, flags, advances, advancesIndex) : + doTextRunAdvancesICU(env, paint, textArray + contextIndex, index - contextIndex, + count, contextCount, flags, advances, advancesIndex); env->ReleaseCharArrayElements(text, textArray, JNI_ABORT); return result; } - static float getTextRunAdvances__StringIIIII_FI(JNIEnv* env, jobject clazz, SkPaint* paint, + static float getTextRunAdvances__StringIIIII_FII(JNIEnv* env, jobject clazz, SkPaint* paint, jstring text, jint start, jint end, jint contextStart, jint contextEnd, jint flags, - jfloatArray advances, jint advancesIndex) { + jfloatArray advances, jint advancesIndex, jint reserved) { const jchar* textArray = env->GetStringChars(text, NULL); - jfloat result = doTextRunAdvances(env, paint, textArray + contextStart, - start - contextStart, end - start, contextEnd - contextStart, flags, advances, - advancesIndex); - env->ReleaseStringChars(text, textArray); - return result; - } - - static float getTextRunAdvancesICU___CIIIII_FI(JNIEnv* env, jobject clazz, SkPaint* paint, - jcharArray text, jint index, jint count, jint contextIndex, jint contextCount, - jint flags, jfloatArray advances, jint advancesIndex) { - jchar* textArray = env->GetCharArrayElements(text, NULL); - jfloat result = doTextRunAdvancesICU(env, paint, textArray + contextIndex, - index - contextIndex, count, contextCount, flags, advances, advancesIndex); - env->ReleaseCharArrayElements(text, textArray, JNI_ABORT); - return result; - } - - static float getTextRunAdvancesICU__StringIIIII_FI(JNIEnv* env, jobject clazz, SkPaint* paint, - jstring text, jint start, jint end, jint contextStart, jint contextEnd, jint flags, - jfloatArray advances, jint advancesIndex) { - const jchar* textArray = env->GetStringChars(text, NULL); - jfloat result = doTextRunAdvancesICU(env, paint, textArray + contextStart, - start - contextStart, end - start, contextEnd - contextStart, flags, advances, - advancesIndex); + jfloat result = (reserved == 0) ? + doTextRunAdvances(env, paint, textArray + contextStart, start - contextStart, + end - start, contextEnd - contextStart, flags, advances, advancesIndex) : + doTextRunAdvancesICU(env, paint, textArray + contextStart, start - contextStart, + end - start, contextEnd - contextStart, flags, advances, advancesIndex); env->ReleaseStringChars(text, textArray); return result; } @@ -816,14 +800,12 @@ static JNINativeMethod methods[] = { {"native_breakText","(Ljava/lang/String;ZF[F)I", (void*) SkPaintGlue::breakTextS}, {"native_getTextWidths","(I[CII[F)I", (void*) SkPaintGlue::getTextWidths___CII_F}, {"native_getTextWidths","(ILjava/lang/String;II[F)I", (void*) SkPaintGlue::getTextWidths__StringII_F}, - {"native_getTextRunAdvances","(I[CIIIII[FI)F", - (void*) SkPaintGlue::getTextRunAdvances___CIIIII_FI}, - {"native_getTextRunAdvances","(ILjava/lang/String;IIIII[FI)F", - (void*) SkPaintGlue::getTextRunAdvances__StringIIIII_FI}, - {"native_getTextRunAdvancesICU","(I[CIIIII[FI)F", - (void*) SkPaintGlue::getTextRunAdvancesICU___CIIIII_FI}, - {"native_getTextRunAdvancesICU","(ILjava/lang/String;IIIII[FI)F", - (void*) SkPaintGlue::getTextRunAdvancesICU__StringIIIII_FI}, + {"native_getTextRunAdvances","(I[CIIIII[FII)F", + (void*) SkPaintGlue::getTextRunAdvances___CIIIII_FII}, + {"native_getTextRunAdvances","(ILjava/lang/String;IIIII[FII)F", + (void*) SkPaintGlue::getTextRunAdvances__StringIIIII_FII}, + + {"native_getTextGlyphs","(ILjava/lang/String;IIIII[C)I", (void*) SkPaintGlue::getTextGlyphs__StringIIIII_C}, {"native_getTextRunCursor", "(I[CIIIII)I", (void*) SkPaintGlue::getTextRunCursor___C}, |