summaryrefslogtreecommitdiffstats
path: root/libs/hwui
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2013-06-18 12:59:25 -0700
committerRomain Guy <romainguy@google.com>2013-06-18 13:02:03 -0700
commit2d5945e88731787babce1061f44cd54f02eeefc5 (patch)
treeea2e4a98ea66e2caa6b585306017e3ca30c7f032 /libs/hwui
parente93482f5eac3df581d57e64c2a771a96aa868585 (diff)
downloadframeworks_base-2d5945e88731787babce1061f44cd54f02eeefc5.zip
frameworks_base-2d5945e88731787babce1061f44cd54f02eeefc5.tar.gz
frameworks_base-2d5945e88731787babce1061f44cd54f02eeefc5.tar.bz2
Take hinting into account when caching fonts
Bug #9464403 Change-Id: I26a5f0c17eb27d096717b444d3e18ad1d2b5a43c
Diffstat (limited to 'libs/hwui')
-rw-r--r--libs/hwui/font/Font.cpp5
-rw-r--r--libs/hwui/font/Font.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp
index 011cfc1..18983d8 100644
--- a/libs/hwui/font/Font.cpp
+++ b/libs/hwui/font/Font.cpp
@@ -55,6 +55,7 @@ Font::FontDescription::FontDescription(const SkPaint* paint, const mat4& matrix)
mStyle = paint->getStyle();
mStrokeWidth = paint->getStrokeWidth();
mAntiAliasing = paint->isAntiAlias();
+ mHinting = paint->getHinting();
mLookupTransform.reset();
mLookupTransform[SkMatrix::kMScaleX] = roundf(fmaxf(1.0f, matrix[mat4::kScaleX]));
mLookupTransform[SkMatrix::kMScaleY] = roundf(fmaxf(1.0f, matrix[mat4::kScaleY]));
@@ -80,6 +81,7 @@ hash_t Font::FontDescription::hash() const {
hash = JenkinsHashMix(hash, android::hash_type(mStyle));
hash = JenkinsHashMix(hash, android::hash_type(mStrokeWidth));
hash = JenkinsHashMix(hash, int(mAntiAliasing));
+ hash = JenkinsHashMix(hash, android::hash_type(mHinting));
hash = JenkinsHashMix(hash, android::hash_type(mLookupTransform[SkMatrix::kMScaleX]));
hash = JenkinsHashMix(hash, android::hash_type(mLookupTransform[SkMatrix::kMScaleY]));
return JenkinsHashWhiten(hash);
@@ -111,6 +113,9 @@ int Font::FontDescription::compare(const Font::FontDescription& lhs,
deltaInt = int(lhs.mAntiAliasing) - int(rhs.mAntiAliasing);
if (deltaInt != 0) return deltaInt;
+ deltaInt = int(lhs.mHinting) - int(rhs.mHinting);
+ if (deltaInt != 0) return deltaInt;
+
if (lhs.mLookupTransform[SkMatrix::kMScaleX] <
rhs.mLookupTransform[SkMatrix::kMScaleX]) return -1;
if (lhs.mLookupTransform[SkMatrix::kMScaleX] >
diff --git a/libs/hwui/font/Font.h b/libs/hwui/font/Font.h
index 52cca1c..9e7ec2d 100644
--- a/libs/hwui/font/Font.h
+++ b/libs/hwui/font/Font.h
@@ -69,6 +69,7 @@ public:
uint8_t mStyle;
float mStrokeWidth;
bool mAntiAliasing;
+ uint8_t mHinting;
SkMatrix mLookupTransform;
SkMatrix mInverseLookupTransform;
};