🛠️🐜 Antkeeper superbuild with dependencies included https://antkeeper.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

2361 lines
68 KiB

  1. <!doctype html>
  2. <html lang="en" class="no-js">
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width,initial-scale=1">
  6. <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
  7. <meta name="author" content="FreeType Contributors">
  8. <link rel="icon" href="images/favico.ico">
  9. <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9">
  10. <title>Basic Data Types - FreeType-2.11.0 API Reference</title>
  11. <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
  12. <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
  13. <meta name="theme-color" content="#4cae4f">
  14. <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
  15. <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
  16. <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style>
  17. <link rel="stylesheet" href="stylesheets/extra.css">
  18. </head>
  19. <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
  20. <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
  21. <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
  22. <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
  23. <label class="md-overlay" for="__drawer"></label>
  24. <div data-md-component="skip">
  25. <a href="#basic-data-types" class="md-skip">
  26. Skip to content
  27. </a>
  28. </div>
  29. <div data-md-component="announce">
  30. </div>
  31. <header class="md-header" data-md-component="header">
  32. <nav class="md-header__inner md-grid" aria-label="Header">
  33. <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-header__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
  34. <img src="images/favico.ico" alt="logo">
  35. </a>
  36. <label class="md-header__button md-icon" for="__drawer">
  37. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
  38. </label>
  39. <div class="md-header__title" data-md-component="header-title">
  40. <div class="md-header__ellipsis">
  41. <div class="md-header__topic">
  42. <span class="md-ellipsis">
  43. FreeType-2.11.0 API Reference
  44. </span>
  45. </div>
  46. <div class="md-header__topic" data-md-component="header-topic">
  47. <span class="md-ellipsis">
  48. Basic Data Types
  49. </span>
  50. </div>
  51. </div>
  52. </div>
  53. <label class="md-header__button md-icon" for="__search">
  54. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  55. </label>
  56. <div class="md-search" data-md-component="search" role="dialog">
  57. <label class="md-search__overlay" for="__search"></label>
  58. <div class="md-search__inner" role="search">
  59. <form class="md-search__form" name="search">
  60. <input type="text" class="md-search__input" name="query" aria-label="Search" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="search-query" data-md-state="active" required>
  61. <label class="md-search__icon md-icon" for="__search">
  62. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M9.5 3A6.5 6.5 0 0 1 16 9.5c0 1.61-.59 3.09-1.56 4.23l.27.27h.79l5 5-1.5 1.5-5-5v-.79l-.27-.27A6.516 6.516 0 0 1 9.5 16 6.5 6.5 0 0 1 3 9.5 6.5 6.5 0 0 1 9.5 3m0 2C7 5 5 7 5 9.5S7 14 9.5 14 14 12 14 9.5 12 5 9.5 5z"/></svg>
  63. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  64. </label>
  65. <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
  66. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
  67. </button>
  68. </form>
  69. <div class="md-search__output">
  70. <div class="md-search__scrollwrap" data-md-scrollfix>
  71. <div class="md-search-result" data-md-component="search-result">
  72. <div class="md-search-result__meta">
  73. Initializing search
  74. </div>
  75. <ol class="md-search-result__list"></ol>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </div>
  81. </nav>
  82. </header>
  83. <div class="md-container" data-md-component="container">
  84. <main class="md-main" data-md-component="main">
  85. <div class="md-main__inner md-grid">
  86. <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
  87. <div class="md-sidebar__scrollwrap">
  88. <div class="md-sidebar__inner">
  89. <nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
  90. <label class="md-nav__title" for="__drawer">
  91. <a href="index.html" title="FreeType-2.11.0 API Reference" class="md-nav__button md-logo" aria-label="FreeType-2.11.0 API Reference" data-md-component="logo">
  92. <img src="images/favico.ico" alt="logo">
  93. </a>
  94. FreeType-2.11.0 API Reference
  95. </label>
  96. <ul class="md-nav__list" data-md-scrollfix>
  97. <li class="md-nav__item">
  98. <a href="index.html" class="md-nav__link">
  99. TOC
  100. </a>
  101. </li>
  102. <li class="md-nav__item">
  103. <a href="ft2-index.html" class="md-nav__link">
  104. Index
  105. </a>
  106. </li>
  107. <li class="md-nav__item md-nav__item--nested">
  108. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
  109. <label class="md-nav__link" for="__nav_3">
  110. General Remarks
  111. <span class="md-nav__icon md-icon"></span>
  112. </label>
  113. <nav class="md-nav" aria-label="General Remarks" data-md-level="1">
  114. <label class="md-nav__title" for="__nav_3">
  115. <span class="md-nav__icon md-icon"></span>
  116. General Remarks
  117. </label>
  118. <ul class="md-nav__list" data-md-scrollfix>
  119. <li class="md-nav__item">
  120. <a href="ft2-preamble.html" class="md-nav__link">
  121. Preamble
  122. </a>
  123. </li>
  124. <li class="md-nav__item">
  125. <a href="ft2-header_inclusion.html" class="md-nav__link">
  126. FreeType's header inclusion scheme
  127. </a>
  128. </li>
  129. <li class="md-nav__item">
  130. <a href="ft2-user_allocation.html" class="md-nav__link">
  131. User allocation
  132. </a>
  133. </li>
  134. </ul>
  135. </nav>
  136. </li>
  137. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  138. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
  139. <label class="md-nav__link" for="__nav_4">
  140. Core API
  141. <span class="md-nav__icon md-icon"></span>
  142. </label>
  143. <nav class="md-nav" aria-label="Core API" data-md-level="1">
  144. <label class="md-nav__title" for="__nav_4">
  145. <span class="md-nav__icon md-icon"></span>
  146. Core API
  147. </label>
  148. <ul class="md-nav__list" data-md-scrollfix>
  149. <li class="md-nav__item">
  150. <a href="ft2-version.html" class="md-nav__link">
  151. FreeType Version
  152. </a>
  153. </li>
  154. <li class="md-nav__item md-nav__item--active">
  155. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  156. <label class="md-nav__link md-nav__link--active" for="__toc">
  157. Basic Data Types
  158. <span class="md-nav__icon md-icon"></span>
  159. </label>
  160. <a href="ft2-basic_types.html" class="md-nav__link md-nav__link--active">
  161. Basic Data Types
  162. </a>
  163. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  164. <label class="md-nav__title" for="__toc">
  165. <span class="md-nav__icon md-icon"></span>
  166. Table of contents
  167. </label>
  168. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  169. <li class="md-nav__item">
  170. <a href="#synopsis" class="md-nav__link">
  171. Synopsis
  172. </a>
  173. </li>
  174. <li class="md-nav__item">
  175. <a href="#ft_byte" class="md-nav__link">
  176. FT_Byte
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="#ft_bytes" class="md-nav__link">
  181. FT_Bytes
  182. </a>
  183. </li>
  184. <li class="md-nav__item">
  185. <a href="#ft_char" class="md-nav__link">
  186. FT_Char
  187. </a>
  188. </li>
  189. <li class="md-nav__item">
  190. <a href="#ft_int" class="md-nav__link">
  191. FT_Int
  192. </a>
  193. </li>
  194. <li class="md-nav__item">
  195. <a href="#ft_uint" class="md-nav__link">
  196. FT_UInt
  197. </a>
  198. </li>
  199. <li class="md-nav__item">
  200. <a href="#ft_int16" class="md-nav__link">
  201. FT_Int16
  202. </a>
  203. </li>
  204. <li class="md-nav__item">
  205. <a href="#ft_uint16" class="md-nav__link">
  206. FT_UInt16
  207. </a>
  208. </li>
  209. <li class="md-nav__item">
  210. <a href="#ft_int32" class="md-nav__link">
  211. FT_Int32
  212. </a>
  213. </li>
  214. <li class="md-nav__item">
  215. <a href="#ft_uint32" class="md-nav__link">
  216. FT_UInt32
  217. </a>
  218. </li>
  219. <li class="md-nav__item">
  220. <a href="#ft_int64" class="md-nav__link">
  221. FT_Int64
  222. </a>
  223. </li>
  224. <li class="md-nav__item">
  225. <a href="#ft_uint64" class="md-nav__link">
  226. FT_UInt64
  227. </a>
  228. </li>
  229. <li class="md-nav__item">
  230. <a href="#ft_short" class="md-nav__link">
  231. FT_Short
  232. </a>
  233. </li>
  234. <li class="md-nav__item">
  235. <a href="#ft_ushort" class="md-nav__link">
  236. FT_UShort
  237. </a>
  238. </li>
  239. <li class="md-nav__item">
  240. <a href="#ft_long" class="md-nav__link">
  241. FT_Long
  242. </a>
  243. </li>
  244. <li class="md-nav__item">
  245. <a href="#ft_ulong" class="md-nav__link">
  246. FT_ULong
  247. </a>
  248. </li>
  249. <li class="md-nav__item">
  250. <a href="#ft_bool" class="md-nav__link">
  251. FT_Bool
  252. </a>
  253. </li>
  254. <li class="md-nav__item">
  255. <a href="#ft_offset" class="md-nav__link">
  256. FT_Offset
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="#ft_ptrdist" class="md-nav__link">
  261. FT_PtrDist
  262. </a>
  263. </li>
  264. <li class="md-nav__item">
  265. <a href="#ft_string" class="md-nav__link">
  266. FT_String
  267. </a>
  268. </li>
  269. <li class="md-nav__item">
  270. <a href="#ft_tag" class="md-nav__link">
  271. FT_Tag
  272. </a>
  273. </li>
  274. <li class="md-nav__item">
  275. <a href="#ft_error" class="md-nav__link">
  276. FT_Error
  277. </a>
  278. </li>
  279. <li class="md-nav__item">
  280. <a href="#ft_fixed" class="md-nav__link">
  281. FT_Fixed
  282. </a>
  283. </li>
  284. <li class="md-nav__item">
  285. <a href="#ft_pointer" class="md-nav__link">
  286. FT_Pointer
  287. </a>
  288. </li>
  289. <li class="md-nav__item">
  290. <a href="#ft_pos" class="md-nav__link">
  291. FT_Pos
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="#ft_vector" class="md-nav__link">
  296. FT_Vector
  297. </a>
  298. </li>
  299. <li class="md-nav__item">
  300. <a href="#ft_bbox" class="md-nav__link">
  301. FT_BBox
  302. </a>
  303. </li>
  304. <li class="md-nav__item">
  305. <a href="#ft_matrix" class="md-nav__link">
  306. FT_Matrix
  307. </a>
  308. </li>
  309. <li class="md-nav__item">
  310. <a href="#ft_fword" class="md-nav__link">
  311. FT_FWord
  312. </a>
  313. </li>
  314. <li class="md-nav__item">
  315. <a href="#ft_ufword" class="md-nav__link">
  316. FT_UFWord
  317. </a>
  318. </li>
  319. <li class="md-nav__item">
  320. <a href="#ft_f2dot14" class="md-nav__link">
  321. FT_F2Dot14
  322. </a>
  323. </li>
  324. <li class="md-nav__item">
  325. <a href="#ft_unitvector" class="md-nav__link">
  326. FT_UnitVector
  327. </a>
  328. </li>
  329. <li class="md-nav__item">
  330. <a href="#ft_f26dot6" class="md-nav__link">
  331. FT_F26Dot6
  332. </a>
  333. </li>
  334. <li class="md-nav__item">
  335. <a href="#ft_data" class="md-nav__link">
  336. FT_Data
  337. </a>
  338. </li>
  339. <li class="md-nav__item">
  340. <a href="#ft_make_tag" class="md-nav__link">
  341. FT_MAKE_TAG
  342. </a>
  343. </li>
  344. <li class="md-nav__item">
  345. <a href="#ft_generic" class="md-nav__link">
  346. FT_Generic
  347. </a>
  348. </li>
  349. <li class="md-nav__item">
  350. <a href="#ft_generic_finalizer" class="md-nav__link">
  351. FT_Generic_Finalizer
  352. </a>
  353. </li>
  354. <li class="md-nav__item">
  355. <a href="#ft_bitmap" class="md-nav__link">
  356. FT_Bitmap
  357. </a>
  358. </li>
  359. <li class="md-nav__item">
  360. <a href="#ft_pixel_mode" class="md-nav__link">
  361. FT_Pixel_Mode
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="#ft_glyph_format" class="md-nav__link">
  366. FT_Glyph_Format
  367. </a>
  368. </li>
  369. <li class="md-nav__item">
  370. <a href="#ft_image_tag" class="md-nav__link">
  371. FT_IMAGE_TAG
  372. </a>
  373. </li>
  374. </ul>
  375. </nav>
  376. </li>
  377. <li class="md-nav__item">
  378. <a href="ft2-base_interface.html" class="md-nav__link">
  379. Base Interface
  380. </a>
  381. </li>
  382. <li class="md-nav__item">
  383. <a href="ft2-glyph_variants.html" class="md-nav__link">
  384. Unicode Variation Sequences
  385. </a>
  386. </li>
  387. <li class="md-nav__item">
  388. <a href="ft2-color_management.html" class="md-nav__link">
  389. Glyph Color Management
  390. </a>
  391. </li>
  392. <li class="md-nav__item">
  393. <a href="ft2-layer_management.html" class="md-nav__link">
  394. Glyph Layer Management
  395. </a>
  396. </li>
  397. <li class="md-nav__item">
  398. <a href="ft2-glyph_management.html" class="md-nav__link">
  399. Glyph Management
  400. </a>
  401. </li>
  402. <li class="md-nav__item">
  403. <a href="ft2-mac_specific.html" class="md-nav__link">
  404. Mac Specific Interface
  405. </a>
  406. </li>
  407. <li class="md-nav__item">
  408. <a href="ft2-sizes_management.html" class="md-nav__link">
  409. Size Management
  410. </a>
  411. </li>
  412. <li class="md-nav__item">
  413. <a href="ft2-header_file_macros.html" class="md-nav__link">
  414. Header File Macros
  415. </a>
  416. </li>
  417. </ul>
  418. </nav>
  419. </li>
  420. <li class="md-nav__item md-nav__item--nested">
  421. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
  422. <label class="md-nav__link" for="__nav_5">
  423. Format-Specific API
  424. <span class="md-nav__icon md-icon"></span>
  425. </label>
  426. <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
  427. <label class="md-nav__title" for="__nav_5">
  428. <span class="md-nav__icon md-icon"></span>
  429. Format-Specific API
  430. </label>
  431. <ul class="md-nav__list" data-md-scrollfix>
  432. <li class="md-nav__item">
  433. <a href="ft2-multiple_masters.html" class="md-nav__link">
  434. Multiple Masters
  435. </a>
  436. </li>
  437. <li class="md-nav__item">
  438. <a href="ft2-truetype_tables.html" class="md-nav__link">
  439. TrueType Tables
  440. </a>
  441. </li>
  442. <li class="md-nav__item">
  443. <a href="ft2-type1_tables.html" class="md-nav__link">
  444. Type 1 Tables
  445. </a>
  446. </li>
  447. <li class="md-nav__item">
  448. <a href="ft2-sfnt_names.html" class="md-nav__link">
  449. SFNT Names
  450. </a>
  451. </li>
  452. <li class="md-nav__item">
  453. <a href="ft2-bdf_fonts.html" class="md-nav__link">
  454. BDF and PCF Files
  455. </a>
  456. </li>
  457. <li class="md-nav__item">
  458. <a href="ft2-cid_fonts.html" class="md-nav__link">
  459. CID Fonts
  460. </a>
  461. </li>
  462. <li class="md-nav__item">
  463. <a href="ft2-pfr_fonts.html" class="md-nav__link">
  464. PFR Fonts
  465. </a>
  466. </li>
  467. <li class="md-nav__item">
  468. <a href="ft2-winfnt_fonts.html" class="md-nav__link">
  469. Window FNT Files
  470. </a>
  471. </li>
  472. <li class="md-nav__item">
  473. <a href="ft2-font_formats.html" class="md-nav__link">
  474. Font Formats
  475. </a>
  476. </li>
  477. <li class="md-nav__item">
  478. <a href="ft2-gasp_table.html" class="md-nav__link">
  479. Gasp Table
  480. </a>
  481. </li>
  482. </ul>
  483. </nav>
  484. </li>
  485. <li class="md-nav__item md-nav__item--nested">
  486. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
  487. <label class="md-nav__link" for="__nav_6">
  488. Controlling FreeType Modules
  489. <span class="md-nav__icon md-icon"></span>
  490. </label>
  491. <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
  492. <label class="md-nav__title" for="__nav_6">
  493. <span class="md-nav__icon md-icon"></span>
  494. Controlling FreeType Modules
  495. </label>
  496. <ul class="md-nav__list" data-md-scrollfix>
  497. <li class="md-nav__item">
  498. <a href="ft2-auto_hinter.html" class="md-nav__link">
  499. The auto-hinter
  500. </a>
  501. </li>
  502. <li class="md-nav__item">
  503. <a href="ft2-cff_driver.html" class="md-nav__link">
  504. The CFF driver
  505. </a>
  506. </li>
  507. <li class="md-nav__item">
  508. <a href="ft2-t1_cid_driver.html" class="md-nav__link">
  509. The Type 1 and CID drivers
  510. </a>
  511. </li>
  512. <li class="md-nav__item">
  513. <a href="ft2-tt_driver.html" class="md-nav__link">
  514. The TrueType driver
  515. </a>
  516. </li>
  517. <li class="md-nav__item">
  518. <a href="ft2-pcf_driver.html" class="md-nav__link">
  519. The PCF driver
  520. </a>
  521. </li>
  522. <li class="md-nav__item">
  523. <a href="ft2-properties.html" class="md-nav__link">
  524. Driver properties
  525. </a>
  526. </li>
  527. <li class="md-nav__item">
  528. <a href="ft2-parameter_tags.html" class="md-nav__link">
  529. Parameter Tags
  530. </a>
  531. </li>
  532. <li class="md-nav__item">
  533. <a href="ft2-lcd_rendering.html" class="md-nav__link">
  534. Subpixel Rendering
  535. </a>
  536. </li>
  537. </ul>
  538. </nav>
  539. </li>
  540. <li class="md-nav__item md-nav__item--nested">
  541. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
  542. <label class="md-nav__link" for="__nav_7">
  543. Cache Sub-System
  544. <span class="md-nav__icon md-icon"></span>
  545. </label>
  546. <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
  547. <label class="md-nav__title" for="__nav_7">
  548. <span class="md-nav__icon md-icon"></span>
  549. Cache Sub-System
  550. </label>
  551. <ul class="md-nav__list" data-md-scrollfix>
  552. <li class="md-nav__item">
  553. <a href="ft2-cache_subsystem.html" class="md-nav__link">
  554. Cache Sub-System
  555. </a>
  556. </li>
  557. </ul>
  558. </nav>
  559. </li>
  560. <li class="md-nav__item md-nav__item--nested">
  561. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
  562. <label class="md-nav__link" for="__nav_8">
  563. Support API
  564. <span class="md-nav__icon md-icon"></span>
  565. </label>
  566. <nav class="md-nav" aria-label="Support API" data-md-level="1">
  567. <label class="md-nav__title" for="__nav_8">
  568. <span class="md-nav__icon md-icon"></span>
  569. Support API
  570. </label>
  571. <ul class="md-nav__list" data-md-scrollfix>
  572. <li class="md-nav__item">
  573. <a href="ft2-computations.html" class="md-nav__link">
  574. Computations
  575. </a>
  576. </li>
  577. <li class="md-nav__item">
  578. <a href="ft2-list_processing.html" class="md-nav__link">
  579. List Processing
  580. </a>
  581. </li>
  582. <li class="md-nav__item">
  583. <a href="ft2-outline_processing.html" class="md-nav__link">
  584. Outline Processing
  585. </a>
  586. </li>
  587. <li class="md-nav__item">
  588. <a href="ft2-quick_advance.html" class="md-nav__link">
  589. Quick retrieval of advance values
  590. </a>
  591. </li>
  592. <li class="md-nav__item">
  593. <a href="ft2-bitmap_handling.html" class="md-nav__link">
  594. Bitmap Handling
  595. </a>
  596. </li>
  597. <li class="md-nav__item">
  598. <a href="ft2-raster.html" class="md-nav__link">
  599. Scanline Converter
  600. </a>
  601. </li>
  602. <li class="md-nav__item">
  603. <a href="ft2-glyph_stroker.html" class="md-nav__link">
  604. Glyph Stroker
  605. </a>
  606. </li>
  607. <li class="md-nav__item">
  608. <a href="ft2-system_interface.html" class="md-nav__link">
  609. System Interface
  610. </a>
  611. </li>
  612. <li class="md-nav__item">
  613. <a href="ft2-module_management.html" class="md-nav__link">
  614. Module Management
  615. </a>
  616. </li>
  617. <li class="md-nav__item">
  618. <a href="ft2-gzip.html" class="md-nav__link">
  619. GZIP Streams
  620. </a>
  621. </li>
  622. <li class="md-nav__item">
  623. <a href="ft2-lzw.html" class="md-nav__link">
  624. LZW Streams
  625. </a>
  626. </li>
  627. <li class="md-nav__item">
  628. <a href="ft2-bzip2.html" class="md-nav__link">
  629. BZIP2 Streams
  630. </a>
  631. </li>
  632. <li class="md-nav__item">
  633. <a href="ft2-debugging_apis.html" class="md-nav__link">
  634. External Debugging APIs
  635. </a>
  636. </li>
  637. </ul>
  638. </nav>
  639. </li>
  640. <li class="md-nav__item md-nav__item--nested">
  641. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
  642. <label class="md-nav__link" for="__nav_9">
  643. Error Codes
  644. <span class="md-nav__icon md-icon"></span>
  645. </label>
  646. <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
  647. <label class="md-nav__title" for="__nav_9">
  648. <span class="md-nav__icon md-icon"></span>
  649. Error Codes
  650. </label>
  651. <ul class="md-nav__list" data-md-scrollfix>
  652. <li class="md-nav__item">
  653. <a href="ft2-error_enumerations.html" class="md-nav__link">
  654. Error Enumerations
  655. </a>
  656. </li>
  657. <li class="md-nav__item">
  658. <a href="ft2-error_code_values.html" class="md-nav__link">
  659. Error Code Values
  660. </a>
  661. </li>
  662. </ul>
  663. </nav>
  664. </li>
  665. <li class="md-nav__item md-nav__item--nested">
  666. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
  667. <label class="md-nav__link" for="__nav_10">
  668. Miscellaneous
  669. <span class="md-nav__icon md-icon"></span>
  670. </label>
  671. <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
  672. <label class="md-nav__title" for="__nav_10">
  673. <span class="md-nav__icon md-icon"></span>
  674. Miscellaneous
  675. </label>
  676. <ul class="md-nav__list" data-md-scrollfix>
  677. <li class="md-nav__item">
  678. <a href="ft2-gx_validation.html" class="md-nav__link">
  679. TrueTypeGX/AAT Validation
  680. </a>
  681. </li>
  682. <li class="md-nav__item">
  683. <a href="ft2-incremental.html" class="md-nav__link">
  684. Incremental Loading
  685. </a>
  686. </li>
  687. <li class="md-nav__item">
  688. <a href="ft2-truetype_engine.html" class="md-nav__link">
  689. The TrueType Engine
  690. </a>
  691. </li>
  692. <li class="md-nav__item">
  693. <a href="ft2-ot_validation.html" class="md-nav__link">
  694. OpenType Validation
  695. </a>
  696. </li>
  697. </ul>
  698. </nav>
  699. </li>
  700. </ul>
  701. </nav>
  702. </div>
  703. </div>
  704. </div>
  705. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  706. <div class="md-sidebar__scrollwrap">
  707. <div class="md-sidebar__inner">
  708. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  709. <label class="md-nav__title" for="__toc">
  710. <span class="md-nav__icon md-icon"></span>
  711. Table of contents
  712. </label>
  713. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  714. <li class="md-nav__item">
  715. <a href="#synopsis" class="md-nav__link">
  716. Synopsis
  717. </a>
  718. </li>
  719. <li class="md-nav__item">
  720. <a href="#ft_byte" class="md-nav__link">
  721. FT_Byte
  722. </a>
  723. </li>
  724. <li class="md-nav__item">
  725. <a href="#ft_bytes" class="md-nav__link">
  726. FT_Bytes
  727. </a>
  728. </li>
  729. <li class="md-nav__item">
  730. <a href="#ft_char" class="md-nav__link">
  731. FT_Char
  732. </a>
  733. </li>
  734. <li class="md-nav__item">
  735. <a href="#ft_int" class="md-nav__link">
  736. FT_Int
  737. </a>
  738. </li>
  739. <li class="md-nav__item">
  740. <a href="#ft_uint" class="md-nav__link">
  741. FT_UInt
  742. </a>
  743. </li>
  744. <li class="md-nav__item">
  745. <a href="#ft_int16" class="md-nav__link">
  746. FT_Int16
  747. </a>
  748. </li>
  749. <li class="md-nav__item">
  750. <a href="#ft_uint16" class="md-nav__link">
  751. FT_UInt16
  752. </a>
  753. </li>
  754. <li class="md-nav__item">
  755. <a href="#ft_int32" class="md-nav__link">
  756. FT_Int32
  757. </a>
  758. </li>
  759. <li class="md-nav__item">
  760. <a href="#ft_uint32" class="md-nav__link">
  761. FT_UInt32
  762. </a>
  763. </li>
  764. <li class="md-nav__item">
  765. <a href="#ft_int64" class="md-nav__link">
  766. FT_Int64
  767. </a>
  768. </li>
  769. <li class="md-nav__item">
  770. <a href="#ft_uint64" class="md-nav__link">
  771. FT_UInt64
  772. </a>
  773. </li>
  774. <li class="md-nav__item">
  775. <a href="#ft_short" class="md-nav__link">
  776. FT_Short
  777. </a>
  778. </li>
  779. <li class="md-nav__item">
  780. <a href="#ft_ushort" class="md-nav__link">
  781. FT_UShort
  782. </a>
  783. </li>
  784. <li class="md-nav__item">
  785. <a href="#ft_long" class="md-nav__link">
  786. FT_Long
  787. </a>
  788. </li>
  789. <li class="md-nav__item">
  790. <a href="#ft_ulong" class="md-nav__link">
  791. FT_ULong
  792. </a>
  793. </li>
  794. <li class="md-nav__item">
  795. <a href="#ft_bool" class="md-nav__link">
  796. FT_Bool
  797. </a>
  798. </li>
  799. <li class="md-nav__item">
  800. <a href="#ft_offset" class="md-nav__link">
  801. FT_Offset
  802. </a>
  803. </li>
  804. <li class="md-nav__item">
  805. <a href="#ft_ptrdist" class="md-nav__link">
  806. FT_PtrDist
  807. </a>
  808. </li>
  809. <li class="md-nav__item">
  810. <a href="#ft_string" class="md-nav__link">
  811. FT_String
  812. </a>
  813. </li>
  814. <li class="md-nav__item">
  815. <a href="#ft_tag" class="md-nav__link">
  816. FT_Tag
  817. </a>
  818. </li>
  819. <li class="md-nav__item">
  820. <a href="#ft_error" class="md-nav__link">
  821. FT_Error
  822. </a>
  823. </li>
  824. <li class="md-nav__item">
  825. <a href="#ft_fixed" class="md-nav__link">
  826. FT_Fixed
  827. </a>
  828. </li>
  829. <li class="md-nav__item">
  830. <a href="#ft_pointer" class="md-nav__link">
  831. FT_Pointer
  832. </a>
  833. </li>
  834. <li class="md-nav__item">
  835. <a href="#ft_pos" class="md-nav__link">
  836. FT_Pos
  837. </a>
  838. </li>
  839. <li class="md-nav__item">
  840. <a href="#ft_vector" class="md-nav__link">
  841. FT_Vector
  842. </a>
  843. </li>
  844. <li class="md-nav__item">
  845. <a href="#ft_bbox" class="md-nav__link">
  846. FT_BBox
  847. </a>
  848. </li>
  849. <li class="md-nav__item">
  850. <a href="#ft_matrix" class="md-nav__link">
  851. FT_Matrix
  852. </a>
  853. </li>
  854. <li class="md-nav__item">
  855. <a href="#ft_fword" class="md-nav__link">
  856. FT_FWord
  857. </a>
  858. </li>
  859. <li class="md-nav__item">
  860. <a href="#ft_ufword" class="md-nav__link">
  861. FT_UFWord
  862. </a>
  863. </li>
  864. <li class="md-nav__item">
  865. <a href="#ft_f2dot14" class="md-nav__link">
  866. FT_F2Dot14
  867. </a>
  868. </li>
  869. <li class="md-nav__item">
  870. <a href="#ft_unitvector" class="md-nav__link">
  871. FT_UnitVector
  872. </a>
  873. </li>
  874. <li class="md-nav__item">
  875. <a href="#ft_f26dot6" class="md-nav__link">
  876. FT_F26Dot6
  877. </a>
  878. </li>
  879. <li class="md-nav__item">
  880. <a href="#ft_data" class="md-nav__link">
  881. FT_Data
  882. </a>
  883. </li>
  884. <li class="md-nav__item">
  885. <a href="#ft_make_tag" class="md-nav__link">
  886. FT_MAKE_TAG
  887. </a>
  888. </li>
  889. <li class="md-nav__item">
  890. <a href="#ft_generic" class="md-nav__link">
  891. FT_Generic
  892. </a>
  893. </li>
  894. <li class="md-nav__item">
  895. <a href="#ft_generic_finalizer" class="md-nav__link">
  896. FT_Generic_Finalizer
  897. </a>
  898. </li>
  899. <li class="md-nav__item">
  900. <a href="#ft_bitmap" class="md-nav__link">
  901. FT_Bitmap
  902. </a>
  903. </li>
  904. <li class="md-nav__item">
  905. <a href="#ft_pixel_mode" class="md-nav__link">
  906. FT_Pixel_Mode
  907. </a>
  908. </li>
  909. <li class="md-nav__item">
  910. <a href="#ft_glyph_format" class="md-nav__link">
  911. FT_Glyph_Format
  912. </a>
  913. </li>
  914. <li class="md-nav__item">
  915. <a href="#ft_image_tag" class="md-nav__link">
  916. FT_IMAGE_TAG
  917. </a>
  918. </li>
  919. </ul>
  920. </nav>
  921. </div>
  922. </div>
  923. </div>
  924. <div class="md-content" data-md-component="content">
  925. <article class="md-content__inner md-typeset">
  926. <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#core-api">Core API</a> &raquo; Basic Data Types</p>
  927. <hr />
  928. <h1 id="basic-data-types">Basic Data Types<a class="headerlink" href="#basic-data-types" title="Permanent link">&para;</a></h1>
  929. <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
  930. <p>This section contains the basic data types defined by FreeType&nbsp;2, ranging from simple scalar types to bitmap descriptors. More font-specific structures are defined in a different section.</p>
  931. <h2 id="ft_byte">FT_Byte<a class="headerlink" href="#ft_byte" title="Permanent link">&para;</a></h2>
  932. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  933. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <b>FT_Byte</b>;
  934. </code></pre></div>
  935. <p>A simple typedef for the <em>unsigned</em> char type.</p>
  936. <hr>
  937. <h2 id="ft_bytes">FT_Bytes<a class="headerlink" href="#ft_bytes" title="Permanent link">&para;</a></h2>
  938. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  939. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* <b>FT_Bytes</b>;
  940. </code></pre></div>
  941. <p>A typedef for constant memory areas.</p>
  942. <hr>
  943. <h2 id="ft_char">FT_Char<a class="headerlink" href="#ft_char" title="Permanent link">&para;</a></h2>
  944. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  945. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">char</span> <b>FT_Char</b>;
  946. </code></pre></div>
  947. <p>A simple typedef for the <em>signed</em> char type.</p>
  948. <hr>
  949. <h2 id="ft_int">FT_Int<a class="headerlink" href="#ft_int" title="Permanent link">&para;</a></h2>
  950. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  951. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">int</span> <b>FT_Int</b>;
  952. </code></pre></div>
  953. <p>A typedef for the int type.</p>
  954. <hr>
  955. <h2 id="ft_uint">FT_UInt<a class="headerlink" href="#ft_uint" title="Permanent link">&para;</a></h2>
  956. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  957. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <b>FT_UInt</b>;
  958. </code></pre></div>
  959. <p>A typedef for the unsigned int type.</p>
  960. <hr>
  961. <h2 id="ft_int16">FT_Int16<a class="headerlink" href="#ft_int16" title="Permanent link">&para;</a></h2>
  962. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span> <b>FT_Int16</b>;
  963. </code></pre></div>
  964. <p>A typedef for a 16bit signed integer type.</p>
  965. <hr>
  966. <h2 id="ft_uint16">FT_UInt16<a class="headerlink" href="#ft_uint16" title="Permanent link">&para;</a></h2>
  967. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <b>FT_UInt16</b>;
  968. </code></pre></div>
  969. <p>A typedef for a 16bit unsigned integer type.</p>
  970. <hr>
  971. <h2 id="ft_int32">FT_Int32<a class="headerlink" href="#ft_int32" title="Permanent link">&para;</a></h2>
  972. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX <b>FT_Int32</b>;
  973. </code></pre></div>
  974. <p>A typedef for a 32bit signed integer type. The size depends on the configuration.</p>
  975. <hr>
  976. <h2 id="ft_uint32">FT_UInt32<a class="headerlink" href="#ft_uint32" title="Permanent link">&para;</a></h2>
  977. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX <b>FT_UInt32</b>;
  978. </code></pre></div>
  979. <hr>
  980. <h2 id="ft_int64">FT_Int64<a class="headerlink" href="#ft_int64" title="Permanent link">&para;</a></h2>
  981. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX <b>FT_Int64</b>;
  982. </code></pre></div>
  983. <hr>
  984. <h2 id="ft_uint64">FT_UInt64<a class="headerlink" href="#ft_uint64" title="Permanent link">&para;</a></h2>
  985. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX <b>FT_UInt64</b>;
  986. </code></pre></div>
  987. <hr>
  988. <h2 id="ft_short">FT_Short<a class="headerlink" href="#ft_short" title="Permanent link">&para;</a></h2>
  989. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  990. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span> <b>FT_Short</b>;
  991. </code></pre></div>
  992. <p>A typedef for signed short.</p>
  993. <hr>
  994. <h2 id="ft_ushort">FT_UShort<a class="headerlink" href="#ft_ushort" title="Permanent link">&para;</a></h2>
  995. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  996. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <b>FT_UShort</b>;
  997. </code></pre></div>
  998. <p>A typedef for unsigned short.</p>
  999. <hr>
  1000. <h2 id="ft_long">FT_Long<a class="headerlink" href="#ft_long" title="Permanent link">&para;</a></h2>
  1001. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1002. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span> <b>FT_Long</b>;
  1003. </code></pre></div>
  1004. <p>A typedef for signed long.</p>
  1005. <hr>
  1006. <h2 id="ft_ulong">FT_ULong<a class="headerlink" href="#ft_ulong" title="Permanent link">&para;</a></h2>
  1007. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1008. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">long</span> <b>FT_ULong</b>;
  1009. </code></pre></div>
  1010. <p>A typedef for unsigned long.</p>
  1011. <hr>
  1012. <h2 id="ft_bool">FT_Bool<a class="headerlink" href="#ft_bool" title="Permanent link">&para;</a></h2>
  1013. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1014. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">char</span> <b>FT_Bool</b>;
  1015. </code></pre></div>
  1016. <p>A typedef of unsigned char, used for simple booleans. As usual, values 1 and&nbsp;0 represent true and false, respectively.</p>
  1017. <hr>
  1018. <h2 id="ft_offset">FT_Offset<a class="headerlink" href="#ft_offset" title="Permanent link">&para;</a></h2>
  1019. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1020. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> size_t <b>FT_Offset</b>;
  1021. </code></pre></div>
  1022. <p>This is equivalent to the ANSI&nbsp;C <code>size_t</code> type, i.e., the largest <em>unsigned</em> integer type used to express a file size or position, or a memory block size.</p>
  1023. <hr>
  1024. <h2 id="ft_ptrdist">FT_PtrDist<a class="headerlink" href="#ft_ptrdist" title="Permanent link">&para;</a></h2>
  1025. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1026. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> ft_ptrdiff_t <b>FT_PtrDist</b>;
  1027. </code></pre></div>
  1028. <p>This is equivalent to the ANSI&nbsp;C <code>ptrdiff_t</code> type, i.e., the largest <em>signed</em> integer type used to express the distance between two pointers.</p>
  1029. <hr>
  1030. <h2 id="ft_string">FT_String<a class="headerlink" href="#ft_string" title="Permanent link">&para;</a></h2>
  1031. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1032. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">char</span> <b>FT_String</b>;
  1033. </code></pre></div>
  1034. <p>A simple typedef for the char type, usually used for strings.</p>
  1035. <hr>
  1036. <h2 id="ft_tag">FT_Tag<a class="headerlink" href="#ft_tag" title="Permanent link">&para;</a></h2>
  1037. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1038. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_uint32">FT_UInt32</a> <b>FT_Tag</b>;
  1039. </code></pre></div>
  1040. <p>A typedef for 32-bit tags (as used in the SFNT format).</p>
  1041. <hr>
  1042. <h2 id="ft_error">FT_Error<a class="headerlink" href="#ft_error" title="Permanent link">&para;</a></h2>
  1043. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1044. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">int</span> <b>FT_Error</b>;
  1045. </code></pre></div>
  1046. <p>The FreeType error code type. A value of&nbsp;0 is always interpreted as a successful operation.</p>
  1047. <hr>
  1048. <h2 id="ft_fixed">FT_Fixed<a class="headerlink" href="#ft_fixed" title="Permanent link">&para;</a></h2>
  1049. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1050. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span> <b>FT_Fixed</b>;
  1051. </code></pre></div>
  1052. <p>This type is used to store 16.16 fixed-point values, like scaling values or matrix coefficients.</p>
  1053. <hr>
  1054. <h2 id="ft_pointer">FT_Pointer<a class="headerlink" href="#ft_pointer" title="Permanent link">&para;</a></h2>
  1055. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1056. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span>* <b>FT_Pointer</b>;
  1057. </code></pre></div>
  1058. <p>A simple typedef for a typeless pointer.</p>
  1059. <hr>
  1060. <h2 id="ft_pos">FT_Pos<a class="headerlink" href="#ft_pos" title="Permanent link">&para;</a></h2>
  1061. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1062. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span> <b>FT_Pos</b>;
  1063. </code></pre></div>
  1064. <p>The type FT_Pos is used to store vectorial coordinates. Depending on the context, these can represent distances in integer font units, or 16.16, or 26.6 fixed-point pixel coordinates.</p>
  1065. <hr>
  1066. <h2 id="ft_vector">FT_Vector<a class="headerlink" href="#ft_vector" title="Permanent link">&para;</a></h2>
  1067. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1068. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Vector_
  1069. {
  1070. <a href="ft2-basic_types.html#ft_pos">FT_Pos</a> x;
  1071. <a href="ft2-basic_types.html#ft_pos">FT_Pos</a> y;
  1072. } <b>FT_Vector</b>;
  1073. </code></pre></div>
  1074. <p>A simple structure used to store a 2D vector; coordinates are of the FT_Pos type.</p>
  1075. <h4>fields</h4>
  1076. <table class="fields">
  1077. <tr><td class="val" id="x">x</td><td class="desc">
  1078. <p>The horizontal coordinate.</p>
  1079. </td></tr>
  1080. <tr><td class="val" id="y">y</td><td class="desc">
  1081. <p>The vertical coordinate.</p>
  1082. </td></tr>
  1083. </table>
  1084. <hr>
  1085. <h2 id="ft_bbox">FT_BBox<a class="headerlink" href="#ft_bbox" title="Permanent link">&para;</a></h2>
  1086. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1087. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_BBox_
  1088. {
  1089. <a href="ft2-basic_types.html#ft_pos">FT_Pos</a> xMin, yMin;
  1090. <a href="ft2-basic_types.html#ft_pos">FT_Pos</a> xMax, yMax;
  1091. } <b>FT_BBox</b>;
  1092. </code></pre></div>
  1093. <p>A structure used to hold an outline's bounding box, i.e., the coordinates of its extrema in the horizontal and vertical directions.</p>
  1094. <h4>fields</h4>
  1095. <table class="fields">
  1096. <tr><td class="val" id="xmin">xMin</td><td class="desc">
  1097. <p>The horizontal minimum (left-most).</p>
  1098. </td></tr>
  1099. <tr><td class="val" id="ymin">yMin</td><td class="desc">
  1100. <p>The vertical minimum (bottom-most).</p>
  1101. </td></tr>
  1102. <tr><td class="val" id="xmax">xMax</td><td class="desc">
  1103. <p>The horizontal maximum (right-most).</p>
  1104. </td></tr>
  1105. <tr><td class="val" id="ymax">yMax</td><td class="desc">
  1106. <p>The vertical maximum (top-most).</p>
  1107. </td></tr>
  1108. </table>
  1109. <h4>note</h4>
  1110. <p>The bounding box is specified with the coordinates of the lower left and the upper right corner. In PostScript, those values are often called (llx,lly) and (urx,ury), respectively.</p>
  1111. <p>If <code>yMin</code> is negative, this value gives the glyph's descender. Otherwise, the glyph doesn't descend below the baseline. Similarly, if <code>ymax</code> is positive, this value gives the glyph's ascender.</p>
  1112. <p><code>xMin</code> gives the horizontal distance from the glyph's origin to the left edge of the glyph's bounding box. If <code>xMin</code> is negative, the glyph extends to the left of the origin.</p>
  1113. <hr>
  1114. <h2 id="ft_matrix">FT_Matrix<a class="headerlink" href="#ft_matrix" title="Permanent link">&para;</a></h2>
  1115. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1116. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Matrix_
  1117. {
  1118. <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> xx, xy;
  1119. <a href="ft2-basic_types.html#ft_fixed">FT_Fixed</a> yx, yy;
  1120. } <b>FT_Matrix</b>;
  1121. </code></pre></div>
  1122. <p>A simple structure used to store a 2x2 matrix. Coefficients are in 16.16 fixed-point format. The computation performed is:
  1123. <div class="highlight"><pre><span></span><code> x&#39; = x*xx + y*xy
  1124. y&#39; = x*yx + y*yy
  1125. </code></pre></div></p>
  1126. <h4>fields</h4>
  1127. <table class="fields">
  1128. <tr><td class="val" id="xx">xx</td><td class="desc">
  1129. <p>Matrix coefficient.</p>
  1130. </td></tr>
  1131. <tr><td class="val" id="xy">xy</td><td class="desc">
  1132. <p>Matrix coefficient.</p>
  1133. </td></tr>
  1134. <tr><td class="val" id="yx">yx</td><td class="desc">
  1135. <p>Matrix coefficient.</p>
  1136. </td></tr>
  1137. <tr><td class="val" id="yy">yy</td><td class="desc">
  1138. <p>Matrix coefficient.</p>
  1139. </td></tr>
  1140. </table>
  1141. <hr>
  1142. <h2 id="ft_fword">FT_FWord<a class="headerlink" href="#ft_fword" title="Permanent link">&para;</a></h2>
  1143. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1144. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span> <b>FT_FWord</b>; /* distance in FUnits */
  1145. </code></pre></div>
  1146. <p>A signed 16-bit integer used to store a distance in original font units.</p>
  1147. <hr>
  1148. <h2 id="ft_ufword">FT_UFWord<a class="headerlink" href="#ft_ufword" title="Permanent link">&para;</a></h2>
  1149. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1150. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <b>FT_UFWord</b>; /* <span class="keyword">unsigned</span> distance */
  1151. </code></pre></div>
  1152. <p>An unsigned 16-bit integer used to store a distance in original font units.</p>
  1153. <hr>
  1154. <h2 id="ft_f2dot14">FT_F2Dot14<a class="headerlink" href="#ft_f2dot14" title="Permanent link">&para;</a></h2>
  1155. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1156. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span> <b>FT_F2Dot14</b>;
  1157. </code></pre></div>
  1158. <p>A signed 2.14 fixed-point type used for unit vectors.</p>
  1159. <hr>
  1160. <h2 id="ft_unitvector">FT_UnitVector<a class="headerlink" href="#ft_unitvector" title="Permanent link">&para;</a></h2>
  1161. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1162. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_UnitVector_
  1163. {
  1164. <a href="ft2-basic_types.html#ft_f2dot14">FT_F2Dot14</a> x;
  1165. <a href="ft2-basic_types.html#ft_f2dot14">FT_F2Dot14</a> y;
  1166. } <b>FT_UnitVector</b>;
  1167. </code></pre></div>
  1168. <p>A simple structure used to store a 2D vector unit vector. Uses FT_F2Dot14 types.</p>
  1169. <h4>fields</h4>
  1170. <table class="fields">
  1171. <tr><td class="val" id="x">x</td><td class="desc">
  1172. <p>Horizontal coordinate.</p>
  1173. </td></tr>
  1174. <tr><td class="val" id="y">y</td><td class="desc">
  1175. <p>Vertical coordinate.</p>
  1176. </td></tr>
  1177. </table>
  1178. <hr>
  1179. <h2 id="ft_f26dot6">FT_F26Dot6<a class="headerlink" href="#ft_f26dot6" title="Permanent link">&para;</a></h2>
  1180. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1181. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">long</span> <b>FT_F26Dot6</b>;
  1182. </code></pre></div>
  1183. <p>A signed 26.6 fixed-point type used for vectorial pixel coordinates.</p>
  1184. <hr>
  1185. <h2 id="ft_data">FT_Data<a class="headerlink" href="#ft_data" title="Permanent link">&para;</a></h2>
  1186. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1187. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Data_
  1188. {
  1189. <span class="keyword">const</span> <a href="ft2-basic_types.html#ft_byte">FT_Byte</a>* pointer;
  1190. <a href="ft2-basic_types.html#ft_int">FT_Int</a> length;
  1191. } <b>FT_Data</b>;
  1192. </code></pre></div>
  1193. <p>Read-only binary data represented as a pointer and a length.</p>
  1194. <h4>fields</h4>
  1195. <table class="fields">
  1196. <tr><td class="val" id="pointer">pointer</td><td class="desc">
  1197. <p>The data.</p>
  1198. </td></tr>
  1199. <tr><td class="val" id="length">length</td><td class="desc">
  1200. <p>The length of the data in bytes.</p>
  1201. </td></tr>
  1202. </table>
  1203. <hr>
  1204. <h2 id="ft_make_tag">FT_MAKE_TAG<a class="headerlink" href="#ft_make_tag" title="Permanent link">&para;</a></h2>
  1205. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1206. <div class = "codehilite"><pre><code>#<span class="keyword">define</span> <b>FT_MAKE_TAG</b>( _x1, _x2, _x3, _x4 ) \
  1207. (<a href="ft2-basic_types.html#ft_tag">FT_Tag</a>) \
  1208. ( ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x1 &lt;&lt; 24 ) | \
  1209. ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x2 &lt;&lt; 16 ) | \
  1210. ( (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x3 &lt;&lt; 8 ) | \
  1211. (<a href="ft2-basic_types.html#ft_ulong">FT_ULong</a>)_x4 )
  1212. </code></pre></div>
  1213. <p>This macro converts four-letter tags that are used to label TrueType tables into an unsigned long, to be used within FreeType.</p>
  1214. <h4>note</h4>
  1215. <p>The produced values <strong>must</strong> be 32-bit integers. Don't redefine this macro.</p>
  1216. <hr>
  1217. <h2 id="ft_generic">FT_Generic<a class="headerlink" href="#ft_generic" title="Permanent link">&para;</a></h2>
  1218. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1219. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Generic_
  1220. {
  1221. <span class="keyword">void</span>* data;
  1222. <a href="ft2-basic_types.html#ft_generic_finalizer">FT_Generic_Finalizer</a> finalizer;
  1223. } <b>FT_Generic</b>;
  1224. </code></pre></div>
  1225. <p>Client applications often need to associate their own data to a variety of FreeType core objects. For example, a text layout API might want to associate a glyph cache to a given size object.</p>
  1226. <p>Some FreeType object contains a <code>generic</code> field, of type <code>FT_Generic</code>, which usage is left to client applications and font servers.</p>
  1227. <p>It can be used to store a pointer to client-specific data, as well as the address of a &lsquo;finalizer&rsquo; function, which will be called by FreeType when the object is destroyed (for example, the previous client example would put the address of the glyph cache destructor in the <code>finalizer</code> field).</p>
  1228. <h4>fields</h4>
  1229. <table class="fields">
  1230. <tr><td class="val" id="data">data</td><td class="desc">
  1231. <p>A typeless pointer to any client-specified data. This field is completely ignored by the FreeType library.</p>
  1232. </td></tr>
  1233. <tr><td class="val" id="finalizer">finalizer</td><td class="desc">
  1234. <p>A pointer to a &lsquo;generic finalizer&rsquo; function, which will be called when the object is destroyed. If this field is set to <code>NULL</code>, no code will be called.</p>
  1235. </td></tr>
  1236. </table>
  1237. <hr>
  1238. <h2 id="ft_generic_finalizer">FT_Generic_Finalizer<a class="headerlink" href="#ft_generic_finalizer" title="Permanent link">&para;</a></h2>
  1239. <p>Defined in FT_TYPES_H (freetype/fttypes.h).</p>
  1240. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span> (*<b>FT_Generic_Finalizer</b>)( <span class="keyword">void</span>* object );
  1241. </code></pre></div>
  1242. <p>Describe a function used to destroy the &lsquo;client&rsquo; data of any FreeType object. See the description of the <code><a href="ft2-basic_types.html#ft_generic">FT_Generic</a></code> type for details of usage.</p>
  1243. <h4>input</h4>
  1244. <p>The address of the FreeType object that is under finalization. Its client data is accessed through its <code>generic</code> field.</p>
  1245. <hr>
  1246. <h2 id="ft_bitmap">FT_Bitmap<a class="headerlink" href="#ft_bitmap" title="Permanent link">&para;</a></h2>
  1247. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1248. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Bitmap_
  1249. {
  1250. <span class="keyword">unsigned</span> <span class="keyword">int</span> rows;
  1251. <span class="keyword">unsigned</span> <span class="keyword">int</span> width;
  1252. <span class="keyword">int</span> pitch;
  1253. <span class="keyword">unsigned</span> <span class="keyword">char</span>* buffer;
  1254. <span class="keyword">unsigned</span> <span class="keyword">short</span> num_grays;
  1255. <span class="keyword">unsigned</span> <span class="keyword">char</span> pixel_mode;
  1256. <span class="keyword">unsigned</span> <span class="keyword">char</span> palette_mode;
  1257. <span class="keyword">void</span>* palette;
  1258. } <b>FT_Bitmap</b>;
  1259. </code></pre></div>
  1260. <p>A structure used to describe a bitmap or pixmap to the raster. Note that we now manage pixmaps of various depths through the <code>pixel_mode</code> field.</p>
  1261. <h4>fields</h4>
  1262. <table class="fields">
  1263. <tr><td class="val" id="rows">rows</td><td class="desc">
  1264. <p>The number of bitmap rows.</p>
  1265. </td></tr>
  1266. <tr><td class="val" id="width">width</td><td class="desc">
  1267. <p>The number of pixels in bitmap row.</p>
  1268. </td></tr>
  1269. <tr><td class="val" id="pitch">pitch</td><td class="desc">
  1270. <p>The pitch's absolute value is the number of bytes taken by one bitmap row, including padding. However, the pitch is positive when the bitmap has a &lsquo;down&rsquo; flow, and negative when it has an &lsquo;up&rsquo; flow. In all cases, the pitch is an offset to add to a bitmap pointer in order to go down one row.</p>
  1271. <p>Note that &lsquo;padding&rsquo; means the alignment of a bitmap to a byte border, and FreeType functions normally align to the smallest possible integer value.</p>
  1272. <p>For the B/W rasterizer, <code>pitch</code> is always an even number.</p>
  1273. <p>To change the pitch of a bitmap (say, to make it a multiple of 4), use <code><a href="ft2-bitmap_handling.html#ft_bitmap_convert">FT_Bitmap_Convert</a></code>. Alternatively, you might use callback functions to directly render to the application's surface; see the file <code>example2.cpp</code> in the tutorial for a demonstration.</p>
  1274. </td></tr>
  1275. <tr><td class="val" id="buffer">buffer</td><td class="desc">
  1276. <p>A typeless pointer to the bitmap buffer. This value should be aligned on 32-bit boundaries in most cases.</p>
  1277. </td></tr>
  1278. <tr><td class="val" id="num_grays">num_grays</td><td class="desc">
  1279. <p>This field is only used with <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_GRAY</a></code>; it gives the number of gray levels used in the bitmap.</p>
  1280. </td></tr>
  1281. <tr><td class="val" id="pixel_mode">pixel_mode</td><td class="desc">
  1282. <p>The pixel mode, i.e., how pixel bits are stored. See <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_Pixel_Mode</a></code> for possible values.</p>
  1283. </td></tr>
  1284. <tr><td class="val" id="palette_mode">palette_mode</td><td class="desc">
  1285. <p>This field is intended for paletted pixel modes; it indicates how the palette is stored. Not used currently.</p>
  1286. </td></tr>
  1287. <tr><td class="val" id="palette">palette</td><td class="desc">
  1288. <p>A typeless pointer to the bitmap palette; this field is intended for paletted pixel modes. Not used currently.</p>
  1289. </td></tr>
  1290. </table>
  1291. <hr>
  1292. <h2 id="ft_pixel_mode">FT_Pixel_Mode<a class="headerlink" href="#ft_pixel_mode" title="Permanent link">&para;</a></h2>
  1293. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1294. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Pixel_Mode_
  1295. {
  1296. <a href="ft2-basic_types.html#ft_pixel_mode_none">FT_PIXEL_MODE_NONE</a> = 0,
  1297. <a href="ft2-basic_types.html#ft_pixel_mode_mono">FT_PIXEL_MODE_MONO</a>,
  1298. <a href="ft2-basic_types.html#ft_pixel_mode_gray">FT_PIXEL_MODE_GRAY</a>,
  1299. <a href="ft2-basic_types.html#ft_pixel_mode_gray2">FT_PIXEL_MODE_GRAY2</a>,
  1300. <a href="ft2-basic_types.html#ft_pixel_mode_gray4">FT_PIXEL_MODE_GRAY4</a>,
  1301. <a href="ft2-basic_types.html#ft_pixel_mode_lcd">FT_PIXEL_MODE_LCD</a>,
  1302. <a href="ft2-basic_types.html#ft_pixel_mode_lcd_v">FT_PIXEL_MODE_LCD_V</a>,
  1303. <a href="ft2-basic_types.html#ft_pixel_mode_bgra">FT_PIXEL_MODE_BGRA</a>,
  1304. FT_PIXEL_MODE_MAX /* do not remove */
  1305. } <b>FT_Pixel_Mode</b>;
  1306. /* these constants are deprecated; use the corresponding `<b>FT_Pixel_Mode</b>` */
  1307. /* values instead. */
  1308. #<span class="keyword">define</span> ft_pixel_mode_none <a href="ft2-basic_types.html#ft_pixel_mode_none">FT_PIXEL_MODE_NONE</a>
  1309. #<span class="keyword">define</span> ft_pixel_mode_mono <a href="ft2-basic_types.html#ft_pixel_mode_mono">FT_PIXEL_MODE_MONO</a>
  1310. #<span class="keyword">define</span> ft_pixel_mode_grays <a href="ft2-basic_types.html#ft_pixel_mode_gray">FT_PIXEL_MODE_GRAY</a>
  1311. #<span class="keyword">define</span> ft_pixel_mode_pal2 <a href="ft2-basic_types.html#ft_pixel_mode_gray2">FT_PIXEL_MODE_GRAY2</a>
  1312. #<span class="keyword">define</span> ft_pixel_mode_pal4 <a href="ft2-basic_types.html#ft_pixel_mode_gray4">FT_PIXEL_MODE_GRAY4</a>
  1313. </code></pre></div>
  1314. <p>An enumeration type used to describe the format of pixels in a given bitmap. Note that additional formats may be added in the future.</p>
  1315. <h4>values</h4>
  1316. <table class="fields">
  1317. <tr><td class="val" id="ft_pixel_mode_none">FT_PIXEL_MODE_NONE</td><td class="desc">
  1318. <p>Value&nbsp;0 is reserved.</p>
  1319. </td></tr>
  1320. <tr><td class="val" id="ft_pixel_mode_mono">FT_PIXEL_MODE_MONO</td><td class="desc">
  1321. <p>A monochrome bitmap, using 1&nbsp;bit per pixel. Note that pixels are stored in most-significant order (MSB), which means that the left-most pixel in a byte has value 128.</p>
  1322. </td></tr>
  1323. <tr><td class="val" id="ft_pixel_mode_gray">FT_PIXEL_MODE_GRAY</td><td class="desc">
  1324. <p>An 8-bit bitmap, generally used to represent anti-aliased glyph images. Each pixel is stored in one byte. Note that the number of &lsquo;gray&rsquo; levels is stored in the <code>num_grays</code> field of the <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code> structure (it generally is 256).</p>
  1325. </td></tr>
  1326. <tr><td class="val" id="ft_pixel_mode_gray2">FT_PIXEL_MODE_GRAY2</td><td class="desc">
  1327. <p>A 2-bit per pixel bitmap, used to represent embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.</p>
  1328. </td></tr>
  1329. <tr><td class="val" id="ft_pixel_mode_gray4">FT_PIXEL_MODE_GRAY4</td><td class="desc">
  1330. <p>A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.</p>
  1331. </td></tr>
  1332. <tr><td class="val" id="ft_pixel_mode_lcd">FT_PIXEL_MODE_LCD</td><td class="desc">
  1333. <p>An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on LCD displays; the bitmap is three times wider than the original glyph image. See also <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD</a></code>.</p>
  1334. </td></tr>
  1335. <tr><td class="val" id="ft_pixel_mode_lcd_v">FT_PIXEL_MODE_LCD_V</td><td class="desc">
  1336. <p>An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on rotated LCD displays; the bitmap is three times taller than the original glyph image. See also <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD_V</a></code>.</p>
  1337. </td></tr>
  1338. <tr><td class="val" id="ft_pixel_mode_bgra">FT_PIXEL_MODE_BGRA</td><td class="desc">
  1339. <p>[Since 2.5] An image with four 8-bit channels per pixel, representing a color image (such as emoticons) with alpha channel. For each pixel, the format is BGRA, which means, the blue channel comes first in memory. The color channels are pre-multiplied and in the sRGB colorspace. For example, full red at half-translucent opacity will be represented as &lsquo;00,00,80,80&rsquo;, not &lsquo;00,00,FF,80&rsquo;. See also <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_COLOR</a></code>.</p>
  1340. </td></tr>
  1341. </table>
  1342. <hr>
  1343. <h2 id="ft_glyph_format">FT_Glyph_Format<a class="headerlink" href="#ft_glyph_format" title="Permanent link">&para;</a></h2>
  1344. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1345. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">enum</span> FT_Glyph_Format_
  1346. {
  1347. <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</a>, 0, 0, 0, 0 ),
  1348. <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_composite">FT_GLYPH_FORMAT_COMPOSITE</a>, 'c', 'o', 'm', 'p' ),
  1349. <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_bitmap">FT_GLYPH_FORMAT_BITMAP</a>, 'b', 'i', 't', 's' ),
  1350. <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</a>, 'o', 'u', 't', 'l' ),
  1351. <a href="ft2-basic_types.html#ft_image_tag">FT_IMAGE_TAG</a>( <a href="ft2-basic_types.html#ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</a>, 'p', 'l', 'o', 't' )
  1352. } <b>FT_Glyph_Format</b>;
  1353. /* these constants are deprecated; use the corresponding */
  1354. /* `<b>FT_Glyph_Format</b>` values instead. */
  1355. #<span class="keyword">define</span> ft_glyph_format_none <a href="ft2-basic_types.html#ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</a>
  1356. #<span class="keyword">define</span> ft_glyph_format_composite <a href="ft2-basic_types.html#ft_glyph_format_composite">FT_GLYPH_FORMAT_COMPOSITE</a>
  1357. #<span class="keyword">define</span> ft_glyph_format_bitmap <a href="ft2-basic_types.html#ft_glyph_format_bitmap">FT_GLYPH_FORMAT_BITMAP</a>
  1358. #<span class="keyword">define</span> ft_glyph_format_outline <a href="ft2-basic_types.html#ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</a>
  1359. #<span class="keyword">define</span> ft_glyph_format_plotter <a href="ft2-basic_types.html#ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</a>
  1360. </code></pre></div>
  1361. <p>An enumeration type used to describe the format of a given glyph image. Note that this version of FreeType only supports two image formats, even though future font drivers will be able to register their own format.</p>
  1362. <h4>values</h4>
  1363. <table class="fields">
  1364. <tr><td class="val" id="ft_glyph_format_none">FT_GLYPH_FORMAT_NONE</td><td class="desc">
  1365. <p>The value&nbsp;0 is reserved.</p>
  1366. </td></tr>
  1367. <tr><td class="val" id="ft_glyph_format_composite">FT_GLYPH_FORMAT_COMPOSITE</td><td class="desc">
  1368. <p>The glyph image is a composite of several other images. This format is <em>only</em> used with <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_RECURSE</a></code>, and is used to report compound glyphs (like accented characters).</p>
  1369. </td></tr>
  1370. <tr><td class="val" id="ft_glyph_format_bitmap">FT_GLYPH_FORMAT_BITMAP</td><td class="desc">
  1371. <p>The glyph image is a bitmap, and can be described as an <code><a href="ft2-basic_types.html#ft_bitmap">FT_Bitmap</a></code>. You generally need to access the <code>bitmap</code> field of the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure to read it.</p>
  1372. </td></tr>
  1373. <tr><td class="val" id="ft_glyph_format_outline">FT_GLYPH_FORMAT_OUTLINE</td><td class="desc">
  1374. <p>The glyph image is a vectorial outline made of line segments and Bezier arcs; it can be described as an <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>; you generally want to access the <code>outline</code> field of the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure to read it.</p>
  1375. </td></tr>
  1376. <tr><td class="val" id="ft_glyph_format_plotter">FT_GLYPH_FORMAT_PLOTTER</td><td class="desc">
  1377. <p>The glyph image is a vectorial path with no inside and outside contours. Some Type&nbsp;1 fonts, like those in the Hershey family, contain glyphs in this format. These are described as <code><a href="ft2-outline_processing.html#ft_outline">FT_Outline</a></code>, but FreeType isn't currently capable of rendering them correctly.</p>
  1378. </td></tr>
  1379. </table>
  1380. <hr>
  1381. <h2 id="ft_image_tag">FT_IMAGE_TAG<a class="headerlink" href="#ft_image_tag" title="Permanent link">&para;</a></h2>
  1382. <p>Defined in FT_IMAGE_H (freetype/ftimage.h).</p>
  1383. <div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_IMAGE_TAG</b>
  1384. #<span class="keyword">define</span> <b>FT_IMAGE_TAG</b>( value, _x1, _x2, _x3, _x4 ) \
  1385. value = ( ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x1 &lt;&lt; 24 ) | \
  1386. ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x2 &lt;&lt; 16 ) | \
  1387. ( (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x3 &lt;&lt; 8 ) | \
  1388. (<span class="keyword">unsigned</span> <span class="keyword">long</span>)_x4 )
  1389. #<span class="keyword">endif</span> /* <b>FT_IMAGE_TAG</b> */
  1390. </code></pre></div>
  1391. <p>This macro converts four-letter tags to an unsigned long type.</p>
  1392. <h4>note</h4>
  1393. <p>Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:
  1394. <div class="highlight"><pre><span></span><code> #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 ) value
  1395. </code></pre></div></p>
  1396. <p>to get a simple enumeration without assigning special numbers.</p>
  1397. <hr>
  1398. </article>
  1399. </div>
  1400. </div>
  1401. </main>
  1402. <footer class="md-footer">
  1403. <nav class="md-footer__inner md-grid" aria-label="Footer">
  1404. <a href="ft2-version.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: FreeType Version" rel="prev">
  1405. <div class="md-footer__button md-icon">
  1406. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>
  1407. </div>
  1408. <div class="md-footer__title">
  1409. <div class="md-ellipsis">
  1410. <span class="md-footer__direction">
  1411. Previous
  1412. </span>
  1413. FreeType Version
  1414. </div>
  1415. </div>
  1416. </a>
  1417. <a href="ft2-base_interface.html" class="md-footer__link md-footer__link--next" aria-label="Next: Base Interface" rel="next">
  1418. <div class="md-footer__title">
  1419. <div class="md-ellipsis">
  1420. <span class="md-footer__direction">
  1421. Next
  1422. </span>
  1423. Base Interface
  1424. </div>
  1425. </div>
  1426. <div class="md-footer__button md-icon">
  1427. <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 11v2h12l-5.5 5.5 1.42 1.42L19.84 12l-7.92-7.92L10.5 5.5 16 11H4z"/></svg>
  1428. </div>
  1429. </a>
  1430. </nav>
  1431. <div class="md-footer-meta md-typeset">
  1432. <div class="md-footer-meta__inner md-grid">
  1433. <div class="md-footer-copyright">
  1434. <div class="md-footer-copyright__highlight">
  1435. Copyright 2021 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
  1436. </div>
  1437. Made with
  1438. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  1439. Material for MkDocs
  1440. </a>
  1441. </div>
  1442. </div>
  1443. </div>
  1444. </footer>
  1445. </div>
  1446. <div class="md-dialog" data-md-component="dialog">
  1447. <div class="md-dialog__inner md-typeset"></div>
  1448. </div>
  1449. <script id="__config" type="application/json">{"base": ".", "features": [], "translations": {"clipboard.copy": "Copy to clipboard", "clipboard.copied": "Copied to clipboard", "search.config.lang": "en", "search.config.pipeline": "trimmer, stopWordFilter", "search.config.separator": "[\\s\\-]+", "search.placeholder": "Search", "search.result.placeholder": "Type to start searching", "search.result.none": "No matching documents", "search.result.one": "1 matching document", "search.result.other": "# matching documents", "search.result.more.one": "1 more on this page", "search.result.more.other": "# more on this page", "search.result.term.missing": "Missing", "select.version.title": "Select version"}, "search": "assets/javascripts/workers/search.477d984a.min.js", "version": null}</script>
  1450. <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
  1451. <script src="javascripts/extra.js"></script>
  1452. </body>
  1453. </html>