summaryrefslogtreecommitdiff
path: root/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2021-08-29 03:23:39 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2021-08-29 03:23:39 +0000
commitbbf1dbf0b3d1816a776bb343fe3d7053ded7edaa (patch)
tree2bec0223c338750826e348165a25ff886ff7af01 /Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
parent5003f15f368f1ae0e925f78bf482c98fe06e68ba (diff)
freetype 2.11.0
git-svn-id: svn://tug.org/texlive/trunk@60354 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html')
-rw-r--r--Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html1804
1 files changed, 939 insertions, 865 deletions
diff --git a/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html b/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
index 25f219dbbf6..3bb3b612291 100644
--- a/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
+++ b/Build/source/libs/freetype2/freetype-src/docs/reference/ft2-base_interface.html
@@ -1,145 +1,136 @@
-
-
-
<!doctype html>
<html lang="en" class="no-js">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
- <meta http-equiv="x-ua-compatible" content="ie=edge">
- <meta name="description" content="API Reference Documentation for FreeType-2.10.4">
+ <meta name="description" content="API Reference Documentation for FreeType-2.11.0">
<meta name="author" content="FreeType Contributors">
- <meta name="lang:clipboard.copy" content="Copy to clipboard">
-
- <meta name="lang:clipboard.copied" content="Copied to clipboard">
-
- <meta name="lang:search.language" content="en">
-
- <meta name="lang:search.pipeline.stopwords" content="True">
-
- <meta name="lang:search.pipeline.trimmer" content="True">
-
- <meta name="lang:search.result.none" content="No matching documents">
-
- <meta name="lang:search.result.one" content="1 matching document">
-
- <meta name="lang:search.result.other" content="# matching documents">
-
- <meta name="lang:search.tokenizer" content="[\s\-]+">
-
- <link rel="shortcut icon" href="images/favico.ico">
- <meta name="generator" content="mkdocs-1.1, mkdocs-material-4.6.3">
+ <link rel="icon" href="images/favico.ico">
+ <meta name="generator" content="mkdocs-1.2.1, mkdocs-material-7.1.9">
- <title>Base Interface - FreeType-2.10.4 API Reference</title>
+ <title>Base Interface - FreeType-2.11.0 API Reference</title>
- <link rel="stylesheet" href="assets/stylesheets/application.adb8469c.css">
-
- <link rel="stylesheet" href="assets/stylesheets/application-palette.a8b3c06d.css">
-
+ <link rel="stylesheet" href="assets/stylesheets/main.ca7ac06f.min.css">
+ <link rel="stylesheet" href="assets/stylesheets/palette.f1a3b89f.min.css">
+
+
+
+ <meta name="theme-color" content="#4cae4f">
- <meta name="theme-color" content="#4caf50">
- <script src="assets/javascripts/modernizr.86422ebf.js"></script>
-
- <link href="https://fonts.gstatic.com" rel="preconnect" crossorigin>
+
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Noto+Serif:300,400,400i,700%7CRoboto+Mono&display=fallback">
- <style>body,input{font-family:"Noto Serif","Helvetica Neue",Helvetica,Arial,sans-serif}code,kbd,pre{font-family:"Roboto Mono","Courier New",Courier,monospace}</style>
+ <style>:root{--md-text-font-family:"Noto Serif";--md-code-font-family:"Roboto Mono"}</style>
- <link rel="stylesheet" href="assets/fonts/material-icons.css">
<link rel="stylesheet" href="stylesheets/extra.css">
+
+
</head>
+
+
+
- <body dir="ltr" data-md-color-primary="green" data-md-color-accent="green">
+
+ <body dir="ltr" data-md-color-scheme="" data-md-color-primary="green" data-md-color-accent="green">
- <svg class="md-svg">
- <defs>
-
-
- </defs>
- </svg>
- <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
- <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
- <label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
- <a href="#base-interface" tabindex="0" class="md-skip">
- Skip to content
- </a>
+ <script>function __prefix(e){return new URL(".",location).pathname+"."+e}function __get(e,t=localStorage){return JSON.parse(t.getItem(__prefix(e)))}</script>
+ <input class="md-toggle" data-md-toggle="drawer" type="checkbox" id="__drawer" autocomplete="off">
+ <input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
+ <label class="md-overlay" for="__drawer"></label>
+ <div data-md-component="skip">
+
+
+ <a href="#base-interface" class="md-skip">
+ Skip to content
+ </a>
+
+ </div>
+ <div data-md-component="announce">
+
+ </div>
<header class="md-header" data-md-component="header">
- <nav class="md-header-nav md-grid">
- <div class="md-flex">
- <div class="md-flex__cell md-flex__cell--shrink">
- <a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
-
- <img alt="logo" src="images/favico.ico" width="24" height="24">
-
- </a>
- </div>
- <div class="md-flex__cell md-flex__cell--shrink">
- <label class="md-icon md-icon--menu md-header-nav__button" for="__drawer"></label>
- </div>
- <div class="md-flex__cell md-flex__cell--stretch">
- <div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
-
- <span class="md-header-nav__topic">
- FreeType-2.10.4 API Reference
- </span>
- <span class="md-header-nav__topic">
-
- Base Interface
-
- </span>
-
+ <nav class="md-header__inner md-grid" aria-label="Header">
+ <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">
+
+ <img src="images/favico.ico" alt="logo">
+
+ </a>
+ <label class="md-header__button md-icon" for="__drawer">
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 6h18v2H3V6m0 5h18v2H3v-2m0 5h18v2H3v-2z"/></svg>
+ </label>
+ <div class="md-header__title" data-md-component="header-title">
+ <div class="md-header__ellipsis">
+ <div class="md-header__topic">
+ <span class="md-ellipsis">
+ FreeType-2.11.0 API Reference
+ </span>
+ </div>
+ <div class="md-header__topic" data-md-component="header-topic">
+ <span class="md-ellipsis">
+
+ Base Interface
+
+ </span>
</div>
</div>
- <div class="md-flex__cell md-flex__cell--shrink">
-
- <label class="md-icon md-icon--search md-header-nav__button" for="__search"></label>
-
+ </div>
+
+
+
+ <label class="md-header__button md-icon" for="__search">
+ <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>
+ </label>
+
<div class="md-search" data-md-component="search" role="dialog">
<label class="md-search__overlay" for="__search"></label>
<div class="md-search__inner" role="search">
<form class="md-search__form" name="search">
- <input type="text" class="md-search__input" aria-label="search" name="query" placeholder="Search" autocapitalize="off" autocorrect="off" autocomplete="off" spellcheck="false" data-md-component="query" data-md-state="active">
- <label class="md-icon md-search__icon" for="__search"></label>
- <button type="reset" class="md-icon md-search__icon" data-md-component="reset" tabindex="-1">
- &#xE5CD;
+ <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>
+ <label class="md-search__icon md-icon" for="__search">
+ <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>
+ <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>
+ </label>
+ <button type="reset" class="md-search__icon md-icon" aria-label="Clear" tabindex="-1">
+ <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>
</button>
</form>
<div class="md-search__output">
<div class="md-search__scrollwrap" data-md-scrollfix>
- <div class="md-search-result" data-md-component="result">
+ <div class="md-search-result" data-md-component="search-result">
<div class="md-search-result__meta">
- Type to start searching
+ Initializing search
</div>
<ol class="md-search-result__list"></ol>
</div>
@@ -147,33 +138,35 @@
</div>
</div>
</div>
-
- </div>
-
- </div>
+
+
</nav>
</header>
- <div class="md-container">
+ <div class="md-container" data-md-component="container">
-
+
- <main class="md-main" role="main">
- <div class="md-main__inner md-grid" data-md-component="container">
+ <main class="md-main" data-md-component="main">
+ <div class="md-main__inner md-grid">
- <div class="md-sidebar md-sidebar--primary" data-md-component="navigation">
+
+ <div class="md-sidebar md-sidebar--primary" data-md-component="sidebar" data-md-type="navigation" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
- <nav class="md-nav md-nav--primary" data-md-level="0">
- <label class="md-nav__title md-nav__title--site" for="__drawer">
- <a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
-
- <img alt="logo" src="images/favico.ico" width="48" height="48">
+
+
+
+<nav class="md-nav md-nav--primary" aria-label="Navigation" data-md-level="0">
+ <label class="md-nav__title" for="__drawer">
+ <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">
+ <img src="images/favico.ico" alt="logo">
+
</a>
- FreeType-2.10.4 API Reference
+ FreeType-2.11.0 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@@ -182,72 +175,96 @@
-
- <li class="md-nav__item">
- <a href="index.html" title="TOC" class="md-nav__link">
- TOC
- </a>
- </li>
+
+
+
+ <li class="md-nav__item">
+ <a href="index.html" class="md-nav__link">
+ TOC
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-index.html" title="Index" class="md-nav__link">
- Index
- </a>
- </li>
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-index.html" class="md-nav__link">
+ Index
+ </a>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-3" type="checkbox" id="nav-3">
+
+
+
- <label class="md-nav__link" for="nav-3">
- General Remarks
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-3">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_3" type="checkbox" id="__nav_3" >
+
+ <label class="md-nav__link" for="__nav_3">
General Remarks
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
+ <nav class="md-nav" aria-label="General Remarks" data-md-level="1">
+ <label class="md-nav__title" for="__nav_3">
+ <span class="md-nav__icon md-icon"></span>
+ General Remarks
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-preamble.html" class="md-nav__link">
+ Preamble
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-header_inclusion.html" title="FreeType's header inclusion scheme" class="md-nav__link">
- FreeType's header inclusion scheme
- </a>
- </li>
-
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-header_inclusion.html" class="md-nav__link">
+ FreeType's header inclusion scheme
+ </a>
+ </li>
+
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-user_allocation.html" class="md-nav__link">
+ User allocation
+ </a>
+ </li>
+
- <li class="md-nav__item">
- <a href="ft2-user_allocation.html" title="User allocation" class="md-nav__link">
- User allocation
- </a>
- </li>
-
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
@@ -255,77 +272,87 @@
-
-
- <li class="md-nav__item md-nav__item--active md-nav__item--nested">
+
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-4" type="checkbox" id="nav-4" checked>
+
+
- <label class="md-nav__link" for="nav-4">
- Core API
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-4">
+ <li class="md-nav__item md-nav__item--active md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_4" type="checkbox" id="__nav_4" checked>
+
+ <label class="md-nav__link" for="__nav_4">
Core API
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Core API" data-md-level="1">
+ <label class="md-nav__title" for="__nav_4">
+ <span class="md-nav__icon md-icon"></span>
+ Core API
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-version.html" title="FreeType Version" class="md-nav__link">
- FreeType Version
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-version.html" class="md-nav__link">
+ FreeType Version
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-basic_types.html" title="Basic Data Types" class="md-nav__link">
- Basic Data Types
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-basic_types.html" class="md-nav__link">
+ Basic Data Types
+ </a>
+ </li>
+
-
-
-
-
+
+
-
-
- <li class="md-nav__item md-nav__item--active">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="toc" type="checkbox" id="__toc">
+
+
+ <li class="md-nav__item md-nav__item--active">
-
-
- <label class="md-nav__link md-nav__link--active" for="__toc">
+ <input class="md-nav__toggle md-toggle" data-md-toggle="toc" type="checkbox" id="__toc">
+
+
+
+
+
+ <label class="md-nav__link md-nav__link--active" for="__toc">
+ Base Interface
+ <span class="md-nav__icon md-icon"></span>
+ </label>
+
+ <a href="ft2-base_interface.html" class="md-nav__link md-nav__link--active">
Base Interface
- </label>
-
- <a href="ft2-base_interface.html" title="Base Interface" class="md-nav__link md-nav__link--active">
- Base Interface
- </a>
-
+ </a>
-<nav class="md-nav md-nav--secondary">
+
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+
- <label class="md-nav__title" for="__toc">Table of contents</label>
- <ul class="md-nav__list" data-md-scrollfix>
+ <label class="md-nav__title" for="__toc">
+ <span class="md-nav__icon md-icon"></span>
+ Table of contents
+ </label>
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#synopsis" class="md-nav__link">
@@ -671,6 +698,13 @@
</li>
<li class="md-nav__item">
+ <a href="#ft_get_transform" class="md-nav__link">
+ FT_Get_Transform
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
<a href="#ft_load_glyph" class="md-nav__link">
FT_Load_Glyph
</a>
@@ -887,692 +921,738 @@
</li>
-
-
-
-
</ul>
</nav>
-
- </li>
+
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-nav__link">
- Unicode Variation Sequences
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-glyph_variants.html" class="md-nav__link">
+ Unicode Variation Sequences
+ </a>
+ </li>
+
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-color_management.html" class="md-nav__link">
+ Glyph Color Management
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-color_management.html" title="Glyph Color Management" class="md-nav__link">
- Glyph Color Management
- </a>
- </li>
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-layer_management.html" title="Glyph Layer Management" class="md-nav__link">
- Glyph Layer Management
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-layer_management.html" class="md-nav__link">
+ Glyph Layer Management
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-glyph_management.html" title="Glyph Management" class="md-nav__link">
- Glyph Management
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-glyph_management.html" class="md-nav__link">
+ Glyph Management
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-mac_specific.html" title="Mac Specific Interface" class="md-nav__link">
- Mac Specific Interface
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-mac_specific.html" class="md-nav__link">
+ Mac Specific Interface
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-sizes_management.html" title="Size Management" class="md-nav__link">
- Size Management
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-sizes_management.html" class="md-nav__link">
+ Size Management
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-header_file_macros.html" title="Header File Macros" class="md-nav__link">
- Header File Macros
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-header_file_macros.html" class="md-nav__link">
+ Header File Macros
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-5" type="checkbox" id="nav-5">
+
+
+
- <label class="md-nav__link" for="nav-5">
- Format-Specific API
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-5">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_5" type="checkbox" id="__nav_5" >
+
+ <label class="md-nav__link" for="__nav_5">
Format-Specific API
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
-
+ <nav class="md-nav" aria-label="Format-Specific API" data-md-level="1">
+ <label class="md-nav__title" for="__nav_5">
+ <span class="md-nav__icon md-icon"></span>
+ Format-Specific API
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
- <li class="md-nav__item">
- <a href="ft2-multiple_masters.html" title="Multiple Masters" class="md-nav__link">
- Multiple Masters
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-multiple_masters.html" class="md-nav__link">
+ Multiple Masters
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-truetype_tables.html" title="TrueType Tables" class="md-nav__link">
- TrueType Tables
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-truetype_tables.html" class="md-nav__link">
+ TrueType Tables
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-type1_tables.html" title="Type 1 Tables" class="md-nav__link">
- Type 1 Tables
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-type1_tables.html" class="md-nav__link">
+ Type 1 Tables
+ </a>
+ </li>
+
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-sfnt_names.html" class="md-nav__link">
+ SFNT Names
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-sfnt_names.html" title="SFNT Names" class="md-nav__link">
- SFNT Names
- </a>
- </li>
-
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-bdf_fonts.html" class="md-nav__link">
+ BDF and PCF Files
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-bdf_fonts.html" title="BDF and PCF Files" class="md-nav__link">
- BDF and PCF Files
- </a>
- </li>
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-cid_fonts.html" title="CID Fonts" class="md-nav__link">
- CID Fonts
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-cid_fonts.html" class="md-nav__link">
+ CID Fonts
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-pfr_fonts.html" title="PFR Fonts" class="md-nav__link">
- PFR Fonts
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-pfr_fonts.html" class="md-nav__link">
+ PFR Fonts
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-winfnt_fonts.html" title="Window FNT Files" class="md-nav__link">
- Window FNT Files
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-winfnt_fonts.html" class="md-nav__link">
+ Window FNT Files
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-font_formats.html" title="Font Formats" class="md-nav__link">
- Font Formats
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-font_formats.html" class="md-nav__link">
+ Font Formats
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-gasp_table.html" title="Gasp Table" class="md-nav__link">
- Gasp Table
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-gasp_table.html" class="md-nav__link">
+ Gasp Table
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-6" type="checkbox" id="nav-6">
+
+
+
- <label class="md-nav__link" for="nav-6">
- Controlling FreeType Modules
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-6">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_6" type="checkbox" id="__nav_6" >
+
+ <label class="md-nav__link" for="__nav_6">
Controlling FreeType Modules
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Controlling FreeType Modules" data-md-level="1">
+ <label class="md-nav__title" for="__nav_6">
+ <span class="md-nav__icon md-icon"></span>
+ Controlling FreeType Modules
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-auto_hinter.html" title="The auto-hinter" class="md-nav__link">
- The auto-hinter
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-auto_hinter.html" class="md-nav__link">
+ The auto-hinter
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-cff_driver.html" title="The CFF driver" class="md-nav__link">
- The CFF driver
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-cff_driver.html" class="md-nav__link">
+ The CFF driver
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-t1_cid_driver.html" title="The Type 1 and CID drivers" class="md-nav__link">
- The Type 1 and CID drivers
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-t1_cid_driver.html" class="md-nav__link">
+ The Type 1 and CID drivers
+ </a>
+ </li>
+
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-tt_driver.html" class="md-nav__link">
+ The TrueType driver
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-tt_driver.html" title="The TrueType driver" class="md-nav__link">
- The TrueType driver
- </a>
- </li>
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-pcf_driver.html" title="The PCF driver" class="md-nav__link">
- The PCF driver
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-pcf_driver.html" class="md-nav__link">
+ The PCF driver
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-properties.html" title="Driver properties" class="md-nav__link">
- Driver properties
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-properties.html" class="md-nav__link">
+ Driver properties
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-parameter_tags.html" title="Parameter Tags" class="md-nav__link">
- Parameter Tags
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-parameter_tags.html" class="md-nav__link">
+ Parameter Tags
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-lcd_rendering.html" title="Subpixel Rendering" class="md-nav__link">
- Subpixel Rendering
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-lcd_rendering.html" class="md-nav__link">
+ Subpixel Rendering
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-7" type="checkbox" id="nav-7">
+
+
+
- <label class="md-nav__link" for="nav-7">
- Cache Sub-System
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-7">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_7" type="checkbox" id="__nav_7" >
+
+ <label class="md-nav__link" for="__nav_7">
Cache Sub-System
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Cache Sub-System" data-md-level="1">
+ <label class="md-nav__title" for="__nav_7">
+ <span class="md-nav__icon md-icon"></span>
+ Cache Sub-System
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-cache_subsystem.html" title="Cache Sub-System" class="md-nav__link">
- Cache Sub-System
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-cache_subsystem.html" class="md-nav__link">
+ Cache Sub-System
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-8" type="checkbox" id="nav-8">
+
+
+
- <label class="md-nav__link" for="nav-8">
- Support API
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-8">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_8" type="checkbox" id="__nav_8" >
+
+ <label class="md-nav__link" for="__nav_8">
Support API
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Support API" data-md-level="1">
+ <label class="md-nav__title" for="__nav_8">
+ <span class="md-nav__icon md-icon"></span>
+ Support API
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-computations.html" title="Computations" class="md-nav__link">
- Computations
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-computations.html" class="md-nav__link">
+ Computations
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-list_processing.html" title="List Processing" class="md-nav__link">
- List Processing
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-list_processing.html" class="md-nav__link">
+ List Processing
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-outline_processing.html" title="Outline Processing" class="md-nav__link">
- Outline Processing
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-outline_processing.html" class="md-nav__link">
+ Outline Processing
+ </a>
+ </li>
+
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-quick_advance.html" class="md-nav__link">
+ Quick retrieval of advance values
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-quick_advance.html" title="Quick retrieval of advance values" class="md-nav__link">
- Quick retrieval of advance values
- </a>
- </li>
-
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-bitmap_handling.html" class="md-nav__link">
+ Bitmap Handling
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-bitmap_handling.html" title="Bitmap Handling" class="md-nav__link">
- Bitmap Handling
- </a>
- </li>
-
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-raster.html" class="md-nav__link">
+ Scanline Converter
+ </a>
+ </li>
+
-
- <li class="md-nav__item">
- <a href="ft2-raster.html" title="Scanline Converter" class="md-nav__link">
- Scanline Converter
- </a>
- </li>
-
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-glyph_stroker.html" title="Glyph Stroker" class="md-nav__link">
- Glyph Stroker
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-glyph_stroker.html" class="md-nav__link">
+ Glyph Stroker
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-system_interface.html" title="System Interface" class="md-nav__link">
- System Interface
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-system_interface.html" class="md-nav__link">
+ System Interface
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-module_management.html" title="Module Management" class="md-nav__link">
- Module Management
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-module_management.html" class="md-nav__link">
+ Module Management
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-gzip.html" title="GZIP Streams" class="md-nav__link">
- GZIP Streams
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-gzip.html" class="md-nav__link">
+ GZIP Streams
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-lzw.html" title="LZW Streams" class="md-nav__link">
- LZW Streams
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-lzw.html" class="md-nav__link">
+ LZW Streams
+ </a>
+ </li>
+
-
-
-
-
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-bzip2.html" class="md-nav__link">
+ BZIP2 Streams
+ </a>
+ </li>
+
- <li class="md-nav__item">
- <a href="ft2-bzip2.html" title="BZIP2 Streams" class="md-nav__link">
- BZIP2 Streams
- </a>
- </li>
+
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-debugging_apis.html" class="md-nav__link">
+ External Debugging APIs
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-9" type="checkbox" id="nav-9">
+
+
+
- <label class="md-nav__link" for="nav-9">
- Error Codes
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-9">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_9" type="checkbox" id="__nav_9" >
+
+ <label class="md-nav__link" for="__nav_9">
Error Codes
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Error Codes" data-md-level="1">
+ <label class="md-nav__title" for="__nav_9">
+ <span class="md-nav__icon md-icon"></span>
+ Error Codes
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-error_enumerations.html" title="Error Enumerations" class="md-nav__link">
- Error Enumerations
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-error_enumerations.html" class="md-nav__link">
+ Error Enumerations
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-error_code_values.html" title="Error Code Values" class="md-nav__link">
- Error Code Values
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-error_code_values.html" class="md-nav__link">
+ Error Code Values
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
-
- <li class="md-nav__item md-nav__item--nested">
-
- <input class="md-toggle md-nav__toggle" data-md-toggle="nav-10" type="checkbox" id="nav-10">
+
+
+
- <label class="md-nav__link" for="nav-10">
- Miscellaneous
- </label>
- <nav class="md-nav" data-md-component="collapsible" data-md-level="1">
- <label class="md-nav__title" for="nav-10">
+ <li class="md-nav__item md-nav__item--nested">
+
+
+ <input class="md-nav__toggle md-toggle" data-md-toggle="__nav_10" type="checkbox" id="__nav_10" >
+
+ <label class="md-nav__link" for="__nav_10">
Miscellaneous
+ <span class="md-nav__icon md-icon"></span>
</label>
- <ul class="md-nav__list" data-md-scrollfix>
-
-
+ <nav class="md-nav" aria-label="Miscellaneous" data-md-level="1">
+ <label class="md-nav__title" for="__nav_10">
+ <span class="md-nav__icon md-icon"></span>
+ Miscellaneous
+ </label>
+ <ul class="md-nav__list" data-md-scrollfix>
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-gx_validation.html" title="TrueTypeGX/AAT Validation" class="md-nav__link">
- TrueTypeGX/AAT Validation
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-gx_validation.html" class="md-nav__link">
+ TrueTypeGX/AAT Validation
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-incremental.html" title="Incremental Loading" class="md-nav__link">
- Incremental Loading
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-incremental.html" class="md-nav__link">
+ Incremental Loading
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-truetype_engine.html" title="The TrueType Engine" class="md-nav__link">
- The TrueType Engine
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-truetype_engine.html" class="md-nav__link">
+ The TrueType Engine
+ </a>
+ </li>
+
-
-
-
-
-
- <li class="md-nav__item">
- <a href="ft2-ot_validation.html" title="OpenType Validation" class="md-nav__link">
- OpenType Validation
- </a>
- </li>
+
+
+
+
+ <li class="md-nav__item">
+ <a href="ft2-ot_validation.html" class="md-nav__link">
+ OpenType Validation
+ </a>
+ </li>
+
-
- </ul>
- </nav>
- </li>
+
+ </ul>
+ </nav>
+ </li>
+
</ul>
@@ -1582,18 +1662,23 @@
</div>
- <div class="md-sidebar md-sidebar--secondary" data-md-component="toc">
+
+ <div class="md-sidebar md-sidebar--secondary" data-md-component="sidebar" data-md-type="toc" >
<div class="md-sidebar__scrollwrap">
<div class="md-sidebar__inner">
-<nav class="md-nav md-nav--secondary">
+<nav class="md-nav md-nav--secondary" aria-label="Table of contents">
+
- <label class="md-nav__title" for="__toc">Table of contents</label>
- <ul class="md-nav__list" data-md-scrollfix>
+ <label class="md-nav__title" for="__toc">
+ <span class="md-nav__icon md-icon"></span>
+ Table of contents
+ </label>
+ <ul class="md-nav__list" data-md-component="toc" data-md-scrollfix>
<li class="md-nav__item">
<a href="#synopsis" class="md-nav__link">
@@ -1939,6 +2024,13 @@
</li>
<li class="md-nav__item">
+ <a href="#ft_get_transform" class="md-nav__link">
+ FT_Get_Transform
+ </a>
+
+</li>
+
+ <li class="md-nav__item">
<a href="#ft_load_glyph" class="md-nav__link">
FT_Load_Glyph
</a>
@@ -2155,10 +2247,6 @@
</li>
-
-
-
-
</ul>
</nav>
@@ -2167,7 +2255,7 @@
</div>
- <div class="md-content">
+ <div class="md-content" data-md-component="content">
<article class="md-content__inner md-typeset">
@@ -2312,7 +2400,6 @@
<p>Despite the name, this enumeration lists specific character repertories (i.e., charsets), and not text encoding methods (e.g., UTF-8, UTF-16, etc.).</p>
<p>Other encodings might be defined in the future.</p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_encoding_none">FT_ENCODING_NONE</td><td class="desc">
<p>The encoding value&nbsp;0 is reserved for all formats except BDF, PCF, and Windows FNT; see below for more information.</p>
@@ -2470,7 +2557,6 @@
<p>FreeType root face class structure. A face object models a typeface in a font file.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="num_faces">num_faces</td><td class="desc">
<p>The number of faces in the font file. Some font formats can have multiple faces in a single font file.</p>
@@ -2718,7 +2804,6 @@
<p>FreeType root size class structure. A size object models a face object at a given size.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>Handle to the parent face object.</p>
@@ -2753,7 +2838,6 @@
<p>The size metrics structure gives the metrics of a size object.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="x_ppem">x_ppem</td><td class="desc">
<p>The width of the scaled EM square in pixels, hence the term &lsquo;ppem&rsquo; (pixels per EM). It is also referred to as &lsquo;nominal width&rsquo;.</p>
@@ -2856,7 +2940,6 @@
<p>FreeType root glyph slot class structure. A glyph slot is a container where individual glyphs can be loaded, be they in outline or bitmap format.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="library">library</td><td class="desc">
<p>A handle to the FreeType library instance this slot belongs to.</p>
@@ -2997,7 +3080,6 @@
<p>A structure to model the metrics of a single glyph. The values are expressed in 26.6 fractional pixel format; if the flag <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> has been used while loading the glyph, values are expressed in font units instead.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="width">width</td><td class="desc">
<p>The glyph's width.</p>
@@ -3061,7 +3143,6 @@
<p>This structure models the metrics of a bitmap strike (i.e., a set of glyphs for a given point size and resolution) in a bitmap font. It is used for the <code>available_sizes</code> field of <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code>.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="height">height</td><td class="desc">
<p>The vertical distance, in pixels, between two consecutive baselines. It is always positive.</p>
@@ -3094,7 +3175,6 @@
<p>Initialize a new FreeType library object. The set of modules that are registered by this function is determined at build time.</p>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="alibrary">alibrary</td><td class="desc">
<p>A handle to a new library object.</p>
@@ -3120,7 +3200,6 @@
<p>Destroy a given FreeType library object and all of its children, including resources, drivers, faces, sizes, etc.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="library">library</td><td class="desc">
<p>A handle to the target library object.</p>
@@ -3143,7 +3222,6 @@
<p>Call <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to open a font by its pathname.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="library">library</td><td class="desc">
<p>A handle to the library resource.</p>
@@ -3151,7 +3229,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="pathname">pathname</td><td class="desc">
<p>A path to the font file.</p>
@@ -3162,7 +3239,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="aface">aface</td><td class="desc">
<p>A handle to a new face object. If <code>face_index</code> is greater than or equal to zero, it must be non-<code>NULL</code>.</p>
@@ -3185,7 +3261,6 @@
<p>Discard a given face object, as well as all of its child slots and sizes.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object.</p>
@@ -3209,7 +3284,6 @@
<p>A counter gets initialized to&nbsp;1 at the time an <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> structure is created. This function increments the counter. <code><a href="ft2-base_interface.html#ft_done_face">FT_Done_Face</a></code> then only destroys a face if the counter is&nbsp;1, otherwise it simply decrements the counter.</p>
<p>This function helps in managing life-cycles of structures that reference <code><a href="ft2-base_interface.html#ft_face">FT_Face</a></code> objects.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object.</p>
@@ -3236,7 +3310,6 @@
<p>Call <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> to open a font that has been loaded into memory.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="library">library</td><td class="desc">
<p>A handle to the library resource.</p>
@@ -3244,7 +3317,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="file_base">file_base</td><td class="desc">
<p>A pointer to the beginning of the font data.</p>
@@ -3258,7 +3330,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="aface">aface</td><td class="desc">
<p>A handle to a new face object. If <code>face_index</code> is greater than or equal to zero, it must be non-<code>NULL</code>.</p>
@@ -3296,7 +3367,6 @@
</ul>
<p>Pass <code>NULL</code> as <code>data</code> in <code><a href="ft2-base_interface.html#ft_parameter">FT_Parameter</a></code> for a given tag to reset the option and use the library or module default again.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -3366,7 +3436,6 @@
<p>Create a face object from a given resource described by <code><a href="ft2-base_interface.html#ft_open_args">FT_Open_Args</a></code>.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="library">library</td><td class="desc">
<p>A handle to the library resource.</p>
@@ -3374,7 +3443,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="args">args</td><td class="desc">
<p>A pointer to an <code>FT_Open_Args</code> structure that must be filled by the caller.</p>
@@ -3387,7 +3455,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="aface">aface</td><td class="desc">
<p>A handle to a new face object. If <code>face_index</code> is greater than or equal to zero, it must be non-<code>NULL</code>.</p>
@@ -3403,6 +3470,7 @@
<p>Each new face object created with this function also owns a default <code><a href="ft2-base_interface.html#ft_size">FT_Size</a></code> object, accessible as <code>face-&gt;size</code>.</p>
<p>One <code><a href="ft2-base_interface.html#ft_library">FT_Library</a></code> instance can have multiple face objects, this is, <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> and its siblings can be called multiple times using the same <code>library</code> argument.</p>
<p>See the discussion of reference counters in the description of <code><a href="ft2-base_interface.html#ft_reference_face">FT_Reference_Face</a></code>.</p>
+<p>If <code>FT_OPEN_STREAM</code> is set in <code>args-&gt;flags</code>, the stream in <code>args-&gt;stream</code> is automatically closed before this function returns any error (including <code>FT_Err_Invalid_Argument</code>).</p>
<h4>example</h4>
<p>To loop over all faces, use code similar to the following snippet (omitting the error handling).
@@ -3482,7 +3550,6 @@
<p>A structure to indicate how to open a new font file or stream. A pointer to such a structure can be used as a parameter for the functions <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> and <code><a href="ft2-base_interface.html#ft_attach_stream">FT_Attach_Stream</a></code>.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="flags">flags</td><td class="desc">
<p>A set of bit flags indicating how to use the structure.</p>
@@ -3512,10 +3579,11 @@
<h4>note</h4>
-<p>The stream type is determined by the contents of <code>flags</code> that are tested in the following order by <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>:</p>
+<p>The stream type is determined by the contents of <code>flags</code>:</p>
<p>If the <code><a href="ft2-base_interface.html#ft_open_xxx">FT_OPEN_MEMORY</a></code> bit is set, assume that this is a memory file of <code>memory_size</code> bytes, located at <code>memory_address</code>. The data are not copied, and the client is responsible for releasing and destroying them <em>after</em> the corresponding call to <code><a href="ft2-base_interface.html#ft_done_face">FT_Done_Face</a></code>.</p>
<p>Otherwise, if the <code><a href="ft2-base_interface.html#ft_open_xxx">FT_OPEN_STREAM</a></code> bit is set, assume that a custom input stream <code>stream</code> is used.</p>
<p>Otherwise, if the <code><a href="ft2-base_interface.html#ft_open_xxx">FT_OPEN_PATHNAME</a></code> bit is set, assume that this is a normal file and use <code>pathname</code> to open it.</p>
+<p>If none of the above bits are set or if multiple are set at the same time, the flags are invalid and <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> fails.</p>
<p>If the <code><a href="ft2-base_interface.html#ft_open_xxx">FT_OPEN_DRIVER</a></code> bit is set, <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> only tries to open the file with the driver whose handler is in <code>driver</code>.</p>
<p>If the <code><a href="ft2-base_interface.html#ft_open_xxx">FT_OPEN_PARAMS</a></code> bit is set, the parameters given by <code>num_params</code> and <code>params</code> is used. They are ignored otherwise.</p>
<p>Ideally, both the <code>pathname</code> and <code>params</code> fields should be tagged as &lsquo;const&rsquo;; this is missing for API backward compatibility. In other words, applications should treat them as read-only.</p>
@@ -3533,7 +3601,6 @@
<p>A simple structure to pass more or less generic parameters to <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code> and <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code>.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="tag">tag</td><td class="desc">
<p>A four-byte identification tag.</p>
@@ -3557,7 +3624,6 @@
<p>Call <code><a href="ft2-base_interface.html#ft_attach_stream">FT_Attach_Stream</a></code> to attach a file.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>The target face object.</p>
@@ -3565,7 +3631,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="filepathname">filepathname</td><td class="desc">
<p>The pathname.</p>
@@ -3586,7 +3651,6 @@
<p>&lsquo;Attach&rsquo; data to a face object. Normally, this is used to read additional information for the face object. For example, you can attach an AFM file that comes with a Type&nbsp;1 font to get the kerning values and other metrics.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>The target face object.</p>
@@ -3594,7 +3658,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="parameters">parameters</td><td class="desc">
<p>A pointer to <code><a href="ft2-base_interface.html#ft_open_args">FT_Open_Args</a></code> that must be filled by the caller.</p>
@@ -3622,7 +3685,6 @@
<p>Call <code><a href="ft2-base_interface.html#ft_request_size">FT_Request_Size</a></code> to request the nominal size (in points).</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object.</p>
@@ -3630,7 +3692,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="char_width">char_width</td><td class="desc">
<p>The nominal width, in 26.6 fractional points.</p>
@@ -3668,7 +3729,6 @@
<p>Call <code><a href="ft2-base_interface.html#ft_request_size">FT_Request_Size</a></code> to request the nominal size (in pixels).</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the target face object.</p>
@@ -3676,7 +3736,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="pixel_width">pixel_width</td><td class="desc">
<p>The nominal width, in pixels.</p>
@@ -3704,7 +3763,6 @@
<p>Resize the scale of the active <code><a href="ft2-base_interface.html#ft_size">FT_Size</a></code> object in a face.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object.</p>
@@ -3712,7 +3770,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="req">req</td><td class="desc">
<p>A pointer to a <code><a href="ft2-base_interface.html#ft_size_requestrec">FT_Size_RequestRec</a></code>.</p>
@@ -3739,7 +3796,6 @@
<p>Select a bitmap strike. To be more precise, this function sets the scaling factors of the active <code><a href="ft2-base_interface.html#ft_size">FT_Size</a></code> object in a face so that bitmaps from this particular strike are taken by <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> and friends.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object.</p>
@@ -3747,7 +3803,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="strike_index">strike_index</td><td class="desc">
<p>The index of the bitmap strike in the <code>available_sizes</code> field of <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code> structure.</p>
@@ -3781,7 +3836,6 @@
<p>An enumeration type that lists the supported size request types, i.e., what input size (in font units) maps to the requested output size (in pixels, as computed from the arguments of <code><a href="ft2-base_interface.html#ft_size_request">FT_Size_Request</a></code>).</p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_size_request_type_nominal">FT_SIZE_REQUEST_TYPE_NOMINAL</td><td class="desc">
<p>The nominal size. The <code>units_per_EM</code> field of <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code> is used to determine both scaling values.</p>
@@ -3822,7 +3876,6 @@
<p>A structure to model a size request.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="type">type</td><td class="desc">
<p>See <code><a href="ft2-base_interface.html#ft_size_request_type">FT_Size_Request_Type</a></code>.</p>
@@ -3865,7 +3918,6 @@
<p>Set the transformation that is applied to glyph images when they are loaded into a glyph slot through <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code>.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -3873,7 +3925,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="matrix">matrix</td><td class="desc">
<p>A pointer to the transformation's 2x2 matrix. Use <code>NULL</code> for the identity matrix.</p>
@@ -3885,11 +3936,42 @@
<h4>note</h4>
-<p>This function is provided as a convenience, but keep in mind that <code><a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a></code> coefficients are only 16.16 fixed point values, which can limit the accuracy of the results. Using floating-point computations to perform the transform directly in client code instead will always yield better numbers.</p>
+<p>This function is provided as a convenience, but keep in mind that <code><a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a></code> coefficients are only 16.16 fixed-point values, which can limit the accuracy of the results. Using floating-point computations to perform the transform directly in client code instead will always yield better numbers.</p>
<p>The transformation is only applied to scalable image formats after the glyph has been loaded. It means that hinting is unaltered by the transformation and is performed on the character size given in the last call to <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code> or <code><a href="ft2-base_interface.html#ft_set_pixel_sizes">FT_Set_Pixel_Sizes</a></code>.</p>
<p>Note that this also transforms the <code>face.glyph.advance</code> field, but <strong>not</strong> the values in <code>face.glyph.metrics</code>.</p>
<hr>
+<h2 id="ft_get_transform">FT_Get_Transform<a class="headerlink" href="#ft_get_transform" title="Permanent link">&para;</a></h2>
+<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
+<div class = "codehilite"><pre><code> FT_EXPORT( <span class="keyword">void</span> )
+ <b>FT_Get_Transform</b>( <a href="ft2-base_interface.html#ft_face">FT_Face</a> face,
+ <a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a>* matrix,
+ <a href="ft2-basic_types.html#ft_vector">FT_Vector</a>* delta );
+</code></pre></div>
+
+<p>Return the transformation that is applied to glyph images when they are loaded into a glyph slot through <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code>. See <code><a href="ft2-base_interface.html#ft_set_transform">FT_Set_Transform</a></code> for more details.</p>
+<h4>input</h4>
+<table class="fields">
+<tr><td class="val" id="face">face</td><td class="desc">
+<p>A handle to the source face object.</p>
+</td></tr>
+</table>
+
+<h4>output</h4>
+<table class="fields">
+<tr><td class="val" id="matrix">matrix</td><td class="desc">
+<p>A pointer to a transformation's 2x2 matrix. Set this to NULL if you are not interested in the value.</p>
+</td></tr>
+<tr><td class="val" id="delta">delta</td><td class="desc">
+<p>A pointer a translation vector. Set this to NULL if you are not interested in the value.</p>
+</td></tr>
+</table>
+
+<h4>since</h4>
+
+<p>2.11</p>
+<hr>
+
<h2 id="ft_load_glyph">FT_Load_Glyph<a class="headerlink" href="#ft_load_glyph" title="Permanent link">&para;</a></h2>
<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
<div class = "codehilite"><pre><code> FT_EXPORT( <a href="ft2-basic_types.html#ft_error">FT_Error</a> )
@@ -3900,7 +3982,6 @@
<p>Load a glyph into the glyph slot of a face object.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the target face object where the glyph is loaded.</p>
@@ -3908,7 +3989,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="glyph_index">glyph_index</td><td class="desc">
<p>The index of the glyph in the font file. For CID-keyed fonts (either in PS or in CFF format) this argument specifies the CID value.</p>
@@ -3937,7 +4017,6 @@
<p>Return the glyph index of a given character code. This function uses the currently selected charmap to do the mapping.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -3952,7 +4031,7 @@
<p>The glyph index. 0&nbsp;means &lsquo;undefined character code&rsquo;.</p>
<h4>note</h4>
-<p>If you use FreeType to manipulate the contents of font files directly, be aware that the glyph index returned by this function doesn't always correspond to the internal indices used within the file. This is done to ensure that value&nbsp;0 always corresponds to the &lsquo;missing glyph&rsquo;. If the first glyph is not named &lsquo;.notdef&rsquo;, then for Type&nbsp;1 and Type&nbsp;42 fonts, &lsquo;.notdef&rsquo; will be moved into the glyph ID&nbsp;0 position, and whatever was there will be moved to the position &lsquo;.notdef&rsquo; had. For Type&nbsp;1 fonts, if there is no &lsquo;.notdef&rsquo; glyph at all, then one will be created at index&nbsp;0 and whatever was there will be moved to the last index -- Type&nbsp;42 fonts are considered invalid under this condition.</p>
+<p>If you use FreeType to manipulate the contents of font files directly, be aware that the glyph index returned by this function doesn't always correspond to the internal indices used within the file. This is done to ensure that value&nbsp;0 always corresponds to the &lsquo;missing glyph&rsquo;. If the first glyph is not named &lsquo;.notdef&rsquo;, then for Type&nbsp;1 and Type&nbsp;42 fonts, &lsquo;.notdef&rsquo; will be moved into the glyph ID&nbsp;0 position, and whatever was there will be moved to the position &lsquo;.notdef&rsquo; had. For Type&nbsp;1 fonts, if there is no &lsquo;.notdef&rsquo; glyph at all, then one will be created at index&nbsp;0 and whatever was there will be moved to the last index &ndash; Type&nbsp;42 fonts are considered invalid under this condition.</p>
<hr>
<h2 id="ft_get_first_char">FT_Get_First_Char<a class="headerlink" href="#ft_get_first_char" title="Permanent link">&para;</a></h2>
@@ -3964,7 +4043,6 @@
<p>Return the first character code in the current charmap of a given face, together with its corresponding glyph index.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -3972,7 +4050,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="agindex">agindex</td><td class="desc">
<p>Glyph index of first character code. 0&nbsp;if charmap is empty.</p>
@@ -4011,7 +4088,6 @@
<p>Return the next character code in the current charmap of a given face following the value <code>char_code</code>, as well as the corresponding glyph index.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4022,7 +4098,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="agindex">agindex</td><td class="desc">
<p>Glyph index of next character code. 0&nbsp;if charmap is empty.</p>
@@ -4047,7 +4122,6 @@
<p>Return the glyph index of a given glyph name.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4072,7 +4146,6 @@
<p>Load a glyph into the glyph slot of a face object, accessed by its character code.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a target face object where the glyph is loaded.</p>
@@ -4080,7 +4153,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="char_code">char_code</td><td class="desc">
<p>The glyph's character code, according to the current charmap used in the face.</p>
@@ -4117,7 +4189,6 @@
<p>Convert a given glyph image to a bitmap. It does so by inspecting the glyph image format, finding the relevant renderer, and invoking it.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="slot">slot</td><td class="desc">
<p>A handle to the glyph slot containing the image to convert.</p>
@@ -4125,7 +4196,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="render_mode">render_mode</td><td class="desc">
<p>The render mode used to render the glyph image into a bitmap. See <code><a href="ft2-base_interface.html#ft_render_mode">FT_Render_Mode</a></code> for a list of possible values.</p>
@@ -4141,12 +4211,12 @@
<p>To get meaningful results, font scaling values must be set with functions like <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code> before calling <code>FT_Render_Glyph</code>.</p>
<p>When FreeType outputs a bitmap of a glyph, it really outputs an alpha coverage map. If a pixel is completely covered by a filled-in outline, the bitmap contains 0xFF at that pixel, meaning that 0xFF/0xFF fraction of that pixel is covered, meaning the pixel is 100% black (or 0% bright). If a pixel is only 50% covered (value 0x80), the pixel is made 50% black (50% bright or a middle shade of grey). 0% covered means 0% black (100% bright or white).</p>
<p>On high-DPI screens like on smartphones and tablets, the pixels are so small that their chance of being completely covered and therefore completely black are fairly good. On the low-DPI screens, however, the situation is different. The pixels are too large for most of the details of a glyph and shades of gray are the norm rather than the exception.</p>
-<p>This is relevant because all our screens have a second problem: they are not linear. 1&nbsp;+&nbsp;1 is not&nbsp;2. Twice the value does not result in twice the brightness. When a pixel is only 50% covered, the coverage map says 50% black, and this translates to a pixel value of 128 when you use 8&nbsp;bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma&nbsp;2.2 screens. Due to their non-linearity, they dwell longer in the darks and only a pixel value of about 186 results in 50% brightness -- 128 ends up too dark on both bright and dark backgrounds. The net result is that dark text looks burnt-out, pixely and blotchy on bright background, bright text too frail on dark backgrounds, and colored text on colored background (for example, red on green) seems to have dark halos or &lsquo;dirt&rsquo; around it. The situation is especially ugly for diagonal stems like in &lsquo;w&rsquo; glyph shapes where the quality of FreeType's anti-aliasing depends on the correct display of grays. On high-DPI screens where smaller, fully black pixels reign supreme, this doesn't matter, but on our low-DPI screens with all the gray shades, it does. 0% and 100% brightness are the same things in linear and non-linear space, just all the shades in-between aren't.</p>
+<p>This is relevant because all our screens have a second problem: they are not linear. 1&nbsp;+&nbsp;1 is not&nbsp;2. Twice the value does not result in twice the brightness. When a pixel is only 50% covered, the coverage map says 50% black, and this translates to a pixel value of 128 when you use 8&nbsp;bits per channel (0-255). However, this does not translate to 50% brightness for that pixel on our sRGB and gamma&nbsp;2.2 screens. Due to their non-linearity, they dwell longer in the darks and only a pixel value of about 186 results in 50% brightness &ndash; 128 ends up too dark on both bright and dark backgrounds. The net result is that dark text looks burnt-out, pixely and blotchy on bright background, bright text too frail on dark backgrounds, and colored text on colored background (for example, red on green) seems to have dark halos or &lsquo;dirt&rsquo; around it. The situation is especially ugly for diagonal stems like in &lsquo;w&rsquo; glyph shapes where the quality of FreeType's anti-aliasing depends on the correct display of grays. On high-DPI screens where smaller, fully black pixels reign supreme, this doesn't matter, but on our low-DPI screens with all the gray shades, it does. 0% and 100% brightness are the same things in linear and non-linear space, just all the shades in-between aren't.</p>
<p>The blending function for placing text over a background is
<div class="highlight"><pre><span></span><code> dst = alpha * src + (1 - alpha) * dst ,
</code></pre></div></p>
<p>which is known as the OVER operator.</p>
-<p>To correctly composite an antialiased pixel of a glyph onto a surface,</p>
+<p>To correctly composite an anti-aliased pixel of a glyph onto a surface,</p>
<ol>
<li>
<p>take the foreground and background colors (e.g., in sRGB space) and apply gamma to get them in a linear space,</p>
@@ -4172,6 +4242,7 @@
<a href="ft2-base_interface.html#ft_render_mode_mono">FT_RENDER_MODE_MONO</a>,
<a href="ft2-base_interface.html#ft_render_mode_lcd">FT_RENDER_MODE_LCD</a>,
<a href="ft2-base_interface.html#ft_render_mode_lcd_v">FT_RENDER_MODE_LCD_V</a>,
+ <a href="ft2-base_interface.html#ft_render_mode_sdf">FT_RENDER_MODE_SDF</a>,
FT_RENDER_MODE_MAX
@@ -4187,8 +4258,8 @@
<p>Render modes supported by FreeType&nbsp;2. Each mode corresponds to a specific type of scanline conversion performed on the outline.</p>
<p>For bitmap fonts and embedded bitmaps the <code>bitmap-&gt;pixel_mode</code> field in the <code><a href="ft2-base_interface.html#ft_glyphslotrec">FT_GlyphSlotRec</a></code> structure gives the format of the returned bitmap.</p>
<p>All modes except <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_MONO</a></code> use 256 levels of opacity, indicating pixel coverage. Use linear alpha blending and gamma correction to correctly render non-monochrome glyph bitmaps onto a surface; see <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code>.</p>
+<p>The <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_SDF</a></code> is a special render mode that uses up to 256 distance values, indicating the signed distance from the grid position to the nearest outline.</p>
<h4>values</h4>
-
<table class="fields">
<tr><td class="val" id="ft_render_mode_normal">FT_RENDER_MODE_NORMAL</td><td class="desc">
<p>Default render mode; it corresponds to 8-bit anti-aliased bitmaps.</p>
@@ -4205,11 +4276,36 @@
<tr><td class="val" id="ft_render_mode_lcd_v">FT_RENDER_MODE_LCD_V</td><td class="desc">
<p>This mode corresponds to vertical RGB and BGR subpixel displays (like PDA screens, rotated LCD displays, etc.). It produces 8-bit bitmaps that are 3&nbsp;times the height of the original glyph outline in pixels and use the <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_LCD_V</a></code> mode.</p>
</td></tr>
+<tr><td class="val" id="ft_render_mode_sdf">FT_RENDER_MODE_SDF</td><td class="desc">
+<p>This mode corresponds to 8-bit, single-channel signed distance field (SDF) bitmaps. Each pixel in the SDF grid is the value from the pixel's position to the nearest glyph's outline. The distances are calculated from the center of the pixel and are positive if they are filled by the outline (i.e., inside the outline) and negative otherwise. Check the note below on how to convert the output values to usable data.</p>
+</td></tr>
</table>
<h4>note</h4>
<p>The selected render mode only affects vector glyphs of a font. Embedded bitmaps often have a different pixel mode like <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_MONO</a></code>. You can use <code><a href="ft2-bitmap_handling.html#ft_bitmap_convert">FT_Bitmap_Convert</a></code> to transform them into 8-bit pixmaps.</p>
+<p>For <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_SDF</a></code> the output bitmap buffer contains normalized distances that are packed into unsigned 8-bit values. To get pixel values in floating point representation use the following pseudo-C code for the conversion.
+<div class="highlight"><pre><span></span><code>// Load glyph and render using FT_RENDER_MODE_SDF,
+// then use the output buffer as follows.
+
+...
+FT_Byte buffer = glyph-&gt;bitmap-&gt;buffer;
+
+
+for pixel in buffer
+{
+ // `sd` is the signed distance and `spread` is the current spread;
+ // the default spread is 2 and can be changed.
+
+ float sd = (float)pixel - 128.0f;
+
+
+ // Convert to pixel values.
+ sd = ( sd / 128.0f ) * spread;
+
+ // Store `sd` in a buffer or use as required.
+}
+</code></pre></div></p>
<hr>
<h2 id="ft_get_kerning">FT_Get_Kerning<a class="headerlink" href="#ft_get_kerning" title="Permanent link">&para;</a></h2>
@@ -4224,7 +4320,6 @@
<p>Return the kerning vector between two glyphs of the same face.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a source face object.</p>
@@ -4241,7 +4336,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="akerning">akerning</td><td class="desc">
<p>The kerning vector. This is either in font units, fractional pixels (26.6 format), or pixels for scalable formats, and in pixels for fixed-sizes formats.</p>
@@ -4253,7 +4347,7 @@
<p>FreeType error code. 0&nbsp;means success.</p>
<h4>note</h4>
-<p>Only horizontal layouts (left-to-right &amp; right-to-left) are supported by this method. Other layouts, or more sophisticated kernings, are out of the scope of this API function -- they can be implemented through format-specific interfaces.</p>
+<p>Only horizontal layouts (left-to-right &amp; right-to-left) are supported by this method. Other layouts, or more sophisticated kernings, are out of the scope of this API function &ndash; they can be implemented through format-specific interfaces.</p>
<p>Kerning for OpenType fonts implemented in a &lsquo;GPOS&rsquo; table is not supported; use <code><a href="ft2-base_interface.html#ft_has_kerning">FT_HAS_KERNING</a></code> to find out whether a font has data that can be extracted with <code>FT_Get_Kerning</code>.</p>
<hr>
@@ -4277,7 +4371,6 @@
<p>An enumeration to specify the format of kerning values returned by <code><a href="ft2-base_interface.html#ft_get_kerning">FT_Get_Kerning</a></code>.</p>
<h4>values</h4>
-
<table class="fields">
<tr><td class="val" id="ft_kerning_default">FT_KERNING_DEFAULT</td><td class="desc">
<p>Return grid-fitted kerning distances in 26.6 fractional pixels.</p>
@@ -4307,7 +4400,6 @@
<p>Return the track kerning for a given face object at a given size.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a source face object.</p>
@@ -4321,7 +4413,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="akerning">akerning</td><td class="desc">
<p>The kerning in 16.16 fractional points, to be uniformly applied between all glyphs.</p>
@@ -4348,7 +4439,6 @@
<p>Retrieve the ASCII name of a given glyph in a face. This only works for those faces where <code><a href="ft2-base_interface.html#ft_has_glyph_names">FT_HAS_GLYPH_NAMES</a></code>(face) returns&nbsp;1.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to a source face object.</p>
@@ -4362,7 +4452,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="buffer">buffer</td><td class="desc">
<p>A pointer to a target buffer where the name is copied to.</p>
@@ -4388,7 +4477,6 @@
<p>Retrieve the ASCII PostScript name of a given face, if available. This only works with PostScript, TrueType, and OpenType fonts.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4420,7 +4508,6 @@
<p>The base charmap structure.</p>
<h4>fields</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the parent face object.</p>
@@ -4447,7 +4534,6 @@
<p>Select a given charmap by its encoding tag (as listed in <code>freetype.h</code>).</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4455,7 +4541,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="encoding">encoding</td><td class="desc">
<p>A handle to the selected encoding.</p>
@@ -4480,7 +4565,6 @@
<p>Select a given charmap for character code to glyph index mapping.</p>
<h4>inout</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4488,7 +4572,6 @@
</table>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="charmap">charmap</td><td class="desc">
<p>A handle to the selected charmap.</p>
@@ -4512,7 +4595,6 @@
<p>Retrieve index of a given charmap.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="charmap">charmap</td><td class="desc">
<p>A handle to a charmap.</p>
@@ -4532,7 +4614,6 @@
<p>Return the <code>fsType</code> flags for a font.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="face">face</td><td class="desc">
<p>A handle to the source face object.</p>
@@ -4564,7 +4645,6 @@
<p>Retrieve a description of a given subglyph. Only use it if <code>glyph-&gt;format</code> is <code><a href="ft2-basic_types.html#ft_glyph_format">FT_GLYPH_FORMAT_COMPOSITE</a></code>; an error is returned otherwise.</p>
<h4>input</h4>
-
<table class="fields">
<tr><td class="val" id="glyph">glyph</td><td class="desc">
<p>The source glyph slot.</p>
@@ -4575,7 +4655,6 @@
</table>
<h4>output</h4>
-
<table class="fields">
<tr><td class="val" id="p_index">p_index</td><td class="desc">
<p>The glyph index of the subglyph.</p>
@@ -4650,7 +4729,6 @@
<p>A list of bit flags used in the <code>face_flags</code> field of the <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code> structure. They inform client applications of properties of the corresponding face.</p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_face_flag_scalable">FT_FACE_FLAG_SCALABLE</td><td class="desc">
<p>The face contains outline glyphs. Note that a face can contain bitmap strikes also, i.e., a face can have both this flag and <code><a href="ft2-base_interface.html#ft_face_flag_xxx">FT_FACE_FLAG_FIXED_SIZES</a></code> set.</p>
@@ -4716,7 +4794,6 @@
<p>A list of bit flags to indicate the style of a given face. These are used in the <code>style_flags</code> field of <code><a href="ft2-base_interface.html#ft_facerec">FT_FaceRec</a></code>.</p>
<h4>values</h4>
-
<table class="fields">
<tr><td class="val" id="ft_style_flag_italic">FT_STYLE_FLAG_ITALIC</td><td class="desc">
<p>The face style is italic or oblique.</p>
@@ -4739,6 +4816,7 @@
#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_open_driver">FT_OPEN_DRIVER</a> 0x8
#<span class="keyword">define</span> <a href="ft2-base_interface.html#ft_open_params">FT_OPEN_PARAMS</a> 0x10
+
/* these constants are deprecated; use the corresponding `<b>FT_OPEN_XXX</b>` */
/* values instead */
#<span class="keyword">define</span> ft_open_memory <a href="ft2-base_interface.html#ft_open_memory">FT_OPEN_MEMORY</a>
@@ -4750,7 +4828,6 @@
<p>A list of bit field constants used within the <code>flags</code> field of the <code><a href="ft2-base_interface.html#ft_open_args">FT_Open_Args</a></code> structure.</p>
<h4>values</h4>
-
<table class="fields">
<tr><td class="val" id="ft_open_memory">FT_OPEN_MEMORY</td><td class="desc">
<p>This is a memory-based stream.</p>
@@ -4799,7 +4876,6 @@
<p>A list of bit field constants for <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code> to indicate what kind of operations to perform during glyph loading.</p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_load_default">FT_LOAD_DEFAULT</td><td class="desc">
<p>Corresponding to&nbsp;0, this value is used as the default glyph load operation. In this case, the following happens:</p>
@@ -4900,7 +4976,6 @@
<p>A list of values to select a specific hinting algorithm for the hinter. You should OR one of these values to your <code>load_flags</code> when calling <code><a href="ft2-base_interface.html#ft_load_glyph">FT_Load_Glyph</a></code>.</p>
<p>Note that a font's native hinters may ignore the hinting algorithm you have specified (e.g., the TrueType bytecode interpreter). You can set <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_FORCE_AUTOHINT</a></code> to ensure that the auto-hinter is used.</p>
<h4>values</h4>
-
<table class="fields">
<tr><td class="val" id="ft_load_target_normal">FT_LOAD_TARGET_NORMAL</td><td class="desc">
<p>The default hinting algorithm, optimized for standard gray-level rendering. For monochrome output, use <code><a href="ft2-base_interface.html#ft_load_target_xxx">FT_LOAD_TARGET_MONO</a></code> instead.</p>
@@ -4949,7 +5024,6 @@
<p>A list of constants describing subglyphs. Please refer to the &lsquo;glyf&rsquo; table description in the OpenType specification for the meaning of the various flags (which get synthesized for non-OpenType subglyphs).</p>
<p><a href="https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description">https://docs.microsoft.com/en-us/typography/opentype/spec/glyf#composite-glyph-description</a></p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_subglyph_flag_args_are_words">FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS</td><td class="desc">
@@ -4989,7 +5063,6 @@
<p>A list of bit flags used in the <code>fsType</code> field of the OS/2 table in a TrueType or OpenType font and the <code>FSType</code> entry in a PostScript font. These bit flags are returned by <code><a href="ft2-base_interface.html#ft_get_fstype_flags">FT_Get_FSType_Flags</a></code>; they inform client applications of embedding and subsetting restrictions associated with a font.</p>
<p>See <a href="https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf">https://www.adobe.com/content/dam/Adobe/en/devnet/acrobat/pdfs/FontPolicies.pdf</a> for more details.</p>
<h4>values</h4>
-
<table class="fields long">
<tr><td class="val" id="ft_fstype_installable_embedding">FT_FSTYPE_INSTALLABLE_EMBEDDING</td><td class="desc">
<p>Fonts with no fsType bit set may be embedded and permanently installed on the remote system by an application.</p>
@@ -5025,9 +5098,6 @@
<p>Deprecated.</p>
<hr>
-
-
-
@@ -5037,59 +5107,60 @@
</article>
</div>
</div>
+
</main>
<footer class="md-footer">
- <div class="md-footer-nav">
- <nav class="md-footer-nav__inner md-grid">
+ <nav class="md-footer__inner md-grid" aria-label="Footer">
+
- <a href="ft2-basic_types.html" title="Basic Data Types" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel="prev">
- <div class="md-flex__cell md-flex__cell--shrink">
- <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i>
- </div>
- <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
- <span class="md-flex__ellipsis">
- <span class="md-footer-nav__direction">
- Previous
- </span>
- Basic Data Types
+ <a href="ft2-basic_types.html" class="md-footer__link md-footer__link--prev" aria-label="Previous: Basic Data Types" rel="prev">
+ <div class="md-footer__button md-icon">
+ <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>
+ </div>
+ <div class="md-footer__title">
+ <div class="md-ellipsis">
+ <span class="md-footer__direction">
+ Previous
</span>
+ Basic Data Types
</div>
- </a>
-
+ </div>
+ </a>
+
+
- <a href="ft2-glyph_variants.html" title="Unicode Variation Sequences" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel="next">
- <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title">
- <span class="md-flex__ellipsis">
- <span class="md-footer-nav__direction">
- Next
- </span>
- Unicode Variation Sequences
+ <a href="ft2-glyph_variants.html" class="md-footer__link md-footer__link--next" aria-label="Next: Unicode Variation Sequences" rel="next">
+ <div class="md-footer__title">
+ <div class="md-ellipsis">
+ <span class="md-footer__direction">
+ Next
</span>
+ Unicode Variation Sequences
</div>
- <div class="md-flex__cell md-flex__cell--shrink">
- <i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i>
- </div>
- </a>
-
- </nav>
- </div>
+ </div>
+ <div class="md-footer__button md-icon">
+ <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>
+ </div>
+ </a>
+
+ </nav>
<div class="md-footer-meta md-typeset">
<div class="md-footer-meta__inner md-grid">
<div class="md-footer-copyright">
<div class="md-footer-copyright__highlight">
- Copyright 2020 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
+ Copyright 2021 <a href = "https://www.freetype.org/license.html">The FreeType Project</a>.
</div>
- powered by
- <a href="https://www.mkdocs.org" target="_blank" rel="noopener">MkDocs</a>
- and
+ Made with
<a href="https://squidfunk.github.io/mkdocs-material/" target="_blank" rel="noopener">
- Material for MkDocs</a>
+ Material for MkDocs
+ </a>
+
</div>
</div>
@@ -5097,10 +5168,13 @@
</footer>
</div>
+ <div class="md-dialog" data-md-component="dialog">
+ <div class="md-dialog__inner md-typeset"></div>
+ </div>
+ <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>
- <script src="assets/javascripts/application.c33a9706.js"></script>
-
- <script>app.initialize({version:"1.1",url:{base:"."}})</script>
+
+ <script src="assets/javascripts/bundle.82b56eb2.min.js"></script>
<script src="javascripts/extra.js"></script>