Loading core/java/android/widget/TextView.java +1 −0 Original line number Diff line number Diff line Loading @@ -6761,6 +6761,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener BoringLayout.Metrics boring, BoringLayout.Metrics hintBoring, int ellipsisWidth, boolean bringIntoView) { android.util.Log.e("TextView", "makeNewLayout", new Exception()); stopMarquee(); // Update "old" cached values Loading core/jni/android/graphics/FontFamily.cpp +12 −11 Original line number Diff line number Diff line Loading @@ -41,21 +41,21 @@ namespace android { static jlong FontFamily_create(JNIEnv* env, jobject clazz, jstring lang, jint variant) { if (lang == NULL) { return (jlong)new FontFamily(variant); return (jlong)new minikin::FontFamily(variant); } ScopedUtfChars str(env, lang); uint32_t langId = FontStyle::registerLanguageList(str.c_str()); return (jlong)new FontFamily(langId, variant); uint32_t langId = minikin::FontStyle::registerLanguageList(str.c_str()); return (jlong)new minikin::FontFamily(langId, variant); } static void FontFamily_unref(JNIEnv* env, jobject clazz, jlong familyPtr) { FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); fontFamily->Unref(); } static jboolean addSkTypeface(FontFamily* family, SkTypeface* face, const void* fontData, static jboolean addSkTypeface(minikin::FontFamily* family, SkTypeface* face, const void* fontData, size_t fontSize, int ttcIndex) { MinikinFont* minikinFont = new MinikinFontSkia(face, fontData, fontSize, ttcIndex); minikin::MinikinFont* minikinFont = new MinikinFontSkia(face, fontData, fontSize, ttcIndex); bool result = family->addFont(minikinFont); minikinFont->Unref(); return result; Loading Loading @@ -111,7 +111,7 @@ static jboolean FontFamily_addFont(JNIEnv* env, jobject clazz, jlong familyPtr, ALOGE("addFont failed to create font"); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); return addSkTypeface(fontFamily, face, fontPtr, (size_t)fontSize, ttcIndex); } Loading Loading @@ -177,9 +177,10 @@ static jboolean FontFamily_addFontWeightStyle(JNIEnv* env, jobject clazz, jlong ALOGE("addFont failed to create font, invalid request"); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); MinikinFont* minikinFont = new MinikinFontSkia(face, fontPtr, (size_t)fontSize, ttcIndex); fontFamily->addFont(minikinFont, FontStyle(weight / 100, isItalic)); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); minikin::MinikinFont* minikinFont = new MinikinFontSkia(face, fontPtr, (size_t)fontSize, ttcIndex); fontFamily->addFont(minikinFont, minikin::FontStyle(weight / 100, isItalic)); minikinFont->Unref(); return true; } Loading Loading @@ -219,7 +220,7 @@ static jboolean FontFamily_addFontFromAsset(JNIEnv* env, jobject, jlong familyPt ALOGE("addFontFromAsset failed to create font %s", str.c_str()); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); return addSkTypeface(fontFamily, face, buf, bufSize, /* ttcIndex */ 0); } Loading core/jni/android/graphics/Paint.cpp +21 −20 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ namespace PaintGlue { static jint setTextLocales(JNIEnv* env, jobject clazz, jlong objHandle, jstring locales) { Paint* obj = reinterpret_cast<Paint*>(objHandle); ScopedUtfChars localesChars(env, locales); jint minikinLangListId = FontStyle::registerLanguageList(localesChars.c_str()); jint minikinLangListId = minikin::FontStyle::registerLanguageList(localesChars.c_str()); obj->setMinikinLangListId(minikinLangListId); return minikinLangListId; } Loading @@ -332,12 +332,12 @@ namespace PaintGlue { static jboolean isElegantTextHeight(JNIEnv* env, jobject, jlong paintHandle) { Paint* obj = reinterpret_cast<Paint*>(paintHandle); return obj->getFontVariant() == VARIANT_ELEGANT; return obj->getFontVariant() == minikin::VARIANT_ELEGANT; } static void setElegantTextHeight(JNIEnv* env, jobject, jlong paintHandle, jboolean aa) { Paint* obj = reinterpret_cast<Paint*>(paintHandle); obj->setFontVariant(aa ? VARIANT_ELEGANT : VARIANT_DEFAULT); obj->setFontVariant(aa ? minikin::VARIANT_ELEGANT : minikin::VARIANT_DEFAULT); } static jfloat getTextSize(JNIEnv* env, jobject, jlong paintHandle) { Loading Loading @@ -404,7 +404,7 @@ namespace PaintGlue { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); typeface = Typeface::resolveDefault(typeface); FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); minikin::FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); float saveSkewX = paint->getTextSkewX(); bool savefakeBold = paint->isFakeBoldText(); MinikinFontSkia::populateSkPaint(paint, baseFont.font, baseFont.fakery); Loading @@ -414,7 +414,7 @@ namespace PaintGlue { // restore the original settings. paint->setTextSkewX(saveSkewX); paint->setFakeBoldText(savefakeBold); if (paint->getFontVariant() == VARIANT_ELEGANT) { if (paint->getFontVariant() == minikin::VARIANT_ELEGANT) { SkScalar size = paint->getTextSize(); metrics->fTop = -size * kElegantTop / 2048; metrics->fBottom = -size * kElegantBottom / 2048; Loading Loading @@ -534,8 +534,9 @@ namespace PaintGlue { static jint doTextRunCursor(JNIEnv *env, Paint* paint, const jchar *text, jint start, jint count, jint flags, jint offset, jint opt) { GraphemeBreak::MoveOpt moveOpt = GraphemeBreak::MoveOpt(opt); size_t result = GraphemeBreak::getTextRunCursor(text, start, count, offset, moveOpt); minikin::GraphemeBreak::MoveOpt moveOpt = minikin::GraphemeBreak::MoveOpt(opt); size_t result = minikin::GraphemeBreak::getTextRunCursor(text, start, count, offset, moveOpt); return static_cast<jint>(result); } Loading @@ -561,8 +562,8 @@ namespace PaintGlue { class GetTextFunctor { public: GetTextFunctor(const Layout& layout, SkPath* path, jfloat x, jfloat y, Paint* paint, uint16_t* glyphs, SkPoint* pos) GetTextFunctor(const minikin::Layout& layout, SkPath* path, jfloat x, jfloat y, Paint* paint, uint16_t* glyphs, SkPoint* pos) : layout(layout), path(path), x(x), y(y), paint(paint), glyphs(glyphs), pos(pos) { } Loading @@ -580,7 +581,7 @@ namespace PaintGlue { } } private: const Layout& layout; const minikin::Layout& layout; SkPath* path; jfloat x; jfloat y; Loading @@ -592,7 +593,7 @@ namespace PaintGlue { static void getTextPath(JNIEnv* env, Paint* paint, Typeface* typeface, const jchar* text, jint count, jint bidiFlags, jfloat x, jfloat y, SkPath* path) { Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, text, 0, count, count); size_t nGlyphs = layout.nGlyphs(); uint16_t* glyphs = new uint16_t[nGlyphs]; Loading Loading @@ -728,9 +729,9 @@ namespace PaintGlue { SkRect r; SkIRect ir; Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, &paint, bidiFlags, typeface, text, 0, count, count); MinikinRect rect; minikin::MinikinRect rect; layout.getBounds(&rect); r.fLeft = rect.mLeft; r.fTop = rect.mTop; Loading Loading @@ -759,7 +760,7 @@ namespace PaintGlue { JNI_ABORT); } static jboolean layoutContainsNotdef(const Layout& layout) { static jboolean layoutContainsNotdef(const minikin::Layout& layout) { for (size_t i = 0; i < layout.nGlyphs(); i++) { if (layout.getGlyphId(i) == 0) { return true; Loading Loading @@ -828,7 +829,7 @@ namespace PaintGlue { nChars++; prevCp = cp; } Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, str.get(), 0, str.size(), str.size()); size_t nGlyphs = layout.nGlyphs(); Loading @@ -849,7 +850,7 @@ namespace PaintGlue { // since ZZ is reserved for unknown or invalid territory. // U+1F1FF (REGIONAL INDICATOR SYMBOL LETTER Z) is \uD83C\uDDFF in UTF16. static const jchar ZZ_FLAG_STR[] = { 0xD83C, 0xDDFF, 0xD83C, 0xDDFF }; Layout zzLayout; minikin::Layout zzLayout; MinikinUtils::doLayout(&zzLayout, paint, bidiFlags, typeface, ZZ_FLAG_STR, 0, 4, 4); if (zzLayout.nGlyphs() != 1 || layoutContainsNotdef(zzLayout)) { // The font collection doesn't have a glyph for unknown flag. Just return true. Loading @@ -862,7 +863,7 @@ namespace PaintGlue { static jfloat doRunAdvance(const Paint* paint, Typeface* typeface, const jchar buf[], jint start, jint count, jint bufSize, jboolean isRtl, jint offset) { int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; if (offset == start + count) { return MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, nullptr); Loading @@ -870,7 +871,7 @@ namespace PaintGlue { std::unique_ptr<float[]> advancesArray(new float[count]); MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, advancesArray.get()); return getRunAdvance(advancesArray.get(), buf, start, count, offset); return minikin::getRunAdvance(advancesArray.get(), buf, start, count, offset); } static jfloat getRunAdvance___CIIIIZI_F(JNIEnv *env, jclass, jlong paintHandle, Loading @@ -888,11 +889,11 @@ namespace PaintGlue { static jint doOffsetForAdvance(const Paint* paint, Typeface* typeface, const jchar buf[], jint start, jint count, jint bufSize, jboolean isRtl, jfloat advance) { int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; std::unique_ptr<float[]> advancesArray(new float[count]); MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, advancesArray.get()); return getOffsetForAdvance(advancesArray.get(), buf, start, count, advance); return minikin::getOffsetForAdvance(advancesArray.get(), buf, start, count, advance); } static jint getOffsetForAdvance___CIIIIZF_I(JNIEnv *env, jclass, jlong paintHandle, Loading core/jni/android/graphics/Typeface.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -60,9 +60,9 @@ static jint Typeface_getStyle(JNIEnv* env, jobject obj, jlong faceHandle) { static jlong Typeface_createFromArray(JNIEnv *env, jobject, jlongArray familyArray) { ScopedLongArrayRO families(env, familyArray); std::vector<FontFamily*> familyVec; std::vector<minikin::FontFamily*> familyVec; for (size_t i = 0; i < families.size(); i++) { FontFamily* family = reinterpret_cast<FontFamily*>(families[i]); minikin::FontFamily* family = reinterpret_cast<minikin::FontFamily*>(families[i]); familyVec.push_back(family); } return reinterpret_cast<jlong>(Typeface::createFromFamilies(familyVec)); Loading core/jni/android_graphics_Canvas.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -503,7 +503,7 @@ static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArra Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; const int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jchar* jchars = env->GetCharArrayElements(text, NULL); get_canvas(canvasHandle)->drawText(jchars + contextIndex, index - contextIndex, count, contextCount, x, y, bidiFlags, *paint, typeface); Loading @@ -517,7 +517,7 @@ static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstr Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jint count = end - start; jint contextCount = contextEnd - contextStart; const jchar* jchars = env->GetStringChars(text, NULL); Loading Loading @@ -567,7 +567,7 @@ static void freeCaches(JNIEnv* env, jobject) { } static void freeTextLayoutCaches(JNIEnv* env, jobject) { Layout::purgeCaches(); minikin::Layout::purgeCaches(); } }; // namespace CanvasJNI Loading Loading
core/java/android/widget/TextView.java +1 −0 Original line number Diff line number Diff line Loading @@ -6761,6 +6761,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener BoringLayout.Metrics boring, BoringLayout.Metrics hintBoring, int ellipsisWidth, boolean bringIntoView) { android.util.Log.e("TextView", "makeNewLayout", new Exception()); stopMarquee(); // Update "old" cached values Loading
core/jni/android/graphics/FontFamily.cpp +12 −11 Original line number Diff line number Diff line Loading @@ -41,21 +41,21 @@ namespace android { static jlong FontFamily_create(JNIEnv* env, jobject clazz, jstring lang, jint variant) { if (lang == NULL) { return (jlong)new FontFamily(variant); return (jlong)new minikin::FontFamily(variant); } ScopedUtfChars str(env, lang); uint32_t langId = FontStyle::registerLanguageList(str.c_str()); return (jlong)new FontFamily(langId, variant); uint32_t langId = minikin::FontStyle::registerLanguageList(str.c_str()); return (jlong)new minikin::FontFamily(langId, variant); } static void FontFamily_unref(JNIEnv* env, jobject clazz, jlong familyPtr) { FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); fontFamily->Unref(); } static jboolean addSkTypeface(FontFamily* family, SkTypeface* face, const void* fontData, static jboolean addSkTypeface(minikin::FontFamily* family, SkTypeface* face, const void* fontData, size_t fontSize, int ttcIndex) { MinikinFont* minikinFont = new MinikinFontSkia(face, fontData, fontSize, ttcIndex); minikin::MinikinFont* minikinFont = new MinikinFontSkia(face, fontData, fontSize, ttcIndex); bool result = family->addFont(minikinFont); minikinFont->Unref(); return result; Loading Loading @@ -111,7 +111,7 @@ static jboolean FontFamily_addFont(JNIEnv* env, jobject clazz, jlong familyPtr, ALOGE("addFont failed to create font"); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); return addSkTypeface(fontFamily, face, fontPtr, (size_t)fontSize, ttcIndex); } Loading Loading @@ -177,9 +177,10 @@ static jboolean FontFamily_addFontWeightStyle(JNIEnv* env, jobject clazz, jlong ALOGE("addFont failed to create font, invalid request"); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); MinikinFont* minikinFont = new MinikinFontSkia(face, fontPtr, (size_t)fontSize, ttcIndex); fontFamily->addFont(minikinFont, FontStyle(weight / 100, isItalic)); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); minikin::MinikinFont* minikinFont = new MinikinFontSkia(face, fontPtr, (size_t)fontSize, ttcIndex); fontFamily->addFont(minikinFont, minikin::FontStyle(weight / 100, isItalic)); minikinFont->Unref(); return true; } Loading Loading @@ -219,7 +220,7 @@ static jboolean FontFamily_addFontFromAsset(JNIEnv* env, jobject, jlong familyPt ALOGE("addFontFromAsset failed to create font %s", str.c_str()); return false; } FontFamily* fontFamily = reinterpret_cast<FontFamily*>(familyPtr); minikin::FontFamily* fontFamily = reinterpret_cast<minikin::FontFamily*>(familyPtr); return addSkTypeface(fontFamily, face, buf, bufSize, /* ttcIndex */ 0); } Loading
core/jni/android/graphics/Paint.cpp +21 −20 Original line number Diff line number Diff line Loading @@ -319,7 +319,7 @@ namespace PaintGlue { static jint setTextLocales(JNIEnv* env, jobject clazz, jlong objHandle, jstring locales) { Paint* obj = reinterpret_cast<Paint*>(objHandle); ScopedUtfChars localesChars(env, locales); jint minikinLangListId = FontStyle::registerLanguageList(localesChars.c_str()); jint minikinLangListId = minikin::FontStyle::registerLanguageList(localesChars.c_str()); obj->setMinikinLangListId(minikinLangListId); return minikinLangListId; } Loading @@ -332,12 +332,12 @@ namespace PaintGlue { static jboolean isElegantTextHeight(JNIEnv* env, jobject, jlong paintHandle) { Paint* obj = reinterpret_cast<Paint*>(paintHandle); return obj->getFontVariant() == VARIANT_ELEGANT; return obj->getFontVariant() == minikin::VARIANT_ELEGANT; } static void setElegantTextHeight(JNIEnv* env, jobject, jlong paintHandle, jboolean aa) { Paint* obj = reinterpret_cast<Paint*>(paintHandle); obj->setFontVariant(aa ? VARIANT_ELEGANT : VARIANT_DEFAULT); obj->setFontVariant(aa ? minikin::VARIANT_ELEGANT : minikin::VARIANT_DEFAULT); } static jfloat getTextSize(JNIEnv* env, jobject, jlong paintHandle) { Loading Loading @@ -404,7 +404,7 @@ namespace PaintGlue { Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); typeface = Typeface::resolveDefault(typeface); FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); minikin::FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle); float saveSkewX = paint->getTextSkewX(); bool savefakeBold = paint->isFakeBoldText(); MinikinFontSkia::populateSkPaint(paint, baseFont.font, baseFont.fakery); Loading @@ -414,7 +414,7 @@ namespace PaintGlue { // restore the original settings. paint->setTextSkewX(saveSkewX); paint->setFakeBoldText(savefakeBold); if (paint->getFontVariant() == VARIANT_ELEGANT) { if (paint->getFontVariant() == minikin::VARIANT_ELEGANT) { SkScalar size = paint->getTextSize(); metrics->fTop = -size * kElegantTop / 2048; metrics->fBottom = -size * kElegantBottom / 2048; Loading Loading @@ -534,8 +534,9 @@ namespace PaintGlue { static jint doTextRunCursor(JNIEnv *env, Paint* paint, const jchar *text, jint start, jint count, jint flags, jint offset, jint opt) { GraphemeBreak::MoveOpt moveOpt = GraphemeBreak::MoveOpt(opt); size_t result = GraphemeBreak::getTextRunCursor(text, start, count, offset, moveOpt); minikin::GraphemeBreak::MoveOpt moveOpt = minikin::GraphemeBreak::MoveOpt(opt); size_t result = minikin::GraphemeBreak::getTextRunCursor(text, start, count, offset, moveOpt); return static_cast<jint>(result); } Loading @@ -561,8 +562,8 @@ namespace PaintGlue { class GetTextFunctor { public: GetTextFunctor(const Layout& layout, SkPath* path, jfloat x, jfloat y, Paint* paint, uint16_t* glyphs, SkPoint* pos) GetTextFunctor(const minikin::Layout& layout, SkPath* path, jfloat x, jfloat y, Paint* paint, uint16_t* glyphs, SkPoint* pos) : layout(layout), path(path), x(x), y(y), paint(paint), glyphs(glyphs), pos(pos) { } Loading @@ -580,7 +581,7 @@ namespace PaintGlue { } } private: const Layout& layout; const minikin::Layout& layout; SkPath* path; jfloat x; jfloat y; Loading @@ -592,7 +593,7 @@ namespace PaintGlue { static void getTextPath(JNIEnv* env, Paint* paint, Typeface* typeface, const jchar* text, jint count, jint bidiFlags, jfloat x, jfloat y, SkPath* path) { Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, text, 0, count, count); size_t nGlyphs = layout.nGlyphs(); uint16_t* glyphs = new uint16_t[nGlyphs]; Loading Loading @@ -728,9 +729,9 @@ namespace PaintGlue { SkRect r; SkIRect ir; Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, &paint, bidiFlags, typeface, text, 0, count, count); MinikinRect rect; minikin::MinikinRect rect; layout.getBounds(&rect); r.fLeft = rect.mLeft; r.fTop = rect.mTop; Loading Loading @@ -759,7 +760,7 @@ namespace PaintGlue { JNI_ABORT); } static jboolean layoutContainsNotdef(const Layout& layout) { static jboolean layoutContainsNotdef(const minikin::Layout& layout) { for (size_t i = 0; i < layout.nGlyphs(); i++) { if (layout.getGlyphId(i) == 0) { return true; Loading Loading @@ -828,7 +829,7 @@ namespace PaintGlue { nChars++; prevCp = cp; } Layout layout; minikin::Layout layout; MinikinUtils::doLayout(&layout, paint, bidiFlags, typeface, str.get(), 0, str.size(), str.size()); size_t nGlyphs = layout.nGlyphs(); Loading @@ -849,7 +850,7 @@ namespace PaintGlue { // since ZZ is reserved for unknown or invalid territory. // U+1F1FF (REGIONAL INDICATOR SYMBOL LETTER Z) is \uD83C\uDDFF in UTF16. static const jchar ZZ_FLAG_STR[] = { 0xD83C, 0xDDFF, 0xD83C, 0xDDFF }; Layout zzLayout; minikin::Layout zzLayout; MinikinUtils::doLayout(&zzLayout, paint, bidiFlags, typeface, ZZ_FLAG_STR, 0, 4, 4); if (zzLayout.nGlyphs() != 1 || layoutContainsNotdef(zzLayout)) { // The font collection doesn't have a glyph for unknown flag. Just return true. Loading @@ -862,7 +863,7 @@ namespace PaintGlue { static jfloat doRunAdvance(const Paint* paint, Typeface* typeface, const jchar buf[], jint start, jint count, jint bufSize, jboolean isRtl, jint offset) { int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; if (offset == start + count) { return MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, nullptr); Loading @@ -870,7 +871,7 @@ namespace PaintGlue { std::unique_ptr<float[]> advancesArray(new float[count]); MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, advancesArray.get()); return getRunAdvance(advancesArray.get(), buf, start, count, offset); return minikin::getRunAdvance(advancesArray.get(), buf, start, count, offset); } static jfloat getRunAdvance___CIIIIZI_F(JNIEnv *env, jclass, jlong paintHandle, Loading @@ -888,11 +889,11 @@ namespace PaintGlue { static jint doOffsetForAdvance(const Paint* paint, Typeface* typeface, const jchar buf[], jint start, jint count, jint bufSize, jboolean isRtl, jfloat advance) { int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; std::unique_ptr<float[]> advancesArray(new float[count]); MinikinUtils::measureText(paint, bidiFlags, typeface, buf, start, count, bufSize, advancesArray.get()); return getOffsetForAdvance(advancesArray.get(), buf, start, count, advance); return minikin::getOffsetForAdvance(advancesArray.get(), buf, start, count, advance); } static jint getOffsetForAdvance___CIIIIZF_I(JNIEnv *env, jclass, jlong paintHandle, Loading
core/jni/android/graphics/Typeface.cpp +2 −2 Original line number Diff line number Diff line Loading @@ -60,9 +60,9 @@ static jint Typeface_getStyle(JNIEnv* env, jobject obj, jlong faceHandle) { static jlong Typeface_createFromArray(JNIEnv *env, jobject, jlongArray familyArray) { ScopedLongArrayRO families(env, familyArray); std::vector<FontFamily*> familyVec; std::vector<minikin::FontFamily*> familyVec; for (size_t i = 0; i < families.size(); i++) { FontFamily* family = reinterpret_cast<FontFamily*>(families[i]); minikin::FontFamily* family = reinterpret_cast<minikin::FontFamily*>(families[i]); familyVec.push_back(family); } return reinterpret_cast<jlong>(Typeface::createFromFamilies(familyVec)); Loading
core/jni/android_graphics_Canvas.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -503,7 +503,7 @@ static void drawTextRunChars(JNIEnv* env, jobject, jlong canvasHandle, jcharArra Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); const int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; const int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jchar* jchars = env->GetCharArrayElements(text, NULL); get_canvas(canvasHandle)->drawText(jchars + contextIndex, index - contextIndex, count, contextCount, x, y, bidiFlags, *paint, typeface); Loading @@ -517,7 +517,7 @@ static void drawTextRunString(JNIEnv* env, jobject obj, jlong canvasHandle, jstr Paint* paint = reinterpret_cast<Paint*>(paintHandle); Typeface* typeface = reinterpret_cast<Typeface*>(typefaceHandle); int bidiFlags = isRtl ? kBidi_Force_RTL : kBidi_Force_LTR; int bidiFlags = isRtl ? minikin::kBidi_Force_RTL : minikin::kBidi_Force_LTR; jint count = end - start; jint contextCount = contextEnd - contextStart; const jchar* jchars = env->GetStringChars(text, NULL); Loading Loading @@ -567,7 +567,7 @@ static void freeCaches(JNIEnv* env, jobject) { } static void freeTextLayoutCaches(JNIEnv* env, jobject) { Layout::purgeCaches(); minikin::Layout::purgeCaches(); } }; // namespace CanvasJNI Loading