📄 cairo-scaled-fonts.html
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"><title>Scaled Fonts</title><meta name="generator" content="DocBook XSL Stylesheets V1.68.1"><link rel="start" href="index.html" title="Cairo: A Vector Graphics Library"><link rel="up" href="Fonts.html" title="Fonts"><link rel="prev" href="cairo-cairo-font-face-t.html" title="cairo_font_face_t"><link rel="next" href="cairo-Font-Options.html" title="Font Options"><meta name="generator" content="GTK-Doc V1.6 (XML mode)"><link rel="stylesheet" href="style.css" type="text/css"><link rel="part" href="pt01.html" title="Part I. Tutorial"><link rel="part" href="pt02.html" title="Part II. Reference"><link rel="chapter" href="Drawing.html" title="Drawing"><link rel="chapter" href="Fonts.html" title="Fonts"><link rel="chapter" href="Surfaces.html" title="Surfaces"><link rel="chapter" href="Support.html" title="Utilities"><link rel="index" href="ix01.html" title="Index"><link rel="appendix" href="language-bindings.html" title="Appendix A. Creating a language binding for cairo"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><table class="navigation" id="top" width="100%" summary="Navigation header" cellpadding="2" cellspacing="2"><tr valign="middle"><td><a accesskey="p" href="cairo-cairo-font-face-t.html"><img src="left.png" width="24" height="24" border="0" alt="Prev"></a></td><td><a accesskey="u" href="Fonts.html"><img src="up.png" width="24" height="24" border="0" alt="Up"></a></td><td><a accesskey="h" href="index.html"><img src="home.png" width="24" height="24" border="0" alt="Home"></a></td><th width="100%" align="center">Cairo: A Vector Graphics Library</th><td><a accesskey="n" href="cairo-Font-Options.html"><img src="right.png" width="24" height="24" border="0" alt="Next"></a></td></tr><tr><td colspan="5" class="shortcuts"><nobr><a href="#top_of_page" class="shortcut">Top</a>  |  <a href="#desc" class="shortcut">Description</a></nobr></td></tr></table><div class="refentry" lang="en"><a name="cairo-Scaled-Fonts"></a><div class="titlepage"></div><div class="refnamediv"><table width="100%"><tr><td valign="top"><h2><span class="refentrytitle"><a name="top_of_page"></a>Scaled Fonts</span></h2><p>Scaled Fonts — Caching metrics for a particular font size</p></td><td valign="top" align="right"></td></tr></table></div><div class="refsynopsisdiv"><a name="synopsis"></a><h2>Synopsis</h2><pre class="synopsis">typedef <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>;<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-create">cairo_scaled_font_create</a> (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix, const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm, const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-reference">cairo_scaled_font_reference</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-destroy">cairo_scaled_font_destroy</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);<a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-status">cairo_scaled_font_status</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font); <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a>;void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-extents">cairo_scaled_font_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a href="cairo-Scaled-Fonts.html#cairo-font-extents-t">cairo_font_extents_t</a> *extents); <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a>;void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-text-extents">cairo_scaled_font_text_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, const char *utf8, <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-glyph-extents">cairo_scaled_font_glyph_extents</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a href="cairo-Text.html#cairo-glyph-t">cairo_glyph_t</a> *glyphs, int num_glyphs, <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t">cairo_text_extents_t</a> *extents);<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a>* <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-face">cairo_scaled_font_get_font_face</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-options">cairo_scaled_font_get_font_options</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-font-matrix">cairo_scaled_font_get_font_matrix</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix);void <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-ctm">cairo_scaled_font_get_ctm</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font, <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm);<a href="cairo-cairo-font-face-t.html#cairo-font-type-t">cairo_font_type_t</a> <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-get-type">cairo_scaled_font_get_type</a> (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre></div><div class="refsect1" lang="en"><a name="desc"></a><h2>Description</h2><p></p></div><div class="refsect1" lang="en"><a name="details"></a><h2>Details</h2><div class="refsect2" lang="en"><a name="id2579432"></a><h3><a name="cairo-scaled-font-t"></a>cairo_scaled_font_t</h3><a class="indexterm" name="id2579444"></a><pre class="programlisting">typedef struct _cairo_scaled_font cairo_scaled_font_t;</pre><p>A <a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t"><span class="type">cairo_scaled_font_t</span></a> is a font scaled to a particular size and deviceresolution. A cairo_scaled_font_t is most useful for low-level fontusage where a library or application wants to cache a referenceto a scaled font to speed up the computation of metrics.</p><p></p></div><hr><div class="refsect2" lang="en"><a name="id2579475"></a><h3><a name="cairo-scaled-font-create"></a>cairo_scaled_font_create ()</h3><a class="indexterm" name="id2579486"></a><pre class="programlisting"><a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_create (<a href="cairo-cairo-font-face-t.html#cairo-font-face-t">cairo_font_face_t</a> *font_face, const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *font_matrix, const <a href="cairo-cairo-matrix-t.html#cairo-matrix-t">cairo_matrix_t</a> *ctm, const <a href="cairo-Font-Options.html#cairo-font-options-t">cairo_font_options_t</a> *options);</pre></div><hr><div class="refsect2" lang="en"><a name="id2579532"></a><h3><a name="cairo-scaled-font-reference"></a>cairo_scaled_font_reference ()</h3><a class="indexterm" name="id2579543"></a><pre class="programlisting"><a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a>* cairo_scaled_font_reference (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre></div><hr><div class="refsect2" lang="en"><a name="id2579569"></a><h3><a name="cairo-scaled-font-destroy"></a>cairo_scaled_font_destroy ()</h3><a class="indexterm" name="id2579580"></a><pre class="programlisting">void cairo_scaled_font_destroy (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre></div><hr><div class="refsect2" lang="en"><a name="id2579604"></a><h3><a name="cairo-scaled-font-status"></a>cairo_scaled_font_status ()</h3><a class="indexterm" name="id2579615"></a><pre class="programlisting"><a href="cairo-Error-handling.html#cairo-status-t">cairo_status_t</a> cairo_scaled_font_status (<a href="cairo-Scaled-Fonts.html#cairo-scaled-font-t">cairo_scaled_font_t</a> *scaled_font);</pre></div><hr><div class="refsect2" lang="en"><a name="id2579639"></a><h3><a name="cairo-font-extents-t"></a>cairo_font_extents_t</h3><a class="indexterm" name="id2579650"></a><pre class="programlisting">typedef struct { double ascent; double descent; double height; double max_x_advance; double max_y_advance;} cairo_font_extents_t;</pre><p>The <a href="cairo-Scaled-Fonts.html#cairo-text-extents-t"><span class="type">cairo_text_extents_t</span></a> structure stores metric information fora font. Values are given in the current user-space coordinatesystem.</p><p>Because font metrics are in user-space coordinates, they aremostly, but not entirely, independent of the current transformationmatrix. If you call <code class="literal">cairo_scale(cr, 2.0, 2.0)</code>,text will be drawn twice as big, but the reported text extents willnot be doubled. They will change slightly due to hinting (so youcan't assume that metrics are independent of the transformationmatrix), but otherwise will remain unchanged.</p><p></p><div class="variablelist"><table border="0"><col align="left" valign="top"><tbody><tr><td><span class="term">double <em class="structfield"><code>ascent</code></em>;</span></td><td> the distance that the font extends above the baseline. Note that this is not always exactly equal to the maximum of the extents of all the glyphs in the font, but rather is picked to express the font designer's intent as to how the font should align with elements above it.</td></tr><tr><td><span class="term">double <em class="structfield"><code>descent</code></em>;</span></td><td> the distance that the font extends below the baseline. This value is positive for typical fonts that include portions below the baseline. Note that this is not always exactly equal to the maximum of the extents of all the glyphs in the font, but rather is picked to express the font designer's intent as to how the the font should align with elements below it.</td>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -