Home | History | Annotate | Download | only in api
      1 SkFont Reference
      2 ===
      3 
      4 
      5 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
      6 class <a href='SkFont_Reference#SkFont'>SkFont</a> {
      7     // <i><a href='SkFont_Reference#SkFont'>SkFont</a> interface</i>
      8 };
      9 </pre>
     10 
     11 <a name='Advance'></a>
     12 
     13 <a name='Engine'></a>
     14 
     15 <a name='Size'></a>
     16 
     17 <a href='#Font_Size'>Font_Size</a> adjusts the overall <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>.
     18 <a href='#Font_Size'>Font_Size</a> can be set to any positive value or zero.
     19 <a href='#Font_Size'>Font_Size</a> defaults to 12.
     20 <a href='#Font_Size'>Font_Size</a>
     21 
     22 <a name='Scale_X'></a>
     23 
     24 <a href='#Font_Scale_X'>Font_Scale_X</a> adjusts the <a href='undocumented#Text'>text</a> horizontal scale.
     25 <a href='undocumented#Text'>Text</a> scaling approximates condensed and expanded type faces when the actual face
     26 is not available.
     27 <a href='#Font_Scale_X'>Font_Scale_X</a> can be set to any value.
     28 <a href='#Font_Scale_X'>Font_Scale_X</a> defaults to 1.
     29 
     30 <a name='Skew_X'></a>
     31 
     32 <a href='#Font_Skew_X'>Font_Skew_X</a> adjusts the <a href='undocumented#Text'>text</a> horizontal slant.
     33 <a href='undocumented#Text'>Text</a> skewing approximates italic and oblique type faces when the actual face
     34 is not available.
     35 <a href='#Font_Skew_X'>Font_Skew_X</a> can be set to any value.
     36 <a href='#Font_Skew_X'>Font_Skew_X</a> defaults to 0.
     37 
     38 <a name='Embolden'></a>
     39 
     40 <a href='#Font_Embolden'>Font_Embolden</a> approximates the bold <a href='SkFont_Reference#Font'>font</a> style accompanying a normal <a href='SkFont_Reference#Font'>font</a> when a bold <a href='SkFont_Reference#Font'>font</a> face
     41 is not available. Skia does not provide <a href='SkFont_Reference#Font'>font</a> substitution; it is up to the client to find the
     42 bold <a href='SkFont_Reference#Font'>font</a> face using the platform <a href='#Font_Manager'>Font_Manager</a>.
     43 
     44 Use <a href='#Font_Skew_X'>Font_Skew_X</a> to approximate an italic <a href='SkFont_Reference#Font'>font</a> style when the italic <a href='SkFont_Reference#Font'>font</a> face
     45 is not available.
     46 
     47 A FreeType based port may define SK_USE_FREETYPE_EMBOLDEN at compile time to direct
     48 the  <a href='SkFont_Reference#Font_Engine'>font engine</a> to create the bold <a href='undocumented#Glyph'>Glyphs</a>. Otherwise, the extra bold is computed
     49 by increasing the stroke width and setting the <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_Style'>Style</a> to
     50 <a href='SkPaint_Reference#SkPaint'>SkPaint</a>::<a href='#SkPaint_kStrokeAndFill_Style'>kStrokeAndFill_Style</a> as needed.
     51 
     52 <a href='#Font_Embolden'>Font_Embolden</a> is disabled by default.
     53 
     54 <a name='Hinting_Spacing'></a>
     55 
     56 If Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, <a href='#Font_Hinting_Spacing'>Hinting_Spacing</a> adjusts the character
     57 spacing by the difference of the hinted and unhinted <a href='#Left_Side_Bearing'>Left_Side_Bearing</a> and
     58 <a href='#Right_Side_Bearing'>Right_Side_Bearing</a>. <a href='#Font_Hinting_Spacing'>Hinting_Spacing</a> only applies to platforms that use
     59 FreeType as their <a href='#Font_Engine'>Font_Engine</a>.
     60 
     61 <a href='#Font_Hinting_Spacing'>Hinting_Spacing</a> is not related to <a href='undocumented#Text'>text</a> kerning, where the space between
     62 a specific pair of characters is adjusted using <a href='undocumented#Data'>data</a> in the <a href='SkFont_Reference#Font'>font</a> kerning tables.
     63 
     64 <a name='Linear'></a>
     65 
     66 <a href='#Font_Linear'>Font_Linear</a> selects whether <a href='undocumented#Text'>text</a> is rendered as a <a href='undocumented#Glyph'>Glyph</a> or as a <a href='SkPath_Reference#Path'>Path</a>.
     67 If <a href='#Font_Linear'>Font_Linear</a> is set, it has the same effect as setting Hinting to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>.
     68 If <a href='#Font_Linear'>Font_Linear</a> is clear, it is the same as setting Hinting to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>.
     69 
     70 <a name='Subpixel'></a>
     71 
     72 <a href='#Font_Subpixel'>Font_Subpixel</a> uses the <a href='undocumented#Pixel'>pixel</a> transparency to represent a fractional offset.
     73 As the opaqueness of the <a href='SkColor_Reference#Color'>color</a> increases, the edge of the <a href='undocumented#Glyph'>glyph</a> appears to move
     74 towards the outside of the <a href='undocumented#Pixel'>pixel</a>.
     75 
     76 <a name='Anti_Alias'></a>
     77 
     78 When set, <a href='#Paint_Anti_Alias'>Anti_Alias</a> positions <a href='undocumented#Glyph'>glyphs</a> within a <a href='undocumented#Pixel'>pixel</a>, using <a href='SkColor_Reference#Alpha'>alpha</a> and
     79 possibly RGB striping. It can take advantage of the organization of RGB stripes
     80 that create a <a href='SkColor_Reference#Color'>color</a>, and relies on the small <a href='undocumented#Size'>size</a> of the stripe and visual perception
     81 to make the <a href='SkColor_Reference#Color'>color</a> fringing imperceptible.
     82 
     83 <a href='#Paint_Anti_Alias'>Anti_Alias</a> can be enabled on devices that orient stripes horizontally
     84 or vertically, and that order the <a href='SkColor_Reference#Color'>color</a> components as RGB or BGR. Internally, the
     85 <a href='undocumented#Glyph'>glyph</a> cache may store multiple copies of the same <a href='undocumented#Glyph'>glyph</a> with different <a href='SkFont_Reference#Subpixel'>sub-pixel</a>
     86 positions, requiring more memory.
     87 
     88 <a name='Force_Hinting'></a>
     89 
     90 If Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a> or <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>, <a href='#Font_Force_Hinting'>Force_Hinting</a>
     91 instructs the <a href='#Font_Manager'>Font_Manager</a> to always hint <a href='undocumented#Glyph'>Glyphs</a>.
     92 <a href='#Font_Force_Hinting'>Force_Hinting</a> has no effect if Hinting is set to <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a> or
     93 <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>.
     94 
     95 <a href='#Font_Force_Hinting'>Force_Hinting</a> only affects platforms that use FreeType as the <a href='#Font_Manager'>Font_Manager</a>.
     96 
     97 <a name='Embedded_Bitmaps'></a>
     98 
     99 <a href='#Font_Embedded_Bitmaps'>Embedded_Bitmaps</a> allows selecting custom sized <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>Glyphs</a>.
    100 <a href='#Font_Embedded_Bitmaps'>Embedded_Bitmaps</a> when set chooses an embedded <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> over an outline contained
    101 in a <a href='SkFont_Reference#Font'>font</a> if the platform supports this option.
    102 
    103 FreeType selects the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> if available when <a href='#Font_Embedded_Bitmaps'>Embedded_Bitmaps</a> is set, and selects
    104 the outline <a href='undocumented#Glyph'>glyph</a> if <a href='#Font_Embedded_Bitmaps'>Embedded_Bitmaps</a> is clear.
    105 Windows may select the <a href='SkBitmap_Reference#Bitmap'>bitmap</a> <a href='undocumented#Glyph'>glyph</a> but is not required to do so.
    106 <a href='#OS_X'>OS_X</a> and iOS do not support this option.
    107 
    108 <a name='SkFont'></a>
    109 
    110 ---
    111 
    112 <a href='SkFont_Reference#SkFont'>SkFont</a> controls options applied when drawing and measuring <a href='undocumented#Text'>text</a>.
    113 
    114 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
    115 class <a href='SkFont_Reference#SkFont'>SkFont</a> {
    116 
    117     enum class <a href='#SkFont_Edging'>Edging</a> {
    118         kAlias,
    119         kAntiAlias,
    120         kSubpixelAntiAlias,
    121     };
    122 
    123     <a href='#SkFont_empty_constructor'>SkFont()</a>;
    124     <a href='#SkFont_SkTypeface_SkScalar'>SkFont</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>);
    125     <a href='#SkFont_SkTypeface_SkScalar_SkScalar_SkScalar'>SkFont</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX);
    126     bool <a href='#SkFont_equal1_operator'>operator==</a>(const <a href='SkFont_Reference#SkFont'>SkFont</a>& <a href='SkFont_Reference#Font'>font</a>) const;
    127     bool <a href='#SkFont_isForceAutoHinting'>isForceAutoHinting</a>() const;
    128     bool <a href='#SkFont_isEmbeddedBitmaps'>isEmbeddedBitmaps</a>() const;
    129     bool <a href='#SkFont_isSubpixel'>isSubpixel</a>() const;
    130     bool <a href='#SkFont_isLinearMetrics'>isLinearMetrics</a>() const;
    131     bool <a href='#SkFont_isEmbolden'>isEmbolden</a>() const;
    132     void <a href='#SkFont_setForceAutoHinting'>setForceAutoHinting</a>(bool forceAutoHinting);
    133     void <a href='#SkFont_setEmbeddedBitmaps'>setEmbeddedBitmaps</a>(bool embeddedBitmaps);
    134     void <a href='#SkFont_setSubpixel'>setSubpixel</a>(bool subpixel);
    135     void <a href='#SkFont_setLinearMetrics'>setLinearMetrics</a>(bool linearMetrics);
    136     void <a href='#SkFont_setEmbolden'>setEmbolden</a>(bool embolden);
    137     <a href='#SkFont_Edging'>Edging</a> <a href='#SkFont_getEdging'>getEdging</a>() const;
    138     void <a href='#SkFont_setEdging'>setEdging</a>(<a href='#SkFont_Edging'>Edging</a> edging);
    139     void <a href='#SkFont_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> hintingLevel);
    140     <a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='#SkFont_getHinting'>getHinting</a>() const;
    141     <a href='SkFont_Reference#SkFont'>SkFont</a> <a href='#SkFont_makeWithSize'>makeWithSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>) const;
    142     <a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkFont_getTypeface'>getTypeface</a>() const;
    143     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getSize'>getSize</a>() const;
    144     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getScaleX'>getScaleX</a>() const;
    145     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getSkewX'>getSkewX</a>() const;
    146     <a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> <a href='#SkFont_refTypeface'>refTypeface</a>() const;
    147     void <a href='#SkFont_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a><<a href='undocumented#SkTypeface'>SkTypeface</a>> tf);
    148     void <a href='#SkFont_setSize'>setSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize);
    149     void <a href='#SkFont_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX);
    150     void <a href='#SkFont_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX);
    151     int <a href='#SkFont_textToGlyphs'>textToGlyphs</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding,
    152                      <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[], int maxGlyphCount) const;
    153     uint16_t <a href='#SkFont_unicharToGlyph'>unicharToGlyph</a>(<a href='undocumented#SkUnichar'>SkUnichar</a> uni) const;
    154     int <a href='#SkFont_countText'>countText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding) const;
    155     bool <a href='#SkFont_containsText'>containsText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding) const;
    156     size_t <a href='#SkFont_breakText'>breakText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding, <a href='undocumented#SkScalar'>SkScalar</a> maxWidth,
    157                      <a href='undocumented#SkScalar'>SkScalar</a>* measuredWidth = nullptr) const;
    158     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding,
    159                          <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr) const;
    160     bool <a href='#SkFont_getPath'>getPath</a>(uint16_t glyphID, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>) const;
    161     void <a href='#SkFont_getPaths'>getPaths</a>(const uint16_t glyphIDs[], int count,
    162                   void (*glyphPathProc)(const <a href='SkPath_Reference#SkPath'>SkPath</a>* pathOrNull, const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& mx, void* ctx),
    163                   void* ctx) const;
    164     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getMetrics'>getMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* metrics) const;
    165     <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getSpacing'>getSpacing</a>() const;
    166 };
    167 
    168 </pre>
    169 
    170 <a name='SkFont_Edging'></a>
    171 
    172 ---
    173 
    174 <pre style="padding: 1em 1em 1em 1em;width: 62.5em; background-color: #f0f0f0">
    175     enum class <a href='#SkFont_Edging'>Edging</a> {
    176         <a href='#SkFont_Edging_kAlias'>kAlias</a>,
    177         <a href='#SkFont_Edging_kAntiAlias'>kAntiAlias</a>,
    178         <a href='#SkFont_Edging_kSubpixelAntiAlias'>kSubpixelAntiAlias</a>,
    179     };
    180 
    181 </pre>
    182 
    183 Whether edge pixels draw opaque or with partial transparency.
    184 
    185 ### Constants
    186 
    187 <table style='border-collapse: collapse; width: 62.5em'>
    188   <tr><th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Const</th>
    189 <th style='text-align: center; border: 2px solid #dddddd; padding: 8px; '>Value</th>
    190 <th style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>Description</th></tr>
    191   <tr style='background-color: #f0f0f0; '>
    192     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkFont_Edging_kAlias'><code>SkFont::Edging::kAlias</code></a></td>
    193     <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '></td>
    194     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
    195 no transparent pixels on glyph edges</td>
    196   </tr>
    197   <tr>
    198     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkFont_Edging_kAntiAlias'><code>SkFont::Edging::kAntiAlias</code></a></td>
    199     <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '></td>
    200     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
    201 may have transparent pixels on glyph edges</td>
    202   </tr>
    203   <tr style='background-color: #f0f0f0; '>
    204     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '><a name='SkFont_Edging_kSubpixelAntiAlias'><code>SkFont::Edging::kSubpixelAntiAlias</code></a></td>
    205     <td style='text-align: center; border: 2px solid #dddddd; padding: 8px; '></td>
    206     <td style='text-align: left; border: 2px solid #dddddd; padding: 8px; '>
    207 glyph positioned in pixel using transparency</td>
    208   </tr>
    209 </table>
    210 
    211 ### Example
    212 
    213 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    214 
    215 ### See Also
    216 
    217 incomplete
    218 
    219 <a name='SkFont_empty_constructor'></a>
    220 
    221 ---
    222 
    223 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    224 <a href='#SkFont_empty_constructor'>SkFont()</a>
    225 </pre>
    226 
    227 Constructs <a href='SkFont_Reference#SkFont'>SkFont</a> with default values.
    228 
    229 ### Return Value
    230 
    231 default initialized <a href='SkFont_Reference#SkFont'>SkFont</a>
    232 
    233 ### Example
    234 
    235 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    236 
    237 ### See Also
    238 
    239 incomplete
    240 
    241 <a name='SkFont_SkTypeface_SkScalar'></a>
    242 
    243 ---
    244 
    245 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    246 <a href='SkFont_Reference#SkFont'>SkFont</a>(<a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>)
    247 </pre>
    248 
    249 Constructs <a href='SkFont_Reference#SkFont'>SkFont</a> with default values with <a href='undocumented#SkTypeface'>SkTypeface</a> and <a href='#SkFont_SkTypeface_SkScalar_size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>.
    250 
    251 ### Parameters
    252 
    253 <table>  <tr>    <td><a name='SkFont_SkTypeface_SkScalar_typeface'><code><strong>typeface</strong></code></a></td>
    254     <td><a href='SkFont_Reference#Font'>font</a> and style used to draw and measure <a href='undocumented#Text'>text</a></td>
    255   </tr>
    256   <tr>    <td><a name='SkFont_SkTypeface_SkScalar_size'><code><strong>size</strong></code></a></td>
    257     <td>typographic height of <a href='undocumented#Text'>text</a></td>
    258   </tr>
    259 </table>
    260 
    261 ### Return Value
    262 
    263 initialized <a href='SkFont_Reference#SkFont'>SkFont</a>
    264 
    265 ### Example
    266 
    267 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    268 
    269 ### See Also
    270 
    271 incomplete
    272 
    273 <a name='SkFont_SkTypeface_SkScalar_SkScalar_SkScalar'></a>
    274 
    275 ---
    276 
    277 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    278 <a href='SkFont_Reference#SkFont'>SkFont</a>(<a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; <a href='undocumented#Typeface'>typeface</a>, <a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>, <a href='undocumented#SkScalar'>SkScalar</a> scaleX, <a href='undocumented#SkScalar'>SkScalar</a> skewX)
    279 </pre>
    280 
    281 Constructs <a href='SkFont_Reference#SkFont'>SkFont</a> with default values with <a href='undocumented#SkTypeface'>SkTypeface</a> and <a href='#SkFont_SkTypeface_SkScalar_SkScalar_SkScalar_size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>,
    282 horizontal scale, and horizontal skew. Horizontal scale emulates condensed
    283 and expanded fonts. Horizontal skew emulates oblique fonts.
    284 
    285 ### Parameters
    286 
    287 <table>  <tr>    <td><a name='SkFont_SkTypeface_SkScalar_SkScalar_SkScalar_typeface'><code><strong>typeface</strong></code></a></td>
    288     <td><a href='SkFont_Reference#Font'>font</a> and style used to draw and measure <a href='undocumented#Text'>text</a></td>
    289   </tr>
    290   <tr>    <td><a name='SkFont_SkTypeface_SkScalar_SkScalar_SkScalar_size'><code><strong>size</strong></code></a></td>
    291     <td>typographic height of <a href='undocumented#Text'>text</a></td>
    292   </tr>
    293   <tr>    <td><a name='SkFont_SkTypeface_SkScalar_SkScalar_SkScalar_scaleX'><code><strong>scaleX</strong></code></a></td>
    294     <td><a href='undocumented#Text'>text</a> horizontal scale</td>
    295   </tr>
    296   <tr>    <td><a name='SkFont_SkTypeface_SkScalar_SkScalar_SkScalar_skewX'><code><strong>skewX</strong></code></a></td>
    297     <td>additional shear on x-axis relative to y-axis</td>
    298   </tr>
    299 </table>
    300 
    301 ### Return Value
    302 
    303 initialized <a href='SkFont_Reference#SkFont'>SkFont</a>
    304 
    305 ### Example
    306 
    307 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    308 
    309 ### See Also
    310 
    311 incomplete
    312 
    313 <a name='SkFont_equal1_operator'></a>
    314 
    315 ---
    316 
    317 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    318 bool operator==(const <a href='SkFont_Reference#SkFont'>SkFont</a>& <a href='SkFont_Reference#Font'>font</a>)const
    319 </pre>
    320 
    321 Compares <a href='SkFont_Reference#SkFont'>SkFont</a> and <a href='#SkFont_equal1_operator_font'>font</a>, and returns true if they are equivalent.
    322 May return false if <a href='undocumented#SkTypeface'>SkTypeface</a> has identical contents but different pointers.
    323 
    324 ### Parameters
    325 
    326 <table>  <tr>    <td><a name='SkFont_equal1_operator_font'><code><strong>font</strong></code></a></td>
    327     <td><a href='#SkFont_equal1_operator_font'>font</a> to compare</td>
    328   </tr>
    329 </table>
    330 
    331 ### Return Value
    332 
    333 true if <a href='SkFont_Reference#SkFont'>SkFont</a> pair are equivalent
    334 
    335 ### Example
    336 
    337 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    338 
    339 ### See Also
    340 
    341 incomplete
    342 
    343 <a name='SkFont_isForceAutoHinting'></a>
    344 
    345 ---
    346 
    347 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    348 bool <a href='#SkFont_isForceAutoHinting'>isForceAutoHinting</a>()const
    349 </pre>
    350 
    351 If true, instructs the <a href='SkFont_Reference#Font'>font</a> manager to always hint <a href='undocumented#Glyph'>glyphs</a>.
    352 Returned value is only meaningful if platform uses FreeType as the <a href='SkFont_Reference#Font'>font</a> manager.
    353 
    354 ### Return Value
    355 
    356 true if all <a href='undocumented#Glyph'>glyphs</a> are hinted
    357 
    358 ### Example
    359 
    360 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    361 
    362 ### See Also
    363 
    364 incomplete
    365 
    366 <a name='SkFont_isEmbeddedBitmaps'></a>
    367 
    368 ---
    369 
    370 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    371 bool <a href='#SkFont_isEmbeddedBitmaps'>isEmbeddedBitmaps</a>()const
    372 </pre>
    373 
    374 Returns true if <a href='SkFont_Reference#Font'>font</a> engine may return <a href='undocumented#Glyph'>glyphs</a> from <a href='SkFont_Reference#Font'>font</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> instead of from outlines.
    375 
    376 ### Return Value
    377 
    378 true if <a href='undocumented#Glyph'>glyphs</a> may be <a href='SkFont_Reference#Font'>font</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a>
    379 
    380 ### Example
    381 
    382 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    383 
    384 ### See Also
    385 
    386 incomplete
    387 
    388 <a name='SkFont_isSubpixel'></a>
    389 
    390 ---
    391 
    392 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    393 bool <a href='#SkFont_isSubpixel'>isSubpixel</a>()const
    394 </pre>
    395 
    396 Returns true if <a href='undocumented#Glyph'>glyphs</a> at different <a href='SkFont_Reference#Subpixel'>sub-pixel</a> positions may differ on <a href='undocumented#Pixel'>pixel</a> edge coverage.
    397 
    398 ### Return Value
    399 
    400 true if <a href='undocumented#Glyph'>glyph</a> positioned in <a href='undocumented#Pixel'>pixel</a> using transparency
    401 
    402 ### Example
    403 
    404 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    405 
    406 ### See Also
    407 
    408 incomplete
    409 
    410 <a name='SkFont_isLinearMetrics'></a>
    411 
    412 ---
    413 
    414 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    415 bool <a href='#SkFont_isLinearMetrics'>isLinearMetrics</a>()const
    416 </pre>
    417 
    418 Returns true if <a href='undocumented#Text'>text</a> is converted to <a href='SkPath_Reference#SkPath'>SkPath</a> before drawing and measuring.
    419 
    420 ### Return Value
    421 
    422 true <a href='undocumented#Glyph'>glyph</a> hints are never applied
    423 
    424 ### Example
    425 
    426 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    427 
    428 ### See Also
    429 
    430 incomplete
    431 
    432 <a name='SkFont_isEmbolden'></a>
    433 
    434 ---
    435 
    436 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    437 bool <a href='#SkFont_isEmbolden'>isEmbolden</a>()const
    438 </pre>
    439 
    440 Returns true if bold is approximated by increasing the stroke width when creating <a href='undocumented#Glyph'>glyph</a>
    441 <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> from outlines.
    442 
    443 ### Return Value
    444 
    445 bold is approximated through stroke width
    446 
    447 ### Example
    448 
    449 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    450 
    451 ### See Also
    452 
    453 incomplete
    454 
    455 <a name='SkFont_setForceAutoHinting'></a>
    456 
    457 ---
    458 
    459 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    460 void <a href='#SkFont_setForceAutoHinting'>setForceAutoHinting</a>(bool forceAutoHinting)
    461 </pre>
    462 
    463 Sets whether to always hint <a href='undocumented#Glyph'>glyphs</a>.
    464 If <a href='#SkFont_setForceAutoHinting_forceAutoHinting'>forceAutoHinting</a> is set, instructs the  <a href='undocumented#Font_Manager'>font manager</a> to always hint <a href='undocumented#Glyph'>glyphs</a>.
    465 
    466 Only affects platforms that use FreeType as the  <a href='undocumented#Font_Manager'>font manager</a>.
    467 
    468 ### Parameters
    469 
    470 <table>  <tr>    <td><a name='SkFont_setForceAutoHinting_forceAutoHinting'><code><strong>forceAutoHinting</strong></code></a></td>
    471     <td>setting to always hint <a href='undocumented#Glyph'>glyphs</a></td>
    472   </tr>
    473 </table>
    474 
    475 ### Example
    476 
    477 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    478 
    479 ### See Also
    480 
    481 incomplete
    482 
    483 <a name='SkFont_setEmbeddedBitmaps'></a>
    484 
    485 ---
    486 
    487 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    488 void <a href='#SkFont_setEmbeddedBitmaps'>setEmbeddedBitmaps</a>(bool embeddedBitmaps)
    489 </pre>
    490 
    491 Requests, but does not require, to use <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> in fonts instead of outlines.
    492 
    493 ### Parameters
    494 
    495 <table>  <tr>    <td><a name='SkFont_setEmbeddedBitmaps_embeddedBitmaps'><code><strong>embeddedBitmaps</strong></code></a></td>
    496     <td>setting to use <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> in fonts</td>
    497   </tr>
    498 </table>
    499 
    500 ### Example
    501 
    502 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    503 
    504 ### See Also
    505 
    506 incomplete
    507 
    508 <a name='SkFont_setSubpixel'></a>
    509 
    510 ---
    511 
    512 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    513 void <a href='#SkFont_setSubpixel'>setSubpixel</a>(bool subpixel)
    514 </pre>
    515 
    516 Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> respect <a href='SkFont_Reference#Subpixel'>sub-pixel</a> positioning.
    517 
    518 ### Parameters
    519 
    520 <table>  <tr>    <td><a name='SkFont_setSubpixel_subpixel'><code><strong>subpixel</strong></code></a></td>
    521     <td>setting for <a href='SkFont_Reference#Subpixel'>sub-pixel</a> positioning</td>
    522   </tr>
    523 </table>
    524 
    525 ### Example
    526 
    527 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    528 
    529 ### See Also
    530 
    531 incomplete
    532 
    533 <a name='SkFont_setLinearMetrics'></a>
    534 
    535 ---
    536 
    537 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    538 void <a href='#SkFont_setLinearMetrics'>setLinearMetrics</a>(bool linearMetrics)
    539 </pre>
    540 
    541 Requests, but does not require, that <a href='undocumented#Glyph'>glyphs</a> are converted to <a href='SkPath_Reference#SkPath'>SkPath</a>
    542 before drawing and measuring.
    543 
    544 ### Parameters
    545 
    546 <table>  <tr>    <td><a name='SkFont_setLinearMetrics_linearMetrics'><code><strong>linearMetrics</strong></code></a></td>
    547     <td>setting for converting <a href='undocumented#Glyph'>glyphs</a> to <a href='SkPath_Reference#Path'>paths</a></td>
    548   </tr>
    549 </table>
    550 
    551 ### Example
    552 
    553 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    554 
    555 ### See Also
    556 
    557 incomplete
    558 
    559 <a name='SkFont_setEmbolden'></a>
    560 
    561 ---
    562 
    563 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    564 void <a href='#SkFont_setEmbolden'>setEmbolden</a>(bool embolden)
    565 </pre>
    566 
    567 Increases stroke width when creating <a href='undocumented#Glyph'>glyph</a> <a href='SkBitmap_Reference#Bitmap'>bitmaps</a> to approximate a bold <a href='undocumented#Typeface'>typeface</a>.
    568 
    569 ### Parameters
    570 
    571 <table>  <tr>    <td><a name='SkFont_setEmbolden_embolden'><code><strong>embolden</strong></code></a></td>
    572     <td>setting for bold approximation</td>
    573   </tr>
    574 </table>
    575 
    576 ### Example
    577 
    578 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    579 
    580 ### See Also
    581 
    582 incomplete
    583 
    584 <a name='SkFont_getEdging'></a>
    585 
    586 ---
    587 
    588 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    589 <a href='#SkFont_Edging'>Edging</a> <a href='#SkFont_getEdging'>getEdging</a>()const
    590 </pre>
    591 
    592 Whether edge pixels draw opaque or with partial transparency.
    593 
    594 ### Return Value
    595 
    596 one of: <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kAlias'>kAlias</a>, <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kAntiAlias'>kAntiAlias</a>, <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kSubpixelAntiAlias'>kSubpixelAntiAlias</a>
    597 
    598 ### Example
    599 
    600 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    601 
    602 ### See Also
    603 
    604 incomplete
    605 
    606 <a name='SkFont_setEdging'></a>
    607 
    608 ---
    609 
    610 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    611 void <a href='#SkFont_setEdging'>setEdging</a>(<a href='#SkFont_Edging'>Edging</a> edging)
    612 </pre>
    613 
    614 Requests, but does not require, that edge pixels draw opaque or with
    615 partial transparency.
    616 
    617 ### Parameters
    618 
    619 <table>  <tr>    <td><a name='SkFont_setEdging_edging'><code><strong>edging</strong></code></a></td>
    620     <td>one of: <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kAlias'>kAlias</a>, <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kAntiAlias'>kAntiAlias</a>, <a href='#SkFont_Edging'>Edging</a>::<a href='#SkFont_Edging_kSubpixelAntiAlias'>kSubpixelAntiAlias</a></td>
    621   </tr>
    622 </table>
    623 
    624 ### Example
    625 
    626 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    627 
    628 ### See Also
    629 
    630 incomplete
    631 
    632 <a name='SkFont_setHinting'></a>
    633 
    634 ---
    635 
    636 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    637 void <a href='#SkFont_setHinting'>setHinting</a>(<a href='undocumented#SkFontHinting'>SkFontHinting</a> hintingLevel)
    638 </pre>
    639 
    640 Sets level of <a href='undocumented#Glyph'>glyph</a> outline adjustment.
    641 Does not check for valid values of <a href='#SkFont_setHinting_hintingLevel'>hintingLevel</a>.
    642 
    643 ### Parameters
    644 
    645 <table>  <tr>    <td><a name='SkFont_setHinting_hintingLevel'><code><strong>hintingLevel</strong></code></a></td>
    646     <td>one of: <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>,</td>
    647   </tr>
    648 </table>
    649 
    650 <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>
    651 
    652 ### Example
    653 
    654 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    655 
    656 ### See Also
    657 
    658 incomplete
    659 
    660 <a name='SkFont_getHinting'></a>
    661 
    662 ---
    663 
    664 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    665 <a href='undocumented#SkFontHinting'>SkFontHinting</a> <a href='#SkFont_getHinting'>getHinting</a>()const
    666 </pre>
    667 
    668 Returns level of <a href='undocumented#Glyph'>glyph</a> outline adjustment.
    669 
    670 ### Return Value
    671 
    672 one of: <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNone'>kNone</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kSlight'>kSlight</a>, <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kNormal'>kNormal</a>,
    673 
    674 <a href='undocumented#SkFontHinting'>SkFontHinting</a>::<a href='#SkFontHinting_kFull'>kFull</a>
    675 
    676 ### Example
    677 
    678 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    679 
    680 ### See Also
    681 
    682 incomplete
    683 
    684 <a name='SkFont_makeWithSize'></a>
    685 
    686 ---
    687 
    688 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    689 <a href='SkFont_Reference#SkFont'>SkFont</a> <a href='#SkFont_makeWithSize'>makeWithSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> <a href='undocumented#Size'>size</a>)const
    690 </pre>
    691 
    692 Returns a <a href='SkFont_Reference#Font'>font</a> with the same attributes of this <a href='SkFont_Reference#Font'>font</a>, but with the specified <a href='#SkFont_makeWithSize_size'>size</a>.
    693 Returns nullptr if <a href='#SkFont_makeWithSize_size'>size</a> is less than zero, infinite, or NaN.
    694 
    695 ### Parameters
    696 
    697 <table>  <tr>    <td><a name='SkFont_makeWithSize_size'><code><strong>size</strong></code></a></td>
    698     <td>typographic height of <a href='undocumented#Text'>text</a></td>
    699   </tr>
    700 </table>
    701 
    702 ### Return Value
    703 
    704 initialized <a href='SkFont_Reference#SkFont'>SkFont</a>
    705 
    706 ### Example
    707 
    708 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    709 
    710 ### See Also
    711 
    712 incomplete
    713 
    714 <a name='SkFont_getTypeface'></a>
    715 
    716 ---
    717 
    718 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    719 <a href='undocumented#SkTypeface'>SkTypeface</a>* <a href='#SkFont_getTypeface'>getTypeface</a>()const
    720 </pre>
    721 
    722 Returns <a href='undocumented#SkTypeface'>SkTypeface</a> if set, or nullptr.
    723 Does not alter <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a>.
    724 
    725 ### Return Value
    726 
    727 <a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
    728 
    729 ### Example
    730 
    731 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    732 
    733 ### See Also
    734 
    735 incomplete
    736 
    737 <a name='SkFont_getSize'></a>
    738 
    739 ---
    740 
    741 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    742 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkFont_getSize'>getSize</a>()const
    743 </pre>
    744 
    745 Returns <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>.
    746 
    747 ### Return Value
    748 
    749 typographic height of <a href='undocumented#Text'>text</a>
    750 
    751 ### Example
    752 
    753 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    754 
    755 ### See Also
    756 
    757 incomplete
    758 
    759 <a name='SkFont_getScaleX'></a>
    760 
    761 ---
    762 
    763 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    764 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkFont_getScaleX'>getScaleX</a>()const
    765 </pre>
    766 
    767 Returns <a href='undocumented#Text'>text</a> scale on x-axis.
    768 Default value is 1.
    769 
    770 ### Return Value
    771 
    772 <a href='undocumented#Text'>text</a> horizontal scale
    773 
    774 ### Example
    775 
    776 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    777 
    778 ### See Also
    779 
    780 incomplete
    781 
    782 <a name='SkFont_getSkewX'></a>
    783 
    784 ---
    785 
    786 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    787 <a href='undocumented#SkScalar'>SkScalar</a>    <a href='#SkFont_getSkewX'>getSkewX</a>()const
    788 </pre>
    789 
    790 Returns <a href='undocumented#Text'>text</a> skew on x-axis.
    791 Default value is zero.
    792 
    793 ### Return Value
    794 
    795 additional shear on x-axis relative to y-axis
    796 
    797 ### Example
    798 
    799 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    800 
    801 ### See Also
    802 
    803 incomplete
    804 
    805 <a name='SkFont_refTypeface'></a>
    806 
    807 ---
    808 
    809 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    810 <a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; <a href='#SkFont_refTypeface'>refTypeface</a>()const
    811 </pre>
    812 
    813 Increases <a href='undocumented#SkTypeface'>SkTypeface</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
    814 
    815 ### Return Value
    816 
    817 <a href='undocumented#SkTypeface'>SkTypeface</a> if previously set, nullptr otherwise
    818 
    819 ### Example
    820 
    821 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    822 
    823 ### See Also
    824 
    825 incomplete
    826 
    827 <a name='SkFont_setTypeface'></a>
    828 
    829 ---
    830 
    831 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    832 void <a href='#SkFont_setTypeface'>setTypeface</a>(<a href='undocumented#sk_sp'>sk_sp</a>&lt;<a href='undocumented#SkTypeface'>SkTypeface</a>&gt; tf)
    833 </pre>
    834 
    835 Sets <a href='undocumented#SkTypeface'>SkTypeface</a> to <a href='undocumented#Typeface'>typeface</a>, decreasing <a href='undocumented#SkRefCnt'>SkRefCnt</a> of the previous <a href='undocumented#SkTypeface'>SkTypeface</a>.
    836 Pass nullptr to clear <a href='undocumented#SkTypeface'>SkTypeface</a> and use the default <a href='undocumented#Typeface'>typeface</a>. Increments
    837 <a href='#SkFont_setTypeface_tf'>tf</a> <a href='undocumented#SkRefCnt'>SkRefCnt</a> by one.
    838 
    839 ### Parameters
    840 
    841 <table>  <tr>    <td><a name='SkFont_setTypeface_tf'><code><strong>tf</strong></code></a></td>
    842     <td><a href='SkFont_Reference#Font'>font</a> and style used to draw <a href='undocumented#Text'>text</a></td>
    843   </tr>
    844 </table>
    845 
    846 ### Example
    847 
    848 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    849 
    850 ### See Also
    851 
    852 incomplete
    853 
    854 <a name='SkFont_setSize'></a>
    855 
    856 ---
    857 
    858 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    859 void <a href='#SkFont_setSize'>setSize</a>(<a href='undocumented#SkScalar'>SkScalar</a> textSize)
    860 </pre>
    861 
    862 Sets <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> in <a href='SkPoint_Reference#Point'>points</a>.
    863 Has no effect if <a href='#SkFont_setSize_textSize'>textSize</a> is not greater than or equal to zero.
    864 
    865 ### Parameters
    866 
    867 <table>  <tr>    <td><a name='SkFont_setSize_textSize'><code><strong>textSize</strong></code></a></td>
    868     <td>typographic height of <a href='undocumented#Text'>text</a></td>
    869   </tr>
    870 </table>
    871 
    872 ### Example
    873 
    874 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    875 
    876 ### See Also
    877 
    878 incomplete
    879 
    880 <a name='SkFont_setScaleX'></a>
    881 
    882 ---
    883 
    884 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    885 void <a href='#SkFont_setScaleX'>setScaleX</a>(<a href='undocumented#SkScalar'>SkScalar</a> scaleX)
    886 </pre>
    887 
    888 Sets  <a href='undocumented#Text'>text scale</a> on x-axis.
    889 Default value is 1.
    890 
    891 ### Parameters
    892 
    893 <table>  <tr>    <td><a name='SkFont_setScaleX_scaleX'><code><strong>scaleX</strong></code></a></td>
    894     <td><a href='undocumented#Text'>text</a> horizontal scale</td>
    895   </tr>
    896 </table>
    897 
    898 ### Example
    899 
    900 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    901 
    902 ### See Also
    903 
    904 incomplete
    905 
    906 <a name='SkFont_setSkewX'></a>
    907 
    908 ---
    909 
    910 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    911 void <a href='#SkFont_setSkewX'>setSkewX</a>(<a href='undocumented#SkScalar'>SkScalar</a> skewX)
    912 </pre>
    913 
    914 Sets  <a href='undocumented#Text'>text skew</a> on x-axis.
    915 Default value is zero.
    916 
    917 ### Parameters
    918 
    919 <table>  <tr>    <td><a name='SkFont_setSkewX_skewX'><code><strong>skewX</strong></code></a></td>
    920     <td>additional shear on x-axis relative to y-axis</td>
    921   </tr>
    922 </table>
    923 
    924 ### Example
    925 
    926 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    927 
    928 ### See Also
    929 
    930 incomplete
    931 
    932 <a name='SkFont_textToGlyphs'></a>
    933 
    934 ---
    935 
    936 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    937 int <a href='#SkFont_textToGlyphs'>textToGlyphs</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding, <a href='undocumented#SkGlyphID'>SkGlyphID</a> <a href='undocumented#Glyph'>glyphs</a>[],
    938                  int maxGlyphCount)const
    939 </pre>
    940 
    941 Converts <a href='#SkFont_textToGlyphs_text'>text</a> into <a href='undocumented#Glyph'>glyph</a> indices.
    942 Returns the number of <a href='undocumented#Glyph'>glyph</a> indices represented by <a href='#SkFont_textToGlyphs_text'>text</a>.
    943 <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> specifies how <a href='#SkFont_textToGlyphs_text'>text</a> represents characters or <a href='#SkFont_textToGlyphs_glyphs'>glyphs</a>.
    944 <a href='#SkFont_textToGlyphs_glyphs'>glyphs</a> may be nullptr, to compute the <a href='undocumented#Glyph'>glyph</a> count.
    945 
    946 Does not check <a href='#SkFont_textToGlyphs_text'>text</a> for valid character codes or valid <a href='undocumented#Glyph'>glyph</a> indices.
    947 
    948 If <a href='#SkFont_textToGlyphs_byteLength'>byteLength</a> equals zero, returns zero.
    949 If <a href='#SkFont_textToGlyphs_byteLength'>byteLength</a> includes a partial character, the partial character is ignored.
    950 
    951 If <a href='#SkFont_textToGlyphs_encoding'>encoding</a> is <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a> and <a href='#SkFont_textToGlyphs_text'>text</a> contains an invalid UTF-8 sequence,
    952 zero is returned.
    953 
    954 If <a href='#SkFont_textToGlyphs_maxGlyphCount'>maxGlyphCount</a> is not sufficient to store all the <a href='#SkFont_textToGlyphs_glyphs'>glyphs</a>, no <a href='#SkFont_textToGlyphs_glyphs'>glyphs</a> are copied.
    955 The total <a href='undocumented#Glyph'>glyph</a> count is returned for subsequent buffer reallocation.
    956 
    957 ### Parameters
    958 
    959 <table>  <tr>    <td><a name='SkFont_textToGlyphs_text'><code><strong>text</strong></code></a></td>
    960     <td>character storage encoded with <a href='undocumented#SkTextEncoding'>SkTextEncoding</a></td>
    961   </tr>
    962   <tr>    <td><a name='SkFont_textToGlyphs_byteLength'><code><strong>byteLength</strong></code></a></td>
    963     <td>length of character storage in bytes</td>
    964   </tr>
    965   <tr>    <td><a name='SkFont_textToGlyphs_encoding'><code><strong>encoding</strong></code></a></td>
    966     <td>one of: <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a>, <a href='undocumented#kUTF16_SkTextEncoding'>kUTF16_SkTextEncoding</a>,</td>
    967   </tr>
    968 </table>
    969 
    970 <a href='undocumented#kUTF32_SkTextEncoding'>kUTF32_SkTextEncoding</a>, <a href='undocumented#kGlyphID_SkTextEncoding'>kGlyphID_SkTextEncoding</a>
    971 
    972 ### Parameters
    973 
    974 <table>  <tr>    <td><a name='SkFont_textToGlyphs_glyphs'><code><strong>glyphs</strong></code></a></td>
    975     <td>storage for <a href='undocumented#Glyph'>glyph</a> indices; may be nullptr</td>
    976   </tr>
    977   <tr>    <td><a name='SkFont_textToGlyphs_maxGlyphCount'><code><strong>maxGlyphCount</strong></code></a></td>
    978     <td>storage capacity</td>
    979   </tr>
    980 </table>
    981 
    982 ### Return Value
    983 
    984 number of <a href='#SkFont_textToGlyphs_glyphs'>glyphs</a> represented by <a href='#SkFont_textToGlyphs_text'>text</a> of length <a href='#SkFont_textToGlyphs_byteLength'>byteLength</a>
    985 
    986 ### Example
    987 
    988 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
    989 
    990 ### See Also
    991 
    992 incomplete
    993 
    994 <a name='SkFont_unicharToGlyph'></a>
    995 
    996 ---
    997 
    998 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
    999 uint16_t <a href='#SkFont_unicharToGlyph'>unicharToGlyph</a>(<a href='undocumented#SkUnichar'>SkUnichar</a> uni)const
   1000 </pre>
   1001 
   1002 Returns <a href='undocumented#Glyph'>glyph</a> index for Unicode character.
   1003 
   1004 ### Parameters
   1005 
   1006 <table>  <tr>    <td><a name='SkFont_unicharToGlyph_uni'><code><strong>uni</strong></code></a></td>
   1007     <td>Unicode character</td>
   1008   </tr>
   1009 </table>
   1010 
   1011 ### Return Value
   1012 
   1013 <a href='undocumented#Glyph'>glyph</a> index
   1014 
   1015 ### Example
   1016 
   1017 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1018 
   1019 ### See Also
   1020 
   1021 incomplete
   1022 
   1023 <a name='SkFont_countText'></a>
   1024 
   1025 ---
   1026 
   1027 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1028 int <a href='#SkFont_countText'>countText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding)const
   1029 </pre>
   1030 
   1031 Returns number of <a href='undocumented#Glyph'>glyphs</a> represented by <a href='#SkFont_countText_text'>text</a>.
   1032 
   1033 ### Parameters
   1034 
   1035 <table>  <tr>    <td><a name='SkFont_countText_text'><code><strong>text</strong></code></a></td>
   1036     <td>character storage encoded with <a href='undocumented#SkTextEncoding'>SkTextEncoding</a></td>
   1037   </tr>
   1038   <tr>    <td><a name='SkFont_countText_byteLength'><code><strong>byteLength</strong></code></a></td>
   1039     <td>length of character storage in bytes</td>
   1040   </tr>
   1041   <tr>    <td><a name='SkFont_countText_encoding'><code><strong>encoding</strong></code></a></td>
   1042     <td>one of: <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a>, <a href='undocumented#kUTF16_SkTextEncoding'>kUTF16_SkTextEncoding</a>,</td>
   1043   </tr>
   1044 </table>
   1045 
   1046 <a href='undocumented#kUTF32_SkTextEncoding'>kUTF32_SkTextEncoding</a>, <a href='undocumented#kGlyphID_SkTextEncoding'>kGlyphID_SkTextEncoding</a>
   1047 
   1048 ### Return Value
   1049 
   1050 number of <a href='undocumented#Glyph'>glyphs</a> represented by <a href='#SkFont_countText_text'>text</a> of length <a href='#SkFont_countText_byteLength'>byteLength</a>
   1051 
   1052 ### Example
   1053 
   1054 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1055 
   1056 ### See Also
   1057 
   1058 incomplete
   1059 
   1060 <a name='SkFont_containsText'></a>
   1061 
   1062 ---
   1063 
   1064 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1065 bool <a href='#SkFont_containsText'>containsText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding)const
   1066 </pre>
   1067 
   1068 Returns true if all <a href='#SkFont_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index.
   1069 Returns false if any characters in <a href='#SkFont_containsText_text'>text</a> are not supported in
   1070 <a href='undocumented#SkTypeface'>SkTypeface</a>.
   1071 
   1072 If <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> is <a href='undocumented#kGlyphID_SkTextEncoding'>kGlyphID_SkTextEncoding</a>,
   1073 returns true if all <a href='undocumented#Glyph'>glyph</a> indices in <a href='#SkFont_containsText_text'>text</a> are non-zero;
   1074 does not check to see if <a href='#SkFont_containsText_text'>text</a> contains valid <a href='undocumented#Glyph'>glyph</a> indices for <a href='undocumented#SkTypeface'>SkTypeface</a>.
   1075 
   1076 Returns true if <a href='#SkFont_containsText_byteLength'>byteLength</a> is zero.
   1077 
   1078 ### Parameters
   1079 
   1080 <table>  <tr>    <td><a name='SkFont_containsText_text'><code><strong>text</strong></code></a></td>
   1081     <td>array of characters or <a href='undocumented#Glyph'>glyphs</a></td>
   1082   </tr>
   1083   <tr>    <td><a name='SkFont_containsText_byteLength'><code><strong>byteLength</strong></code></a></td>
   1084     <td>number of bytes in <a href='#SkFont_containsText_text'>text</a> array</td>
   1085   </tr>
   1086   <tr>    <td><a name='SkFont_containsText_encoding'><code><strong>encoding</strong></code></a></td>
   1087     <td><a href='undocumented#Text_Encoding'>text encoding</a></td>
   1088   </tr>
   1089 </table>
   1090 
   1091 ### Return Value
   1092 
   1093 true if all <a href='#SkFont_containsText_text'>text</a> corresponds to a non-zero <a href='undocumented#Glyph'>glyph</a> index
   1094 
   1095 ### Example
   1096 
   1097 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1098 
   1099 ### See Also
   1100 
   1101 incomplete
   1102 
   1103 <a name='SkFont_breakText'></a>
   1104 
   1105 ---
   1106 
   1107 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1108 size_t <a href='#SkFont_breakText'>breakText</a>(const void* <a href='undocumented#Text'>text</a>, size_t length, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding, <a href='undocumented#SkScalar'>SkScalar</a> maxWidth,
   1109                  <a href='undocumented#SkScalar'>SkScalar</a>* measuredWidth = nullptr)const
   1110 </pre>
   1111 
   1112 Returns the bytes of <a href='#SkFont_breakText_text'>text</a> that fit within <a href='#SkFont_breakText_maxWidth'>maxWidth</a>.
   1113 The <a href='#SkFont_breakText_text'>text</a> fragment fits if its advance width is less than or equal to <a href='#SkFont_breakText_maxWidth'>maxWidth</a>.
   1114 Measures only while the advance is less than or equal to <a href='#SkFont_breakText_maxWidth'>maxWidth</a>.
   1115 Returns the advance or the <a href='#SkFont_breakText_text'>text</a> fragment in <a href='#SkFont_breakText_measuredWidth'>measuredWidth</a> if it not nullptr.
   1116 Uses <a href='#SkFont_breakText_encoding'>encoding</a> to decode <a href='#SkFont_breakText_text'>text</a>, <a href='undocumented#SkTypeface'>SkTypeface</a> to get the  <a href='undocumented#Font_Metrics'>font metrics</a>,
   1117 and <a href='#SkFont_breakText_text'>text</a> <a href='undocumented#Size'>size</a> to scale the metrics.
   1118 Does not scale the advance or bounds by fake bold.
   1119 
   1120 ### Parameters
   1121 
   1122 <table>  <tr>    <td><a name='SkFont_breakText_text'><code><strong>text</strong></code></a></td>
   1123     <td>character codes or <a href='undocumented#Glyph'>glyph</a> indices to be measured</td>
   1124   </tr>
   1125   <tr>    <td><a name='SkFont_breakText_length'><code><strong>length</strong></code></a></td>
   1126     <td>number of bytes of <a href='#SkFont_breakText_text'>text</a> to measure</td>
   1127   </tr>
   1128   <tr>    <td><a name='SkFont_breakText_encoding'><code><strong>encoding</strong></code></a></td>
   1129     <td><a href='undocumented#Text_Encoding'>text encoding</a></td>
   1130   </tr>
   1131   <tr>    <td><a name='SkFont_breakText_maxWidth'><code><strong>maxWidth</strong></code></a></td>
   1132     <td>advance limit; <a href='#SkFont_breakText_text'>text</a> is measured while advance is less than <a href='#SkFont_breakText_maxWidth'>maxWidth</a></td>
   1133   </tr>
   1134   <tr>    <td><a name='SkFont_breakText_measuredWidth'><code><strong>measuredWidth</strong></code></a></td>
   1135     <td>returns the width of the <a href='#SkFont_breakText_text'>text</a> less than or equal to <a href='#SkFont_breakText_maxWidth'>maxWidth</a></td>
   1136   </tr>
   1137 </table>
   1138 
   1139 ### Return Value
   1140 
   1141 bytes of <a href='#SkFont_breakText_text'>text</a> that fit, always less than or equal to <a href='#SkFont_breakText_length'>length</a>
   1142 
   1143 ### Example
   1144 
   1145 <div><fiddle-embed name="3cad18678254526be66ef162eecd1d23"><div><a href='undocumented#Line'>Line</a> under "Breakfast" shows desired width, shorter than available characters.
   1146 <a href='undocumented#Line'>Line</a> under "Bre" shows measured width after breaking <a href='#SkFont_breakText_text'>text</a>.
   1147 </div></fiddle-embed></div>
   1148 
   1149 ### See Also
   1150 
   1151 incomplete
   1152 
   1153 <a name='SkFont_measureText'></a>
   1154 
   1155 ---
   1156 
   1157 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1158 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_measureText'>measureText</a>(const void* <a href='undocumented#Text'>text</a>, size_t byteLength, <a href='undocumented#SkTextEncoding'>SkTextEncoding</a> encoding,
   1159                      <a href='SkRect_Reference#SkRect'>SkRect</a>* bounds = nullptr)const
   1160 </pre>
   1161 
   1162 Returns the advance width of <a href='#SkFont_measureText_text'>text</a>.
   1163 The advance is the normal distance to move before drawing additional <a href='#SkFont_measureText_text'>text</a>.
   1164 Returns the bounding box of <a href='#SkFont_measureText_text'>text</a> if <a href='#SkFont_measureText_bounds'>bounds</a> is not nullptr.
   1165 
   1166 ### Parameters
   1167 
   1168 <table>  <tr>    <td><a name='SkFont_measureText_text'><code><strong>text</strong></code></a></td>
   1169     <td>character storage encoded with <a href='undocumented#SkTextEncoding'>SkTextEncoding</a></td>
   1170   </tr>
   1171   <tr>    <td><a name='SkFont_measureText_byteLength'><code><strong>byteLength</strong></code></a></td>
   1172     <td>length of character storage in bytes</td>
   1173   </tr>
   1174   <tr>    <td><a name='SkFont_measureText_encoding'><code><strong>encoding</strong></code></a></td>
   1175     <td>one of: <a href='undocumented#kUTF8_SkTextEncoding'>kUTF8_SkTextEncoding</a>, <a href='undocumented#kUTF16_SkTextEncoding'>kUTF16_SkTextEncoding</a>,</td>
   1176   </tr>
   1177 </table>
   1178 
   1179 <a href='undocumented#kUTF32_SkTextEncoding'>kUTF32_SkTextEncoding</a>, <a href='undocumented#kGlyphID_SkTextEncoding'>kGlyphID_SkTextEncoding</a>
   1180 
   1181 ### Parameters
   1182 
   1183 <table>  <tr>    <td><a name='SkFont_measureText_bounds'><code><strong>bounds</strong></code></a></td>
   1184     <td>returns bounding box relative to (0, 0) if not nullptr</td>
   1185   </tr>
   1186 </table>
   1187 
   1188 ### Return Value
   1189 
   1190 number of <a href='undocumented#Glyph'>glyphs</a> represented by <a href='#SkFont_measureText_text'>text</a> of length <a href='#SkFont_measureText_byteLength'>byteLength</a>
   1191 
   1192 ### Example
   1193 
   1194 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1195 
   1196 ### See Also
   1197 
   1198 incomplete
   1199 
   1200 <a name='SkFont_getPath'></a>
   1201 
   1202 ---
   1203 
   1204 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1205 bool <a href='#SkFont_getPath'>getPath</a>(uint16_t glyphID, <a href='SkPath_Reference#SkPath'>SkPath</a>* <a href='SkPath_Reference#Path'>path</a>)const
   1206 </pre>
   1207 
   1208 Returns <a href='#SkFont_getPath_path'>path</a> corresponding to <a href='undocumented#Glyph'>glyph</a> outline.
   1209 If <a href='undocumented#Glyph'>glyph</a> has an outline, copies outline to <a href='#SkFont_getPath_path'>path</a> and returns true.
   1210 <a href='#SkFont_getPath_path'>path</a> returned may be empty.
   1211 If <a href='undocumented#Glyph'>glyph</a> is described by a <a href='SkBitmap_Reference#Bitmap'>bitmap</a>, returns false and ignores <a href='#SkFont_getPath_path'>path</a> parameter.
   1212 
   1213 ### Parameters
   1214 
   1215 <table>  <tr>    <td><a name='SkFont_getPath_glyphID'><code><strong>glyphID</strong></code></a></td>
   1216     <td>index of <a href='undocumented#Glyph'>glyph</a></td>
   1217   </tr>
   1218   <tr>    <td><a name='SkFont_getPath_path'><code><strong>path</strong></code></a></td>
   1219     <td>pointer to existing <a href='SkPath_Reference#SkPath'>SkPath</a></td>
   1220   </tr>
   1221 </table>
   1222 
   1223 ### Return Value
   1224 
   1225 true if <a href='#SkFont_getPath_glyphID'>glyphID</a> is described by <a href='#SkFont_getPath_path'>path</a>
   1226 
   1227 ### Example
   1228 
   1229 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1230 
   1231 ### See Also
   1232 
   1233 incomplete
   1234 
   1235 <a name='SkFont_getPaths'></a>
   1236 
   1237 ---
   1238 
   1239 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1240 void <a href='#SkFont_getPaths'>getPaths</a>(const uint16_t glyphIDs[], int count, void (*glyphPathProc) (const <a href='SkPath_Reference#SkPath'>SkPath</a>* pathOrNull,
   1241               const <a href='SkMatrix_Reference#SkMatrix'>SkMatrix</a>& mx, void* ctx) , void* ctx)const
   1242 </pre>
   1243 
   1244 Returns <a href='SkPath_Reference#Path'>path</a> corresponding to <a href='undocumented#Glyph'>glyph</a> array.
   1245 
   1246 ### Parameters
   1247 
   1248 <table>  <tr>    <td><a name='SkFont_getPaths_glyphIDs'><code><strong>glyphIDs</strong></code></a></td>
   1249     <td>array of <a href='undocumented#Glyph'>glyph</a> indices</td>
   1250   </tr>
   1251   <tr>    <td><a name='SkFont_getPaths_count'><code><strong>count</strong></code></a></td>
   1252     <td>number of <a href='undocumented#Glyph'>glyphs</a></td>
   1253   </tr>
   1254   <tr>    <td><a name='SkFont_getPaths_glyphPathProc'><code><strong>glyphPathProc</strong></code></a></td>
   1255     <td>function returning one <a href='undocumented#Glyph'>glyph</a> description as <a href='SkPath_Reference#Path'>path</a></td>
   1256   </tr>
   1257   <tr>    <td><a name='SkFont_getPaths_ctx'><code><strong>ctx</strong></code></a></td>
   1258     <td>function context</td>
   1259   </tr>
   1260 </table>
   1261 
   1262 ### Example
   1263 
   1264 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1265 
   1266 ### See Also
   1267 
   1268 incomplete
   1269 
   1270 <a name='SkFont_getMetrics'></a>
   1271 
   1272 ---
   1273 
   1274 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1275 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getMetrics'>getMetrics</a>(<a href='undocumented#SkFontMetrics'>SkFontMetrics</a>* metrics)const
   1276 </pre>
   1277 
   1278 Returns <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> associated with <a href='undocumented#SkTypeface'>SkTypeface</a>.
   1279 The return value is the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of <a href='#SkFont_getMetrics_metrics'>metrics</a>
   1280 descent, ascent, and leading.
   1281 If <a href='#SkFont_getMetrics_metrics'>metrics</a> is not nullptr, <a href='undocumented#SkFontMetrics'>SkFontMetrics</a> is copied to <a href='#SkFont_getMetrics_metrics'>metrics</a>.
   1282 Results are scaled by <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> but does not take into account
   1283 dimensions required by  <a href='undocumented#Text'>text scale</a>,  <a href='undocumented#Text'>text skew</a>, fake bold,
   1284 style stroke, and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
   1285 
   1286 ### Parameters
   1287 
   1288 <table>  <tr>    <td><a name='SkFont_getMetrics_metrics'><code><strong>metrics</strong></code></a></td>
   1289     <td>storage for <a href='undocumented#SkFontMetrics'>SkFontMetrics</a>; may be nullptr</td>
   1290   </tr>
   1291 </table>
   1292 
   1293 ### Return Value
   1294 
   1295 recommended spacing between <a href='undocumented#Line'>lines</a>
   1296 
   1297 ### Example
   1298 
   1299 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1300 
   1301 ### See Also
   1302 
   1303 incomplete
   1304 
   1305 <a name='SkFont_getSpacing'></a>
   1306 
   1307 ---
   1308 
   1309 <pre style="padding: 1em 1em 1em 1em; width: 62.5em;background-color: #f0f0f0">
   1310 <a href='undocumented#SkScalar'>SkScalar</a> <a href='#SkFont_getSpacing'>getSpacing</a>()const
   1311 </pre>
   1312 
   1313 Returns the recommended spacing between <a href='undocumented#Line'>lines</a>: the sum of metrics
   1314 descent, ascent, and leading.
   1315 Result is scaled by <a href='undocumented#Text'>text</a> <a href='undocumented#Size'>size</a> but does not take into account
   1316 dimensions required by stroking and <a href='undocumented#SkPathEffect'>SkPathEffect</a>.
   1317 Returns the same result as <a href='#SkFont_getMetrics'>getMetrics</a>().
   1318 
   1319 ### Return Value
   1320 
   1321 recommended spacing between <a href='undocumented#Line'>lines</a>
   1322 
   1323 ### Example
   1324 
   1325 <div><fiddle-embed name="882e8e0103048009a25cfc20400492f7"></fiddle-embed></div>
   1326 
   1327 ### See Also
   1328 
   1329 incomplete
   1330 
   1331