diff options
author | Romain Guy <romainguy@google.com> | 2013-02-05 14:38:40 -0800 |
---|---|---|
committer | Romain Guy <romainguy@google.com> | 2013-02-05 14:44:43 -0800 |
commit | b969a0de65730b071d846f8302e751e2637e6dbe (patch) | |
tree | d49fd8cc93d96c54e991359e375c093882734909 /libs/hwui/font/Font.cpp | |
parent | 15a4620b18412d81c1f9102cfc85777dece41a8b (diff) | |
download | frameworks_base-b969a0de65730b071d846f8302e751e2637e6dbe.zip frameworks_base-b969a0de65730b071d846f8302e751e2637e6dbe.tar.gz frameworks_base-b969a0de65730b071d846f8302e751e2637e6dbe.tar.bz2 |
Add support for non-antialiased text
Change-Id: I17c073955ab94abc9b409e5fcfbc675faa07c5ba
Diffstat (limited to 'libs/hwui/font/Font.cpp')
-rw-r--r-- | libs/hwui/font/Font.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp index 34afe97..128e8b8 100644 --- a/libs/hwui/font/Font.cpp +++ b/libs/hwui/font/Font.cpp @@ -50,6 +50,7 @@ Font::FontDescription::FontDescription(const SkPaint* paint, const mat4& matrix) mScaleX = paint->getTextScaleX(); mStyle = paint->getStyle(); mStrokeWidth = paint->getStrokeWidth(); + mAntiAliasing = paint->isAntiAlias(); } Font::~Font() { @@ -68,6 +69,7 @@ hash_t Font::FontDescription::hash() const { hash = JenkinsHashMix(hash, android::hash_type(mScaleX)); hash = JenkinsHashMix(hash, android::hash_type(mStyle)); hash = JenkinsHashMix(hash, android::hash_type(mStrokeWidth)); + hash = JenkinsHashMix(hash, int(mAntiAliasing)); return JenkinsHashWhiten(hash); } @@ -94,6 +96,9 @@ int Font::FontDescription::compare(const Font::FontDescription& lhs, if (lhs.mStrokeWidth < rhs.mStrokeWidth) return -1; if (lhs.mStrokeWidth > rhs.mStrokeWidth) return +1; + deltaInt = int(lhs.mAntiAliasing) - int(rhs.mAntiAliasing); + if (deltaInt != 0) return deltaInt; + return 0; } @@ -384,7 +389,9 @@ void Font::updateGlyphCache(SkPaint* paint, const SkGlyph& skiaGlyph, CachedGlyp uint32_t startY = 0; // Get the bitmap for the glyph - paint->findImage(skiaGlyph, NULL); + if (!skiaGlyph.fImage) { + paint->findImage(skiaGlyph, NULL); + } mState->cacheBitmap(skiaGlyph, glyph, &startX, &startY, precaching); if (!glyph->mIsValid) { |