Loading core/java/android/text/StaticLayout.java +3 −4 Original line number Diff line number Diff line Loading @@ -385,8 +385,7 @@ public class StaticLayout extends Layout { /* package */ float addStyleRun(TextPaint paint, int start, int end, boolean isRtl) { setLocales(paint.getTextLocales()); return nAddStyleRun(mNativePtr, paint.getNativeInstance(), paint.mNativeTypeface, start, end, isRtl); return nAddStyleRun(mNativePtr, paint.getNativeInstance(), start, end, isRtl); } /* package */ void addMeasuredRun(int start, int end, float[] widths) { Loading Loading @@ -1455,8 +1454,8 @@ public class StaticLayout extends Layout { int[] variableTabStops, int defaultTabStop, int breakStrategy, int hyphenationFrequency, boolean isJustified); private static native float nAddStyleRun(long nativePtr, long nativePaint, long nativeTypeface, int start, int end, boolean isRtl); private static native float nAddStyleRun(long nativePtr, long nativePaint, int start, int end, boolean isRtl); private static native void nAddMeasuredRun(long nativePtr, int start, int end, float[] widths); Loading core/java/android/view/RecordingCanvas.java +16 −19 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ public class RecordingCanvas extends Canvas { throw new IndexOutOfBoundsException(); } nDrawText(mNativeCanvasWrapper, text, index, count, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -407,7 +407,7 @@ public class RecordingCanvas extends Canvas { if (text instanceof String || text instanceof SpannedString || text instanceof SpannableString) { nDrawText(mNativeCanvasWrapper, text.toString(), start, end, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } else if (text instanceof GraphicsOperations) { ((GraphicsOperations) text).drawText(this, start, end, x, y, paint); Loading @@ -415,7 +415,7 @@ public class RecordingCanvas extends Canvas { char[] buf = TemporaryBuffer.obtain(end - start); TextUtils.getChars(text, start, end, buf, 0); nDrawText(mNativeCanvasWrapper, buf, 0, end - start, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); TemporaryBuffer.recycle(buf); } } Loading @@ -423,7 +423,7 @@ public class RecordingCanvas extends Canvas { @Override public final void drawText(@NonNull String text, float x, float y, @NonNull Paint paint) { nDrawText(mNativeCanvasWrapper, text, 0, text.length(), x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -433,7 +433,7 @@ public class RecordingCanvas extends Canvas { throw new IndexOutOfBoundsException(); } nDrawText(mNativeCanvasWrapper, text, start, end, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -444,7 +444,7 @@ public class RecordingCanvas extends Canvas { } nDrawTextOnPath(mNativeCanvasWrapper, text, index, count, path.readOnlyNI(), hOffset, vOffset, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } @Override Loading @@ -452,7 +452,7 @@ public class RecordingCanvas extends Canvas { float vOffset, @NonNull Paint paint) { if (text.length() > 0) { nDrawTextOnPath(mNativeCanvasWrapper, text, path.readOnlyNI(), hOffset, vOffset, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } } Loading @@ -473,7 +473,7 @@ public class RecordingCanvas extends Canvas { } nDrawTextRun(mNativeCanvasWrapper, text, index, count, contextIndex, contextCount, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); x, y, isRtl, paint.getNativeInstance()); } @Override Loading @@ -494,7 +494,7 @@ public class RecordingCanvas extends Canvas { if (text instanceof String || text instanceof SpannedString || text instanceof SpannableString) { nDrawTextRun(mNativeCanvasWrapper, text.toString(), start, end, contextStart, contextEnd, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); contextEnd, x, y, isRtl, paint.getNativeInstance()); } else if (text instanceof GraphicsOperations) { ((GraphicsOperations) text).drawTextRun(this, start, end, contextStart, contextEnd, x, y, isRtl, paint); Loading @@ -504,7 +504,7 @@ public class RecordingCanvas extends Canvas { char[] buf = TemporaryBuffer.obtain(contextLen); TextUtils.getChars(text, contextStart, contextEnd, buf, 0); nDrawTextRun(mNativeCanvasWrapper, buf, start - contextStart, len, 0, contextLen, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); 0, contextLen, x, y, isRtl, paint.getNativeInstance()); TemporaryBuffer.recycle(buf); } } Loading Loading @@ -614,28 +614,25 @@ public class RecordingCanvas extends Canvas { @FastNative private static native void nDrawText(long nativeCanvas, char[] text, int index, int count, float x, float y, int flags, long nativePaint, long nativeTypeface); float x, float y, int flags, long nativePaint); @FastNative private static native void nDrawText(long nativeCanvas, String text, int start, int end, float x, float y, int flags, long nativePaint, long nativeTypeface); float x, float y, int flags, long nativePaint); @FastNative private static native void nDrawTextRun(long nativeCanvas, String text, int start, int end, int contextStart, int contextEnd, float x, float y, boolean isRtl, long nativePaint, long nativeTypeface); int contextStart, int contextEnd, float x, float y, boolean isRtl, long nativePaint); @FastNative private static native void nDrawTextRun(long nativeCanvas, char[] text, int start, int count, int contextStart, int contextCount, float x, float y, boolean isRtl, long nativePaint, long nativeTypeface); int contextStart, int contextCount, float x, float y, boolean isRtl, long nativePaint); @FastNative private static native void nDrawTextOnPath(long nativeCanvas, char[] text, int index, int count, long nativePath, float hOffset, float vOffset, int bidiFlags, long nativePaint, long nativeTypeface); long nativePath, float hOffset, float vOffset, int bidiFlags, long nativePaint); @FastNative private static native void nDrawTextOnPath(long nativeCanvas, String text, long nativePath, float hOffset, float vOffset, int flags, long nativePaint, long nativeTypeface); float hOffset, float vOffset, int flags, long nativePaint); } core/jni/android/graphics/Paint.cpp +83 −93 File changed.Preview size limit exceeded, changes collapsed. Show changes core/jni/android_graphics_Canvas.cpp +18 −20 Original line number Diff line number Diff line Loading @@ -480,9 +480,9 @@ static void drawBitmapMesh(JNIEnv* env, jobject, jlong canvasHandle, jobject jbi static void drawTextChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jfloat x, jfloat y, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); jchar* jchars = env->GetCharArrayElements(text, NULL); get_canvas(canvasHandle)->drawText(jchars + index, 0, count, count, x, y, bidiFlags, *paint, typeface); Loading @@ -491,9 +491,9 @@ static void drawTextChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray t static void drawTextString(JNIEnv* env, jobject, jlong canvasHandle, jstring text, jint start, jint end, jfloat x, jfloat y, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const int count = end - start; const jchar* jchars = env->GetStringChars(text, NULL); get_canvas(canvasHandle)->drawText(jchars + start, 0, count, count, x, y, Loading @@ -503,9 +503,9 @@ static void drawTextString(JNIEnv* env, jobject, jlong canvasHandle, jstring tex static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jint contextIndex, jint contextCount, jfloat x, jfloat y, jboolean isRtl, jlong paintHandle, jlong typefaceHandle) { jboolean isRtl, jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jchar* jchars = env->GetCharArrayElements(text, NULL); Loading @@ -516,10 +516,9 @@ static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArra static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstring text, jint start, jint end, jint contextStart, jint contextEnd, jfloat x, jfloat y, jboolean isRtl, jlong paintHandle, jlong typefaceHandle) { jfloat x, jfloat y, jboolean isRtl, jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jint count = end - start; Loading @@ -532,11 +531,10 @@ static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstr static void drawTextOnPathChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jlong pathHandle, jfloat hOffset, jfloat vOffset, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jfloat vOffset, jint bidiFlags, jlong paintHandle) { SkPath* path = reinterpret_cast<SkPath*>(pathHandle); Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); jchar* jchars = env->GetCharArrayElements(text, NULL); Loading @@ -548,10 +546,10 @@ static void drawTextOnPathChars(JNIEnv* env, jobject, jlong canvasHandle, jcharA static void drawTextOnPathString(JNIEnv* env, jobject, jlong canvasHandle, jstring text, jlong pathHandle, jfloat hOffset, jfloat vOffset, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jint bidiFlags, jlong paintHandle) { SkPath* path = reinterpret_cast<SkPath*>(pathHandle); Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const jchar* jchars = env->GetStringChars(text, NULL); int count = env->GetStringLength(text); Loading Loading @@ -634,12 +632,12 @@ static const JNINativeMethod gDrawMethods[] = { {"nDrawBitmap","(JLandroid/graphics/Bitmap;FFJIII)V", (void*) CanvasJNI::drawBitmap}, {"nDrawBitmap","(JLandroid/graphics/Bitmap;FFFFFFFFJII)V", (void*) CanvasJNI::drawBitmapRect}, {"nDrawBitmap", "(J[IIIFFIIZJ)V", (void*)CanvasJNI::drawBitmapArray}, {"nDrawText","(J[CIIFFIJJ)V", (void*) CanvasJNI::drawTextChars}, {"nDrawText","(JLjava/lang/String;IIFFIJJ)V", (void*) CanvasJNI::drawTextString}, {"nDrawTextRun","(J[CIIIIFFZJJ)V", (void*) CanvasJNI::drawTextRunChars}, {"nDrawTextRun","(JLjava/lang/String;IIIIFFZJJ)V", (void*) CanvasJNI::drawTextRunString}, {"nDrawTextOnPath","(J[CIIJFFIJJ)V", (void*) CanvasJNI::drawTextOnPathChars}, {"nDrawTextOnPath","(JLjava/lang/String;JFFIJJ)V", (void*) CanvasJNI::drawTextOnPathString}, {"nDrawText","(J[CIIFFIJ)V", (void*) CanvasJNI::drawTextChars}, {"nDrawText","(JLjava/lang/String;IIFFIJ)V", (void*) CanvasJNI::drawTextString}, {"nDrawTextRun","(J[CIIIIFFZJ)V", (void*) CanvasJNI::drawTextRunChars}, {"nDrawTextRun","(JLjava/lang/String;IIIIFFZJ)V", (void*) CanvasJNI::drawTextRunString}, {"nDrawTextOnPath","(J[CIIJFFIJ)V", (void*) CanvasJNI::drawTextOnPathChars}, {"nDrawTextOnPath","(JLjava/lang/String;JFFIJ)V", (void*) CanvasJNI::drawTextOnPathString}, }; int register_android_graphics_Canvas(JNIEnv* env) { Loading core/jni/android_text_StaticLayout.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -160,13 +160,13 @@ static void nSetIndents(JNIEnv* env, jclass, jlong nativePtr, jintArray indents) } // Basically similar to Paint.getTextRunAdvances but with C++ interface static jfloat nAddStyleRun(JNIEnv* env, jclass, jlong nativePtr, jlong nativePaint, jlong nativeTypeface, jint start, jint end, jboolean isRtl) { static jfloat nAddStyleRun(JNIEnv* env, jclass, jlong nativePtr, jlong nativePaint, jint start, jint end, jboolean isRtl) { minikin::LineBreaker* b = reinterpret_cast<minikin::LineBreaker*>(nativePtr); Paint* paint = reinterpret_cast<Paint*>(nativePaint); Typeface* typeface = reinterpret_cast<Typeface*>(nativeTypeface); const Typeface* typeface = paint->getAndroidTypeface(); minikin::MinikinPaint minikinPaint; Typeface* resolvedTypeface = Typeface::resolveDefault(typeface); const Typeface* resolvedTypeface = Typeface::resolveDefault(typeface); minikin::FontStyle style = MinikinUtils::prepareMinikinPaint(&minikinPaint, paint, typeface); return b->addStyleRun(&minikinPaint, resolvedTypeface->fFontCollection, style, start, end, Loading Loading @@ -201,7 +201,7 @@ static const JNINativeMethod gMethods[] = { {"nSetLocales", "(JLjava/lang/String;[J)V", (void*) nSetLocales}, {"nSetupParagraph", "(J[CIFIF[IIIIZ)V", (void*) nSetupParagraph}, {"nSetIndents", "(J[I)V", (void*) nSetIndents}, {"nAddStyleRun", "(JJJIIZ)F", (void*) nAddStyleRun}, {"nAddStyleRun", "(JJIIZ)F", (void*) nAddStyleRun}, {"nAddMeasuredRun", "(JII[F)V", (void*) nAddMeasuredRun}, {"nAddReplacementRun", "(JIIF)V", (void*) nAddReplacementRun}, {"nGetWidths", "(J[F)V", (void*) nGetWidths}, Loading Loading
core/java/android/text/StaticLayout.java +3 −4 Original line number Diff line number Diff line Loading @@ -385,8 +385,7 @@ public class StaticLayout extends Layout { /* package */ float addStyleRun(TextPaint paint, int start, int end, boolean isRtl) { setLocales(paint.getTextLocales()); return nAddStyleRun(mNativePtr, paint.getNativeInstance(), paint.mNativeTypeface, start, end, isRtl); return nAddStyleRun(mNativePtr, paint.getNativeInstance(), start, end, isRtl); } /* package */ void addMeasuredRun(int start, int end, float[] widths) { Loading Loading @@ -1455,8 +1454,8 @@ public class StaticLayout extends Layout { int[] variableTabStops, int defaultTabStop, int breakStrategy, int hyphenationFrequency, boolean isJustified); private static native float nAddStyleRun(long nativePtr, long nativePaint, long nativeTypeface, int start, int end, boolean isRtl); private static native float nAddStyleRun(long nativePtr, long nativePaint, int start, int end, boolean isRtl); private static native void nAddMeasuredRun(long nativePtr, int start, int end, float[] widths); Loading
core/java/android/view/RecordingCanvas.java +16 −19 Original line number Diff line number Diff line Loading @@ -395,7 +395,7 @@ public class RecordingCanvas extends Canvas { throw new IndexOutOfBoundsException(); } nDrawText(mNativeCanvasWrapper, text, index, count, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -407,7 +407,7 @@ public class RecordingCanvas extends Canvas { if (text instanceof String || text instanceof SpannedString || text instanceof SpannableString) { nDrawText(mNativeCanvasWrapper, text.toString(), start, end, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } else if (text instanceof GraphicsOperations) { ((GraphicsOperations) text).drawText(this, start, end, x, y, paint); Loading @@ -415,7 +415,7 @@ public class RecordingCanvas extends Canvas { char[] buf = TemporaryBuffer.obtain(end - start); TextUtils.getChars(text, start, end, buf, 0); nDrawText(mNativeCanvasWrapper, buf, 0, end - start, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); TemporaryBuffer.recycle(buf); } } Loading @@ -423,7 +423,7 @@ public class RecordingCanvas extends Canvas { @Override public final void drawText(@NonNull String text, float x, float y, @NonNull Paint paint) { nDrawText(mNativeCanvasWrapper, text, 0, text.length(), x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -433,7 +433,7 @@ public class RecordingCanvas extends Canvas { throw new IndexOutOfBoundsException(); } nDrawText(mNativeCanvasWrapper, text, start, end, x, y, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.getNativeInstance()); } @Override Loading @@ -444,7 +444,7 @@ public class RecordingCanvas extends Canvas { } nDrawTextOnPath(mNativeCanvasWrapper, text, index, count, path.readOnlyNI(), hOffset, vOffset, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } @Override Loading @@ -452,7 +452,7 @@ public class RecordingCanvas extends Canvas { float vOffset, @NonNull Paint paint) { if (text.length() > 0) { nDrawTextOnPath(mNativeCanvasWrapper, text, path.readOnlyNI(), hOffset, vOffset, paint.mBidiFlags, paint.getNativeInstance(), paint.mNativeTypeface); paint.mBidiFlags, paint.getNativeInstance()); } } Loading @@ -473,7 +473,7 @@ public class RecordingCanvas extends Canvas { } nDrawTextRun(mNativeCanvasWrapper, text, index, count, contextIndex, contextCount, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); x, y, isRtl, paint.getNativeInstance()); } @Override Loading @@ -494,7 +494,7 @@ public class RecordingCanvas extends Canvas { if (text instanceof String || text instanceof SpannedString || text instanceof SpannableString) { nDrawTextRun(mNativeCanvasWrapper, text.toString(), start, end, contextStart, contextEnd, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); contextEnd, x, y, isRtl, paint.getNativeInstance()); } else if (text instanceof GraphicsOperations) { ((GraphicsOperations) text).drawTextRun(this, start, end, contextStart, contextEnd, x, y, isRtl, paint); Loading @@ -504,7 +504,7 @@ public class RecordingCanvas extends Canvas { char[] buf = TemporaryBuffer.obtain(contextLen); TextUtils.getChars(text, contextStart, contextEnd, buf, 0); nDrawTextRun(mNativeCanvasWrapper, buf, start - contextStart, len, 0, contextLen, x, y, isRtl, paint.getNativeInstance(), paint.mNativeTypeface); 0, contextLen, x, y, isRtl, paint.getNativeInstance()); TemporaryBuffer.recycle(buf); } } Loading Loading @@ -614,28 +614,25 @@ public class RecordingCanvas extends Canvas { @FastNative private static native void nDrawText(long nativeCanvas, char[] text, int index, int count, float x, float y, int flags, long nativePaint, long nativeTypeface); float x, float y, int flags, long nativePaint); @FastNative private static native void nDrawText(long nativeCanvas, String text, int start, int end, float x, float y, int flags, long nativePaint, long nativeTypeface); float x, float y, int flags, long nativePaint); @FastNative private static native void nDrawTextRun(long nativeCanvas, String text, int start, int end, int contextStart, int contextEnd, float x, float y, boolean isRtl, long nativePaint, long nativeTypeface); int contextStart, int contextEnd, float x, float y, boolean isRtl, long nativePaint); @FastNative private static native void nDrawTextRun(long nativeCanvas, char[] text, int start, int count, int contextStart, int contextCount, float x, float y, boolean isRtl, long nativePaint, long nativeTypeface); int contextStart, int contextCount, float x, float y, boolean isRtl, long nativePaint); @FastNative private static native void nDrawTextOnPath(long nativeCanvas, char[] text, int index, int count, long nativePath, float hOffset, float vOffset, int bidiFlags, long nativePaint, long nativeTypeface); long nativePath, float hOffset, float vOffset, int bidiFlags, long nativePaint); @FastNative private static native void nDrawTextOnPath(long nativeCanvas, String text, long nativePath, float hOffset, float vOffset, int flags, long nativePaint, long nativeTypeface); float hOffset, float vOffset, int flags, long nativePaint); }
core/jni/android/graphics/Paint.cpp +83 −93 File changed.Preview size limit exceeded, changes collapsed. Show changes
core/jni/android_graphics_Canvas.cpp +18 −20 Original line number Diff line number Diff line Loading @@ -480,9 +480,9 @@ static void drawBitmapMesh(JNIEnv* env, jobject, jlong canvasHandle, jobject jbi static void drawTextChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jfloat x, jfloat y, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); jchar* jchars = env->GetCharArrayElements(text, NULL); get_canvas(canvasHandle)->drawText(jchars + index, 0, count, count, x, y, bidiFlags, *paint, typeface); Loading @@ -491,9 +491,9 @@ static void drawTextChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray t static void drawTextString(JNIEnv* env, jobject, jlong canvasHandle, jstring text, jint start, jint end, jfloat x, jfloat y, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const int count = end - start; const jchar* jchars = env->GetStringChars(text, NULL); get_canvas(canvasHandle)->drawText(jchars + start, 0, count, count, x, y, Loading @@ -503,9 +503,9 @@ static void drawTextString(JNIEnv* env, jobject, jlong canvasHandle, jstring tex static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jint contextIndex, jint contextCount, jfloat x, jfloat y, jboolean isRtl, jlong paintHandle, jlong typefaceHandle) { jboolean isRtl, jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jchar* jchars = env->GetCharArrayElements(text, NULL); Loading @@ -516,10 +516,9 @@ static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArra static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstring text, jint start, jint end, jint contextStart, jint contextEnd, jfloat x, jfloat y, jboolean isRtl, jlong paintHandle, jlong typefaceHandle) { jfloat x, jfloat y, jboolean isRtl, jlong paintHandle) { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jint count = end - start; Loading @@ -532,11 +531,10 @@ static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstr static void drawTextOnPathChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArray text, jint index, jint count, jlong pathHandle, jfloat hOffset, jfloat vOffset, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jfloat vOffset, jint bidiFlags, jlong paintHandle) { SkPath* path = reinterpret_cast<SkPath*>(pathHandle); Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); jchar* jchars = env->GetCharArrayElements(text, NULL); Loading @@ -548,10 +546,10 @@ static void drawTextOnPathChars(JNIEnv* env, jobject, jlong canvasHandle, jcharA static void drawTextOnPathString(JNIEnv* env, jobject, jlong canvasHandle, jstring text, jlong pathHandle, jfloat hOffset, jfloat vOffset, jint bidiFlags, jlong paintHandle, jlong typefaceHandle) { jint bidiFlags, jlong paintHandle) { SkPath* path = reinterpret_cast<SkPath*>(pathHandle); Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const Typeface* typeface = paint->getAndroidTypeface(); const jchar* jchars = env->GetStringChars(text, NULL); int count = env->GetStringLength(text); Loading Loading @@ -634,12 +632,12 @@ static const JNINativeMethod gDrawMethods[] = { {"nDrawBitmap","(JLandroid/graphics/Bitmap;FFJIII)V", (void*) CanvasJNI::drawBitmap}, {"nDrawBitmap","(JLandroid/graphics/Bitmap;FFFFFFFFJII)V", (void*) CanvasJNI::drawBitmapRect}, {"nDrawBitmap", "(J[IIIFFIIZJ)V", (void*)CanvasJNI::drawBitmapArray}, {"nDrawText","(J[CIIFFIJJ)V", (void*) CanvasJNI::drawTextChars}, {"nDrawText","(JLjava/lang/String;IIFFIJJ)V", (void*) CanvasJNI::drawTextString}, {"nDrawTextRun","(J[CIIIIFFZJJ)V", (void*) CanvasJNI::drawTextRunChars}, {"nDrawTextRun","(JLjava/lang/String;IIIIFFZJJ)V", (void*) CanvasJNI::drawTextRunString}, {"nDrawTextOnPath","(J[CIIJFFIJJ)V", (void*) CanvasJNI::drawTextOnPathChars}, {"nDrawTextOnPath","(JLjava/lang/String;JFFIJJ)V", (void*) CanvasJNI::drawTextOnPathString}, {"nDrawText","(J[CIIFFIJ)V", (void*) CanvasJNI::drawTextChars}, {"nDrawText","(JLjava/lang/String;IIFFIJ)V", (void*) CanvasJNI::drawTextString}, {"nDrawTextRun","(J[CIIIIFFZJ)V", (void*) CanvasJNI::drawTextRunChars}, {"nDrawTextRun","(JLjava/lang/String;IIIIFFZJ)V", (void*) CanvasJNI::drawTextRunString}, {"nDrawTextOnPath","(J[CIIJFFIJ)V", (void*) CanvasJNI::drawTextOnPathChars}, {"nDrawTextOnPath","(JLjava/lang/String;JFFIJ)V", (void*) CanvasJNI::drawTextOnPathString}, }; int register_android_graphics_Canvas(JNIEnv* env) { Loading
core/jni/android_text_StaticLayout.cpp +5 −5 Original line number Diff line number Diff line Loading @@ -160,13 +160,13 @@ static void nSetIndents(JNIEnv* env, jclass, jlong nativePtr, jintArray indents) } // Basically similar to Paint.getTextRunAdvances but with C++ interface static jfloat nAddStyleRun(JNIEnv* env, jclass, jlong nativePtr, jlong nativePaint, jlong nativeTypeface, jint start, jint end, jboolean isRtl) { static jfloat nAddStyleRun(JNIEnv* env, jclass, jlong nativePtr, jlong nativePaint, jint start, jint end, jboolean isRtl) { minikin::LineBreaker* b = reinterpret_cast<minikin::LineBreaker*>(nativePtr); Paint* paint = reinterpret_cast<Paint*>(nativePaint); Typeface* typeface = reinterpret_cast<Typeface*>(nativeTypeface); const Typeface* typeface = paint->getAndroidTypeface(); minikin::MinikinPaint minikinPaint; Typeface* resolvedTypeface = Typeface::resolveDefault(typeface); const Typeface* resolvedTypeface = Typeface::resolveDefault(typeface); minikin::FontStyle style = MinikinUtils::prepareMinikinPaint(&minikinPaint, paint, typeface); return b->addStyleRun(&minikinPaint, resolvedTypeface->fFontCollection, style, start, end, Loading Loading @@ -201,7 +201,7 @@ static const JNINativeMethod gMethods[] = { {"nSetLocales", "(JLjava/lang/String;[J)V", (void*) nSetLocales}, {"nSetupParagraph", "(J[CIFIF[IIIIZ)V", (void*) nSetupParagraph}, {"nSetIndents", "(J[I)V", (void*) nSetIndents}, {"nAddStyleRun", "(JJJIIZ)F", (void*) nAddStyleRun}, {"nAddStyleRun", "(JJIIZ)F", (void*) nAddStyleRun}, {"nAddMeasuredRun", "(JII[F)V", (void*) nAddMeasuredRun}, {"nAddReplacementRun", "(JIIF)V", (void*) nAddReplacementRun}, {"nGetWidths", "(J[F)V", (void*) nGetWidths}, Loading