Loading libs/hwui/FontRenderer.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -40,9 +40,9 @@ namespace uirenderer { /////////////////////////////////////////////////////////////////////////////// Font::Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle) : int flags, uint32_t italicStyle, uint32_t scaleX) : mState(state), mFontId(fontId), mFontSize(fontSize), mFlags(flags), mItalicStyle(italicStyle) { mFlags(flags), mItalicStyle(italicStyle), mScaleX(scaleX) { } Loading Loading @@ -279,18 +279,19 @@ Font::CachedGlyphInfo* Font::cacheGlyph(SkPaint* paint, int32_t glyph) { } Font* Font::create(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle) { int flags, uint32_t italicStyle, uint32_t scaleX) { Vector<Font*> &activeFonts = state->mActiveFonts; for (uint32_t i = 0; i < activeFonts.size(); i++) { Font* font = activeFonts[i]; if (font->mFontId == fontId && font->mFontSize == fontSize && font->mFlags == flags && font->mItalicStyle == italicStyle) { font->mFlags == flags && font->mItalicStyle == italicStyle && font->mScaleX == scaleX) { return font; } } Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle); Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle, scaleX); activeFonts.push(newFont); return newFont; } Loading Loading @@ -657,7 +658,9 @@ void FontRenderer::setFont(SkPaint* paint, uint32_t fontId, float fontSize) { const float skewX = paint->getTextSkewX(); uint32_t italicStyle = *(uint32_t*) &skewX; mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle); const float scaleXFloat = paint->getTextScaleX(); uint32_t scaleX = *(uint32_t*) &scaleXFloat; mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle, scaleX); const float maxPrecacheFontSize = 40.0f; bool isNewFont = currentNumFonts != mActiveFonts.size(); Loading libs/hwui/FontRenderer.h +4 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ public: * Creates a new font associated with the specified font state. */ static Font* create(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle); int flags, uint32_t italicStyle, uint32_t scaleX); protected: friend class FontRenderer; Loading Loading @@ -104,7 +104,8 @@ protected: SkFixed mRsbDelta; }; Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle); Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle, uint32_t scaleX); DefaultKeyedVector<int32_t, CachedGlyphInfo*> mCachedGlyphs; Loading @@ -124,6 +125,7 @@ protected: float mFontSize; int mFlags; uint32_t mItalicStyle; uint32_t mScaleX; }; class FontRenderer { Loading Loading
libs/hwui/FontRenderer.cpp +9 −6 Original line number Diff line number Diff line Loading @@ -40,9 +40,9 @@ namespace uirenderer { /////////////////////////////////////////////////////////////////////////////// Font::Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle) : int flags, uint32_t italicStyle, uint32_t scaleX) : mState(state), mFontId(fontId), mFontSize(fontSize), mFlags(flags), mItalicStyle(italicStyle) { mFlags(flags), mItalicStyle(italicStyle), mScaleX(scaleX) { } Loading Loading @@ -279,18 +279,19 @@ Font::CachedGlyphInfo* Font::cacheGlyph(SkPaint* paint, int32_t glyph) { } Font* Font::create(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle) { int flags, uint32_t italicStyle, uint32_t scaleX) { Vector<Font*> &activeFonts = state->mActiveFonts; for (uint32_t i = 0; i < activeFonts.size(); i++) { Font* font = activeFonts[i]; if (font->mFontId == fontId && font->mFontSize == fontSize && font->mFlags == flags && font->mItalicStyle == italicStyle) { font->mFlags == flags && font->mItalicStyle == italicStyle && font->mScaleX == scaleX) { return font; } } Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle); Font* newFont = new Font(state, fontId, fontSize, flags, italicStyle, scaleX); activeFonts.push(newFont); return newFont; } Loading Loading @@ -657,7 +658,9 @@ void FontRenderer::setFont(SkPaint* paint, uint32_t fontId, float fontSize) { const float skewX = paint->getTextSkewX(); uint32_t italicStyle = *(uint32_t*) &skewX; mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle); const float scaleXFloat = paint->getTextScaleX(); uint32_t scaleX = *(uint32_t*) &scaleXFloat; mCurrentFont = Font::create(this, fontId, fontSize, flags, italicStyle, scaleX); const float maxPrecacheFontSize = 40.0f; bool isNewFont = currentNumFonts != mActiveFonts.size(); Loading
libs/hwui/FontRenderer.h +4 −2 Original line number Diff line number Diff line Loading @@ -58,7 +58,7 @@ public: * Creates a new font associated with the specified font state. */ static Font* create(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle); int flags, uint32_t italicStyle, uint32_t scaleX); protected: friend class FontRenderer; Loading Loading @@ -104,7 +104,8 @@ protected: SkFixed mRsbDelta; }; Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle); Font(FontRenderer* state, uint32_t fontId, float fontSize, int flags, uint32_t italicStyle, uint32_t scaleX); DefaultKeyedVector<int32_t, CachedGlyphInfo*> mCachedGlyphs; Loading @@ -124,6 +125,7 @@ protected: float mFontSize; int mFlags; uint32_t mItalicStyle; uint32_t mScaleX; }; class FontRenderer { Loading