| OLD | NEW |
| 1 | 1 |
| 2 /* | 2 /* |
| 3 * Copyright 2011 Google Inc. | 3 * Copyright 2011 Google Inc. |
| 4 * | 4 * |
| 5 * Use of this source code is governed by a BSD-style license that can be | 5 * Use of this source code is governed by a BSD-style license that can be |
| 6 * found in the LICENSE file. | 6 * found in the LICENSE file. |
| 7 */ | 7 */ |
| 8 | 8 |
| 9 | 9 |
| 10 #ifndef SkPDFFont_DEFINED | 10 #ifndef SkPDFFont_DEFINED |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 | 92 |
| 93 /** Returns the font type represented in this font. For Type0 fonts, | 93 /** Returns the font type represented in this font. For Type0 fonts, |
| 94 * returns the type of the decendant font. | 94 * returns the type of the decendant font. |
| 95 */ | 95 */ |
| 96 virtual SkAdvancedTypefaceMetrics::FontType getType(); | 96 virtual SkAdvancedTypefaceMetrics::FontType getType(); |
| 97 | 97 |
| 98 /** Returns true if this font encoding supports glyph IDs above 255. | 98 /** Returns true if this font encoding supports glyph IDs above 255. |
| 99 */ | 99 */ |
| 100 virtual bool multiByteGlyphs() const = 0; | 100 virtual bool multiByteGlyphs() const = 0; |
| 101 | 101 |
| 102 /** Returns true if the machine readable licensing bits allow embedding. | |
| 103 */ | |
| 104 bool canEmbed() const; | |
| 105 | |
| 106 /** Returns true if the machine readable licensing bits allow subsetting. | |
| 107 */ | |
| 108 bool canSubset() const; | |
| 109 | |
| 110 /** Return true if this font has an encoding for the passed glyph id. | 102 /** Return true if this font has an encoding for the passed glyph id. |
| 111 */ | 103 */ |
| 112 bool hasGlyph(uint16_t glyphID); | 104 bool hasGlyph(uint16_t glyphID); |
| 113 | 105 |
| 114 /** Convert (in place) the input glyph IDs into the font encoding. If the | 106 /** Convert (in place) the input glyph IDs into the font encoding. If the |
| 115 * font has more glyphs than can be encoded (like a type 1 font with more | 107 * font has more glyphs than can be encoded (like a type 1 font with more |
| 116 * than 255 glyphs) this method only converts up to the first out of range | 108 * than 255 glyphs) this method only converts up to the first out of range |
| 117 * glyph ID. | 109 * glyph ID. |
| 118 * @param glyphIDs The input text as glyph IDs. | 110 * @param glyphIDs The input text as glyph IDs. |
| 119 * @param numGlyphs The number of input glyphs. | 111 * @param numGlyphs The number of input glyphs. |
| 120 * @return Returns the number of glyphs consumed. | 112 * @return Returns the number of glyphs consumed. |
| 121 */ | 113 */ |
| 122 size_t glyphsToPDFFontEncoding(uint16_t* glyphIDs, size_t numGlyphs); | 114 size_t glyphsToPDFFontEncoding(uint16_t* glyphIDs, size_t numGlyphs); |
| 123 | 115 |
| 124 /** Get the font resource for the passed typeface and glyphID. The | 116 /** Get the font resource for the passed typeface and glyphID. The |
| 125 * reference count of the object is incremented and it is the caller's | 117 * reference count of the object is incremented and it is the caller's |
| 126 * responsibility to unreference it when done. This is needed to | 118 * responsibility to unreference it when done. This is needed to |
| 127 * accommodate the weak reference pattern used when the returned object | 119 * accommodate the weak reference pattern used when the returned object |
| 128 * is new and has no other references. | 120 * is new and has no other references. |
| 129 * @param typeface The typeface to find. | 121 * @param typeface The typeface to find. |
| 130 * @param glyphID Specify which section of a large font is of interest. | 122 * @param glyphID Specify which section of a large font is of interest. |
| 131 */ | 123 */ |
| 132 static SkPDFFont* GetFontResource(SkTypeface* typeface, uint16_t glyphID); | 124 static SkPDFFont* GetFontResource(SkTypeface* typeface, |
| 125 uint16_t glyphID); |
| 133 | 126 |
| 134 /** Subset the font based on usage set. Returns a SkPDFFont instance with | 127 /** Subset the font based on usage set. Returns a SkPDFFont instance with |
| 135 * subset. | 128 * subset. |
| 136 * @param usage Glyph subset requested. | 129 * @param usage Glyph subset requested. |
| 137 * @return NULL if font does not support subsetting, a new instance | 130 * @return NULL if font does not support subsetting, a new instance |
| 138 * of SkPDFFont otherwise. | 131 * of SkPDFFont otherwise. |
| 139 */ | 132 */ |
| 140 virtual SkPDFFont* getFontSubset(const SkPDFGlyphSet* usage); | 133 virtual SkPDFFont* getFontSubset(const SkPDFGlyphSet* usage); |
| 141 | 134 |
| 142 protected: | 135 protected: |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 188 bool operator==(const FontRec& b) const; | 181 bool operator==(const FontRec& b) const; |
| 189 FontRec(SkPDFFont* font, uint32_t fontID, uint16_t fGlyphID); | 182 FontRec(SkPDFFont* font, uint32_t fontID, uint16_t fGlyphID); |
| 190 }; | 183 }; |
| 191 | 184 |
| 192 SkAutoTUnref<SkTypeface> fTypeface; | 185 SkAutoTUnref<SkTypeface> fTypeface; |
| 193 | 186 |
| 194 // The glyph IDs accessible with this font. For Type1 (non CID) fonts, | 187 // The glyph IDs accessible with this font. For Type1 (non CID) fonts, |
| 195 // this will be a subset if the font has more than 255 glyphs. | 188 // this will be a subset if the font has more than 255 glyphs. |
| 196 uint16_t fFirstGlyphID; | 189 uint16_t fFirstGlyphID; |
| 197 uint16_t fLastGlyphID; | 190 uint16_t fLastGlyphID; |
| 191 // The font info is only kept around after construction for large |
| 192 // Type1 (non CID) fonts that need multiple "fonts" to access all glyphs. |
| 198 SkAutoTUnref<SkAdvancedTypefaceMetrics> fFontInfo; | 193 SkAutoTUnref<SkAdvancedTypefaceMetrics> fFontInfo; |
| 199 SkTDArray<SkPDFObject*> fResources; | 194 SkTDArray<SkPDFObject*> fResources; |
| 200 SkAutoTUnref<SkPDFDict> fDescriptor; | 195 SkAutoTUnref<SkPDFDict> fDescriptor; |
| 201 | 196 |
| 202 SkAdvancedTypefaceMetrics::FontType fFontType; | 197 SkAdvancedTypefaceMetrics::FontType fFontType; |
| 203 | 198 |
| 204 // This should be made a hash table if performance is a problem. | 199 // This should be made a hash table if performance is a problem. |
| 205 static SkTDArray<FontRec>& CanonicalFonts(); | 200 static SkTDArray<FontRec>& CanonicalFonts(); |
| 206 static SkBaseMutex& CanonicalFontsMutex(); | 201 static SkBaseMutex& CanonicalFontsMutex(); |
| 207 typedef SkPDFDict INHERITED; | 202 typedef SkPDFDict INHERITED; |
| 208 }; | 203 }; |
| 209 | 204 |
| 210 #endif | 205 #endif |
| OLD | NEW |