summaryrefslogtreecommitdiffstats
path: root/libs/hwui/font/Font.cpp
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2013-02-05 14:38:40 -0800
committerRomain Guy <romainguy@google.com>2013-02-05 14:44:43 -0800
commitb969a0de65730b071d846f8302e751e2637e6dbe (patch)
treed49fd8cc93d96c54e991359e375c093882734909 /libs/hwui/font/Font.cpp
parent15a4620b18412d81c1f9102cfc85777dece41a8b (diff)
downloadframeworks_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.cpp9
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) {