🛠️🐜 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.

1574 lines
43 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>Incremental Loading - 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="#incremental-loading" 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. Incremental Loading
  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--nested">
  138. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" >
  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">
  155. <a href="ft2-basic_types.html" class="md-nav__link">
  156. Basic Data Types
  157. </a>
  158. </li>
  159. <li class="md-nav__item">
  160. <a href="ft2-base_interface.html" class="md-nav__link">
  161. Base Interface
  162. </a>
  163. </li>
  164. <li class="md-nav__item">
  165. <a href="ft2-glyph_variants.html" class="md-nav__link">
  166. Unicode Variation Sequences
  167. </a>
  168. </li>
  169. <li class="md-nav__item">
  170. <a href="ft2-color_management.html" class="md-nav__link">
  171. Glyph Color Management
  172. </a>
  173. </li>
  174. <li class="md-nav__item">
  175. <a href="ft2-layer_management.html" class="md-nav__link">
  176. Glyph Layer Management
  177. </a>
  178. </li>
  179. <li class="md-nav__item">
  180. <a href="ft2-glyph_management.html" class="md-nav__link">
  181. Glyph Management
  182. </a>
  183. </li>
  184. <li class="md-nav__item">
  185. <a href="ft2-mac_specific.html" class="md-nav__link">
  186. Mac Specific Interface
  187. </a>
  188. </li>
  189. <li class="md-nav__item">
  190. <a href="ft2-sizes_management.html" class="md-nav__link">
  191. Size Management
  192. </a>
  193. </li>
  194. <li class="md-nav__item">
  195. <a href="ft2-header_file_macros.html" class="md-nav__link">
  196. Header File Macros
  197. </a>
  198. </li>
  199. </ul>
  200. </nav>
  201. </li>
  202. <li class="md-nav__item md-nav__item--nested">
  203. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
  204. <label class="md-nav__link" for="__nav_5">
  205. Format-Specific API
  206. <span class="md-nav__icon md-icon"></span>
  207. </label>
  208. <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
  209. <label class="md-nav__title" for="__nav_5">
  210. <span class="md-nav__icon md-icon"></span>
  211. Format-Specific API
  212. </label>
  213. <ul class="md-nav__list" data-md-scrollfix>
  214. <li class="md-nav__item">
  215. <a href="ft2-multiple_masters.html" class="md-nav__link">
  216. Multiple Masters
  217. </a>
  218. </li>
  219. <li class="md-nav__item">
  220. <a href="ft2-truetype_tables.html" class="md-nav__link">
  221. TrueType Tables
  222. </a>
  223. </li>
  224. <li class="md-nav__item">
  225. <a href="ft2-type1_tables.html" class="md-nav__link">
  226. Type 1 Tables
  227. </a>
  228. </li>
  229. <li class="md-nav__item">
  230. <a href="ft2-sfnt_names.html" class="md-nav__link">
  231. SFNT Names
  232. </a>
  233. </li>
  234. <li class="md-nav__item">
  235. <a href="ft2-bdf_fonts.html" class="md-nav__link">
  236. BDF and PCF Files
  237. </a>
  238. </li>
  239. <li class="md-nav__item">
  240. <a href="ft2-cid_fonts.html" class="md-nav__link">
  241. CID Fonts
  242. </a>
  243. </li>
  244. <li class="md-nav__item">
  245. <a href="ft2-pfr_fonts.html" class="md-nav__link">
  246. PFR Fonts
  247. </a>
  248. </li>
  249. <li class="md-nav__item">
  250. <a href="ft2-winfnt_fonts.html" class="md-nav__link">
  251. Window FNT Files
  252. </a>
  253. </li>
  254. <li class="md-nav__item">
  255. <a href="ft2-font_formats.html" class="md-nav__link">
  256. Font Formats
  257. </a>
  258. </li>
  259. <li class="md-nav__item">
  260. <a href="ft2-gasp_table.html" class="md-nav__link">
  261. Gasp Table
  262. </a>
  263. </li>
  264. </ul>
  265. </nav>
  266. </li>
  267. <li class="md-nav__item md-nav__item--nested">
  268. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
  269. <label class="md-nav__link" for="__nav_6">
  270. Controlling FreeType Modules
  271. <span class="md-nav__icon md-icon"></span>
  272. </label>
  273. <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
  274. <label class="md-nav__title" for="__nav_6">
  275. <span class="md-nav__icon md-icon"></span>
  276. Controlling FreeType Modules
  277. </label>
  278. <ul class="md-nav__list" data-md-scrollfix>
  279. <li class="md-nav__item">
  280. <a href="ft2-auto_hinter.html" class="md-nav__link">
  281. The auto-hinter
  282. </a>
  283. </li>
  284. <li class="md-nav__item">
  285. <a href="ft2-cff_driver.html" class="md-nav__link">
  286. The CFF driver
  287. </a>
  288. </li>
  289. <li class="md-nav__item">
  290. <a href="ft2-t1_cid_driver.html" class="md-nav__link">
  291. The Type 1 and CID drivers
  292. </a>
  293. </li>
  294. <li class="md-nav__item">
  295. <a href="ft2-tt_driver.html" class="md-nav__link">
  296. The TrueType driver
  297. </a>
  298. </li>
  299. <li class="md-nav__item">
  300. <a href="ft2-pcf_driver.html" class="md-nav__link">
  301. The PCF driver
  302. </a>
  303. </li>
  304. <li class="md-nav__item">
  305. <a href="ft2-properties.html" class="md-nav__link">
  306. Driver properties
  307. </a>
  308. </li>
  309. <li class="md-nav__item">
  310. <a href="ft2-parameter_tags.html" class="md-nav__link">
  311. Parameter Tags
  312. </a>
  313. </li>
  314. <li class="md-nav__item">
  315. <a href="ft2-lcd_rendering.html" class="md-nav__link">
  316. Subpixel Rendering
  317. </a>
  318. </li>
  319. </ul>
  320. </nav>
  321. </li>
  322. <li class="md-nav__item md-nav__item--nested">
  323. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
  324. <label class="md-nav__link" for="__nav_7">
  325. Cache Sub-System
  326. <span class="md-nav__icon md-icon"></span>
  327. </label>
  328. <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
  329. <label class="md-nav__title" for="__nav_7">
  330. <span class="md-nav__icon md-icon"></span>
  331. Cache Sub-System
  332. </label>
  333. <ul class="md-nav__list" data-md-scrollfix>
  334. <li class="md-nav__item">
  335. <a href="ft2-cache_subsystem.html" class="md-nav__link">
  336. Cache Sub-System
  337. </a>
  338. </li>
  339. </ul>
  340. </nav>
  341. </li>
  342. <li class="md-nav__item md-nav__item--nested">
  343. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
  344. <label class="md-nav__link" for="__nav_8">
  345. Support API
  346. <span class="md-nav__icon md-icon"></span>
  347. </label>
  348. <nav class="md-nav" aria-label="Support API" data-md-level="1">
  349. <label class="md-nav__title" for="__nav_8">
  350. <span class="md-nav__icon md-icon"></span>
  351. Support API
  352. </label>
  353. <ul class="md-nav__list" data-md-scrollfix>
  354. <li class="md-nav__item">
  355. <a href="ft2-computations.html" class="md-nav__link">
  356. Computations
  357. </a>
  358. </li>
  359. <li class="md-nav__item">
  360. <a href="ft2-list_processing.html" class="md-nav__link">
  361. List Processing
  362. </a>
  363. </li>
  364. <li class="md-nav__item">
  365. <a href="ft2-outline_processing.html" class="md-nav__link">
  366. Outline Processing
  367. </a>
  368. </li>
  369. <li class="md-nav__item">
  370. <a href="ft2-quick_advance.html" class="md-nav__link">
  371. Quick retrieval of advance values
  372. </a>
  373. </li>
  374. <li class="md-nav__item">
  375. <a href="ft2-bitmap_handling.html" class="md-nav__link">
  376. Bitmap Handling
  377. </a>
  378. </li>
  379. <li class="md-nav__item">
  380. <a href="ft2-raster.html" class="md-nav__link">
  381. Scanline Converter
  382. </a>
  383. </li>
  384. <li class="md-nav__item">
  385. <a href="ft2-glyph_stroker.html" class="md-nav__link">
  386. Glyph Stroker
  387. </a>
  388. </li>
  389. <li class="md-nav__item">
  390. <a href="ft2-system_interface.html" class="md-nav__link">
  391. System Interface
  392. </a>
  393. </li>
  394. <li class="md-nav__item">
  395. <a href="ft2-module_management.html" class="md-nav__link">
  396. Module Management
  397. </a>
  398. </li>
  399. <li class="md-nav__item">
  400. <a href="ft2-gzip.html" class="md-nav__link">
  401. GZIP Streams
  402. </a>
  403. </li>
  404. <li class="md-nav__item">
  405. <a href="ft2-lzw.html" class="md-nav__link">
  406. LZW Streams
  407. </a>
  408. </li>
  409. <li class="md-nav__item">
  410. <a href="ft2-bzip2.html" class="md-nav__link">
  411. BZIP2 Streams
  412. </a>
  413. </li>
  414. <li class="md-nav__item">
  415. <a href="ft2-debugging_apis.html" class="md-nav__link">
  416. External Debugging APIs
  417. </a>
  418. </li>
  419. </ul>
  420. </nav>
  421. </li>
  422. <li class="md-nav__item md-nav__item--nested">
  423. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
  424. <label class="md-nav__link" for="__nav_9">
  425. Error Codes
  426. <span class="md-nav__icon md-icon"></span>
  427. </label>
  428. <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
  429. <label class="md-nav__title" for="__nav_9">
  430. <span class="md-nav__icon md-icon"></span>
  431. Error Codes
  432. </label>
  433. <ul class="md-nav__list" data-md-scrollfix>
  434. <li class="md-nav__item">
  435. <a href="ft2-error_enumerations.html" class="md-nav__link">
  436. Error Enumerations
  437. </a>
  438. </li>
  439. <li class="md-nav__item">
  440. <a href="ft2-error_code_values.html" class="md-nav__link">
  441. Error Code Values
  442. </a>
  443. </li>
  444. </ul>
  445. </nav>
  446. </li>
  447. <li class="md-nav__item md-nav__item--active md-nav__item--nested">
  448. <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" checked>
  449. <label class="md-nav__link" for="__nav_10">
  450. Miscellaneous
  451. <span class="md-nav__icon md-icon"></span>
  452. </label>
  453. <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
  454. <label class="md-nav__title" for="__nav_10">
  455. <span class="md-nav__icon md-icon"></span>
  456. Miscellaneous
  457. </label>
  458. <ul class="md-nav__list" data-md-scrollfix>
  459. <li class="md-nav__item">
  460. <a href="ft2-gx_validation.html" class="md-nav__link">
  461. TrueTypeGX/AAT Validation
  462. </a>
  463. </li>
  464. <li class="md-nav__item md-nav__item--active">
  465. <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
  466. <label class="md-nav__link md-nav__link--active" for="__toc">
  467. Incremental Loading
  468. <span class="md-nav__icon md-icon"></span>
  469. </label>
  470. <a href="ft2-incremental.html" class="md-nav__link md-nav__link--active">
  471. Incremental Loading
  472. </a>
  473. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  474. <label class="md-nav__title" for="__toc">
  475. <span class="md-nav__icon md-icon"></span>
  476. Table of contents
  477. </label>
  478. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  479. <li class="md-nav__item">
  480. <a href="#synopsis" class="md-nav__link">
  481. Synopsis
  482. </a>
  483. </li>
  484. <li class="md-nav__item">
  485. <a href="#ft_incremental" class="md-nav__link">
  486. FT_Incremental
  487. </a>
  488. </li>
  489. <li class="md-nav__item">
  490. <a href="#ft_incremental_metricsrec" class="md-nav__link">
  491. FT_Incremental_MetricsRec
  492. </a>
  493. </li>
  494. <li class="md-nav__item">
  495. <a href="#ft_incremental_metrics" class="md-nav__link">
  496. FT_Incremental_Metrics
  497. </a>
  498. </li>
  499. <li class="md-nav__item">
  500. <a href="#ft_incremental_getglyphdatafunc" class="md-nav__link">
  501. FT_Incremental_GetGlyphDataFunc
  502. </a>
  503. </li>
  504. <li class="md-nav__item">
  505. <a href="#ft_incremental_freeglyphdatafunc" class="md-nav__link">
  506. FT_Incremental_FreeGlyphDataFunc
  507. </a>
  508. </li>
  509. <li class="md-nav__item">
  510. <a href="#ft_incremental_getglyphmetricsfunc" class="md-nav__link">
  511. FT_Incremental_GetGlyphMetricsFunc
  512. </a>
  513. </li>
  514. <li class="md-nav__item">
  515. <a href="#ft_incremental_funcsrec" class="md-nav__link">
  516. FT_Incremental_FuncsRec
  517. </a>
  518. </li>
  519. <li class="md-nav__item">
  520. <a href="#ft_incremental_interfacerec" class="md-nav__link">
  521. FT_Incremental_InterfaceRec
  522. </a>
  523. </li>
  524. <li class="md-nav__item">
  525. <a href="#ft_incremental_interface" class="md-nav__link">
  526. FT_Incremental_Interface
  527. </a>
  528. </li>
  529. </ul>
  530. </nav>
  531. </li>
  532. <li class="md-nav__item">
  533. <a href="ft2-truetype_engine.html" class="md-nav__link">
  534. The TrueType Engine
  535. </a>
  536. </li>
  537. <li class="md-nav__item">
  538. <a href="ft2-ot_validation.html" class="md-nav__link">
  539. OpenType Validation
  540. </a>
  541. </li>
  542. </ul>
  543. </nav>
  544. </li>
  545. </ul>
  546. </nav>
  547. </div>
  548. </div>
  549. </div>
  550. <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
  551. <div class="md-sidebar__scrollwrap">
  552. <div class="md-sidebar__inner">
  553. <nav class="md-nav md-nav--secondary" aria-label="Table of contents">
  554. <label class="md-nav__title" for="__toc">
  555. <span class="md-nav__icon md-icon"></span>
  556. Table of contents
  557. </label>
  558. <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
  559. <li class="md-nav__item">
  560. <a href="#synopsis" class="md-nav__link">
  561. Synopsis
  562. </a>
  563. </li>
  564. <li class="md-nav__item">
  565. <a href="#ft_incremental" class="md-nav__link">
  566. FT_Incremental
  567. </a>
  568. </li>
  569. <li class="md-nav__item">
  570. <a href="#ft_incremental_metricsrec" class="md-nav__link">
  571. FT_Incremental_MetricsRec
  572. </a>
  573. </li>
  574. <li class="md-nav__item">
  575. <a href="#ft_incremental_metrics" class="md-nav__link">
  576. FT_Incremental_Metrics
  577. </a>
  578. </li>
  579. <li class="md-nav__item">
  580. <a href="#ft_incremental_getglyphdatafunc" class="md-nav__link">
  581. FT_Incremental_GetGlyphDataFunc
  582. </a>
  583. </li>
  584. <li class="md-nav__item">
  585. <a href="#ft_incremental_freeglyphdatafunc" class="md-nav__link">
  586. FT_Incremental_FreeGlyphDataFunc
  587. </a>
  588. </li>
  589. <li class="md-nav__item">
  590. <a href="#ft_incremental_getglyphmetricsfunc" class="md-nav__link">
  591. FT_Incremental_GetGlyphMetricsFunc
  592. </a>
  593. </li>
  594. <li class="md-nav__item">
  595. <a href="#ft_incremental_funcsrec" class="md-nav__link">
  596. FT_Incremental_FuncsRec
  597. </a>
  598. </li>
  599. <li class="md-nav__item">
  600. <a href="#ft_incremental_interfacerec" class="md-nav__link">
  601. FT_Incremental_InterfaceRec
  602. </a>
  603. </li>
  604. <li class="md-nav__item">
  605. <a href="#ft_incremental_interface" class="md-nav__link">
  606. FT_Incremental_Interface
  607. </a>
  608. </li>
  609. </ul>
  610. </nav>
  611. </div>
  612. </div>
  613. </div>
  614. <div class="md-content" data-md-component="content">
  615. <article class="md-content__inner md-typeset">
  616. <p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; <a href="index.html#miscellaneous">Miscellaneous</a> &raquo; Incremental Loading</p>
  617. <hr />
  618. <h1 id="incremental-loading">Incremental Loading<a class="headerlink" href="#incremental-loading" title="Permanent link">&para;</a></h1>
  619. <h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
  620. <p>This section contains various functions used to perform so-called &lsquo;incremental&rsquo; glyph loading. This is a mode where all glyphs loaded from a given <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> are provided by the client application.</p>
  621. <p>Apart from that, all other tables are loaded normally from the font file. This mode is useful when FreeType is used within another engine, e.g., a PostScript Imaging Processor.</p>
  622. <p>To enable this mode, you must use <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>, passing an <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> with the <code><a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a></code> tag and an <code><a href="ft2-incremental.html#ft_incremental_interface">FT_Incremental_Interface</a></code> value. See the comments for <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> for an example.</p>
  623. <h2 id="ft_incremental">FT_Incremental<a class="headerlink" href="#ft_incremental" title="Permanent link">&para;</a></h2>
  624. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  625. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_IncrementalRec_* <b>FT_Incremental</b>;
  626. </code></pre></div>
  627. <p>An opaque type describing a user-provided object used to implement &lsquo;incremental&rsquo; glyph loading within FreeType. This is used to support embedded fonts in certain environments (e.g., PostScript interpreters), where the glyph data isn't in the font file, or must be overridden by different values.</p>
  628. <h4>note</h4>
  629. <p>It is up to client applications to create and implement <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> objects, as long as they provide implementations for the methods <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code>, <code><a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a></code> and <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code>.</p>
  630. <p>See the description of <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> to understand how to use incremental objects with FreeType.</p>
  631. <hr>
  632. <h2 id="ft_incremental_metricsrec">FT_Incremental_MetricsRec<a class="headerlink" href="#ft_incremental_metricsrec" title="Permanent link">&para;</a></h2>
  633. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  634. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_MetricsRec_
  635. {
  636. <a href="ft2-basic_types.html#ft_long">FT_Long</a> bearing_x;
  637. <a href="ft2-basic_types.html#ft_long">FT_Long</a> bearing_y;
  638. <a href="ft2-basic_types.html#ft_long">FT_Long</a> advance;
  639. <a href="ft2-basic_types.html#ft_long">FT_Long</a> advance_v; /* since 2.3.12 */
  640. } <b>FT_Incremental_MetricsRec</b>;
  641. </code></pre></div>
  642. <p>A small structure used to contain the basic glyph metrics returned by the <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code> method.</p>
  643. <h4>fields</h4>
  644. <table class="fields">
  645. <tr><td class="val" id="bearing_x">bearing_x</td><td class="desc">
  646. <p>Left bearing, in font units.</p>
  647. </td></tr>
  648. <tr><td class="val" id="bearing_y">bearing_y</td><td class="desc">
  649. <p>Top bearing, in font units.</p>
  650. </td></tr>
  651. <tr><td class="val" id="advance">advance</td><td class="desc">
  652. <p>Horizontal component of glyph advance, in font units.</p>
  653. </td></tr>
  654. <tr><td class="val" id="advance_v">advance_v</td><td class="desc">
  655. <p>Vertical component of glyph advance, in font units.</p>
  656. </td></tr>
  657. </table>
  658. <h4>note</h4>
  659. <p>These correspond to horizontal or vertical metrics depending on the value of the <code>vertical</code> argument to the function <code><a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a></code>.</p>
  660. <hr>
  661. <h2 id="ft_incremental_metrics">FT_Incremental_Metrics<a class="headerlink" href="#ft_incremental_metrics" title="Permanent link">&para;</a></h2>
  662. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  663. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_MetricsRec_* <b>FT_Incremental_Metrics</b>;
  664. </code></pre></div>
  665. <p>A handle to an <code><a href="ft2-incremental.html#ft_incremental_metricsrec">FT_Incremental_MetricsRec</a></code> structure.</p>
  666. <hr>
  667. <h2 id="ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc<a class="headerlink" href="#ft_incremental_getglyphdatafunc" title="Permanent link">&para;</a></h2>
  668. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  669. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a>
  670. (*<b>FT_Incremental_GetGlyphDataFunc</b>)( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a> incremental,
  671. <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> glyph_index,
  672. <a href="ft2-basic_types.html#ft_data">FT_Data</a>* adata );
  673. </code></pre></div>
  674. <p>A function called by FreeType to access a given glyph's data bytes during <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> or <code><a href="ft2-base_interface.html#ft_load_char">FT_Load_Char</a></code> if incremental loading is enabled.</p>
  675. <p>Note that the format of the glyph's data bytes depends on the font file format. For TrueType, it must correspond to the raw bytes within the &lsquo;glyf&rsquo; table. For PostScript formats, it must correspond to the <strong>unencrypted</strong> charstring bytes, without any <code>lenIV</code> header. It is undefined for any other format.</p>
  676. <h4>input</h4>
  677. <table class="fields">
  678. <tr><td class="val" id="incremental">incremental</td><td class="desc">
  679. <p>Handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
  680. </td></tr>
  681. <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
  682. <p>Index of relevant glyph.</p>
  683. </td></tr>
  684. </table>
  685. <h4>output</h4>
  686. <table class="fields">
  687. <tr><td class="val" id="adata">adata</td><td class="desc">
  688. <p>A structure describing the returned glyph data bytes (which will be accessed as a read-only byte block).</p>
  689. </td></tr>
  690. </table>
  691. <h4>return</h4>
  692. <p>FreeType error code. 0&nbsp;means success.</p>
  693. <h4>note</h4>
  694. <p>If this function returns successfully the method <code><a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a></code> will be called later to release the data bytes.</p>
  695. <p>Nested calls to <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code> can happen for compound glyphs.</p>
  696. <hr>
  697. <h2 id="ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc<a class="headerlink" href="#ft_incremental_freeglyphdatafunc" title="Permanent link">&para;</a></h2>
  698. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  699. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">void</span>
  700. (*<b>FT_Incremental_FreeGlyphDataFunc</b>)( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a> incremental,
  701. <a href="ft2-basic_types.html#ft_data">FT_Data</a>* data );
  702. </code></pre></div>
  703. <p>A function used to release the glyph data bytes returned by a successful call to <code><a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a></code>.</p>
  704. <h4>input</h4>
  705. <table class="fields">
  706. <tr><td class="val" id="incremental">incremental</td><td class="desc">
  707. <p>A handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
  708. </td></tr>
  709. <tr><td class="val" id="data">data</td><td class="desc">
  710. <p>A structure describing the glyph data bytes (which will be accessed as a read-only byte block).</p>
  711. </td></tr>
  712. </table>
  713. <hr>
  714. <h2 id="ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc<a class="headerlink" href="#ft_incremental_getglyphmetricsfunc" title="Permanent link">&para;</a></h2>
  715. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  716. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-basic_types.html#ft_error">FT_Error</a>
  717. (*<b>FT_Incremental_GetGlyphMetricsFunc</b>)
  718. ( <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a> incremental,
  719. <a href="ft2-basic_types.html#ft_uint">FT_UInt</a> glyph_index,
  720. <a href="ft2-basic_types.html#ft_bool">FT_Bool</a> vertical,
  721. <a href="ft2-incremental.html#ft_incremental_metricsrec">FT_Incremental_MetricsRec</a> *ametrics );
  722. </code></pre></div>
  723. <p>A function used to retrieve the basic metrics of a given glyph index before accessing its data. This allows for handling font types such as PCL&nbsp;XL Format&nbsp;1, Class&nbsp;2 downloaded TrueType fonts, where the glyph metrics (<code>hmtx</code> and <code>vmtx</code> tables) are permitted to be omitted from the font, and the relevant metrics included in the header of the glyph outline data. Importantly, this is not intended to allow custom glyph metrics (for example, Postscript Metrics dictionaries), because that conflicts with the requirements of outline hinting. Such custom metrics must be handled separately, by the calling application.</p>
  724. <h4>input</h4>
  725. <table class="fields">
  726. <tr><td class="val" id="incremental">incremental</td><td class="desc">
  727. <p>A handle to an opaque <code><a href="ft2-incremental.html#ft_incremental">FT_Incremental</a></code> handle provided by the client application.</p>
  728. </td></tr>
  729. <tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
  730. <p>Index of relevant glyph.</p>
  731. </td></tr>
  732. <tr><td class="val" id="vertical">vertical</td><td class="desc">
  733. <p>If true, return vertical metrics.</p>
  734. </td></tr>
  735. <tr><td class="val" id="ametrics">ametrics</td><td class="desc">
  736. <p>This parameter is used for both input and output. The original glyph metrics, if any, in font units. If metrics are not available all the values must be set to zero.</p>
  737. </td></tr>
  738. </table>
  739. <h4>output</h4>
  740. <table class="fields">
  741. <tr><td class="val" id="ametrics">ametrics</td><td class="desc">
  742. <p>The glyph metrics in font units.</p>
  743. </td></tr>
  744. </table>
  745. <hr>
  746. <h2 id="ft_incremental_funcsrec">FT_Incremental_FuncsRec<a class="headerlink" href="#ft_incremental_funcsrec" title="Permanent link">&para;</a></h2>
  747. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  748. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_FuncsRec_
  749. {
  750. <a href="ft2-incremental.html#ft_incremental_getglyphdatafunc">FT_Incremental_GetGlyphDataFunc</a> get_glyph_data;
  751. <a href="ft2-incremental.html#ft_incremental_freeglyphdatafunc">FT_Incremental_FreeGlyphDataFunc</a> free_glyph_data;
  752. <a href="ft2-incremental.html#ft_incremental_getglyphmetricsfunc">FT_Incremental_GetGlyphMetricsFunc</a> get_glyph_metrics;
  753. } <b>FT_Incremental_FuncsRec</b>;
  754. </code></pre></div>
  755. <p>A table of functions for accessing fonts that load data incrementally. Used in <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code>.</p>
  756. <h4>fields</h4>
  757. <table class="fields">
  758. <tr><td class="val" id="get_glyph_data">get_glyph_data</td><td class="desc">
  759. <p>The function to get glyph data. Must not be null.</p>
  760. </td></tr>
  761. <tr><td class="val" id="free_glyph_data">free_glyph_data</td><td class="desc">
  762. <p>The function to release glyph data. Must not be null.</p>
  763. </td></tr>
  764. <tr><td class="val" id="get_glyph_metrics">get_glyph_metrics</td><td class="desc">
  765. <p>The function to get glyph metrics. May be null if the font does not require it.</p>
  766. </td></tr>
  767. </table>
  768. <hr>
  769. <h2 id="ft_incremental_interfacerec">FT_Incremental_InterfaceRec<a class="headerlink" href="#ft_incremental_interfacerec" title="Permanent link">&para;</a></h2>
  770. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  771. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_Incremental_InterfaceRec_
  772. {
  773. <span class="keyword">const</span> <a href="ft2-incremental.html#ft_incremental_funcsrec">FT_Incremental_FuncsRec</a>* funcs;
  774. <a href="ft2-incremental.html#ft_incremental">FT_Incremental</a> object;
  775. } <b>FT_Incremental_InterfaceRec</b>;
  776. </code></pre></div>
  777. <p>A structure to be used with <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to indicate that the user wants to support incremental glyph loading. You should use it with <code><a href="ft2-parameter_tags.html#ft_param_tag_incremental">FT_PARAM_TAG_INCREMENTAL</a></code> as in the following example:
  778. <div class="highlight"><pre><span></span><code> FT_Incremental_InterfaceRec inc_int;
  779. FT_Parameter parameter;
  780. FT_Open_Args open_args;
  781. // set up incremental descriptor
  782. inc_int.funcs = my_funcs;
  783. inc_int.object = my_object;
  784. // set up optional parameter
  785. parameter.tag = FT_PARAM_TAG_INCREMENTAL;
  786. parameter.data = &amp;inc_int;
  787. // set up FT_Open_Args structure
  788. open_args.flags = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
  789. open_args.pathname = my_font_pathname;
  790. open_args.num_params = 1;
  791. open_args.params = &amp;parameter; // we use one optional argument
  792. // open the font
  793. error = FT_Open_Face( library, &amp;open_args, index, &amp;face );
  794. ...
  795. </code></pre></div></p>
  796. <hr>
  797. <h2 id="ft_incremental_interface">FT_Incremental_Interface<a class="headerlink" href="#ft_incremental_interface" title="Permanent link">&para;</a></h2>
  798. <p>Defined in FT_INCREMENTAL_H (freetype/ftincrem.h).</p>
  799. <div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a>* <b>FT_Incremental_Interface</b>;
  800. </code></pre></div>
  801. <p>A pointer to an <code><a href="ft2-incremental.html#ft_incremental_interfacerec">FT_Incremental_InterfaceRec</a></code> structure.</p>
  802. <hr>
  803. </article>
  804. </div>
  805. </div>
  806. </main>
  807. <footer class="md-footer">
  808. <nav class="md-footer__inner md-grid" aria-label="Footer">
  809. <a href="ft2-gx_validation.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: TrueTypeGX/AAT Validation" rel="prev">
  810. <div class="md-footer__button md-icon">
  811. <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>
  812. </div>
  813. <div class="md-footer__title">
  814. <div class="md-ellipsis">
  815. <span class="md-footer__direction">
  816. Previous
  817. </span>
  818. TrueTypeGX/AAT Validation
  819. </div>
  820. </div>
  821. </a>
  822. <a href="ft2-truetype_engine.html" class="md-footer__link md-footer__link--next" aria-label="Next: The TrueType Engine" rel="next">
  823. <div class="md-footer__title">
  824. <div class="md-ellipsis">
  825. <span class="md-footer__direction">
  826. Next
  827. </span>
  828. The TrueType Engine
  829. </div>
  830. </div>
  831. <div class="md-footer__button md-icon">
  832. <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>
  833. </div>
  834. </a>
  835. </nav>
  836. <div class="md-footer-meta md-typeset">
  837. <div class="md-footer-meta__inner md-grid">
  838. <div class="md-footer-copyright">
  839. <div class="md-footer-copyright__highlight">
  840. Copyright 2021 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
  841. </div>
  842. Made with
  843. <a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
  844. Material for MkDocs
  845. </a>
  846. </div>
  847. </div>
  848. </div>
  849. </footer>
  850. </div>
  851. <div class="md-dialog" data-md-component="dialog">
  852. <div class="md-dialog__inner md-typeset"></div>
  853. </div>
  854. <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>
  855. <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
  856. <script src="javascripts/extra.js"></script>
  857. </body>
  858. </html>