Index: src/ports/SkFontMgr_fontconfig.cpp |
diff --git a/src/ports/SkFontMgr_fontconfig.cpp b/src/ports/SkFontMgr_fontconfig.cpp |
index 485e0fc6cc235846f581786f4c8d00c49c192ce3..31aa29b759075446ad955eb19310b42150b32634 100644 |
--- a/src/ports/SkFontMgr_fontconfig.cpp |
+++ b/src/ports/SkFontMgr_fontconfig.cpp |
@@ -387,7 +387,6 @@ public: |
} |
void onGetFontDescriptor(SkFontDescriptor* desc, bool* serialize) const override { |
- desc->setFontIndex(fIndex); |
*serialize = true; |
} |
@@ -396,6 +395,11 @@ public: |
return fStream->duplicate(); |
} |
+ SkFontData* onCreateFontData() const override { |
+ SkFixed axis[1] = { SK_Fixed1 }; |
+ return new SkFontData(fStream->duplicate(), fIndex, 1, axis); |
+ }; |
+ |
private: |
SkAutoTDelete<SkStreamAsset> fStream; |
int fIndex; |
@@ -420,7 +424,6 @@ public: |
desc->setFamilyName(get_string(fPattern, FC_FAMILY)); |
desc->setFullName(get_string(fPattern, FC_FULLNAME)); |
desc->setPostscriptName(get_string(fPattern, FC_POSTSCRIPT_NAME)); |
- desc->setFontIndex(get_int(fPattern, FC_INDEX, 0)); |
*serialize = false; |
} |
@@ -430,6 +433,13 @@ public: |
return SkStream::NewFromFile(get_string(fPattern, FC_FILE)); |
} |
+ SkFontData* onCreateFontData() const override { |
+ SkFixed axis[1] = { SK_Fixed1 }; |
+ return new SkFontData(SkStream::NewFromFile(get_string(fPattern, FC_FILE)), |
+ get_int(fPattern, FC_INDEX, 0), |
+ 1, axis); |
+ }; |
+ |
virtual ~SkTypeface_fontconfig() { |
// Hold the lock while unrefing the pattern. |
FCLocker lock; |
@@ -817,7 +827,7 @@ protected: |
SkFontStyle style; |
bool isFixedWidth = false; |
- if (!fScanner.scanFont(stream, ttcIndex, NULL, &style, &isFixedWidth)) { |
+ if (!fScanner.scanFont(stream, ttcIndex, NULL, 0, NULL, &style, &isFixedWidth, NULL)) { |
return NULL; |
} |