summaryrefslogtreecommitdiffstats
path: root/core/jni/android/graphics/Paint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'core/jni/android/graphics/Paint.cpp')
-rw-r--r--core/jni/android/graphics/Paint.cpp9
1 files changed, 4 insertions, 5 deletions
diff --git a/core/jni/android/graphics/Paint.cpp b/core/jni/android/graphics/Paint.cpp
index 24731ac..74f7085 100644
--- a/core/jni/android/graphics/Paint.cpp
+++ b/core/jni/android/graphics/Paint.cpp
@@ -439,8 +439,8 @@ public:
#ifdef USE_MINIKIN
TypefaceImpl* typeface = GraphicsJNI::getNativeTypeface(env, jpaint);
typeface = TypefaceImpl_resolveDefault(typeface);
- MinikinFont* baseFont = typeface->fFontCollection->baseFont(typeface->fStyle);
- paint->setTypeface(reinterpret_cast<MinikinFontSkia*>(baseFont)->GetSkTypeface());
+ FakedFont baseFont = typeface->fFontCollection->baseFontFaked(typeface->fStyle);
+ MinikinFontSkia::populateSkPaint(paint, baseFont.font, baseFont.fakery);
#endif
SkScalar spacing = paint->getFontMetrics(metrics);
SkPaintOptionsAndroid paintOpts = paint->getPaintOptionsAndroid();
@@ -837,13 +837,12 @@ public:
: layout(layout), path(path), x(x), y(y), paint(paint), glyphs(glyphs), pos(pos) {
}
- void operator()(SkTypeface* t, size_t start, size_t end) {
+ void operator()(size_t start, size_t end) {
for (size_t i = start; i < end; i++) {
glyphs[i] = layout.getGlyphId(i);
pos[i].fX = x + layout.getX(i);
pos[i].fY = y + layout.getY(i);
}
- paint->setTypeface(t);
if (start == 0) {
paint->getPosTextPath(glyphs + start, (end - start) << 1, pos + start, path);
} else {
@@ -878,7 +877,7 @@ public:
paint->setTextAlign(SkPaint::kLeft_Align);
paint->setTextEncoding(SkPaint::kGlyphID_TextEncoding);
GetTextFunctor f(layout, path, x, y, paint, glyphs, pos);
- MinikinUtils::forFontRun(layout, f);
+ MinikinUtils::forFontRun(layout, paint, f);
paint->setTextAlign(align);
delete[] glyphs;
delete[] pos;