Remove use of SkFixed. Update code to use SkGlyph.fAdvance[XY] after https://codereview.chromium.org/1737693006.

(cherry picked from commit 6db72075318e030562a1b61e47f125e91c1fb945)

Change-Id: Ib8bdf9df3efab39c7e7681cee3075e223a948b2d
diff --git a/libs/hwui/font/CachedGlyphInfo.h b/libs/hwui/font/CachedGlyphInfo.h
index 0642d59..073d59b 100644
--- a/libs/hwui/font/CachedGlyphInfo.h
+++ b/libs/hwui/font/CachedGlyphInfo.h
@@ -17,8 +17,6 @@
 #ifndef ANDROID_HWUI_CACHED_GLYPH_INFO_H
 #define ANDROID_HWUI_CACHED_GLYPH_INFO_H
 
-#include <SkFixed.h>
-
 namespace android {
 namespace uirenderer {
 
@@ -41,14 +39,14 @@
     float mBitmapMaxV;
     // Minimize how much we call freetype
     uint32_t mGlyphIndex;
-    uint32_t mAdvanceX;
-    uint32_t mAdvanceY;
+    float mAdvanceX;
+    float mAdvanceY;
     // Values below contain a glyph's origin in the bitmap
     int32_t mBitmapLeft;
     int32_t mBitmapTop;
-    // Auto-kerning
-    SkFixed mLsbDelta;
-    SkFixed mRsbDelta;
+    // Auto-kerning; represents a 2.6 fixed-point value with range [-1, 1].
+    int8_t mLsbDelta;
+    int8_t mRsbDelta;
     CacheTexture* mCacheTexture;
 };
 
diff --git a/libs/hwui/font/Font.cpp b/libs/hwui/font/Font.cpp
index 8e04c87..9c812bc 100644
--- a/libs/hwui/font/Font.cpp
+++ b/libs/hwui/font/Font.cpp
@@ -304,7 +304,7 @@
     }
 
     int glyphsCount = 0;
-    SkFixed prevRsbDelta = 0;
+    int prevRsbDelta = 0;
 
     float penX = 0.0f;
 
@@ -332,14 +332,14 @@
         }
 
         CachedGlyphInfo* cachedGlyph = getCachedGlyph(paint, glyph);
-        penX += SkFixedToFloat(AUTO_KERN(prevRsbDelta, cachedGlyph->mLsbDelta));
+        penX += AUTO_KERN(prevRsbDelta, cachedGlyph->mLsbDelta);
         prevRsbDelta = cachedGlyph->mRsbDelta;
 
         if (cachedGlyph->mIsValid && cachedGlyph->mCacheTexture) {
             drawCachedGlyph(cachedGlyph, penX, hOffset, vOffset, measure, &position, &tangent);
         }
 
-        penX += SkFixedToFloat(cachedGlyph->mAdvanceX);
+        penX += cachedGlyph->mAdvanceX;
 
         glyphsCount++;
     }
diff --git a/libs/hwui/font/FontUtil.h b/libs/hwui/font/FontUtil.h
index aa77d98..07e8b34 100644
--- a/libs/hwui/font/FontUtil.h
+++ b/libs/hwui/font/FontUtil.h
@@ -44,6 +44,8 @@
 #define GET_METRICS(cache, glyph) cache->getGlyphIDMetrics(glyph)
 #define IS_END_OF_STRING(glyph) false
 
-#define AUTO_KERN(prev, next) (((next) - (prev) + 32) >> 6 << 16)
+// prev, next are assumed to be signed x.6 fixed-point numbers with range
+// [-1, 1]. Result is an integral float.
+#define AUTO_KERN(prev, next) static_cast<float>(((next) - (prev) + 32) >> 6)
 
 #endif // ANDROID_HWUI_FONT_UTIL_H