Index: src/pdf/SkPDFFont.cpp |
diff --git a/src/pdf/SkPDFFont.cpp b/src/pdf/SkPDFFont.cpp |
index 769771ab236032e20cacbce780f2a842e0529a10..05dbdc7e55deabd8ba59c5b388018a1cf97355c2 100644 |
--- a/src/pdf/SkPDFFont.cpp |
+++ b/src/pdf/SkPDFFont.cpp |
@@ -498,7 +498,7 @@ bool SkPDFFont::hasGlyph(uint16_t id) { |
return (id >= fFirstGlyphID && id <= fLastGlyphID) || id == 0; |
} |
-int SkPDFFont::glyphsToPDFFontEncoding(uint16_t* glyphIDs, int numGlyphs) { |
+int SkPDFFont::glyphsToPDFFontEncoding(SkGlyphID* glyphIDs, int numGlyphs) const { |
// A font with multibyte glyphs will support all glyph IDs in a single font. |
if (this->multiByteGlyphs()) { |
return numGlyphs; |
@@ -517,6 +517,20 @@ int SkPDFFont::glyphsToPDFFontEncoding(uint16_t* glyphIDs, int numGlyphs) { |
return numGlyphs; |
} |
+int SkPDFFont::glyphsToPDFFontEncodingCount(const SkGlyphID* glyphIDs, |
+ int numGlyphs) const { |
+ if (this->multiByteGlyphs()) { // A font with multibyte glyphs will |
+ return numGlyphs; // support all glyph IDs in a single font. |
+ } |
+ for (int i = 0; i < numGlyphs; i++) { |
+ if (glyphIDs[i] != 0 && |
+ (glyphIDs[i] < fFirstGlyphID || glyphIDs[i] > fLastGlyphID)) { |
+ return i; |
+ } |
+ } |
+ return numGlyphs; |
+} |
+ |
// static |
SkPDFFont* SkPDFFont::GetFontResource(SkPDFCanon* canon, |
SkTypeface* typeface, |