diff options
author | Romain Guy <romainguy@google.com> | 2012-05-14 14:00:27 -0700 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2012-05-14 14:06:02 -0700 |
commit | ae91c4cbc79ea910753be65e2f1d7899abcb4da2 (patch) | |
tree | 9391544d7731f84a661da570357be4f6c99cbf8d /libs/hwui/FontRenderer.h | |
parent | 2411c3361eb2c15b09a8bfadf5c7c4a3de092ea0 (diff) | |
download | frameworks_base-ae91c4cbc79ea910753be65e2f1d7899abcb4da2.zip frameworks_base-ae91c4cbc79ea910753be65e2f1d7899abcb4da2.tar.gz frameworks_base-ae91c4cbc79ea910753be65e2f1d7899abcb4da2.tar.bz2 |
Properly pre-cache latin glyphs
Bug #6408362
Change-Id: Ie11644c5a9e2d87d3b851b7e619e5f04b60a7e02
Diffstat (limited to 'libs/hwui/FontRenderer.h')
-rw-r--r-- | libs/hwui/FontRenderer.h | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/hwui/FontRenderer.h b/libs/hwui/FontRenderer.h index 4fc5862..b5aa26b 100644 --- a/libs/hwui/FontRenderer.h +++ b/libs/hwui/FontRenderer.h @@ -41,11 +41,13 @@ namespace uirenderer { #if RENDER_TEXT_AS_GLYPHS typedef uint16_t glyph_t; + #define TO_GLYPH(g) g #define GET_METRICS(paint, glyph) paint->getGlyphMetrics(glyph) #define GET_GLYPH(text) nextGlyph((const uint16_t**) &text) #define IS_END_OF_STRING(glyph) false #else typedef SkUnichar glyph_t; + #define TO_GLYPH(g) ((SkUnichar) g) #define GET_METRICS(paint, glyph) paint->getUnicharMetrics(glyph) #define GET_GLYPH(text) SkUTF16_NextUnichar((const uint16_t**) &text) #define IS_END_OF_STRING(glyph) glyph < 0 @@ -98,7 +100,7 @@ public: uint32_t mCurrentRow; uint32_t mCurrentCol; bool mDirty; - CacheTexture *mCacheTexture; + CacheTexture* mCacheTexture; }; struct CachedGlyphInfo { @@ -236,8 +238,6 @@ public: FontRenderer(); ~FontRenderer(); - void init(); - void deinit(); void flushLargeCaches(); void setGammaTable(const uint8_t* gammaTable) { @@ -278,6 +278,7 @@ public: GLuint getTexture(bool linearFiltering = false) { checkInit(); + if (linearFiltering != mCurrentCacheTexture->mLinearFiltering) { mCurrentCacheTexture->mLinearFiltering = linearFiltering; mLinearFiltering = linearFiltering; @@ -287,6 +288,7 @@ public: glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, filtering); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, filtering); } + return mCurrentCacheTexture->mTextureId; } @@ -326,7 +328,6 @@ protected: void initRender(const Rect* clip, Rect* bounds); void finishRender(); - String16 mLatinPrecache; void precacheLatin(SkPaint* paint); void issueDrawCommand(); |