1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
2 "https://www.w3.org/TR/html4/loose.dtd">
5 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
6 <title>FreeType-2.9.1 API Reference</title>
7 <style type="text/css">
8 a:link { color: #0000EF; }
9 a:visited { color: #51188E; }
10 a:hover { color: #FF0000; }
12 body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
18 div.section { width: 75%;
20 div.section hr { margin: 4ex 0 1ex 0; }
21 div.section h4 { background-color: #EEEEFF;
25 margin: 3ex 0 1.5ex 9%;
26 padding: 0.3ex 0 0.3ex 1%; }
27 div.section p { margin: 1.5ex 0 1.5ex 10%; }
28 div.section pre { margin: 3ex 0 3ex 9%;
29 background-color: #D6E8FF;
30 padding: 2ex 0 2ex 1%; }
31 div.section table.fields { width: 90%;
32 margin: 1.5ex 0 1.5ex 10%; }
33 div.section table.toc { width: 95%;
34 margin: 1.5ex 0 1.5ex 5%; }
35 div.timestamp { text-align: center;
37 margin: 1.5ex 0 1.5ex 0; }
39 h1 { text-align: center; }
40 h3 { font-size: medium;
41 margin: 4ex 0 1.5ex 0; }
43 p { text-align: justify; }
45 pre.colored { color: blue; }
47 span.keyword { font-family: monospace;
52 table.fields td.val { font-weight: bold;
55 vertical-align: baseline;
56 padding: 1ex 1em 1ex 0; }
57 table.fields td.desc { vertical-align: baseline;
58 padding: 1ex 0 1ex 1em; }
59 table.fields td.desc p:first-child { margin: 0; }
60 table.fields td.desc p { margin: 1.5ex 0 0 0; }
61 table.index { margin: 6ex auto 6ex auto;
63 border-collapse: separate;
64 border-spacing: 1em 0.3ex; }
65 table.index tr { padding: 0; }
66 table.index td { padding: 0; }
67 table.index-toc-link { width: 100%;
70 margin: 1ex 0 1ex 0; }
71 table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
74 table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
77 table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
80 table.synopsis { margin: 6ex auto 6ex auto;
82 border-collapse: separate;
83 border-spacing: 2em 0.6ex; }
84 table.synopsis tr { padding: 0; }
85 table.synopsis td { padding: 0; }
86 table.toc td.link { width: 30%;
88 vertical-align: baseline;
89 padding: 1ex 1em 1ex 0; }
90 table.toc td.desc { vertical-align: baseline;
91 padding: 1ex 0 1ex 1em;
93 table.toc td.desc p:first-child { margin: 0;
95 table.toc td.desc p { margin: 1.5ex 0 0 0;
102 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
103 <h1>FreeType-2.9.1 API Reference</h1>
105 <h1 id="sfnt_names">SFNT Names</h1>
107 <table class="synopsis">
108 <tr><td><a href="#FT_SfntName">FT_SfntName</a></td><td><a href="#FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</a></td><td><a href="#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a></td></tr>
109 <tr><td><a href="#FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</a></td><td><a href="#FT_SfntLangTag">FT_SfntLangTag</a></td><td></td></tr>
113 <p>The TrueType and OpenType specifications allow the inclusion of a special names table (‘name’) in font files. This table contains textual (and internationalized) information regarding the font, like family name, copyright, version, etc.</p>
114 <p>The definitions below are used to access them if available.</p>
115 <p>Note that this has nothing to do with glyph names!</p>
117 <div class="section">
118 <h3 id="FT_SfntName">FT_SfntName</h3>
119 <p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
121 <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SfntName_
123 <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a> platform_id;
124 <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a> encoding_id;
125 <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a> language_id;
126 <a href="ft2-basic_types.html#FT_UShort">FT_UShort</a> name_id;
128 <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>* string; /* this string is *not* null-terminated! */
129 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> string_len; /* in bytes */
131 } <b>FT_SfntName</b>;
134 <p>A structure used to model an SFNT ‘name’ table entry.</p>
137 <table class="fields">
138 <tr><td class="val" id="platform_id">platform_id</td><td class="desc">
139 <p>The platform ID for ‘string’. See <a href="ft2-truetype_tables.html#TT_PLATFORM_XXX">TT_PLATFORM_XXX</a> for possible values.</p>
141 <tr><td class="val" id="encoding_id">encoding_id</td><td class="desc">
142 <p>The encoding ID for ‘string’. See <a href="ft2-truetype_tables.html#TT_APPLE_ID_XXX">TT_APPLE_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_MAC_ID_XXX">TT_MAC_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_ISO_ID_XXX">TT_ISO_ID_XXX</a>, <a href="ft2-truetype_tables.html#TT_MS_ID_XXX">TT_MS_ID_XXX</a>, and <a href="ft2-truetype_tables.html#TT_ADOBE_ID_XXX">TT_ADOBE_ID_XXX</a> for possible values.</p>
144 <tr><td class="val" id="language_id">language_id</td><td class="desc">
145 <p>The language ID for ‘string’. See <a href="ft2-truetype_tables.html#TT_MAC_LANGID_XXX">TT_MAC_LANGID_XXX</a> and <a href="ft2-truetype_tables.html#TT_MS_LANGID_XXX">TT_MS_LANGID_XXX</a> for possible values.</p>
146 <p>Registered OpenType values for ‘language_id’ are always smaller than 0x8000; values equal or larger than 0x8000 usually indicate a language tag string (introduced in OpenType version 1.6). Use function <a href="ft2-sfnt_names.html#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a> with ‘language_id’ as its argument to retrieve the associated language tag.</p>
148 <tr><td class="val" id="name_id">name_id</td><td class="desc">
149 <p>An identifier for ‘string’. See <a href="ft2-truetype_tables.html#TT_NAME_ID_XXX">TT_NAME_ID_XXX</a> for possible values.</p>
151 <tr><td class="val" id="string">string</td><td class="desc">
152 <p>The ‘name’ string. Note that its format differs depending on the (platform,encoding) pair, being either a string of bytes (without a terminating NULL byte) or containing UTF-16BE entities.</p>
154 <tr><td class="val" id="string_len">string_len</td><td class="desc">
155 <p>The length of ‘string’ in bytes.</p>
160 <p>Please refer to the TrueType or OpenType specification for more details.</p>
163 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
165 <div class="section">
166 <h3 id="FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</h3>
167 <p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
169 FT_EXPORT( <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> )
170 <b>FT_Get_Sfnt_Name_Count</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face );
173 <p>Retrieve the number of name strings in the SFNT ‘name’ table.</p>
176 <table class="fields">
177 <tr><td class="val" id="face">face</td><td class="desc">
178 <p>A handle to the source face.</p>
183 <p>The number of strings in the ‘name’ table.</p>
186 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
188 <div class="section">
189 <h3 id="FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</h3>
190 <p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
192 FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
193 <b>FT_Get_Sfnt_Name</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
194 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> idx,
195 <a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a> *aname );
198 <p>Retrieve a string of the SFNT ‘name’ table for a given index.</p>
201 <table class="fields">
202 <tr><td class="val" id="face">face</td><td class="desc">
203 <p>A handle to the source face.</p>
205 <tr><td class="val" id="idx">idx</td><td class="desc">
206 <p>The index of the ‘name’ string.</p>
211 <table class="fields">
212 <tr><td class="val" id="aname">aname</td><td class="desc">
213 <p>The indexed <a href="ft2-sfnt_names.html#FT_SfntName">FT_SfntName</a> structure.</p>
218 <p>FreeType error code. 0 means success.</p>
221 <p>The ‘string’ array returned in the ‘aname’ structure is not null-terminated. Note that you don't have to deallocate ‘string’ by yourself; FreeType takes care of it if you call <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
222 <p>Use <a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name_Count">FT_Get_Sfnt_Name_Count</a> to get the total number of available ‘name’ table entries, then do a loop until you get the right platform, encoding, and name ID.</p>
223 <p>‘name’ table format 1 entries can use language tags also, see <a href="ft2-sfnt_names.html#FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</a>.</p>
226 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
228 <div class="section">
229 <h3 id="FT_SfntLangTag">FT_SfntLangTag</h3>
230 <p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
232 <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_SfntLangTag_
234 <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a>* string; /* this string is *not* null-terminated! */
235 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> string_len; /* in bytes */
237 } <b>FT_SfntLangTag</b>;
240 <p>A structure to model a language tag entry from an SFNT ‘name’ table.</p>
243 <table class="fields">
244 <tr><td class="val" id="string">string</td><td class="desc">
245 <p>The language tag string, encoded in UTF-16BE (without trailing NULL bytes).</p>
247 <tr><td class="val" id="string_len">string_len</td><td class="desc">
248 <p>The length of ‘string’ in <b>bytes</b>.</p>
253 <p>Please refer to the TrueType or OpenType specification for more details.</p>
259 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
261 <div class="section">
262 <h3 id="FT_Get_Sfnt_LangTag">FT_Get_Sfnt_LangTag</h3>
263 <p>Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h).</p>
265 FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
266 <b>FT_Get_Sfnt_LangTag</b>( <a href="ft2-base_interface.html#FT_Face">FT_Face</a> face,
267 <a href="ft2-basic_types.html#FT_UInt">FT_UInt</a> langID,
268 <a href="ft2-sfnt_names.html#FT_SfntLangTag">FT_SfntLangTag</a> *alangTag );
271 <p>Retrieve the language tag associated with a language ID of an SFNT ‘name’ table entry.</p>
274 <table class="fields">
275 <tr><td class="val" id="face">face</td><td class="desc">
276 <p>A handle to the source face.</p>
278 <tr><td class="val" id="langID">langID</td><td class="desc">
279 <p>The language ID, as returned by <a href="ft2-sfnt_names.html#FT_Get_Sfnt_Name">FT_Get_Sfnt_Name</a>. This is always a value larger than 0x8000.</p>
284 <table class="fields">
285 <tr><td class="val" id="alangTag">alangTag</td><td class="desc">
286 <p>The language tag associated with the ‘name’ table entry's language ID.</p>
291 <p>FreeType error code. 0 means success.</p>
294 <p>The ‘string’ array returned in the ‘alangTag’ structure is not null-terminated. Note that you don't have to deallocate ‘string’ by yourself; FreeType takes care of it if you call <a href="ft2-base_interface.html#FT_Done_Face">FT_Done_Face</a>.</p>
295 <p>Only ‘name’ table format 1 supports language tags. For format 0 tables, this function always returns FT_Err_Invalid_Table. For invalid format 1 language ID values, FT_Err_Invalid_Argument is returned.</p>
301 <table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>