From 2eaf0cf8fd6e7c290497fedb08134a89e7b49b1d Mon Sep 17 00:00:00 2001 From: Konstantin Ritt Date: Thu, 19 Mar 2015 17:34:42 +0400 Subject: Update bundled FreeType to 2.5.5 Removed everything, imported with help of import_from_tarball.sh script, and then added a pre-generated builds/unix/ftconfig.h Task-number: QTBUG-44648 Change-Id: Iea948e41f7761f1580382b3763d04c7a61383382 Reviewed-by: Lars Knoll --- src/3rdparty/freetype/docs/CHANGES | 785 ++++- src/3rdparty/freetype/docs/CUSTOMIZE | 47 +- src/3rdparty/freetype/docs/DEBUG | 182 +- src/3rdparty/freetype/docs/GPL.TXT | 340 -- src/3rdparty/freetype/docs/GPLv2.TXT | 340 ++ src/3rdparty/freetype/docs/INSTALL | 91 - src/3rdparty/freetype/docs/INSTALL.ANY | 151 - src/3rdparty/freetype/docs/INSTALL.CROSS | 135 - src/3rdparty/freetype/docs/INSTALL.GNU | 159 - src/3rdparty/freetype/docs/INSTALL.MAC | 32 - src/3rdparty/freetype/docs/INSTALL.UNIX | 96 - src/3rdparty/freetype/docs/INSTALL.VMS | 62 - src/3rdparty/freetype/docs/LICENSE.TXT | 10 +- src/3rdparty/freetype/docs/MAKEPP | 5 - src/3rdparty/freetype/docs/PATENTS | 27 - src/3rdparty/freetype/docs/PROBLEMS | 15 +- src/3rdparty/freetype/docs/TRUETYPE | 40 - src/3rdparty/freetype/docs/UPGRADE.UNIX | 137 - src/3rdparty/freetype/docs/VERSION.DLL | 138 - src/3rdparty/freetype/docs/formats.txt | 164 - src/3rdparty/freetype/docs/raster.txt | 635 ---- src/3rdparty/freetype/docs/reference/README | 5 - .../docs/reference/ft2-base_interface.html | 3559 -------------------- .../freetype/docs/reference/ft2-basic_types.html | 1171 ------- .../freetype/docs/reference/ft2-bdf_fonts.html | 260 -- .../docs/reference/ft2-bitmap_handling.html | 302 -- .../docs/reference/ft2-cache_subsystem.html | 1170 ------- .../freetype/docs/reference/ft2-cid_fonts.html | 204 -- .../freetype/docs/reference/ft2-computations.html | 832 ----- .../freetype/docs/reference/ft2-font_formats.html | 84 - .../freetype/docs/reference/ft2-gasp_table.html | 141 - .../docs/reference/ft2-glyph_management.html | 672 ---- .../freetype/docs/reference/ft2-glyph_stroker.html | 928 ----- .../docs/reference/ft2-glyph_variants.html | 267 -- .../freetype/docs/reference/ft2-gx_validation.html | 356 -- src/3rdparty/freetype/docs/reference/ft2-gzip.html | 94 - .../docs/reference/ft2-header_file_macros.html | 836 ----- .../freetype/docs/reference/ft2-incremental.html | 401 --- .../freetype/docs/reference/ft2-index.html | 290 -- .../freetype/docs/reference/ft2-lcd_filtering.html | 149 - .../docs/reference/ft2-list_processing.html | 483 --- src/3rdparty/freetype/docs/reference/ft2-lzw.html | 94 - .../freetype/docs/reference/ft2-mac_specific.html | 368 -- .../docs/reference/ft2-module_management.html | 627 ---- .../docs/reference/ft2-multiple_masters.html | 511 --- .../freetype/docs/reference/ft2-ot_validation.html | 208 -- .../docs/reference/ft2-outline_processing.html | 1119 ------ .../freetype/docs/reference/ft2-pfr_fonts.html | 206 -- .../freetype/docs/reference/ft2-quick_advance.html | 185 - .../freetype/docs/reference/ft2-raster.html | 606 ---- .../freetype/docs/reference/ft2-sfnt_names.html | 232 -- .../docs/reference/ft2-sizes_management.html | 164 - .../docs/reference/ft2-system_interface.html | 415 --- src/3rdparty/freetype/docs/reference/ft2-toc.html | 215 -- .../docs/reference/ft2-truetype_engine.html | 132 - .../docs/reference/ft2-truetype_tables.html | 1217 ------- .../freetype/docs/reference/ft2-type1_tables.html | 522 --- .../docs/reference/ft2-user_allocation.html | 47 - .../freetype/docs/reference/ft2-version.html | 213 -- .../freetype/docs/reference/ft2-winfnt_fonts.html | 278 -- src/3rdparty/freetype/docs/release | 195 -- 61 files changed, 1261 insertions(+), 22088 deletions(-) delete mode 100644 src/3rdparty/freetype/docs/GPL.TXT create mode 100644 src/3rdparty/freetype/docs/GPLv2.TXT delete mode 100644 src/3rdparty/freetype/docs/INSTALL delete mode 100644 src/3rdparty/freetype/docs/INSTALL.ANY delete mode 100644 src/3rdparty/freetype/docs/INSTALL.CROSS delete mode 100644 src/3rdparty/freetype/docs/INSTALL.GNU delete mode 100644 src/3rdparty/freetype/docs/INSTALL.MAC delete mode 100644 src/3rdparty/freetype/docs/INSTALL.UNIX delete mode 100644 src/3rdparty/freetype/docs/INSTALL.VMS delete mode 100644 src/3rdparty/freetype/docs/MAKEPP delete mode 100644 src/3rdparty/freetype/docs/PATENTS delete mode 100644 src/3rdparty/freetype/docs/TRUETYPE delete mode 100644 src/3rdparty/freetype/docs/UPGRADE.UNIX delete mode 100644 src/3rdparty/freetype/docs/VERSION.DLL delete mode 100644 src/3rdparty/freetype/docs/formats.txt delete mode 100644 src/3rdparty/freetype/docs/raster.txt delete mode 100644 src/3rdparty/freetype/docs/reference/README delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-base_interface.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-basic_types.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-bdf_fonts.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-bitmap_handling.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-cache_subsystem.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-cid_fonts.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-computations.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-font_formats.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-gasp_table.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-glyph_management.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-glyph_stroker.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-glyph_variants.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-gx_validation.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-gzip.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-header_file_macros.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-incremental.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-index.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-lcd_filtering.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-list_processing.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-lzw.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-mac_specific.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-module_management.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-multiple_masters.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-ot_validation.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-outline_processing.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-pfr_fonts.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-quick_advance.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-raster.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-sfnt_names.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-sizes_management.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-system_interface.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-toc.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-truetype_engine.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-truetype_tables.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-type1_tables.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-user_allocation.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-version.html delete mode 100644 src/3rdparty/freetype/docs/reference/ft2-winfnt_fonts.html delete mode 100644 src/3rdparty/freetype/docs/release (limited to 'src/3rdparty/freetype/docs') diff --git a/src/3rdparty/freetype/docs/CHANGES b/src/3rdparty/freetype/docs/CHANGES index 018d16c577..bbc31104af 100644 --- a/src/3rdparty/freetype/docs/CHANGES +++ b/src/3rdparty/freetype/docs/CHANGES @@ -1,3 +1,783 @@ + +CHANGES BETWEEN 2.5.4 and 2.5.5 + + I. IMPORTANT BUG FIXES + + - Handling of uncompressed PCF files works again (bug introduced + in version 2.5.4). + + +====================================================================== + +CHANGES BETWEEN 2.5.3 and 2.5.4 + + I. IMPORTANT BUG FIXES + + - A variant of vulnerability CVE-2014-2240 was identified + (cf. http://savannah.nongnu.org/bugs/?43661) and fixed in the + new CFF driver. All users should upgrade. + + - The new auto-hinter code using HarfBuzz crashed for some invalid + fonts. + + - Many fixes to better protect against malformed input. + + + II. IMPORTANT CHANGES + + - Full auto-hinter support of the Devanagari script. + + - Experimental auto-hinter support of the Telugu script. + + - CFF stem darkening behaviour can now be controlled at build time + using the eight macros + + CFF_CONFIG_OPTION_DARKENING_PARAMETER_{X,Y}{1,2,3,4} . + + - Some fields in the `FT_Bitmap' structure have been changed from + signed to unsigned type, which better reflects the actual usage. + It is also an additional means to protect against malformed + input. + + This change doesn't break the ABI; however, it might cause + compiler warnings. + + + III. MISCELLANEOUS + + - Improvements to the auto-hinter's algorithm to recognize stems + and local extrema. + + - Function `FT_Get_SubGlyph_Info' always returned an error even in + case of success. + + - Version 2.5.1 introduced major bugs in the cjk part of the + auto-hinter, which are now fixed. + + - The `FT_Sfnt_Tag' enumeration values have been changed to + uppercase, e.g. `FT_SFNT_HEAD'. The lowercase variants are + deprecated. This is for orthogonality with all other + enumeration (and enumeration-like) values in FreeType. + + - `cmake' now supports builds of FreeType as an OS X framework and + for iOS. + + - Improved project files for vc2010, introducing a property file. + + - The documentation generator for the API reference has been + updated to produce better HTML code (with proper CSS). At the + same time, the documentation got a better structure. + + - The FT_LOAD_BITMAP_CROP flag is obsolete; it is not used by any + driver. + + - The TrueType DELTAP[123] bytecode instructions now work in + subpixel hinting mode as described in the ClearType whitepaper + (i.e., for touched points in the non-subpixel direction). + + - Many small improvements to the internal arithmetic routines. + + +====================================================================== + +CHANGES BETWEEN 2.5.2 and 2.5.3 + + I. IMPORTANT BUG FIXES + + - A vulnerability (CVE-2014-2240) was identified and fixed in the + new CFF driver (cf. http://savannah.nongnu.org/bugs/?41697). + All users should upgrade. + + - More bug fixes related to correct positioning of composite + glyphs. + + - Many fixes to better protect against malformed input. + + + II. IMPORTANT CHANGES + + - FreeType can now use the HarfBuzz library to greatly improve the + auto-hinting of fonts that use OpenType features: Many glyphs + that are part of such features but don't have cmap entries are + now handled properly, for example small caps or superscripts. + Define the configuration macro FT_CONFIG_OPTION_USE_HARFBUZZ to + activate HarfBuzz support. + + You need HarfBuzz version 0.9.19 or newer. + + Note that HarfBuzz depends on FreeType; this currently causes a + chicken-and-egg problem that can be solved as follows in case + HarfBuzz is not yet installed on your system. + + 1. Compile and install FreeType without the configuration + macro FT_CONFIG_OPTION_USE_HARFBUZZ. + + 2. Compile and install HarfBuzz. + + 3. Define macro FT_CONFIG_OPTION_USE_HARFBUZZ, then compile + and install FreeType again. + + With FreeType's `configure' script the procedure boils down to + configure, build, and install Freetype, then configure, compile, + and install HarfBuzz, then configure, compile, and install + FreeType again (after executing `make distclean'). + + - All libraries FreeType depends on are now checked using the + `pkg-config' configuration files first, followed by alternative + methods. + + - The new value `auto' for the various `--with-XXX' library + options (for example `--with-harfbuzz=auto') makes the + `configure' script automatically link to the libraries it finds. + This is now the default. + + - In case FreeType's `configure' script can't find a library, you + can pass environment variables to circumvent pkg-config, and + those variables have been harmonized as a consequence of the + changes mentioned above: + + LIBZ -> removed; use LIBZ_CFLAGS and LIBZ_LIBS + LIBBZ2 -> removed; use BZIP2_CFLAGS and BZIP2_LIBS + LIBPNG_LDFLAGS -> LIBPNG_LIBS + + `./configure --help' shows all available environment variables. + + - The `freetype-config' script now understands option `--static' + to emit static linking information. + + +====================================================================== + +CHANGES BETWEEN 2.5.1 and 2.5.2 + + I. IMPORTANT BUG FIXES + + - Improving the display of some broken TrueType fonts introduced a + bug that made FreeType crash on some popular (but not fully + conformant) fonts like `ahronbd.ttf'. + + - Another round of improvements to correct positioning and hinting + of composite glyphs in TrueType fonts. + + + II. MISCELLANEOUS + + - Version 2.5.1 introduced a bug in handling embedded bitmap + strikes of TrueType fonts, causing garbage display under some + circumstances. + + - The `ftgrid' demo program couldn't be compiled in + non-development builds. + + +====================================================================== + +CHANGES BETWEEN 2.5 and 2.5.1 + + I. IMPORTANT BUG FIXES + + - For some WinFNT files, the last glyph wasn't displayed but + incorrectly marked as invalid. + + - The vertical size of glyphs was incorrectly set after a call to + `FT_GlyphSlot_Embolden', resulting in clipped glyphs. + + - Many fields of the `PCLT' table in SFNT based fonts (if accessed + with `FT_Get_Sfnt_Table') were computed incorrectly. + + - In TrueType fonts, hinting of composite glyphs could sometimes + deliver incorrect positions of components or even distorted + shapes. + + + II. IMPORTANT CHANGES + + - WOFF font format support has been added. + + - The auto-hinter now supports Hebrew. Greek and Cyrillic support + has been improved. + + - Support for the forthcoming `OS/2' SFNT table version 5, as can + be found e.g. in the `Sitka' font family for Windows 8.1. + + - The header file layout has been changed. After installation, + all files are now located in `/include/freetype2'. + + Applications that use (a) `freetype-config' or FreeType's + `pkg-config' file to get the include directory for the compiler, + and (b) the documented way for header inclusion like + + #include + #include FT_FREETYPE_H + ... + + don't need any change to the source code. + + + III. MISCELLANEOUS + + - The stem darkening feature of the new CFF engine can now be + fine-tuned with the new `darkening-parameters' property. + + - `ftgrid' has been updated to toggle various engines with the `H' + key, similar to `ftview' and `ftdiff'. + + - The functionality of `ttdebug' has been greatly enhanced. + + . It now displays twilight, storage, and control value data; key + `T' shows the twilight point table, key `S' the storage data, + and key `C' the control value table. + + . Some keys have been reassigned from lowercase to their + uppercase equivalents; for example `q' to quit the program is + now `Q'. + + . Key `f' finishes the current function. + + . Key `R' restarts the debugger. + + . Keys `b' and `p' set a breakpoint. + + . Key `B' provides a function call backtrace. + + - Better support of ARMv7 and x86_64 processors. + + - Apple's `sbix' color bitmap format is now supported. + + - Improved auto-hinter rendering for many TrueType fonts, + especially in the range 20-40ppem. + + - A new face flag `FT_FACE_FLAG_COLOR' has been added (to be + accessed with the macro `FT_HAS_COLOR'). + + - `FT_Gzip_Uncompress' (modeled after zlib's `uncompress' + function) has been added; this is a by-product of the newly + added WOFF support. + + - Support for a build with `cmake' has been contributed by John + Cary . + + - Support for x64 builds with Visual C++ has been contributed by + Kenneth Miller + + - Manual pages for most demo programs have been added. + + - The GETINFO bytecode instruction for TrueType fonts was buggy if + used to retrieve subpixel hinting information. It was necessary + to set selector bit 6 to get results for selector bits 7-10, + which is wrong. + + - Improved computation of emulated vertical metrics for TrueType + fonts. + + - Fixed horizontal start-up position of vertical phantom points in + TrueType bytecode. + + +====================================================================== + +CHANGES BETWEEN 2.4.12 and 2.5 + + I. IMPORTANT BUG FIXES + + - The cache manager function `FTC_Manager_Reset' didn't flush the + cache. + + + II. IMPORTANT CHANGES + + - Behdad Esfahbod (on behalf of Google) contributed support for + color embedded bitmaps (eg. color emoji). + + A new load flag, FT_LOAD_COLOR, makes FreeType load color + embedded-bitmaps, following this draft specification + + https://color-emoji.googlecode.com/git/specification/v1.html + + which defines two new SFNT tables, `CBDT' and `CBLC' (named and + modeled after `EBDT' and `EBLC', respectively). The color + bitmaps are stored in the new FT_PIXEL_MODE_BGRA format to + represent BGRA pre-multiplied sRGB images. If PNG support is + available, PNG color images as defined in the same proposed + specification are supported also. + + Note that color bitmaps are converted to grayscale if client + didn't ask for color. + + - As announced in the previous release, the old FreeType CFF + engine is now disabled by default. It can be conditionally + compiled by defining the configuration macro + CFF_CONFIG_OPTION_OLD_ENGINE. + + - As announced in the previous release, all code related to macro + FT_CONFIG_OPTION_OLD_INTERNALS has been removed, thus becoming + obsolete. + + + III. MISCELLANEOUS + + - The property API (`FT_Property_Get' and `FT_Property_Set') is + now declared as stable. + + The exception, however, are the experimental auto-hinter + properties `glyph-to-script-map' and `fallback-script' which are + subject to change in a forthcoming release. + + - `ftview' has been updated to support color embedded bitmaps; it + can be toggled on and off with key `c'. The small cache toggle + is now key `K'. + + - It is now possible to control the version of the TrueType + hinting engine using the new `interpreter-version' property of + the `truetype' module: Versions 35 and 38 (the default) are + supported, which roughly corresponds to disable and enable + subpixel hinting support, respectively. + + In both `ftview' and `ftdiff', switching between the two + versions can be done with key `H'. In the `ftbench' demo + program, command line option `-H' has been extended to activate + the non-default interpreter version. + + - The `ttdebug' program has been further improved. In particular, + it accepts a new command line option `-H' to select the hinting + engine. + + - `ftdump's verbose option has been renamed to `-V'. For all demo + programs, `-v' now shows version information. + + - Another round of TrueType subpixel hinting fixes. + + - The `apinames' tool can now create an import file for NetWare. + + - 64bit compilation of the new CFF engine was buggy. + + - Some fixes to improve robustness in memory-tight situations. + + +====================================================================== + +CHANGES BETWEEN 2.4.11 and 2.4.12 + + - We have another CFF parsing and hinting engine! Written by Dave + Arnold , this work has been contributed by + Adobe in collaboration with Google. It is vastly superior to + the old CFF engine, and it will replace it in the next release. + Right now, it is still off by default, and you have to + explicitly select it using the new `hinting-engine' property of + the cff driver: + + ... + #include FT_MODULE_H + #include FT_CFF_DRIVER_H + + FT_Library library; + int engine = FT_CFF_HINTING_ADOBE; + + + ... + FT_Property_Set( library, "cff", "hinting-engine", &engine ); + + The code has a (mature) beta status; we encourage all users to + test it and report any problems. + + In case you want to activate the new CFF engine unconditionally, + apply this patch: + +--- snip --- +diff --git a/src/cff/cffobjs.c b/src/cff/cffobjs.c +index ebcf189..3f2ce6b 100644 +--- a/src/cff/cffobjs.c ++++ b/src/cff/cffobjs.c +@@ -1056,7 +1056,7 @@ + + + /* set default property values */ +- driver->hinting_engine = FT_CFF_HINTING_FREETYPE; ++ driver->hinting_engine = FT_CFF_HINTING_ADOBE; + driver->no_stem_darkening = FALSE; + + return FT_Err_Ok; +--- snip --- + + - The macro FT_CONFIG_OPTION_OLD_INTERNALS is no longer set by + default. In the next release, we will completely remove the + associated code. Please update your programs in case you are + still using this macro. + + + II. MISCELLANEOUS + + - The (top-level) `configure' script now respects the MAKE + environment variable to specify a `make' binary. For backwards + compatibility, GNUMAKE still overrides MAKE, though. + + - The `ftview' and `ftdiff' demo programs have been redesigned, + showing more options permanently on the screen, among other + minor improvements. + + - Using the `H' key, it is now possible to select the CFF engine + in both `ftview' and `ftdiff'. + + - The new command line option `-H' for `ftbench' selects the Adobe + CFF engine. + + - It is now possible to directly select the LCD rendering mode + with the keys `A'-`F' in `ftview'. The key mapping for cycling + through LCD modes has been changed from `K' and `L' to `k' and + `l', and toggling custom LCD filtering is no longer mapped to + key `F' but to key `L'. + + - In `ftdiff', key `x' toggles between layout modes: Either use + the advance width (this is new and now the default) or the + bounding box information to determine line breaks. + + - For all demo tools, the new command line option `-v' shows the + version. + + - For the demo tools with a GUI, the new command line options `-w' + and `-h' select the width and the height of the output window, + respectively. + + - The `ttdebug' program was broken and has been reactivated. Note + that this program is not compiled by default. + + +====================================================================== + +CHANGES BETWEEN 2.4.10 and 2.4.11 + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in the BDF implementation have been fixed. + Users of this font format should upgrade. + + + II. IMPORTANT CHANGES + + - Subpixel hinting support has been contributed by Infinality, + based on Greg Hitchcock's whitepaper at + + http://www.microsoft.com/typography/cleartype/truetypecleartype.aspx + + Originally, it was a separate patch available from + + http://www.infinality.net/blog/ + + and which has been integrated. + + Note that ClearType support is not completely implemented! In + particular, full support for the options `compatible_widths', + `symmetrical_smoothing, and `bgr' (via the GETINFO bytecode + instruction) is missing. + + Activation of subpixel hinting support can be controlled with + the `TT_CONFIG_OPTION_SUBPIXEL_HINTING' configuration option; it + is switched off by default. This feature is still experimental; + we welcome test reports! + + - Support for OpenType collections (OTC) has been added. + + - Pure CFF fonts within an SFNT wrapper are now supported. + + + III. MISCELLANEOUS + + - Minor rendering improvements to the auto-hinter. + + - `FT_GlyphSlot_Oblique' now uses a shear angle of 12°. + + - Experimental support to handle `property modules', for example + to control the behaviour of the auto-hinter. The API consists + of two new functions, `FT_Property_Set' and `FT_Property_Get'. + + The code is still subject to change and should not be used for + production. + + - The `ftdiff' demo program now supports UTF-8 encoded input files + for option `-f'. + + - Using keys `r' and `R', you can now adjust the stroker radius in + the `ftview' demo program. + + - Other, minor fixes and improvements. + + +====================================================================== + +CHANGES BETWEEN 2.4.9 and 2.4.10 + + I. IMPORTANT BUG FIXES + + - Incremental glyph loading as needed by ghostscript was broken. + + + II. MISCELLANEOUS + + - A new function `FT_Outline_EmboldenXY', contributed by Alexei + Podtelezhnikov. + + - In the `ftview' demo program, key `e' has been replaced with `x' + and `y' to embolden in the horizontal and vertical direction, + respectively. + + - The glyph spacing computation in `FT_GlyphSlot_Embolden' (and + similar code in `ftview') has been improved. + + - Minor improvements to the TrueType bytecode interpreter and + glyph loader, the auto-hinter, and the B/W rasterizer. + + +====================================================================== + +CHANGES BETWEEN 2.4.8 and 2.4.9 + + I. IMPORTANT BUG FIXES + + - Another round of fixes to better handle invalid fonts. Many of + them are vulnerabilities (see CVE-2012-1126 up to CVE-2012-1144 + and SA48320) so all users should upgrade. + + + II. MISCELLANEOUS + + - The `ENCODING -1 ' format of BDF fonts is now supported. + + - For BDF fonts, support for the whole Unicode encoding range has + been added. + + - Better TTF support for x_ppem != y_ppem. + + - `FT_Get_Advances' sometimes returned bogus values. + + - The demo programs no longer recognize and handle default + suffixes; you now have to always specify the complete font name. + + - Better rendering and LCD mode cycling added to `ftview'. + + +====================================================================== + +CHANGES BETWEEN 2.4.7 and 2.4.8 + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in handling CID-keyed PostScript fonts have + been fixed; see CVE-2011-3439. + + + II. MISCELLANEOUS + + - Chris Liddell contributed a new API, `FT_Get_PS_Font_Value', to + retrieve most of the dictionary keys in Type 1 fonts. + + +====================================================================== + +CHANGES BETWEEN 2.4.6 and 2.4.7 + + I. IMPORTANT BUG FIXES + + - Some vulnerabilities in handling Type 1 fonts have been fixed; + see CVE-2011-3256. + + + II. MISCELLANEOUS + + - FreeType now properly handles ZapfDingbats glyph names while + constructing a Unicode character map (for fonts which don't have + one). + + +====================================================================== + +CHANGES BETWEEN 2.4.5 and 2.4.6 + + I. IMPORTANT BUG FIXES + + - For TrueType based fonts, the ascender and descender values were + incorrect sometimes (off by a pixel if the ppem value was not a + multiple of 5). Depending on the use you might now experience + a different layout; the change should result in better, more + consistent line spacing. + + - Fix CVE-2011-0226 which causes a vulnerability while handling + Type 1 fonts. + + - BDF fonts containing glyphs with negative values for ENCODING + were incorrectly rejected. This bug has been introduced in + FreeType version 2.2.0. + + - David Bevan contributed a major revision of the FreeType stroker + code: + + . The behaviour of FT_STROKER_LINEJOIN_BEVEL has been corrected. + + . A new line join style, FT_STROKER_LINEJOIN_MITER_FIXED, has + been introduced to support PostScript and PDF miter joins. + + . FT_STROKER_LINEJOIN_MITER_VARIABLE has been introduced as an + alias for FT_STROKER_LINEJOIN_MITER. + + . Various stroking glitches has been fixed. + + + II. MISCELLANEOUS + + - SFNT bitmap fonts which contain an outline glyph for `.notdef' + only no longer set the FT_FACE_FLAG_SCALABLE flag. + + +====================================================================== + +CHANGES BETWEEN 2.4.4 and 2.4.5 + + I. IMPORTANT BUG FIXES + + - A rendering regression for second-order Bézier curves has been + fixed, introduced in 2.4.3. + + + II. IMPORTANT CHANGES + + - If autohinting is not explicitly disabled, FreeType now uses + the autohinter if a TrueType based font doesn't contain native + hints. + + - The load flag FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH has been made + redundant and is simply ignored; this means that FreeType now + ignores the global advance width value in TrueType fonts. + + + III. MISCELLANEOUS + + - `FT_Sfnt_Table_Info' can now return the number of SFNT tables of + a font. + + - Support for PCF files compressed with bzip2 has been contributed + by Joel Klinghed. To make this work, the OS must provide a + bzip2 library. + + - Bradley Grainger contributed project and solution files in + Visual Studio 2010 format. + + - Again some fixes to better handle broken fonts. + + - Some improvements to the B/W rasterizer. + + - Fixes to the cache module to improve robustness. + + - Just Fill Bugs contributed (experimental) code to compute blue + zones for CJK Ideographs, improving the alignment of horizontal + stems at the top or bottom edges. + + - The `ftgrid' demo program can now display autohinter segments, + to be toggled on and off with key `s'. + + +====================================================================== + +CHANGES BETWEEN 2.4.3 and 2.4.4 + + I. IMPORTANT BUG FIXES + + - UVS support (TrueType/OpenType cmap format 14) support is fixed. + This regression has been introduced in version 2.4.0. + + + II. MISCELLANEOUS + + - Detect tricky fonts (e.g. MingLiU) by the lengths and checksums + of Type42-persistent subtables (`cvt ', `fpgm', and `prep') when + a TrueType font without family name is given. The previous fix, + introduced in 2.4.3, was too rigorous, causing many subsetted + fonts (mainly from PDF files) displayed badly because FreeType + forced rendering with the TrueType bytecode engine instead of + the autohinter. + + - Better support for 64bit platforms. + + - More fixes to improve handling of broken fonts. + + +====================================================================== + +CHANGES BETWEEN 2.4.2 and 2.4.3 + + I. IMPORTANT BUG FIXES + + - Fix rendering of certain cubic, S-shaped arcs. This regression + has been introduced in version 2.4.0. + + + II. MISCELLANEOUS + + - To fix the above mentioned rendering issue, a new spline + flattening algorithm has been introduced which speeds up both + conic and cubic arcs. + + - Handling of broken fonts has been further improved. + + +====================================================================== + +CHANGES BETWEEN 2.4.1 and 2.4.2 + + I. IMPORTANT BUG FIXES + + - A stack overflow in CFF Type2 CharStrings interpreter is fixed. + + - Handling Type 42 font deallocation was broken; additionally, the + library is now more robust against malformed Type 42 fonts. + + + II. MISCELLANEOUS + + - Two new functions, `FT_Reference_Library' (in FT_MODULE_H) and + `FT_Reference_Face' (in FT_FREETYPE_H), have been added to + simplify life-cycle management. A counter gets initialized to 1 + at the time an FT_Library (or FT_Face) structure is created. + The two new functions increment the respective counter. + `FT_Done_Library' and `FT_Done_Face' then only destroy a library + or face if the counter is 1, otherwise they simply decrement the + counter. + + +====================================================================== + +CHANGES BETWEEN 2.4.0 and 2.4.1 + + I. IMPORTANT CHANGES + + - A serious bug in the CFF font module prevented display of many + glyphs in CFF fonts like `MinionPro-Regular.otf'. + + +====================================================================== + +CHANGES BETWEEN 2.3.12 and 2.4.0 + + I. IMPORTANT CHANGES + + - Since May 2010, all patents regarding the TrueType bytecode + interpreter have expired worldwide. Consequently, we now define + TT_CONFIG_OPTION_BYTECODE_INTERPRETER by default (and undefine + TT_CONFIG_OPTION_UNPATENTED_HINTING). + + - A new function `FT_Library_SetLcdFilterWeights' is available to + adjust the filter weights set by `FT_Library_SetLcdFilter'. + + + II. MISCELLANEOUS + + - Thanks to many reports from Robert Święcki, FreeType's stability + in handling broken or damaged fonts is much improved. + + - Support for LCD filter control has been added to the demo + programs `ftdiff' and `ftview'. + + +====================================================================== + CHANGES BETWEEN 2.3.11 and 2.3.12 I. IMPORTANT CHANGES @@ -6,6 +786,7 @@ CHANGES BETWEEN 2.3.11 and 2.3.12 preferred family names: FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY and FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY. + II. MISCELLANEOUS - Support for incremental font loading (controlled with the @@ -2150,7 +2931,7 @@ CHANGES BETWEEN 2.0.3 and 2.0.2 number. see for details. - A new public header file has been introduced, named - FT_TRIGONOMETRY_H (include/freetype/fttrig.h), providing + FT_TRIGONOMETRY_H (include/freetype/fttrigon.h), providing trigonometric functions to compute sines, cosines, arctangents, etc. with 16.16 fixed precision. The implementation is based on the CORDIC algorithm and is very fast while being sufficiently @@ -3378,7 +4159,7 @@ Extensions support: ------------------------------------------------------------------------ -Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 by +Copyright 2000-2013 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/src/3rdparty/freetype/docs/CUSTOMIZE b/src/3rdparty/freetype/docs/CUSTOMIZE index 7d7d474ec0..dfadb4658d 100644 --- a/src/3rdparty/freetype/docs/CUSTOMIZE +++ b/src/3rdparty/freetype/docs/CUSTOMIZE @@ -8,10 +8,9 @@ How to customize the compilation of the library I. Configuration macros - The file found in `include/freetype/config/ftoption.h' contains a - list of commented configuration macros that can be toggled by - developers to indicate which features should be active while - building the library. + The file found in `include/config/ftoption.h' contains a list of + commented configuration macros that can be toggled by developers to + indicate which features should be active while building the library. These options range from debug level to availability of certain features, like native TrueType hinting through a bytecode @@ -31,10 +30,14 @@ II. Modules list make uses `modules.cfg' to generate `ftmodule.h' (in the object directory). + If you build FreeType in a directory separate from the source files, + put your customized `modules.cfg' in that directory; that way you + can keep the source files `clean'. + If you don't use GNU make you have to manually edit the file - `include/freetype/config/ftmodule.h' (which is *not* used with if - compiled with GNU make) to add or remove the drivers and components - you want to compile into the library. See `INSTALL.ANY' for more + `include/config/ftmodule.h' (which is *not* used with if compiled + with GNU make) to add or remove the drivers and components you want + to compile into the library. See `INSTALL.ANY' for more information. @@ -77,11 +80,12 @@ IV. Overriding default configuration and module headers [This is actually a combination of method 2 and 3.] - Just put your custom `ftoption.h' file into the objects directory - (normally `/objs'), which GNU make prefers over the - standard location. No action is needed for `ftmodule.h' because - it is generated automatically in the objects directory. - + Just put your custom `ftoption.h' file into the objects directory + (normally `/objs' if you build in the source tree, or the + directory where you invoke configure if you build in a separate + directory), which GNU make prefers over the standard location. No + action is needed for `ftmodule.h' because it is generated + automatically in the objects directory. 2. Using the C include path @@ -91,19 +95,16 @@ IV. Overriding default configuration and module headers #include FT_CONFIG_OPTIONS_H #include FT_CONFIG_MODULES_H - are compiled. Their default values being - and , you - can do something like: + are compiled. Their default values being and + , you can do something like: custom/ - freetype/ - config/ - ftoption.h => custom options header - ftmodule.h => custom modules list + config/ + ftoption.h => custom options header + ftmodule.h => custom modules list include/ => normal FreeType 2 include - freetype/ - ... + ... then change the C include path to always give the path to `custom' before the FreeType 2 `include'. @@ -121,7 +122,7 @@ IV. Overriding default configuration and module headers #define FT_CONFIG_OPTIONS_H #define FT_CONFIG_MODULES_H - #include + #include #endif /* __FT2_BUILD_MY_PLATFORM_H__ */ @@ -137,7 +138,7 @@ IV. Overriding default configuration and module headers ---------------------------------------------------------------------- -Copyright 2003, 2005, 2006 by +Copyright 2003, 2005, 2006, 2012, 2013 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/src/3rdparty/freetype/docs/DEBUG b/src/3rdparty/freetype/docs/DEBUG index 3d6acd3bb0..d8c79d187a 100644 --- a/src/3rdparty/freetype/docs/DEBUG +++ b/src/3rdparty/freetype/docs/DEBUG @@ -4,63 +4,63 @@ Debugging within the FreeType sources I. Configuration macros ----------------------- -There are several ways to enable debugging features in a FreeType 2 -builds. This is controlled through the definition of special macros +There are several ways to enable debugging features in a FreeType 2 +builds. This is controlled through the definition of special macros located in the file `ftoptions.h'. The macros are: FT_DEBUG_LEVEL_ERROR - #define this macro if you want to compile the FT_ERROR macro calls - to print error messages during program execution. This will not - stop the program. Very useful to spot invalid fonts during + #define this macro if you want to compile the FT_ERROR macro calls + to print error messages during program execution. This will not + stop the program. Very useful to spot invalid fonts during development and to code workarounds for them. FT_DEBUG_LEVEL_TRACE - #define this macro if you want to compile both macros FT_ERROR and - FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1, + #define this macro if you want to compile both macros FT_ERROR and + FT_TRACE. This also includes the variants FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7. - The trace macros are used to send debugging messages when an - appropriate `debug level' is configured at runtime through the + The trace macros are used to send debugging messages when an + appropriate `debug level' is configured at runtime through the FT2_DEBUG environment variable (more on this later). FT_DEBUG_MEMORY - If this macro is #defined, the FreeType engine is linked with a - small but effective debugging memory manager that tracks all + If this macro is #defined, the FreeType engine is linked with a + small but effective debugging memory manager that tracks all allocations and frees that are performed within the font engine. - When the FT2_DEBUG_MEMORY environment variable is defined at - runtime, a call to FT_Done_FreeType will dump memory statistics, - including the list of leaked memory blocks with the source locations - where these were allocated. It is always a very good idea to define - this in development builds. This works with _any_ program linked to - FreeType, but requires a big deal of memory (the debugging memory - manager never frees the blocks to the heap in order to detect double - frees). + When the FT2_DEBUG_MEMORY environment variable is defined at + runtime, a call to FT_Done_FreeType will dump memory statistics, + including the list of leaked memory blocks with the source + locations where these were allocated. It is always a very good + idea to define this in development builds. This works with _any_ + program linked to FreeType, but requires a big deal of memory (the + debugging memory manager never frees the blocks to the heap in + order to detect double frees). - When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging memory - manager is ignored, and performance is unaffected. + When FT2_DEBUG_MEMORY isn't defined at runtime, the debugging + memory manager is ignored, and performance is unaffected. II. Debugging macros -------------------- -Several macros can be used within the FreeType sources to help debugging -its code: +Several macros can be used within the FreeType sources to help +debugging its code: 1. FT_ERROR(( ... )) - This macro is used to send debug messages that indicate relatively - serious errors (like broken font files), but will not stop the - execution of the running program. Its code is compiled only when - either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in + This macro is used to send debug messages that indicate relatively + serious errors (like broken font files), but will not stop the + execution of the running program. Its code is compiled only when + either FT_DEBUG_LEVEL_ERROR or FT_DEBUG_LEVEL_TRACE are defined in `ftoption.h'. - Note that you have to use a printf-like signature, but with double + Note that you have to use a printf-like signature, but with double parentheses, like in FT_ERROR(( "your %s is not %s\n", "foo", "bar" )); @@ -68,128 +68,130 @@ its code: 2. FT_ASSERT( condition ) - This macro is used to check strong assertions at runtime. If its - condition isn't TRUE, the program will abort with a panic message. - Its code is compiled when either FT_DEBUG_LEVEL_ERROR or - FT_DEBUG_LEVEL_TRACE are defined. You don't need double parentheses - here. For example + This macro is used to check strong assertions at runtime. If its + condition isn't TRUE, the program will abort with a panic message. + Its code is compiled when either FT_DEBUG_LEVEL_ERROR or + FT_DEBUG_LEVEL_TRACE are defined. You don't need double + parentheses here. For example FT_ASSERT( ptr != NULL ); 3. FT_TRACE( level, (message...) ) - The FT_TRACE macro is used to send general-purpose debugging - messages during program execution. This macro uses an *implicit* - macro named FT_COMPONENT used to name the current FreeType component - being run. + The FT_TRACE macro is used to send general-purpose debugging + messages during program execution. This macro uses an *implicit* + macro named FT_COMPONENT used to name the current FreeType + component being run. - The developer should always define FT_COMPONENT as appropriate, for - example as in + The developer should always define FT_COMPONENT as appropriate, + for example as in #undef FT_COMPONENT #define FT_COMPONENT trace_io - The value of the FT_COMPONENT macro is an enumeration named - trace_XXXX where XXXX is one of the component names defined in the - internal file `freetype/internal/fttrace.h'. If you modify FreeType - source and insert new trace_XXXX macro, you must register it in - fttrace.h. If you insert or remove many trace macros, you can check - the undefined or the unused trace macro by src/tools/chktrcmp.py. + The value of the FT_COMPONENT macro is an enumeration named + `trace_XXXX' where `XXXX' is one of the component names defined in + the internal file `internal/fttrace.h'. If you modify FreeType + source and insert new `trace_XXXX' macro, you must register it in + `fttrace.h'. If you insert or remove many trace macros, you can + check the undefined or the unused trace macro by + `src/tools/chktrcmp.py'. - Each such component is assigned a `debug level', ranging from 0 - to 7, through the use of the FT2_DEBUG environment variable + Each such component is assigned a `debug level', ranging from 0 to + 7, through the use of the FT2_DEBUG environment variable (described below) when a program linked with FreeType starts. - When FT_TRACE is called, its level is compared to the one of the - corresponding component. Messages with trace levels *higher* than + When FT_TRACE is called, its level is compared to the one of the + corresponding component. Messages with trace levels *higher* than the corresponding component level are filtered and never printed. - This means that trace messages with level 0 are always printed, - those with level 2 are only printed when the component level is *at - least* 2. + This means that trace messages with level 0 are always printed, + those with level 2 are only printed when the component level is + *at least* 2. - The second parameter to FT_TRACE must contain parentheses and + The second parameter to FT_TRACE must contain parentheses and correspond to a printf-like call, as in FT_TRACE( 2, ( "your %s is not %s\n", "foo", "bar" ) ) - The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., FT_TRACE7 - can be used with constant level indices, and are much cleaner to - use, as in + The shortcut macros FT_TRACE0, FT_TRACE1, FT_TRACE2, ..., + FT_TRACE7 can be used with constant level indices, and are much + cleaner to use, as in - FT_TRACE2(( "your %s is not %s\n", "foo", "bar" )); + FT_TRACE2(( "your %s is not %s\n", "foo", "bar" )); III. Environment variables -------------------------- -The following environment variables control debugging output and +The following environment variables control debugging output and behaviour of FreeType at runtime. FT2_DEBUG - This variable is only used when FreeType is built with - FT_DEBUG_LEVEL_TRACE defined. It contains a list of component level - definitions, following this format: + This variable is only used when FreeType is built with + FT_DEBUG_LEVEL_TRACE defined. It contains a list of component + level definitions, following this format: - component1:level1 component2:level2 component3:level3 ... + component1:level1 component2:level2 component3:level3 ... - where `componentX' is the name of a tracing component, as defined in - `fttrace.h', but without the `trace_' prefix. `levelX' is the + where `componentX' is the name of a tracing component, as defined + in `fttrace.h', but without the `trace_' prefix. `levelX' is the corresponding level to use at runtime. - `any' is a special component name that will be interpreted as + `any' is a special component name that will be interpreted as `any/all components'. For example, the following definitions - set FT2_DEBUG=any:2 memory:5 io:4 (on Windows) - export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash) + set FT2_DEBUG=any:2 memory:5 io:4 (on Windows) + export FT2_DEBUG="any:2 memory:5 io:4" (on Linux with bash) - both stipulate that all components should have level 2, except for - the memory and io components which will be set to trace levels 5 and - 4, respectively. + both stipulate that all components should have level 2, except for + the memory and io components which will be set to trace levels 5 + and 4, respectively. FT2_DEBUG_MEMORY - This environment variable, when defined, tells FreeType to use a - debugging memory manager that will track leaking memory blocks as - well as other common errors like double frees. It is also capable - of reporting _where_ the leaking blocks were allocated, which - considerably saves time when debugging new additions to the library. + This environment variable, when defined, tells FreeType to use a + debugging memory manager that will track leaking memory blocks as + well as other common errors like double frees. It is also capable + of reporting _where_ the leaking blocks were allocated, which + considerably saves time when debugging new additions to the + library. - This code is only compiled when FreeType is built with the - FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be + This code is only compiled when FreeType is built with the + FT_DEBUG_MEMORY macro #defined in `ftoption.h' though, it will be ignored in other builds. FT2_ALLOC_TOTAL_MAX - This variable is ignored if FT2_DEBUG_MEMORY is not defined. It - allows you to specify a maximum heap size for all memory allocations - performed by FreeType. This is very useful to test the robustness - of the font engine and programs that use it in tight memory - conditions. + This variable is ignored if FT2_DEBUG_MEMORY is not defined. It + allows you to specify a maximum heap size for all memory + allocations performed by FreeType. This is very useful to test + the robustness of the font engine and programs that use it in + tight memory conditions. - If it is undefined, or if its value is not strictly positive, then + If it is undefined, or if its value is not strictly positive, then no allocation bounds are checked at runtime. FT2_ALLOC_COUNT_MAX - This variable is ignored if FT2_DEBUG_MEMORY is not defined. It - allows you to specify a maximum number of memory allocations - performed by FreeType before returning the error - FT_Err_Out_Of_Memory. This is useful for debugging and testing the - engine's robustness. + This variable is ignored if FT2_DEBUG_MEMORY is not defined. It + allows you to specify a maximum number of memory allocations + performed by FreeType before returning the error + FT_Err_Out_Of_Memory. This is useful for debugging and testing + the engine's robustness. - If it is undefined, or if its value is not strictly positive, then + If it is undefined, or if its value is not strictly positive, then no allocation bounds are checked at runtime. ------------------------------------------------------------------------ -Copyright 2002, 2003, 2004, 2005, 2009 by +Copyright 2002-2005, 2009, 2013 by David Turner, Robert Wilhelm, and Werner Lemberg. This file is part of the FreeType project, and may only be used, diff --git a/src/3rdparty/freetype/docs/GPL.TXT b/src/3rdparty/freetype/docs/GPL.TXT deleted file mode 100644 index b2fe7b6af3..0000000000 --- a/src/3rdparty/freetype/docs/GPL.TXT +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) year name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - , 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/src/3rdparty/freetype/docs/GPLv2.TXT b/src/3rdparty/freetype/docs/GPLv2.TXT new file mode 100644 index 0000000000..b2fe7b6af3 --- /dev/null +++ b/src/3rdparty/freetype/docs/GPLv2.TXT @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/src/3rdparty/freetype/docs/INSTALL b/src/3rdparty/freetype/docs/INSTALL deleted file mode 100644 index de50d0c2e4..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL +++ /dev/null @@ -1,91 +0,0 @@ - -There are several ways to build the FreeType library, depending on -your system and the level of customization you need. Here is a short -overview of the documentation available: - - -I. Normal installation and upgrades -=================================== - - 1. Native TrueType Hinting - - Native TrueType hinting is disabled by default[1]. If you really - need it, read the file `TRUETYPE' for information. - - - 2. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows) - - Please read *both* `UPGRADE.UNIX' and `INSTALL.UNIX' to install or - upgrade FreeType 2 on a Unix system. Note that you *need* GNU - Make for automatic compilation, since other make tools won't work - (this includes BSD Make). - - GNU Make VERSION 3.80 OR NEWER IS NEEDED! - - - 3. On VMS with the `mms' build tool - - See `INSTALL.VMS' for installation instructions on this platform. - - - 4. Other systems using GNU Make - - On non-Unix platforms, it is possible to build the library using - GNU Make utility. Note that *NO OTHER MAKE TOOL WILL WORK*[2]! - This methods supports several compilers on Windows, OS/2, and - BeOS, including MinGW, Visual C++, Borland C++, and more. - - Instructions are provided in the file `INSTALL.GNU'. - - - 5. With an IDE Project File (e.g., for Visual Studio or CodeWarrior) - - We provide a small number of `project files' for various IDEs to - automatically build the library as well. Note that these files - are not supported and only sporadically maintained by FreeType - developers, so don't expect them to work in each release. - - To find them, have a look at the content of the `builds/' - directory, where stands for your OS or environment. - - - 6. From you own IDE, or own Makefiles - - If you want to create your own project file, follow the - instructions given in the `INSTALL.ANY' document of this - directory. - - -II. Custom builds of the library -================================ - - Customizing the compilation of FreeType is easy, and allows you to - select only the components of the font engine that you really need. - For more details read the file `CUSTOMIZE'. - - ----------------------------------------------------------------------- - -[1] More details on: http://www.freetype.org/patents.html - -[2] make++, a make tool written in Perl, has sufficient support of GNU - make extensions to build FreeType. See - - http://makepp.sourceforge.net - - for more information; you need version 1.19 or newer, and you must - pass option `--norc-substitution'. - ----------------------------------------------------------------------- - -Copyright 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of INSTALL --- diff --git a/src/3rdparty/freetype/docs/INSTALL.ANY b/src/3rdparty/freetype/docs/INSTALL.ANY deleted file mode 100644 index 44b785c67e..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.ANY +++ /dev/null @@ -1,151 +0,0 @@ -Instructions on how to build FreeType with your own build tool -============================================================== - -See the file `CUSTOMIZE' to learn how to customize FreeType to -specific environments. - - -I. Standard procedure ---------------------- - - * DISABLE PRE-COMPILED HEADERS! This is very important for Visual - C++, because FreeType uses lines like: - - #include FT_FREETYPE_H - - which are not correctly supported by this compiler while being ISO - C compliant! - - * You need to add the directories `freetype2/include' to your - include path when compiling the library. - - * FreeType 2 is made of several components; each of them is located - in a subdirectory of `freetype2/src'. For example, - `freetype2/src/truetype/' contains the TrueType font driver. - - * DO NOT COMPILE ALL C FILES! Rather, compile the following ones. - - -- base components (required) - - src/base/ftsystem.c - src/base/ftinit.c - src/base/ftdebug.c - - src/base/ftbase.c - - src/base/ftbbox.c -- recommended, see - src/base/ftglyph.c -- recommended, see - - src/base/ftbdf.c -- optional, see - src/base/ftbitmap.c -- optional, see - src/base/ftcid.c -- optional, see - src/base/ftfstype.c -- optional - src/base/ftgasp.c -- optional, see - src/base/ftgxval.c -- optional, see - src/base/ftlcdfil.c -- optional, see - src/base/ftmm.c -- optional, see - src/base/ftotval.c -- optional, see - src/base/ftpatent.c -- optional - src/base/ftpfr.c -- optional, see - src/base/ftstroke.c -- optional, see - src/base/ftsynth.c -- optional, see - src/base/fttype1.c -- optional, see - src/base/ftwinfnt.c -- optional, see - src/base/ftxf86.c -- optional, see - - src/base/ftmac.c -- only on the Macintosh - - -- font drivers (optional; at least one is needed) - - src/bdf/bdf.c -- BDF font driver - src/cff/cff.c -- CFF/OpenType font driver - src/cid/type1cid.c -- Type 1 CID-keyed font driver - src/pcf/pcf.c -- PCF font driver - src/pfr/pfr.c -- PFR/TrueDoc font driver - src/sfnt/sfnt.c -- SFNT files support - (TrueType & OpenType) - src/truetype/truetype.c -- TrueType font driver - src/type1/type1.c -- Type 1 font driver - src/type42/type42.c -- Type 42 font driver - src/winfonts/winfnt.c -- Windows FONT / FNT font driver - - -- rasterizers (optional; at least one is needed for vector - formats) - - src/raster/raster.c -- monochrome rasterizer - src/smooth/smooth.c -- anti-aliasing rasterizer - - -- auxiliary modules (optional) - - src/autofit/autofit.c -- auto hinting module - src/cache/ftcache.c -- cache sub-system (in beta) - src/gzip/ftgzip.c -- support for compressed fonts (.gz) - src/lzw/ftlzw.c -- support for compressed fonts (.Z) - src/gxvalid/gxvalid.c -- TrueTypeGX/AAT table validation - src/otvalid/otvalid.c -- OpenType table validation - src/psaux/psaux.c -- PostScript Type 1 parsing - src/pshinter/pshinter.c -- PS hinting module - src/psnames/psnames.c -- PostScript glyph names support - - - Notes: - - `ftcache.c' needs `ftglyph.c' - `ftfstype.c' needs `fttype1.c' - `ftglyph.c' needs `ftbitmap.c' - `ftstroke.c' needs `ftglyph.c' - `ftsynth.c' needs `ftbitmap.c' - - `cff.c' needs `sfnt.c', `pshinter.c', and `psnames.c' - `truetype.c' needs `sfnt.c' and `psnames.c' - `type1.c' needs `psaux.c' `pshinter.c', and `psnames.c' - `type1cid.c' needs `psaux.c', `pshinter.c', and `psnames.c' - `type42.c' needs `truetype.c' - - - Read the file `CUSTOMIZE' in case you want to compile only a subset - of the drivers, renderers, and optional modules; a detailed - description of the various base extension is given in the top-level - file `modules.cfg'. - - You are done. In case of problems, see the archives of the FreeType - development mailing list. - - -II. Support for flat-directory compilation ------------------------------------------- - - It is possible to put all FreeType 2 source files into a single - directory, with the *exception* of the `include' hierarchy. - - 1. Copy all files in current directory - - cp freetype2/src/base/*.[hc] . - cp freetype2/src/raster1/*.[hc] . - cp freetype2/src/smooth/*.[hc] . - etc. - - 2. Compile sources - - cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftsystem.c - cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftinit.c - cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftdebug.c - cc -c -Ifreetype2/include -DFT2_BUILD_LIBRARY ftbase.c - etc. - - You don't need to define the FT_FLAT_COMPILATION macro (as this - was required in previous releases of FreeType 2). - ----------------------------------------------------------------------- - -Copyright 2003, 2005, 2006, 2009, 2010 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of INSTALL.ANY --- diff --git a/src/3rdparty/freetype/docs/INSTALL.CROSS b/src/3rdparty/freetype/docs/INSTALL.CROSS deleted file mode 100644 index 3def12c8c5..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.CROSS +++ /dev/null @@ -1,135 +0,0 @@ -This document contains instructions on how to cross-build the FreeType -library on Unix systems, for example, building binaries for Linux/MIPS -on FreeBSD/i386. Before reading this document, please consult -INSTALL.UNIX for required tools and the basic self-building procedure. - - - 1. Required Tools - ----------------- - - For self-building the FreeType library on a Unix system, GNU Make - 3.80 or newer is required. INSTALL.UNIX contains hints how to - check the installed `make'. - - The GNU C compiler to cross-build the target system is required. - At present, using non-GNU cross compiler is not tested. The cross - compiler is expected to be installed with a system prefix. For - example, if your building system is FreeBSD/i386 and the target - system is Linux/MIPS, the cross compiler should be installed with - the name `mips-ip22-linuxelf-gcc'. - - A C compiler for a self-build is required also, to build a tool - that is executed during the building procedure. Non-GNU self - compilers are acceptable, but such a setup is not tested yet. - - - 2. Configuration - ---------------- - - 2.1. Building and target system - - To configure for cross-build, the options `--host=' and - `--build=' must be passed to configure. For example, if - your building system is FreeBSD/i386 and the target system is - Linux/MIPS, say - - ./configure \ - --build=i386-unknown-freebsd \ - --host=mips-ip22-linuxelf \ - [other options] - - It should be noted that `--host=' specifies the system - where the built binaries will be executed, not the system where - the build actually happens. Older versions of GNU autoconf use - the option pair `--host=' and `--target='. This is broken and - doesn't work. Similarly, an explicit CC specification like - - env CC=mips-ip22-linux-gcc ./configure - - or - - env CC=/usr/local/mips-ip22-linux/bin/gcc ./configure - - doesn't work either; such a configuration confuses the - `configure' script while trying to find the cross and native C - compilers. - - - 2.2. The prefix to install FreeType2 - - Setting `--prefix=' properly is important. The prefix - to install FreeType2 is written into the freetype-config script - and freetype2.pc configuration file. - - If the built FreeType 2 library is used as a part of the - cross-building system, the prefix is expected to be different - from the self-building system. For example, configuration with - `--prefix=/usr/local' installs binaries into the system wide - `/usr/local' directory which then can't be executed. This - causes confusion in configuration of all applications which use - FreeType2. Instead, use a prefix to install the cross-build - into a separate system tree, for example, - `--prefix=/usr/local/mips-ip22-linux/'. - - On the other hand, if the built FreeType2 is used as a part of - the target system, the prefix to install should reflect the file - system structure of the target system. - - - 3. Building command - ------------------- - - If the configuration finishes successfully, invoking GNU make - builds FreeType2. Just say - - make - - or - - gmake - - depending on the name the GNU make binary actually has. - - - 4. Installation - --------------- - - Saying - - make install - - as usual to install FreeType2 into the directory tree specified by - the argument of the `--prefix' option. - - As noted in section 2.2, FreeType2 is sometimes configured to be - installed into the system directory of the target system, and - should not be installed in the cross-building system. In such - cases, the make variable `DESTDIR' is useful to change the root - directory in the installation. For example, after - - make DESTDIR=/mnt/target_system_root/ install - - the built FreeType2 library files are installed into the directory - `/mnt/target_system_root//lib'. - - - 5. TODO - ------- - - Cross building between Cygwin (or MSys) and Unix must be tested. - - ----------------------------------------------------------------------- - -Copyright 2006, 2008 by suzuki toshiya -David Turner, Robert Wilhelm, and Werner Lemberg. - - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of INSTALL.CROSS --- diff --git a/src/3rdparty/freetype/docs/INSTALL.GNU b/src/3rdparty/freetype/docs/INSTALL.GNU deleted file mode 100644 index 72df50a4ea..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.GNU +++ /dev/null @@ -1,159 +0,0 @@ -This document contains instructions how to build the FreeType library -on non-Unix systems with the help of GNU Make. Note that if you are -running Cygwin or MSys in Windows, you should follow the instructions -in the file INSTALL.UNIX instead. - - - FreeType 2 includes a powerful and flexible build system that allows - you to easily compile it on a great variety of platforms from the - command line. To do so, just follow these simple instructions. - - 1. Install GNU Make - ------------------- - - Because GNU Make is the only Make tool supported to compile - FreeType 2, you should install it on your machine. - - The FreeType 2 build system relies on many features special to GNU - Make. - - NEARLY ALL OTHER MAKE TOOLS FAIL, INCLUDING `BSD MAKE', SO REALLY - INSTALL A RECENT VERSION OF GNU MAKE ON YOUR SYSTEM! - - Note that make++, a make tool written in Perl, supports enough - features of GNU make to compile FreeType. See - - http://makepp.sourceforge.net - - for more information; you need version 1.19 or newer, and you must - pass option `--norc-substitution'. - - Make sure that you are invoking GNU Make from the command line, by - typing something like: - - make -v - - to display its version number. - - VERSION 3.80 OR NEWER IS NEEDED! - - - 2. Invoke `make' - ---------------- - - Go to the root directory of FreeType 2, then simply invoke GNU - Make from the command line. This will launch the FreeType 2 host - platform detection routines. A summary will be displayed, for - example, on Win32. - - - ============================================================== - FreeType build system -- automatic system detection - - The following settings are used: - - platform win32 - compiler gcc - configuration directory .\builds\win32 - configuration rules .\builds\win32\w32-gcc.mk - - If this does not correspond to your system or settings please - remove the file 'config.mk' from this directory then read the - INSTALL file for help. - - Otherwise, simply type 'make' again to build the library - or 'make refdoc' to build the API reference (the latter needs - python). - ============================================================= - - - If the detected settings correspond to your platform and compiler, - skip to step 5. Note that if your platform is completely alien to - the build system, the detected platform will be `ansi'. - - - 3. Configure the build system for a different compiler - ------------------------------------------------------ - - If the build system correctly detected your platform, but you want - to use a different compiler than the one specified in the summary - (for most platforms, gcc is the default compiler), invoke GNU Make - with - - make setup - - Examples: - - to use Visual C++ on Win32, type: `make setup visualc' - to use Borland C++ on Win32, type `make setup bcc32' - to use Watcom C++ on Win32, type `make setup watcom' - to use Intel C++ on Win32, type `make setup intelc' - to use LCC-Win32 on Win32, type: `make setup lcc' - to use Watcom C++ on OS/2, type `make setup watcom' - to use VisualAge C++ on OS/2, type `make setup visualage' - - The name to use is platform-dependent. The list of - available compilers for your system is available in the file - `builds//detect.mk'. - - If you are satisfied by the new configuration summary, skip to - step 5. - - - 4. Configure the build system for an unknown platform/compiler - -------------------------------------------------------------- - - The auto-detection/setup phase of the build system copies a file - to the current directory under the name `config.mk'. - - For example, on OS/2+gcc, it would simply copy - `builds/os2/os2-gcc.mk' to `./config.mk'. - - If for some reason your platform isn't correctly detected, copy - manually the configuration sub-makefile to `./config.mk' and go to - step 5. - - Note that this file is a sub-Makefile used to specify Make - variables for compiler and linker invocation during the build. - You can easily create your own version from one of the existing - configuration files, then copy it to the current directory under - the name `./config.mk'. - - - 5. Build the library - -------------------- - - The auto-detection/setup phase should have copied a file in the - current directory, called `./config.mk'. This file contains - definitions of various Make variables used to invoke the compiler - and linker during the build. [It has also generated a file called - `ftmodule.h' in the objects directory (which is normally - `/objs/'); please read the file `docs/CUSTOMIZE' for - customization of FreeType.] - - To launch the build, simply invoke GNU Make again: The top - Makefile will detect the configuration file and run the build with - it. - - - Final note - - The build system builds a statically linked library of the font - engine in the `objs' directory. It does _not_ support the build - of DLLs on Windows and OS/2. If you need these, you have to - either use an IDE-specific project file, or follow the - instructions in `INSTALL.ANY' to create your own Makefiles. - ----------------------------------------------------------------------- - -Copyright 2003, 2004, 2005, 2006, 2008 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of INSTALL.GNU --- diff --git a/src/3rdparty/freetype/docs/INSTALL.MAC b/src/3rdparty/freetype/docs/INSTALL.MAC deleted file mode 100644 index 42bb0d8637..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.MAC +++ /dev/null @@ -1,32 +0,0 @@ -Please follow the instructions in INSTALL.UNIX to install FreeType on -Mac OS X. - -Currently FreeType2 functions based on some deprecated Carbon APIs -return FT_Err_Unimplemented_Feature always, even if FreeType2 is -configured and built on the system that deprecated Carbon APIs are -available. To enable deprecated FreeType2 functions as far as possible, -replace src/base/ftmac.c by builds/mac/ftmac.c. - -Starting with Mac OS X 10.5, gcc defaults the deployment target -to 10.5. In previous versions of Mac OS X, this defaulted to 10.1. -If you want your built binaries to run only on 10.5, this change -does not concern you. If you want them to also run on older versions -of Mac OS X, then you must either set the MACOSX_DEPLOYMENT_TARGET -environment variable or pass -mmacosx-version-min to gcc. You should -specify the oldest version of Mac OS you want the code to run on. -For example, if you use Bourne shell: - - export MACOSX_DEPLOYMENT_TARGET=10.2 - -or, if you use C shell: - - setenv MACOSX_DEPLOYMENT_TARGET 10.2 - -Alternatively, you could pass "-mmacosx-version-min=10.2" to gcc. - -Here the number 10.2 is the lowest version that the built binaries -can run on. In the cases in above, the built binaries will run on -Mac OS X 10.2 and later, but _not_ earlier. If you want to run on -earlier, you have to set lower version, e.g. 10.0. - -For classic Mac OS (Mac OS 7, 8, 9) please refer to builds/mac/README. diff --git a/src/3rdparty/freetype/docs/INSTALL.UNIX b/src/3rdparty/freetype/docs/INSTALL.UNIX deleted file mode 100644 index 1d5af993f8..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.UNIX +++ /dev/null @@ -1,96 +0,0 @@ -This document contains instructions on how to build the FreeType -library on Unix systems. This also works for emulations like Cygwin -or MSys on Win32: - - - 1. Ensure that you are using GNU Make - ------------------------------------- - - The FreeType build system _exclusively_ works with GNU Make. You - will not be able to compile the library with the instructions - below using any other alternative (including BSD Make). - - Check that you have GNU make by running the command: - - make -v - - This should dump some text that begins with: - - GNU Make - Copyright (C) Free Software Foundation Inc. - - Note that version 3.80 or higher is *required* or the build will - fail. - - It is also fine to have GNU Make under another name (e.g. 'gmake') - if you use the GNUMAKE variable as described below. - - As a special exception, 'makepp' can also be used to build - FreeType 2. See the file docs/MAKEPP for details. - - - 2. Regenerate the configure script if needed - -------------------------------------------- - - This only applies if you are building a CVS snapshot or checkout, - *not* if you grabbed the sources of an official release. - - You need to invoke the `autogen.sh' script in the top-level - directory in order to create the `configure' script for your - platform. Normally, this simply means typing: - - sh autogen.sh - - In case of problems, you may need to install or upgrade Automake, - Autoconf or Libtool. See README.CVS in the top-level directory - for more information. - - - 3. Build and install the library - -------------------------------- - - The following should work on all Unix systems where the `make' - command invokes GNU Make: - - ./configure [options] - make - make install (as root) - - The default installation path is `/usr/local'. It can be changed - with the `--prefix=' option. Example: - - ./configure --prefix=/usr - - When using a different command to invoke GNU Make, use the GNUMAKE - variable. For example, if `gmake' is the command to use on your - system, do something like: - - GNUMAKE=gmake ./configure [options] - gmake - gmake install (as root) - - If this still doesn't work, there must be a problem with your - system (e.g., you are using a very old version of GNU Make). - - It is possible to compile FreeType in a different directory. - Assuming the FreeType source files in directory `/src/freetype' a - compilation in directory `foo' works as follows: - - cd foo - /src/freetype/configure [options] - make - make install - ----------------------------------------------------------------------- - -Copyright 2003, 2004, 2005, 2006, 2007 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of INSTALL.UNIX --- diff --git a/src/3rdparty/freetype/docs/INSTALL.VMS b/src/3rdparty/freetype/docs/INSTALL.VMS deleted file mode 100644 index 994e566883..0000000000 --- a/src/3rdparty/freetype/docs/INSTALL.VMS +++ /dev/null @@ -1,62 +0,0 @@ -How to build the freetype2 library on VMS ------------------------------------------ - -It is actually very straightforward to install the Freetype2 library. -Just execute vms_make.com from the toplevel directory to build the -library. This procedure currently accepts the following options: - -DEBUG - Build the library with debug information and without optimization. - -lopts= - Options to pass to the link command e.g. lopts=/traceback - -ccopt= - Options to pass to the C compiler e.g. ccopt=/float=ieee - -In case you did download the demos, place them in a separate directory -sharing the same toplevel as the directory of Freetype2 and follow the -same instructions as above for the demos from there. The build -process relies on this to figure the location of the Freetype2 include -files. - - -To rebuild the sources it is necessary to have MMS/MMK installed on -the system. - -The library is available in the directory - - [.LIB] - -To compile applications using FreeType 2 you have to define the -logical FREETYPE pointing to the directory - - [.INCLUDE.FREETYPE] - -i.e., if the directory in which this INSTALL.VMS file is located is -$disk:[freetype] then define the logical with - - define freetype $disk:[freetype.include.freetype] - -This version has been tested with Compaq C V6.2-006 on OpenVMS Alpha -V7.2-1. - - - Any problems can be reported to - - Jouk Jansen or - Martin P.J. Zinser - ------------------------------------------------------------------------- - -Copyright 2000, 2004 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ---- end of INSTALL.VMS --- diff --git a/src/3rdparty/freetype/docs/LICENSE.TXT b/src/3rdparty/freetype/docs/LICENSE.TXT index abebbcc780..99dc342d76 100644 --- a/src/3rdparty/freetype/docs/LICENSE.TXT +++ b/src/3rdparty/freetype/docs/LICENSE.TXT @@ -15,9 +15,12 @@ any of your projects or products. is suited to products which don't use the GNU General Public License. - - The GNU General Public License version 2, found in `GPL.TXT' (any + Note that this license is compatible to the GNU General Public + License version 3, but not version 2. + + - The GNU General Public License version 2, found in `GPLv2.TXT' (any later version can be used also), for programs which already use the - GPL. Note that the FTL is incompatible with the GPL due to its + GPL. Note that the FTL is incompatible with GPLv2 due to its advertisement clause. The contributed BDF and PCF drivers come with a license similar to that @@ -27,5 +30,8 @@ file src/bdf/README and src/pcf/README). The gzip module uses the zlib license (see src/gzip/zlib.h) which too is compatible to the above two licenses. +The MD5 checksum support (only used for debugging in development builds) +is in the public domain. + --- end of LICENSE.TXT --- diff --git a/src/3rdparty/freetype/docs/MAKEPP b/src/3rdparty/freetype/docs/MAKEPP deleted file mode 100644 index 58eaf551df..0000000000 --- a/src/3rdparty/freetype/docs/MAKEPP +++ /dev/null @@ -1,5 +0,0 @@ -As a special exception, FreeType can also be built with the 'makepp' -build tool, available from http://makepp.sourceforge.net. - -Note, however. that you will need at least version 1.19 and pass the -option --norc-substitution to have it work correctly. diff --git a/src/3rdparty/freetype/docs/PATENTS b/src/3rdparty/freetype/docs/PATENTS deleted file mode 100644 index f36778b5e9..0000000000 --- a/src/3rdparty/freetype/docs/PATENTS +++ /dev/null @@ -1,27 +0,0 @@ - - FreeType Patents Disclaimer - August 1999 - - - -WE HAVE DISCOVERED THAT APPLE OWNS SEVERAL PATENTS RELATED TO THE -RENDERING OF TRUETYPE FONTS. THIS COULD MEAN THAT THE FREE USE OF -FREETYPE MIGHT BE ILLEGAL IN THE USA, JAPAN, AND POSSIBLY OTHER -COUNTRIES, BE IT IN PROPRIETARY OR FREE SOFTWARE PRODUCTS. - -FOR MORE DETAILS, WE STRONGLY ADVISE YOU TO GO TO THE FREETYPE -PATENTS PAGE AT THE FOLLOWING WEB ADDRESS: - - http://www.freetype.org/patents.html - -WE WILL NOT PLACE INFORMATION IN THIS FILE AS THE SITUATION IS STILL -UNDETERMINED FOR NOW. AT THE TIME THESE LINES ARE WRITTEN, WE HAVE -CONTACTED APPLE'S LEGAL DEPARTMENT AND ARE STILL WAITING FOR THEIR -ANSWER ON THE SUBJECT. - -PLEASE READ THE `INSTALL' FILE TO SEE HOW TO DISABLE THE ENGINE'S -BYTECODE INTERPRETER IN ORDER TO BUILD A PATENT-FREE ENGINE, AT THE -COST OF RENDERING QUALITY. - - ---- end of PATENTS --- diff --git a/src/3rdparty/freetype/docs/PROBLEMS b/src/3rdparty/freetype/docs/PROBLEMS index 9b598966a0..40bdc35a67 100644 --- a/src/3rdparty/freetype/docs/PROBLEMS +++ b/src/3rdparty/freetype/docs/PROBLEMS @@ -14,7 +14,7 @@ Running Problems ----- Of course, there might be bugs in FreeType, but some fonts based on -the PostScript format can't behandled indeed. The reason is that +the PostScript format can't be handled indeed. The reason is that FreeType doesn't contain a full PostScript interpreter but applies pattern matching instead. In case a font doesn't follow the standard structure of the given font format, FreeType fails. A typical example @@ -25,6 +25,19 @@ It might be possible to patch FreeType in some situations, though. Please report failing fonts so that we investigate the problem and set up a list of such problematic fonts. + +* Why do identical FreeType versions render differently on different + platforms? + +----- + +Different distributions compile FreeType with different options. The +developer version of a distribution's FreeType package, which is +needed to compile your program against FreeType, includes the file +ftoption.h. Compare each platform's copy of ftoption.h to find the +differences. + + ---------------------------------------------------------------------- diff --git a/src/3rdparty/freetype/docs/TRUETYPE b/src/3rdparty/freetype/docs/TRUETYPE deleted file mode 100644 index 3e1614ad43..0000000000 --- a/src/3rdparty/freetype/docs/TRUETYPE +++ /dev/null @@ -1,40 +0,0 @@ -How to enable the TrueType native hinter if you need it -------------------------------------------------------- - - The TrueType bytecode interpreter is disabled in all public releases - of the FreeType packages for patents reasons; see - - http://www.freetype.org/patents.html - - for more details. - - However, many Linux distributions do enable the interpreter in the - FreeType packages (DEB/RPM/etc.) they produce for their platforms. If - you are using TrueType fonts on your system, you most probably want to - enable it manually by doing the following: - - - open the file `include/freetype/config/ftoption.h' - - - locate a line that says: - - /* #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ - - - change it to: - - #define TT_CONFIG_OPTION_BYTECODE_INTERPRETER - - These steps must be done _before_ compiling the library. - ------------------------------------------------------------------------- - -Copyright 2003, 2005, 2006 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ---- end of TRUETYPE --- diff --git a/src/3rdparty/freetype/docs/UPGRADE.UNIX b/src/3rdparty/freetype/docs/UPGRADE.UNIX deleted file mode 100644 index 48c746d703..0000000000 --- a/src/3rdparty/freetype/docs/UPGRADE.UNIX +++ /dev/null @@ -1,137 +0,0 @@ - -SPECIAL NOTE FOR UNIX USERS -=========================== - - If you are installing this release of FreeType on a system that - already uses release 2.0.5 (or even an older version), you have to - perform a few special steps to ensure that everything goes well. - - - 1. Enable the TrueType bytecode hinter if you need it - ----------------------------------------------------- - - See the instructions in the file `TRUETYPE' of this directory. - - Note that FreeType supports TrueType fonts without the bytecode - interpreter through its auto-hinter, which now generates relatively - good results with most fonts. - - - 2. Determine the correct installation path - ------------------------------------------ - - By default, the configure script installs the library in - `/usr/local'. However, many Unix distributions now install the - library in `/usr', since FreeType is becoming a critical system - component. - - If FreeType is already installed on your system, type - - freetype-config --prefix - - on the command line. This should return the installation path - (e.g., `/usr' or `/usr/local'). To avoid problems of parallel - FreeType versions, use this path for the --prefix option of the - configure script. - - Otherwise, simply use `/usr' (or whatever you think is adequate for - your installation). - - - 3. Ensure that you are using GNU Make - ------------------------------------- - - The FreeType build system _exclusively_ works with GNU Make (as an - exception you can use make++ which emulates GNU Make sufficiently; - see http://makepp.sourceforge.net). You will not be able to compile - the library with the instructions below using any other alternative - (including BSD Make). - - Trying to compile the library with a different Make tool prints a - message like: - - Sorry, GNU make is required to build FreeType2. - - and the build process is aborted. If this happens, install GNU Make - on your system, and use the GNUMAKE environment variable to name it. - - - 4. Build and install the library - -------------------------------- - - The following should work on all Unix systems where the `make' - command invokes GNU Make: - - ./configure --prefix= - make - make install (as root) - - where `' must be replaced by the prefix returned by the - `freetype-config' command. - - When using a different command to invoke GNU Make, use the GNUMAKE - variable. For example, if `gmake' is the command to use on your - system, do something like: - - GNUMAKE=gmake ./configure --prefix= - gmake - gmake install (as root) - - - 5. Take care of XFree86 version 4 - --------------------------------- - - Certain Linux distributions install _several_ versions of FreeType - on your system. For example, on a fresh Mandrake 8.1 system, you - can find the following files: - - /usr/lib/libfreetype.so which links to - /usr/lib/libfreetype.6.1.0.so - - and - - /usr/X11R6/lib/libfreetype.so which links to - /usr/X11R6/lib/libfreetype.6.0.so - - Note that these files correspond to two distinct versions of the - library! It seems that this surprising issue is due to the install - scripts of recent XFree86 servers (from 4.1.0) which install their - own (dated) version of the library in `/usr/X11R6/lib'. - - In certain _rare_ cases you may experience minor problems if you - install this release of the library in `/usr' only, namely, that - certain applications do not benefit from the bug fixes and rendering - improvements you would expect. - - There are two good ways to deal with this situation: - - - Install the library _twice_, in `/usr' and in `/usr/X11R6' (you - have to do that each time you install a new FreeType release - though). - - - Change the link in /usr/X11R6/lib/libfreetype.so to point to - - /usr/lib/libfreetype.so, - - and get rid of - - /usr/X11R6/lib/libfreetype.6.0.so - - The FreeType Team is not responsible for this problem, so please - contact either the XFree86 development team or your Linux - distributor to help clear this issue in case the information given - here doesn't help. - ------------------------------------------------------------------------- - -Copyright 2003, 2005 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ----- end of UPGRADE.UNIX --- diff --git a/src/3rdparty/freetype/docs/VERSION.DLL b/src/3rdparty/freetype/docs/VERSION.DLL deleted file mode 100644 index bb55c3dda9..0000000000 --- a/src/3rdparty/freetype/docs/VERSION.DLL +++ /dev/null @@ -1,138 +0,0 @@ -Due to our use of `libtool' to generate and install the FreeType 2 -libraries on Unix systems, as well as other historical events, it is -generally very difficult to know precisely which release of the font -engine is installed on a given system. - -This file tries to explain why and to document ways to properly detect -FreeType on Unix. - - -1. Version and Release numbers ------------------------------- - -For each new public release of FreeType 2, there are generally *three* -distinct `version' numbers to consider: - - * The official FreeType 2 release number, like 2.0.9 or 2.1.3. - - * The libtool (and Unix) specific version number, like 9.2.3. This is - what `freetype-config --version' returns. - - * The platform-specific shared object number, used for example when - the library is installed as `/usr/lib/libfreetype.so.6.3.2'. - -The platform-specific number is, unsurprisingly, platform-specific and -varies with the operating system you are using (several variants of -Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even -for simple tests. - -The libtool-specific number does not equal the release number but is -tied to it. - -The release number is available at *compile* time through the following -macros defined in FT_FREETYPE_H: - - - FREETYPE_MAJOR: major release number - - FREETYPE_MINOR: minor release number - - FREETYPE_PATCH: patch release number - -See below for a small autoconf fragment. - -The release number is also available at *runtime* through the -`FT_Library_Version' API. Unfortunately, this one wasn't available or -working correctly before the 2.1.3 official release. - - -2. History ----------- - -The following table gives, for each official release, the corresponding -libtool number, as well as the shared object number found on _most_ -systems, but not all of them: - - - release libtool so - ------------------------------- - 2.3.12 10.0.4 6.4.0 - 2.3.11 9.22.3 6.3.22 - 2.3.10 9.21.3 6.3.21 - 2.3.9 9.20.3 6.3.20 - 2.3.8 9.19.3 6.3.19 - 2.3.7 9.18.3 6.3.18 - 2.3.6 9.17.3 6.3.17 - 2.3.5 9.16.3 6.3.16 - 2.3.4 9.15.3 6.3.15 - 2.3.3 9.14.3 6.3.14 - 2.3.2 9.13.3 6.3.13 - 2.3.1 9.12.3 6.3.12 - 2.3.0 9.11.3 6.3.11 - 2.2.1 9.10.3 6.3.10 - 2.2.0 9.9.3 6.3.9 - 2.1.10 9.8.3 6.3.8 - 2.1.9 9.7.3 6.3.7 - 2.1.8 9.6.3 6.3.6 - 2.1.7 9.5.3 6.3.5 - 2.1.6 9.5.3 6.3.5 - 2.1.5 9.4.3 6.3.4 - 2.1.4 9.3.3 6.3.3 - 2.1.3 9.2.3 6.3.2 - 2.1.2 9.1.3 6.3.1 - 2.1.1 9.0.3 ? - 2.1.0 8.0.2 ? - 2.0.9 9.0.3 ? - 2.0.8 8.0.2 ? - 2.0.4 7.0.1 ? - 2.0.1 6.1.0 ? - -The libtool numbers are a bit inconsistent due to the library's history: - - - 2.1.0 was created as a development branch from 2.0.8 (hence the same - libtool numbers). - - - 2.0.9 was a bug-fix release of the `stable' branch, and we - incorrectly increased its libtool number. - - - 2.1.4 was a development version, however it was stable enough to be - the basis of the 2.2.0 release. - - -3. Autoconf Code Fragment -------------------------- - -Lars Clausen contributed the following autoconf fragment to detect which -version of FreeType is installed on a system. This one tests for a -version that is at least 2.0.9; you should change it to check against -other release numbers. - - - AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher]) - old_CPPFLAGS="$CPPFLAGS" - CPPFLAGS=`freetype-config --cflags` - AC_TRY_CPP([ - -#include -#include FT_FREETYPE_H -#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009 -#error Freetype version too low. -#endif - ], - [AC_MSG_RESULT(yes) - FREETYPE_LIBS=`freetype-config --libs` - AC_SUBST(FREETYPE_LIBS) - AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library]) - CPPFLAGS="$old_CPPFLAGS"], - [AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])]) - ------------------------------------------------------------------------- - -Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ---- end of VERSION.DLL --- diff --git a/src/3rdparty/freetype/docs/formats.txt b/src/3rdparty/freetype/docs/formats.txt deleted file mode 100644 index 571f5ff502..0000000000 --- a/src/3rdparty/freetype/docs/formats.txt +++ /dev/null @@ -1,164 +0,0 @@ -This file contains a list of various font formats. It gives the -reference document and whether it is supported in FreeType 2. - - - file type: - The only special case is `MAC'; on older Mac OS versions, a `file' - is stored as a data and a resource fork, this is, within two - separate data chunks. In all other cases, the font data is stored - in a single file. - - wrapper format: - The format used to represent the font data. In the table below it - is used only if the font format differs. Possible values are `SFNT' - (binary), `PS' (a text header, followed by binary or text data), and - `LZW' (compressed with either `gzip' or `compress'). - - font format: - How the font is to be accessed, possibly after converting the file - type and wrapper format into a generic form. Bitmap formats are - `BDF', `PCF', and one form of `WINFNT'; all others are vector - formats. - - font type: - Sub-formats of the font format. `SBIT' and `MACSBIT' are bitmap - formats, `MM' and `VAR' support optical axes. - - glyph access: - If not specified, the glyph access is `standard' to the font format. - Values are `CID' for CID-keyed fonts, `SYNTHETIC' for fonts which - are modified versions of other fonts by means of a transformation - matrix, `COLLECTION' for collecting multiple fonts (sharing most of - the data) into a single file, and `TYPE_0' for PS fonts which are to - be accessed in a tree-like structure. - - FreeType driver: - The module in the FreeType library which handles the specific font - format. A missing entry means that FreeType doesn't support the - font format (yet). - - -Please send additions and/or corrections to wl@gnu.org or to the -FreeType developer's list at freetype-devel@nongnu.org (for subscribers -only). If you can provide a font example for a format which isn't -supported yet please send a mail too. - - -file wrapper font font glyph FreeType reference -type format format type access driver documents ----------------------------------------------------------------------------- - ---- --- BDF --- --- bdf 5005.BDF_Spec.pdf, X11 - - ---- SFNT PS TYPE_1 --- type1 Type 1 GX Font Format - (for the Mac) [3] -MAC SFNT PS TYPE_1 --- type1 Type 1 GX Font Format - (for the Mac) [3] ---- SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac) - [3] -MAC SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac) - [3] ---- SFNT PS CFF --- cff OT spec, 5176.CFF.pdf - (`OTTO' format) -MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf - (`OTTO' format) ---- SFNT PS CFF CID cff OT spec, 5176.CFF.pdf -MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf ---- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf -MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf ---- SFNT TT SBIT --- sfnt XFree86 (bitmaps only; - with `head' table) ---- SFNT TT MACSBIT --- sfnt OT spec (for the Mac; - bitmaps only; `bhed' table) -MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac; - bitmaps only; `bhed' table) ---- SFNT TT --- --- truetype OT spec (`normal' TT font) -MAC SFNT TT --- --- truetype OT spec (`normal' TT font) -MAC SFNT TT VAR --- truetype GX spec (`?var' tables) ---- SFNT TT --- COLLECTION truetype OT spec (this can't be CFF) -MAC SFNT TT --- COLLECTION truetype OT spec (this can't be CFF) - - ---- --- PS TYPE_1 --- type1 T1_SPEC.pdf - (`normal' Type 1 font) -MAC --- PS TYPE_1 --- type1 T1_SPEC.pdf - (`normal' Type 1 font) ---- --- PS TYPE_1 CID cid PLRM.pdf (CID Font Type 0; - Type 9 font) ---- --- PS MM --- type1 5015.Type1_Supp.pdf - (Multiple Masters) ---- --- PS CFF --- cff 5176.CFF.pdf (`pure' CFF) ---- --- PS CFF CID cff 5176.CFF.pdf (`pure' CFF) ---- --- PS CFF SYNTHETIC --- 5176.CFF.pdf (`pure' CFF) ---- PS PS CFF --- --- PLRM.pdf (Type 2) [1] ---- PS PS CFF CID --- PLRM.pdf (Type 2) [1] ---- PS PS CFF SYNTHETIC --- PLRM.pdf (Type 2) [1] ---- --- PS --- TYPE_0 --- PLRM.pdf ---- --- PS TYPE_3 --- --- PLRM.pdf (never supported) ---- --- PS TYPE_3 CID --- PLRM.pdf (CID Font Type 1; - Type 10 font; never supported) ---- PS PS TYPE_14 --- --- PLRM.pdf (Chameleon font; - Type 14 font; never supported?) ---- --- PS TYPE_32 CID --- PLRM.pdf (CID Font Type 4; - Type 32 font; never supported?) ---- PS TT --- --- type42 5012.Type42_Spec.pdf - (Type 42 font) ---- PS TT --- CID --- PLRM.pdf (CID Font Type 2; - Type 11 font) - - ---- ? ? CEF ? cff ? - - ---- --- PCF --- --- pcf X11, [4] ---- LZW PCF --- --- pcf X11, [4] - - ---- --- PFR PFR0 --- pfr [2] ---- --- PFR PFR1 --- --- (undocumented, proprietary; - probably never supported) - - ---- --- WINFNT --- --- winfonts MS Windows 3 Developer's Notes ---- --- WINFNT VECTOR --- --- MS Windows 3 Developer's Notes - - -[1] Support should be rather simple since this is identical to `CFF' but - in a PS wrapper. - -[2] Official PFR specification: - - http://www.bitstream.com/categories/developer/truedoc/pfrspec.html - http://www.bitstream.com/categories/developer/truedoc/pfrspec1.2.pdf - - The syntax of the auxiliary data is not defined there, but is - partially defined in MHP 1.0.3 (also called ETSI TS 101812 V1.3.1) - section 7.4. - - http://www.etsi.org/ - http://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=18799 - - (free registration required). - -[3] Support is rudimentary currently; some tables are not loaded yet. - -[4] There is no formal PCF specification; you have to deduce the exact - format from the source code within X11. George Williams did this for - his FontForge editor: - - http://fontforge.sourceforge.net/pcf-format.html - ------------------------------------------------------------------------- - -Copyright 2004, 2005, 2008, 2009 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ---- end of formats.txt --- diff --git a/src/3rdparty/freetype/docs/raster.txt b/src/3rdparty/freetype/docs/raster.txt deleted file mode 100644 index 95d9e24010..0000000000 --- a/src/3rdparty/freetype/docs/raster.txt +++ /dev/null @@ -1,635 +0,0 @@ - - How FreeType's rasterizer work - - by David Turner - - Revised 2007-Feb-01 - - -This file is an attempt to explain the internals of the FreeType -rasterizer. The rasterizer is of quite general purpose and could -easily be integrated into other programs. - - - I. Introduction - - II. Rendering Technology - 1. Requirements - 2. Profiles and Spans - a. Sweeping the Shape - b. Decomposing Outlines into Profiles - c. The Render Pool - d. Computing Profiles Extents - e. Computing Profiles Coordinates - f. Sweeping and Sorting the Spans - - -I. Introduction -=============== - - A rasterizer is a library in charge of converting a vectorial - representation of a shape into a bitmap. The FreeType rasterizer - has been originally developed to render the glyphs found in - TrueType files, made up of segments and second-order Béziers. - Meanwhile it has been extended to render third-order Bézier curves - also. This document is an explanation of its design and - implementation. - - While these explanations start from the basics, a knowledge of - common rasterization techniques is assumed. - - -II. Rendering Technology -======================== - -1. Requirements ---------------- - - We assume that all scaling, rotating, hinting, etc., has been - already done. The glyph is thus described by a list of points in - the device space. - - - All point coordinates are in the 26.6 fixed float format. The - used orientation is: - - - ^ y - | reference orientation - | - *----> x - 0 - - - `26.6' means that 26 bits are used for the integer part of a - value and 6 bits are used for the fractional part. - Consequently, the `distance' between two neighbouring pixels is - 64 `units' (1 unit = 1/64th of a pixel). - - Note that, for the rasterizer, pixel centers are located at - integer coordinates. The TrueType bytecode interpreter, - however, assumes that the lower left edge of a pixel (which is - taken to be a square with a length of 1 unit) has integer - coordinates. - - - ^ y ^ y - | | - | (1,1) | (0.5,0.5) - +-----------+ +-----+-----+ - | | | | | - | | | | | - | | | o-----+-----> x - | | | (0,0) | - | | | | - o-----------+-----> x +-----------+ - (0,0) (-0.5,-0.5) - - TrueType bytecode interpreter FreeType rasterizer - - - A pixel line in the target bitmap is called a `scanline'. - - - A glyph is usually made of several contours, also called - `outlines'. A contour is simply a closed curve that delimits an - outer or inner region of the glyph. It is described by a series - of successive points of the points table. - - Each point of the glyph has an associated flag that indicates - whether it is `on' or `off' the curve. Two successive `on' - points indicate a line segment joining the two points. - - One `off' point amidst two `on' points indicates a second-degree - (conic) Bézier parametric arc, defined by these three points - (the `off' point being the control point, and the `on' ones the - start and end points). Similarly, a third-degree (cubic) Bézier - curve is described by four points (two `off' control points - between two `on' points). - - Finally, for second-order curves only, two successive `off' - points forces the rasterizer to create, during rendering, an - `on' point amidst them, at their exact middle. This greatly - facilitates the definition of successive Bézier arcs. - - The parametric form of a second-order Bézier curve is: - - P(t) = (1-t)^2*P1 + 2*t*(1-t)*P2 + t^2*P3 - - (P1 and P3 are the end points, P2 the control point.) - - The parametric form of a third-order Bézier curve is: - - P(t) = (1-t)^3*P1 + 3*t*(1-t)^2*P2 + 3*t^2*(1-t)*P3 + t^3*P4 - - (P1 and P4 are the end points, P2 and P3 the control points.) - - For both formulae, t is a real number in the range [0..1]. - - Note that the rasterizer does not use these formulae directly. - They exhibit, however, one very useful property of Bézier arcs: - Each point of the curve is a weighted average of the control - points. - - As all weights are positive and always sum up to 1, whatever the - value of t, each arc point lies within the triangle (polygon) - defined by the arc's three (four) control points. - - In the following, only second-order curves are discussed since - rasterization of third-order curves is completely identical. - - Here some samples for second-order curves. - - - * # on curve - * off curve - __---__ - #-__ _-- -_ - --__ _- - - --__ # \ - --__ # - -# - Two `on' points - Two `on' points and one `off' point - between them - - * - # __ Two `on' points with two `off' - \ - - points between them. The point - \ / \ marked `0' is the middle of the - - 0 \ `off' points, and is a `virtual - -_ _- # on' point where the curve passes. - -- It does not appear in the point - * list. - - -2. Profiles and Spans ---------------------- - - The following is a basic explanation of the _kind_ of computations - made by the rasterizer to build a bitmap from a vector - representation. Note that the actual implementation is slightly - different, due to performance tuning and other factors. - - However, the following ideas remain in the same category, and are - more convenient to understand. - - - a. Sweeping the Shape - - The best way to fill a shape is to decompose it into a number of - simple horizontal segments, then turn them on in the target - bitmap. These segments are called `spans'. - - __---__ - _-- -_ - _- - - - \ - / \ - / \ - | \ - - __---__ Example: filling a shape - _----------_ with spans. - _-------------- - ----------------\ - /-----------------\ This is typically done from the top - / \ to the bottom of the shape, in a - | | \ movement called a `sweep'. - V - - __---__ - _----------_ - _-------------- - ----------------\ - /-----------------\ - /-------------------\ - |---------------------\ - - - In order to draw a span, the rasterizer must compute its - coordinates, which are simply the x coordinates of the shape's - contours, taken on the y scanlines. - - - /---/ |---| Note that there are usually - /---/ |---| several spans per scanline. - | /---/ |---| - | /---/_______|---| When rendering this shape to the - V /----------------| current scanline y, we must - /-----------------| compute the x values of the - a /----| |---| points a, b, c, and d. - - - - * * - - - - * * - - y - - / / b c| |d - - - /---/ |---| - /---/ |---| And then turn on the spans a-b - /---/ |---| and c-d. - /---/_______|---| - /----------------| - /-----------------| - a /----| |---| - - - - ####### - - - - ##### - - y - - / / b c| |d - - - b. Decomposing Outlines into Profiles - - For each scanline during the sweep, we need the following - information: - - o The number of spans on the current scanline, given by the - number of shape points intersecting the scanline (these are - the points a, b, c, and d in the above example). - - o The x coordinates of these points. - - x coordinates are computed before the sweep, in a phase called - `decomposition' which converts the glyph into *profiles*. - - Put it simply, a `profile' is a contour's portion that can only - be either ascending or descending, i.e., it is monotonic in the - vertical direction (we also say y-monotonic). There is no such - thing as a horizontal profile, as we shall see. - - Here are a few examples: - - - this square - 1 2 - ---->---- is made of two - | | | | - | | profiles | | - ^ v ^ + v - | | | | - | | | | - ----<---- - - up down - - - this triangle - - P2 1 2 - - |\ is made of two | \ - ^ | \ \ | \ - | | \ \ profiles | \ | - | | \ v ^ | \ | - | \ | | + \ v - | \ | | \ - P1 ---___ \ ---___ \ - ---_\ ---_ \ - <--__ P3 up down - - - - A more general contour can be made of more than two profiles: - - __ ^ - / | / ___ / | - / | / | / | / | - | | / / => | v / / - | | | | | | ^ | - ^ | |___| | | ^ + | + | + v - | | | v | | - | | | up | - |___________| | down | - - <-- up down - - - Successive profiles are always joined by horizontal segments - that are not part of the profiles themselves. - - For the rasterizer, a profile is simply an *array* that - associates one horizontal *pixel* coordinate to each bitmap - *scanline* crossed by the contour's section containing the - profile. Note that profiles are *oriented* up or down along the - glyph's original flow orientation. - - In other graphics libraries, profiles are also called `edges' or - `edgelists'. - - - c. The Render Pool - - FreeType has been designed to be able to run well on _very_ - light systems, including embedded systems with very few memory. - - A render pool will be allocated once; the rasterizer uses this - pool for all its needs by managing this memory directly in it. - The algorithms that are used for profile computation make it - possible to use the pool as a simple growing heap. This means - that this memory management is actually quite easy and faster - than any kind of malloc()/free() combination. - - Moreover, we'll see later that the rasterizer is able, when - dealing with profiles too large and numerous to lie all at once - in the render pool, to immediately decompose recursively the - rendering process into independent sub-tasks, each taking less - memory to be performed (see `sub-banding' below). - - The render pool doesn't need to be large. A 4KByte pool is - enough for nearly all renditions, though nearly 100% slower than - a more comfortable 16KByte or 32KByte pool (that was tested with - complex glyphs at sizes over 500 pixels). - - - d. Computing Profiles Extents - - Remember that a profile is an array, associating a _scanline_ to - the x pixel coordinate of its intersection with a contour. - - Though it's not exactly how the FreeType rasterizer works, it is - convenient to think that we need a profile's height before - allocating it in the pool and computing its coordinates. - - The profile's height is the number of scanlines crossed by the - y-monotonic section of a contour. We thus need to compute these - sections from the vectorial description. In order to do that, - we are obliged to compute all (local and global) y extrema of - the glyph (minima and maxima). - - - P2 For instance, this triangle has only - two y-extrema, which are simply - |\ - | \ P2.y as a vertical maximum - | \ P3.y as a vertical minimum - | \ - | \ P1.y is not a vertical extremum (though - | \ it is a horizontal minimum, which we - P1 ---___ \ don't need). - ---_\ - P3 - - - Note that the extrema are expressed in pixel units, not in - scanlines. The triangle's height is certainly (P3.y-P2.y+1) - pixel units, but its profiles' heights are computed in - scanlines. The exact conversion is simple: - - - min scanline = FLOOR ( min y ) - - max scanline = CEILING( max y ) - - A problem arises with Bézier Arcs. While a segment is always - necessarily y-monotonic (i.e., flat, ascending, or descending), - which makes extrema computations easy, the ascent of an arc can - vary between its control points. - - - P2 - * - # on curve - * off curve - __-x--_ - _-- -_ - P1 _- - A non y-monotonic Bézier arc. - # \ - - The arc goes from P1 to P3. - \ - \ P3 - # - - - We first need to be able to easily detect non-monotonic arcs, - according to their control points. I will state here, without - proof, that the monotony condition can be expressed as: - - P1.y <= P2.y <= P3.y for an ever-ascending arc - - P1.y >= P2.y >= P3.y for an ever-descending arc - - with the special case of - - P1.y = P2.y = P3.y where the arc is said to be `flat'. - - As you can see, these conditions can be very easily tested. - They are, however, extremely important, as any arc that does not - satisfy them necessarily contains an extremum. - - Note also that a monotonic arc can contain an extremum too, - which is then one of its `on' points: - - - P1 P2 - #---__ * P1P2P3 is ever-descending, but P1 - -_ is an y-extremum. - - - ---_ \ - -> \ - \ P3 - # - - - Let's go back to our previous example: - - - P2 - * - # on curve - * off curve - __-x--_ - _-- -_ - P1 _- - A non-y-monotonic Bézier arc. - # \ - - Here we have - \ P2.y >= P1.y && - \ P3 P2.y >= P3.y (!) - # - - - We need to compute the vertical maximum of this arc to be able - to compute a profile's height (the point marked by an `x'). The - arc's equation indicates that a direct computation is possible, - but we rely on a different technique, which use will become - apparent soon. - - Bézier arcs have the special property of being very easily - decomposed into two sub-arcs, which are themselves Bézier arcs. - Moreover, it is easy to prove that there is at most one vertical - extremum on each Bézier arc (for second-degree curves; similar - conditions can be found for third-order arcs). - - For instance, the following arc P1P2P3 can be decomposed into - two sub-arcs Q1Q2Q3 and R1R2R3: - - - P2 - * - # on curve - * off curve - - - original Bézier arc P1P2P3. - __---__ - _-- --_ - _- -_ - - - - / \ - / \ - # # - P1 P3 - - - - P2 - * - - - - Q3 Decomposed into two subarcs - Q2 R2 Q1Q2Q3 and R1R2R3 - * __-#-__ * - _-- --_ - _- R1 -_ Q1 = P1 R3 = P3 - - - Q2 = (P1+P2)/2 R2 = (P2+P3)/2 - / \ - / \ Q3 = R1 = (Q2+R2)/2 - # # - Q1 R3 Note that Q2, R2, and Q3=R1 - are on a single line which is - tangent to the curve. - - - We have then decomposed a non-y-monotonic Bézier curve into two - smaller sub-arcs. Note that in the above drawing, both sub-arcs - are monotonic, and that the extremum is then Q3=R1. However, in - a more general case, only one sub-arc is guaranteed to be - monotonic. Getting back to our former example: - - - Q2 - * - - __-x--_ R1 - _-- #_ - Q1 _- Q3 - R2 - # \ * - - - \ - \ R3 - # - - - Here, we see that, though Q1Q2Q3 is still non-monotonic, R1R2R3 - is ever descending: We thus know that it doesn't contain the - extremum. We can then re-subdivide Q1Q2Q3 into two sub-arcs and - go on recursively, stopping when we encounter two monotonic - subarcs, or when the subarcs become simply too small. - - We will finally find the vertical extremum. Note that the - iterative process of finding an extremum is called `flattening'. - - - e. Computing Profiles Coordinates - - Once we have the height of each profile, we are able to allocate - it in the render pool. The next task is to compute coordinates - for each scanline. - - In the case of segments, the computation is straightforward, - using the Euclidean algorithm (also known as Bresenham). - However, for Bézier arcs, the job is a little more complicated. - - We assume that all Béziers that are part of a profile are the - result of flattening the curve, which means that they are all - y-monotonic (ascending or descending, and never flat). We now - have to compute the intersections of arcs with the profile's - scanlines. One way is to use a similar scheme to flattening - called `stepping'. - - - Consider this arc, going from P1 to - --------------------- P3. Suppose that we need to - compute its intersections with the - drawn scanlines. As already - --------------------- mentioned this can be done - directly, but the involved - * P2 _---# P3 algorithm is far too slow. - ------------- _-- -- - _- - _/ Instead, it is still possible to - ---------/----------- use the decomposition property in - / the same recursive way, i.e., - | subdivide the arc into subarcs - ------|-------------- until these get too small to cross - | more than one scanline! - | - -----|--------------- This is very easily done using a - | rasterizer-managed stack of - | subarcs. - # P1 - - - f. Sweeping and Sorting the Spans - - Once all our profiles have been computed, we begin the sweep to - build (and fill) the spans. - - As both the TrueType and Type 1 specifications use the winding - fill rule (but with opposite directions), we place, on each - scanline, the present profiles in two separate lists. - - One list, called the `left' one, only contains ascending - profiles, while the other `right' list contains the descending - profiles. - - As each glyph is made of closed curves, a simple geometric - property ensures that the two lists contain the same number of - elements. - - Creating spans is thus straightforward: - - 1. We sort each list in increasing horizontal order. - - 2. We pair each value of the left list with its corresponding - value in the right list. - - - / / | | For example, we have here - / / | | four profiles. Two of - >/ / | | | them are ascending (1 & - 1// / ^ | | | 2 3), while the two others - // // 3| | | v are descending (2 & 4). - / //4 | | | On the given scanline, - a / /< | | the left list is (1,3), - - - - *-----* - - - - *---* - - y - and the right one is - / / b c| |d (4,2) (sorted). - - There are then two spans, joining - 1 to 4 (i.e. a-b) and 3 to 2 - (i.e. c-d)! - - - Sorting doesn't necessarily take much time, as in 99 cases out - of 100, the lists' order is kept from one scanline to the next. - We can thus implement it with two simple singly-linked lists, - sorted by a classic bubble-sort, which takes a minimum amount of - time when the lists are already sorted. - - A previous version of the rasterizer used more elaborate - structures, like arrays to perform `faster' sorting. It turned - out that this old scheme is not faster than the one described - above. - - Once the spans have been `created', we can simply draw them in - the target bitmap. - ------------------------------------------------------------------------- - -Copyright 2003, 2007 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute this -file you indicate that you have read the license and understand and -accept it fully. - - ---- end of raster.txt --- - -Local Variables: -coding: utf-8 -End: diff --git a/src/3rdparty/freetype/docs/reference/README b/src/3rdparty/freetype/docs/reference/README deleted file mode 100644 index 51b04d6f15..0000000000 --- a/src/3rdparty/freetype/docs/reference/README +++ /dev/null @@ -1,5 +0,0 @@ -After saying `make refdoc' this directory contains the FreeType API -reference. You need python to make this target. - -This also works with Jam: Just type `jam refdoc' in the main directory. - diff --git a/src/3rdparty/freetype/docs/reference/ft2-base_interface.html b/src/3rdparty/freetype/docs/reference/ft2-base_interface.html deleted file mode 100644 index 08f2a81b84..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-base_interface.html +++ /dev/null @@ -1,3559 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Base Interface -

-

Synopsis

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FT_LibraryFT_IS_TRICKYFT_LOAD_XXX
FT_FaceFT_STYLE_FLAG_XXXFT_LOAD_TARGET_XXX
FT_SizeFT_Size_InternalFT_LOAD_TARGET_MODE
FT_GlyphSlotFT_Size_MetricsFT_Set_Transform
FT_CharMapFT_SizeRecFT_Render_Mode
FT_EncodingFT_SubGlyphft_render_mode_xxx
FT_Glyph_MetricsFT_Slot_InternalFT_Render_Glyph
FT_Bitmap_SizeFT_GlyphSlotRecFT_Kerning_Mode
FT_ModuleFT_Init_FreeTypeft_kerning_default
FT_DriverFT_Done_FreeTypeft_kerning_unfitted
FT_RendererFT_OPEN_XXXft_kerning_unscaled
FT_ENC_TAGFT_ParameterFT_Get_Kerning
ft_encoding_xxxFT_Open_ArgsFT_Get_Track_Kerning
FT_CharMapRecFT_New_FaceFT_Get_Glyph_Name
FT_Face_InternalFT_New_Memory_FaceFT_Get_Postscript_Name
FT_FaceRecFT_Open_FaceFT_Select_Charmap
FT_FACE_FLAG_XXXFT_Attach_FileFT_Set_Charmap
FT_HAS_HORIZONTALFT_Attach_StreamFT_Get_Charmap_Index
FT_HAS_VERTICALFT_Done_FaceFT_Get_Char_Index
FT_HAS_KERNINGFT_Select_SizeFT_Get_First_Char
FT_IS_SCALABLEFT_Size_Request_TypeFT_Get_Next_Char
FT_IS_SFNTFT_Size_RequestRecFT_Get_Name_Index
FT_IS_FIXED_WIDTHFT_Size_RequestFT_SUBGLYPH_FLAG_XXX
FT_HAS_FIXED_SIZESFT_Request_SizeFT_Get_SubGlyph_Info
FT_HAS_FAST_GLYPHSFT_Set_Char_SizeFT_FSTYPE_XXX
FT_HAS_GLYPH_NAMESFT_Set_Pixel_SizesFT_Get_FSType_Flags
FT_HAS_MULTIPLE_MASTERSFT_Load_Glyph
FT_IS_CID_KEYEDFT_Load_Char


- -
-

This section describes the public high-level API of FreeType 2.

-

-
-

FT_Library

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_LibraryRec_  *FT_Library;
-
-

-
-

A handle to a FreeType library instance. Each ‘library’ is completely independent from the others; it is the ‘root’ of a set of objects like fonts, faces, sizes, etc.

-

It also embeds a memory manager (see FT_Memory), as well as a scan-line converter object (see FT_Raster).

-

For multi-threading applications each thread should have its own FT_Library object.

-

-
note
-

Library objects are normally created by FT_Init_FreeType, and destroyed with FT_Done_FreeType.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_FaceRec_*  FT_Face;
-
-

-
-

A handle to a given typographic face object. A face object models a given typeface, in a given style.

-

-
note
-

Each face object also owns a single FT_GlyphSlot object, as well as one or more FT_Size objects.

-

Use FT_New_Face or FT_Open_Face to create a new face object from a given filepathname or a custom input stream.

-

Use FT_Done_Face to destroy it (along with its slot and sizes).

-
-
also
-

See FT_FaceRec for the publicly accessible fields of a given face object.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Size

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_SizeRec_*  FT_Size;
-
-

-
-

A handle to an object used to model a face scaled to a given character size.

-

-
note
-

Each FT_Face has an active FT_Size object that is used by functions like FT_Load_Glyph to determine the scaling transformation which is used to load and hint glyphs and metrics.

-

You can use FT_Set_Char_Size, FT_Set_Pixel_Sizes, FT_Request_Size or even FT_Select_Size to change the content (i.e., the scaling values) of the active FT_Size.

-

You can use FT_New_Size to create additional size objects for a given FT_Face, but they won't be used by other functions until you activate it through FT_Activate_Size. Only one size can be activated at any given time per face.

-
-
also
-

See FT_SizeRec for the publicly accessible fields of a given size object.

-
-
-
- - -
[Index][TOC]
- -
-

FT_GlyphSlot

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_GlyphSlotRec_*  FT_GlyphSlot;
-
-

-
-

A handle to a given ‘glyph slot’. A slot is a container where it is possible to load any of the glyphs contained in its parent face.

-

In other words, each time you call FT_Load_Glyph or FT_Load_Char, the slot's content is erased by the new glyph data, i.e., the glyph's metrics, its image (bitmap or outline), and other control information.

-

-
also
-

See FT_GlyphSlotRec for the publicly accessible glyph fields.

-
-
-
- - -
[Index][TOC]
- -
-

FT_CharMap

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_CharMapRec_*  FT_CharMap;
-
-

-
-

A handle to a given character map. A charmap is used to translate character codes in a given encoding into glyph indexes for its parent's face. Some font formats may provide several charmaps per font.

-

Each face object owns zero or more charmaps, but only one of them can be ‘active’ and used by FT_Get_Char_Index or FT_Load_Char.

-

The list of available charmaps in a face is available through the ‘face->num_charmaps’ and ‘face->charmaps’ fields of FT_FaceRec.

-

The currently active charmap is available as ‘face->charmap’. You should call FT_Set_Charmap to change it.

-

-
note
-

When a new face is created (either through FT_New_Face or FT_Open_Face), the library looks for a Unicode charmap within the list and automatically activates it.

-
-
also
-

See FT_CharMapRec for the publicly accessible fields of a given character map.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Encoding

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef enum  FT_Encoding_
-  {
-    FT_ENC_TAG( FT_ENCODING_NONE, 0, 0, 0, 0 ),
-
-    FT_ENC_TAG( FT_ENCODING_MS_SYMBOL, 's', 'y', 'm', 'b' ),
-    FT_ENC_TAG( FT_ENCODING_UNICODE,   'u', 'n', 'i', 'c' ),
-
-    FT_ENC_TAG( FT_ENCODING_SJIS,    's', 'j', 'i', 's' ),
-    FT_ENC_TAG( FT_ENCODING_GB2312,  'g', 'b', ' ', ' ' ),
-    FT_ENC_TAG( FT_ENCODING_BIG5,    'b', 'i', 'g', '5' ),
-    FT_ENC_TAG( FT_ENCODING_WANSUNG, 'w', 'a', 'n', 's' ),
-    FT_ENC_TAG( FT_ENCODING_JOHAB,   'j', 'o', 'h', 'a' ),
-
-    /* for backwards compatibility */
-    FT_ENCODING_MS_SJIS    = FT_ENCODING_SJIS,
-    FT_ENCODING_MS_GB2312  = FT_ENCODING_GB2312,
-    FT_ENCODING_MS_BIG5    = FT_ENCODING_BIG5,
-    FT_ENCODING_MS_WANSUNG = FT_ENCODING_WANSUNG,
-    FT_ENCODING_MS_JOHAB   = FT_ENCODING_JOHAB,
-
-    FT_ENC_TAG( FT_ENCODING_ADOBE_STANDARD, 'A', 'D', 'O', 'B' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_EXPERT,   'A', 'D', 'B', 'E' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_CUSTOM,   'A', 'D', 'B', 'C' ),
-    FT_ENC_TAG( FT_ENCODING_ADOBE_LATIN_1,  'l', 'a', 't', '1' ),
-
-    FT_ENC_TAG( FT_ENCODING_OLD_LATIN_2, 'l', 'a', 't', '2' ),
-
-    FT_ENC_TAG( FT_ENCODING_APPLE_ROMAN, 'a', 'r', 'm', 'n' )
-
-  } FT_Encoding;
-
-

-
-

An enumeration used to specify character sets supported by charmaps. Used in the FT_Select_Charmap API function.

-

-
note
-

Despite the name, this enumeration lists specific character repertories (i.e., charsets), and not text encoding methods (e.g., UTF-8, UTF-16, etc.).

-

Other encodings might be defined in the future.

-
-
values
-

- - - - - - - - - - - - - - - - - - - - - - - - - - -
FT_ENCODING_NONE -

The encoding value 0 is reserved.

-
FT_ENCODING_UNICODE -

Corresponds to the Unicode character set. This value covers all versions of the Unicode repertoire, including ASCII and Latin-1. Most fonts include a Unicode charmap, but not all of them.

-

For example, if you want to access Unicode value U+1F028 (and the font contains it), use value 0x1F028 as the input value for FT_Get_Char_Index.

-
FT_ENCODING_MS_SYMBOL -

Corresponds to the Microsoft Symbol encoding, used to encode mathematical symbols in the 32..255 character code range. For more information, see ‘http://www.ceviz.net/symbol.htm’.

-
FT_ENCODING_SJIS -

Corresponds to Japanese SJIS encoding. More info at at ‘http://langsupport.japanreference.com/encoding.shtml’. See note on multi-byte encodings below.

-
FT_ENCODING_GB2312 -

Corresponds to an encoding system for Simplified Chinese as used used in mainland China.

-
FT_ENCODING_BIG5 -

Corresponds to an encoding system for Traditional Chinese as used in Taiwan and Hong Kong.

-
FT_ENCODING_WANSUNG -

Corresponds to the Korean encoding system known as Wansung. For more information see ‘http://www.microsoft.com/typography/unicode/949.txt’.

-
FT_ENCODING_JOHAB -

The Korean standard character set (KS C 5601-1992), which corresponds to MS Windows code page 1361. This character set includes all possible Hangeul character combinations.

-
FT_ENCODING_ADOBE_LATIN_1
-

Corresponds to a Latin-1 encoding as defined in a Type 1 PostScript font. It is limited to 256 character codes.

-
FT_ENCODING_ADOBE_STANDARD
-

Corresponds to the Adobe Standard encoding, as found in Type 1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.

-
FT_ENCODING_ADOBE_EXPERT
-

Corresponds to the Adobe Expert encoding, as found in Type 1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.

-
FT_ENCODING_ADOBE_CUSTOM
-

Corresponds to a custom encoding, as found in Type 1, CFF, and OpenType/CFF fonts. It is limited to 256 character codes.

-
FT_ENCODING_APPLE_ROMAN
-

Corresponds to the 8-bit Apple roman encoding. Many TrueType and OpenType fonts contain a charmap for this encoding, since older versions of Mac OS are able to use it.

-
FT_ENCODING_OLD_LATIN_2
-

This value is deprecated and was never used nor reported by FreeType. Don't use or test for it.

-
FT_ENCODING_MS_SJIS -

Same as FT_ENCODING_SJIS. Deprecated.

-
FT_ENCODING_MS_GB2312 -

Same as FT_ENCODING_GB2312. Deprecated.

-
FT_ENCODING_MS_BIG5 -

Same as FT_ENCODING_BIG5. Deprecated.

-
FT_ENCODING_MS_WANSUNG -

Same as FT_ENCODING_WANSUNG. Deprecated.

-
FT_ENCODING_MS_JOHAB -

Same as FT_ENCODING_JOHAB. Deprecated.

-
-
-
note
-

By default, FreeType automatically synthesizes a Unicode charmap for PostScript fonts, using their glyph names dictionaries. However, it also reports the encodings defined explicitly in the font file, for the cases when they are needed, with the Adobe values as well.

-

FT_ENCODING_NONE is set by the BDF and PCF drivers if the charmap is neither Unicode nor ISO-8859-1 (otherwise it is set to FT_ENCODING_UNICODE). Use FT_Get_BDF_Charset_ID to find out which encoding is really present. If, for example, the ‘cs_registry’ field is ‘KOI8’ and the ‘cs_encoding’ field is ‘R’, the font is encoded in KOI8-R.

-

FT_ENCODING_NONE is always set (with a single exception) by the winfonts driver. Use FT_Get_WinFNT_Header and examine the ‘charset’ field of the FT_WinFNT_HeaderRec structure to find out which encoding is really present. For example, FT_WinFNT_ID_CP1251 (204) means Windows code page 1251 (for Russian).

-

FT_ENCODING_NONE is set if ‘platform_id’ is TT_PLATFORM_MACINTOSH and ‘encoding_id’ is not TT_MAC_ID_ROMAN (otherwise it is set to FT_ENCODING_APPLE_ROMAN).

-

If ‘platform_id’ is TT_PLATFORM_MACINTOSH, use the function FT_Get_CMap_Language_ID to query the Mac language ID which may be needed to be able to distinguish Apple encoding variants. See

-

http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/README.TXT

-

to get an idea how to do that. Basically, if the language ID is 0, don't use it, otherwise subtract 1 from the language ID. Then examine ‘encoding_id’. If, for example, ‘encoding_id’ is TT_MAC_ID_ROMAN and the language ID (minus 1) is ‘TT_MAC_LANGID_GREEK’, it is the Greek encoding, not Roman. TT_MAC_ID_ARABIC with ‘TT_MAC_LANGID_FARSI’ means the Farsi variant the Arabic encoding.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Metrics

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Glyph_Metrics_
-  {
-    FT_Pos  width;
-    FT_Pos  height;
-
-    FT_Pos  horiBearingX;
-    FT_Pos  horiBearingY;
-    FT_Pos  horiAdvance;
-
-    FT_Pos  vertBearingX;
-    FT_Pos  vertBearingY;
-    FT_Pos  vertAdvance;
-
-  } FT_Glyph_Metrics;
-
-

-
-

A structure used to model the metrics of a single glyph. The values are expressed in 26.6 fractional pixel format; if the flag FT_LOAD_NO_SCALE has been used while loading the glyph, values are expressed in font units instead.

-

-
fields
-

- - - - - - - - - -
width -

The glyph's width.

-
height -

The glyph's height.

-
horiBearingX -

Left side bearing for horizontal layout.

-
horiBearingY -

Top side bearing for horizontal layout.

-
horiAdvance -

Advance width for horizontal layout.

-
vertBearingX -

Left side bearing for vertical layout.

-
vertBearingY -

Top side bearing for vertical layout.

-
vertAdvance -

Advance height for vertical layout.

-
-
-
note
-

If not disabled with FT_LOAD_NO_HINTING, the values represent dimensions of the hinted glyph (in case hinting is applicable).

-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap_Size

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Bitmap_Size_
-  {
-    FT_Short  height;
-    FT_Short  width;
-
-    FT_Pos    size;
-
-    FT_Pos    x_ppem;
-    FT_Pos    y_ppem;
-
-  } FT_Bitmap_Size;
-
-

-
-

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 ‘available_sizes’ field of FT_Face.

-

-
fields
-

- - - - - - -
height -

The vertical distance, in pixels, between two consecutive baselines. It is always positive.

-
width -

The average width, in pixels, of all glyphs in the strike.

-
size -

The nominal size of the strike in 26.6 fractional points. This field is not very useful.

-
x_ppem -

The horizontal ppem (nominal width) in 26.6 fractional pixels.

-
y_ppem -

The vertical ppem (nominal height) in 26.6 fractional pixels.

-
-
-
note
-

Windows FNT: The nominal size given in a FNT font is not reliable. Thus when the driver finds it incorrect, it sets ‘size’ to some calculated values and sets ‘x_ppem’ and ‘y_ppem’ to the pixel width and height given in the font, respectively.

-

TrueType embedded bitmaps: ‘size’, ‘width’, and ‘height’ values are not contained in the bitmap strike itself. They are computed from the global font parameters.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Module

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_ModuleRec_*  FT_Module;
-
-

-
-

A handle to a given FreeType module object. Each module can be a font driver, a renderer, or anything else that provides services to the formers.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Driver

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_DriverRec_*  FT_Driver;
-
-

-
-

A handle to a given FreeType font driver object. Each font driver is a special module capable of creating faces from font files.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Renderer

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_RendererRec_*  FT_Renderer;
-
-

-
-

A handle to a given FreeType renderer. A renderer is a special module in charge of converting a glyph image to a bitmap, when necessary. Each renderer supports a given glyph image format, and one or more target surface depths.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ENC_TAG

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#ifndef FT_ENC_TAG
-#define FT_ENC_TAG( value, a, b, c, d )         \
-          value = ( ( (FT_UInt32)(a) << 24 ) |  \
-                    ( (FT_UInt32)(b) << 16 ) |  \
-                    ( (FT_UInt32)(c) <<  8 ) |  \
-                      (FT_UInt32)(d)         )
-
-#endif /* FT_ENC_TAG */
-
-

-
-

This macro converts four-letter tags into an unsigned long. It is used to define ‘encoding’ identifiers (see FT_Encoding).

-

-
note
-

Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:

-
-  #define FT_ENC_TAG( value, a, b, c, d )  value                   
-
-

to get a simple enumeration without assigning special numbers.

-
-
-
- - -
[Index][TOC]
- -
-

ft_encoding_xxx

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define ft_encoding_none            FT_ENCODING_NONE
-#define ft_encoding_unicode         FT_ENCODING_UNICODE
-#define ft_encoding_symbol          FT_ENCODING_MS_SYMBOL
-#define ft_encoding_latin_1         FT_ENCODING_ADOBE_LATIN_1
-#define ft_encoding_latin_2         FT_ENCODING_OLD_LATIN_2
-#define ft_encoding_sjis            FT_ENCODING_SJIS
-#define ft_encoding_gb2312          FT_ENCODING_GB2312
-#define ft_encoding_big5            FT_ENCODING_BIG5
-#define ft_encoding_wansung         FT_ENCODING_WANSUNG
-#define ft_encoding_johab           FT_ENCODING_JOHAB
-
-#define ft_encoding_adobe_standard  FT_ENCODING_ADOBE_STANDARD
-#define ft_encoding_adobe_expert    FT_ENCODING_ADOBE_EXPERT
-#define ft_encoding_adobe_custom    FT_ENCODING_ADOBE_CUSTOM
-#define ft_encoding_apple_roman     FT_ENCODING_APPLE_ROMAN
-
-

-
-

These constants are deprecated; use the corresponding FT_Encoding values instead.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CharMapRec

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_CharMapRec_
-  {
-    FT_Face      face;
-    FT_Encoding  encoding;
-    FT_UShort    platform_id;
-    FT_UShort    encoding_id;
-
-  } FT_CharMapRec;
-
-

-
-

The base charmap structure.

-

-
fields
-

- - - - - -
face -

A handle to the parent face object.

-
encoding -

An FT_Encoding tag identifying the charmap. Use this with FT_Select_Charmap.

-
platform_id -

An ID number describing the platform for the following encoding ID. This comes directly from the TrueType specification and should be emulated for other formats.

-
encoding_id -

A platform specific encoding number. This also comes from the TrueType specification and should be emulated similarly.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_Internal

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_Face_InternalRec_*  FT_Face_Internal;
-
-

-
-

An opaque handle to an ‘FT_Face_InternalRec’ structure, used to model private data of a given FT_Face object.

-

This structure might change between releases of FreeType 2 and is not generally available to client applications.

-

-
-
- - -
[Index][TOC]
- -
-

FT_FaceRec

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_FaceRec_
-  {
-    FT_Long           num_faces;
-    FT_Long           face_index;
-
-    FT_Long           face_flags;
-    FT_Long           style_flags;
-
-    FT_Long           num_glyphs;
-
-    FT_String*        family_name;
-    FT_String*        style_name;
-
-    FT_Int            num_fixed_sizes;
-    FT_Bitmap_Size*   available_sizes;
-
-    FT_Int            num_charmaps;
-    FT_CharMap*       charmaps;
-
-    FT_Generic        generic;
-
-    /*# The following member variables (down to `underline_thickness') */
-    /*# are only relevant to scalable outlines; cf. @FT_Bitmap_Size    */
-    /*# for bitmap fonts.                                              */
-    FT_BBox           bbox;
-
-    FT_UShort         units_per_EM;
-    FT_Short          ascender;
-    FT_Short          descender;
-    FT_Short          height;
-
-    FT_Short          max_advance_width;
-    FT_Short          max_advance_height;
-
-    FT_Short          underline_position;
-    FT_Short          underline_thickness;
-
-    FT_GlyphSlot      glyph;
-    FT_Size           size;
-    FT_CharMap        charmap;
-
-    /*@private begin */
-
-    FT_Driver         driver;
-    FT_Memory         memory;
-    FT_Stream         stream;
-
-    FT_ListRec        sizes_list;
-
-    FT_Generic        autohint;
-    void*             extensions;
-
-    FT_Face_Internal  internal;
-
-    /*@private end */
-
-  } FT_FaceRec;
-
-

-
-

FreeType root face class structure. A face object models a typeface in a font file.

-

-
fields
-

- - - - - - - - - - - - - - - - - - - - - - - - - -
num_faces -

The number of faces in the font file. Some font formats can have multiple faces in a font file.

-
face_index -

The index of the face in the font file. It is set to 0 if there is only one face in the font file.

-
face_flags -

A set of bit flags that give important information about the face; see FT_FACE_FLAG_XXX for the details.

-
style_flags -

A set of bit flags indicating the style of the face; see FT_STYLE_FLAG_XXX for the details.

-
num_glyphs -

The number of glyphs in the face. If the face is scalable and has sbits (see ‘num_fixed_sizes’), it is set to the number of outline glyphs.

-

For CID-keyed fonts, this value gives the highest CID used in the font.

-
family_name -

The face's family name. This is an ASCII string, usually in English, which describes the typeface's family (like ‘Times New Roman’, ‘Bodoni’, ‘Garamond’, etc). This is a least common denominator used to list fonts. Some formats (TrueType & OpenType) provide localized and Unicode versions of this string. Applications should use the format specific interface to access them. Can be NULL (e.g., in fonts embedded in a PDF file).

-
style_name -

The face's style name. This is an ASCII string, usually in English, which describes the typeface's style (like ‘Italic’, ‘Bold’, ‘Condensed’, etc). Not all font formats provide a style name, so this field is optional, and can be set to NULL. As for ‘family_name’, some formats provide localized and Unicode versions of this string. Applications should use the format specific interface to access them.

-
num_fixed_sizes -

The number of bitmap strikes in the face. Even if the face is scalable, there might still be bitmap strikes, which are called ‘sbits’ in that case.

-
available_sizes -

An array of FT_Bitmap_Size for all bitmap strikes in the face. It is set to NULL if there is no bitmap strike.

-
num_charmaps -

The number of charmaps in the face.

-
charmaps -

An array of the charmaps of the face.

-
generic -

A field reserved for client uses. See the FT_Generic type description.

-
bbox -

The font bounding box. Coordinates are expressed in font units (see ‘units_per_EM’). The box is large enough to contain any glyph from the font. Thus, ‘bbox.yMax’ can be seen as the ‘maximal ascender’, and ‘bbox.yMin’ as the ‘minimal descender’. Only relevant for scalable formats.

-

Note that the bounding box might be off by (at least) one pixel for hinted fonts. See FT_Size_Metrics for further discussion.

-
units_per_EM -

The number of font units per EM square for this face. This is typically 2048 for TrueType fonts, and 1000 for Type 1 fonts. Only relevant for scalable formats.

-
ascender -

The typographic ascender of the face, expressed in font units. For font formats not having this information, it is set to ‘bbox.yMax’. Only relevant for scalable formats.

-
descender -

The typographic descender of the face, expressed in font units. For font formats not having this information, it is set to ‘bbox.yMin’. Note that this field is usually negative. Only relevant for scalable formats.

-
height -

The height is the vertical distance between two consecutive baselines, expressed in font units. It is always positive. Only relevant for scalable formats.

-
max_advance_width -

The maximal advance width, in font units, for all glyphs in this face. This can be used to make word wrapping computations faster. Only relevant for scalable formats.

-
max_advance_height -

The maximal advance height, in font units, for all glyphs in this face. This is only relevant for vertical layouts, and is set to ‘height’ for fonts that do not provide vertical metrics. Only relevant for scalable formats.

-
underline_position -

The position, in font units, of the underline line for this face. It is the center of the underlining stem. Only relevant for scalable formats.

-
underline_thickness -

The thickness, in font units, of the underline for this face. Only relevant for scalable formats.

-
glyph -

The face's associated glyph slot(s).

-
size -

The current active size for this face.

-
charmap -

The current active charmap for this face.

-
-
-
note
-

Fields may be changed after a call to FT_Attach_File or FT_Attach_Stream.

-
-
-
- - -
[Index][TOC]
- -
-

FT_FACE_FLAG_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_FACE_FLAG_SCALABLE          ( 1L <<  0 )
-#define FT_FACE_FLAG_FIXED_SIZES       ( 1L <<  1 )
-#define FT_FACE_FLAG_FIXED_WIDTH       ( 1L <<  2 )
-#define FT_FACE_FLAG_SFNT              ( 1L <<  3 )
-#define FT_FACE_FLAG_HORIZONTAL        ( 1L <<  4 )
-#define FT_FACE_FLAG_VERTICAL          ( 1L <<  5 )
-#define FT_FACE_FLAG_KERNING           ( 1L <<  6 )
-#define FT_FACE_FLAG_FAST_GLYPHS       ( 1L <<  7 )
-#define FT_FACE_FLAG_MULTIPLE_MASTERS  ( 1L <<  8 )
-#define FT_FACE_FLAG_GLYPH_NAMES       ( 1L <<  9 )
-#define FT_FACE_FLAG_EXTERNAL_STREAM   ( 1L << 10 )
-#define FT_FACE_FLAG_HINTER            ( 1L << 11 )
-#define FT_FACE_FLAG_CID_KEYED         ( 1L << 12 )
-#define FT_FACE_FLAG_TRICKY            ( 1L << 13 )
-
-

-
-

A list of bit flags used in the ‘face_flags’ field of the FT_FaceRec structure. They inform client applications of properties of the corresponding face.

-

-
values
-

- - - - - - - - - - - - - - - - - - - - - - -
FT_FACE_FLAG_SCALABLE -

Indicates that the face contains outline glyphs. This doesn't prevent bitmap strikes, i.e., a face can have both this and and FT_FACE_FLAG_FIXED_SIZES set.

-
FT_FACE_FLAG_FIXED_SIZES
-

Indicates that the face contains bitmap strikes. See also the ‘num_fixed_sizes’ and ‘available_sizes’ fields of FT_FaceRec.

-
FT_FACE_FLAG_FIXED_WIDTH
-

Indicates that the face contains fixed-width characters (like Courier, Lucido, MonoType, etc.).

-
FT_FACE_FLAG_SFNT -

Indicates that the face uses the ‘sfnt’ storage scheme. For now, this means TrueType and OpenType.

-
FT_FACE_FLAG_HORIZONTAL
-

Indicates that the face contains horizontal glyph metrics. This should be set for all common formats.

-
FT_FACE_FLAG_VERTICAL -

Indicates that the face contains vertical glyph metrics. This is only available in some formats, not all of them.

-
FT_FACE_FLAG_KERNING -

Indicates that the face contains kerning information. If set, the kerning distance can be retrieved through the function FT_Get_Kerning. Otherwise the function always return the vector (0,0). Note that FreeType doesn't handle kerning data from the ‘GPOS’ table (as present in some OpenType fonts).

-
FT_FACE_FLAG_FAST_GLYPHS
-

THIS FLAG IS DEPRECATED. DO NOT USE OR TEST IT.

-
FT_FACE_FLAG_MULTIPLE_MASTERS
-

Indicates that the font contains multiple masters and is capable of interpolating between them. See the multiple-masters specific API for details.

-
FT_FACE_FLAG_GLYPH_NAMES
-

Indicates that the font contains glyph names that can be retrieved through FT_Get_Glyph_Name. Note that some TrueType fonts contain broken glyph name tables. Use the function FT_Has_PS_Glyph_Names when needed.

-
FT_FACE_FLAG_EXTERNAL_STREAM
-

Used internally by FreeType to indicate that a face's stream was provided by the client application and should not be destroyed when FT_Done_Face is called. Don't read or test this flag.

-
FT_FACE_FLAG_HINTER -

Set if the font driver has a hinting machine of its own. For example, with TrueType fonts, it makes sense to use data from the SFNT ‘gasp’ table only if the native TrueType hinting engine (with the bytecode interpreter) is available and active.

-
FT_FACE_FLAG_CID_KEYED -

Set if the font is CID-keyed. In that case, the font is not accessed by glyph indices but by CID values. For subsetted CID-keyed fonts this has the consequence that not all index values are a valid argument to FT_Load_Glyph. Only the CID values for which corresponding glyphs in the subsetted font exist make FT_Load_Glyph return successfully; in all other cases you get an ‘FT_Err_Invalid_Argument’ error.

-

Note that CID-keyed fonts which are in an SFNT wrapper don't have this flag set since the glyphs are accessed in the normal way (using contiguous indices); the ‘CID-ness’ isn't visible to the application.

-
FT_FACE_FLAG_TRICKY -

Set if the font is ‘tricky’, this is, it always needs the font format's native hinting engine to get a reasonable result. A typical example is the Chinese font ‘mingli.ttf’ which uses TrueType bytecode instructions to move and scale all of its subglyphs.

-

It is not possible to autohint such fonts using FT_LOAD_FORCE_AUTOHINT; it will also ignore FT_LOAD_NO_HINTING. You have to set both FT_LOAD_NO_HINTING and FT_LOAD_NO_AUTOHINT to really disable hinting; however, you probably never want this except for demonstration purposes.

-

Currently, there are six TrueType fonts in the list of tricky fonts; they are hard-coded in file ‘ttobjs.c’.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_HAS_HORIZONTAL

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_HORIZONTAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_HORIZONTAL )
-
-

-
-

A macro that returns true whenever a face object contains horizontal metrics (this is true for all font formats though).

-

-
also
-

FT_HAS_VERTICAL can be used to check for vertical metrics.

-
-
-
- - -
[Index][TOC]
- -
-

FT_HAS_VERTICAL

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_VERTICAL( face ) \
-          ( face->face_flags & FT_FACE_FLAG_VERTICAL )
-
-

-
-

A macro that returns true whenever a face object contains vertical metrics.

-

-
-
- - -
[Index][TOC]
- -
-

FT_HAS_KERNING

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_KERNING( face ) \
-          ( face->face_flags & FT_FACE_FLAG_KERNING )
-
-

-
-

A macro that returns true whenever a face object contains kerning data that can be accessed with FT_Get_Kerning.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IS_SCALABLE

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_IS_SCALABLE( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SCALABLE )
-
-

-
-

A macro that returns true whenever a face object contains a scalable font face (true for TrueType, Type 1, Type 42, CID, OpenType/CFF, and PFR font formats.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IS_SFNT

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_IS_SFNT( face ) \
-          ( face->face_flags & FT_FACE_FLAG_SFNT )
-
-

-
-

A macro that returns true whenever a face object contains a font whose format is based on the SFNT storage scheme. This usually means: TrueType fonts, OpenType fonts, as well as SFNT-based embedded bitmap fonts.

-

If this macro is true, all functions defined in FT_SFNT_NAMES_H and FT_TRUETYPE_TABLES_H are available.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IS_FIXED_WIDTH

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_IS_FIXED_WIDTH( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_WIDTH )
-
-

-
-

A macro that returns true whenever a face object contains a font face that contains fixed-width (or ‘monospace’, ‘fixed-pitch’, etc.) glyphs.

-

-
-
- - -
[Index][TOC]
- -
-

FT_HAS_FIXED_SIZES

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_FIXED_SIZES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_FIXED_SIZES )
-
-

-
-

A macro that returns true whenever a face object contains some embedded bitmaps. See the ‘available_sizes’ field of the FT_FaceRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_HAS_FAST_GLYPHS

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_FAST_GLYPHS( face )  0
-
-

-
-

Deprecated.

-

-
-
- - -
[Index][TOC]
- -
-

FT_HAS_GLYPH_NAMES

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_GLYPH_NAMES( face ) \
-          ( face->face_flags & FT_FACE_FLAG_GLYPH_NAMES )
-
-

-
-

A macro that returns true whenever a face object contains some glyph names that can be accessed through FT_Get_Glyph_Name.

-

-
-
- - -
[Index][TOC]
- -
-

FT_HAS_MULTIPLE_MASTERS

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_HAS_MULTIPLE_MASTERS( face ) \
-          ( face->face_flags & FT_FACE_FLAG_MULTIPLE_MASTERS )
-
-

-
-

A macro that returns true whenever a face object contains some multiple masters. The functions provided by FT_MULTIPLE_MASTERS_H are then available to choose the exact design you want.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IS_CID_KEYED

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_IS_CID_KEYED( face ) \
-          ( face->face_flags & FT_FACE_FLAG_CID_KEYED )
-
-

-
-

A macro that returns true whenever a face object contains a CID-keyed font. See the discussion of FT_FACE_FLAG_CID_KEYED for more details.

-

If this macro is true, all functions defined in FT_CID_H are available.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IS_TRICKY

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_IS_TRICKY( face ) \
-          ( face->face_flags & FT_FACE_FLAG_TRICKY )
-
-

-
-

A macro that returns true whenever a face represents a ‘tricky’ font. See the discussion of FT_FACE_FLAG_TRICKY for more details.

-

-
-
- - -
[Index][TOC]
- -
-

FT_STYLE_FLAG_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_STYLE_FLAG_ITALIC  ( 1 << 0 )
-#define FT_STYLE_FLAG_BOLD    ( 1 << 1 )
-
-

-
-

A list of bit-flags used to indicate the style of a given face. These are used in the ‘style_flags’ field of FT_FaceRec.

-

-
values
-

- - - -
FT_STYLE_FLAG_ITALIC -

Indicates that a given face style is italic or oblique.

-
FT_STYLE_FLAG_BOLD -

Indicates that a given face is bold.

-
-
-
note
-

The style information as provided by FreeType is very basic. More details are beyond the scope and should be done on a higher level (for example, by analyzing various fields of the ‘OS/2’ table in SFNT based fonts).

-
-
-
- - -
[Index][TOC]
- -
-

FT_Size_Internal

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_Size_InternalRec_*  FT_Size_Internal;
-
-

-
-

An opaque handle to an ‘FT_Size_InternalRec’ structure, used to model private data of a given FT_Size object.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Size_Metrics

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Size_Metrics_
-  {
-    FT_UShort  x_ppem;      /* horizontal pixels per EM               */
-    FT_UShort  y_ppem;      /* vertical pixels per EM                 */
-
-    FT_Fixed   x_scale;     /* scaling values used to convert font    */
-    FT_Fixed   y_scale;     /* units to 26.6 fractional pixels        */
-
-    FT_Pos     ascender;    /* ascender in 26.6 frac. pixels          */
-    FT_Pos     descender;   /* descender in 26.6 frac. pixels         */
-    FT_Pos     height;      /* text height in 26.6 frac. pixels       */
-    FT_Pos     max_advance; /* max horizontal advance, in 26.6 pixels */
-
-  } FT_Size_Metrics;
-
-

-
-

The size metrics structure gives the metrics of a size object.

-

-
fields
-

- - - - - - - - - -
x_ppem -

The width of the scaled EM square in pixels, hence the term ‘ppem’ (pixels per EM). It is also referred to as ‘nominal width’.

-
y_ppem -

The height of the scaled EM square in pixels, hence the term ‘ppem’ (pixels per EM). It is also referred to as ‘nominal height’.

-
x_scale -

A 16.16 fractional scaling value used to convert horizontal metrics from font units to 26.6 fractional pixels. Only relevant for scalable font formats.

-
y_scale -

A 16.16 fractional scaling value used to convert vertical metrics from font units to 26.6 fractional pixels. Only relevant for scalable font formats.

-
ascender -

The ascender in 26.6 fractional pixels. See FT_FaceRec for the details.

-
descender -

The descender in 26.6 fractional pixels. See FT_FaceRec for the details.

-
height -

The height in 26.6 fractional pixels. See FT_FaceRec for the details.

-
max_advance -

The maximal advance width in 26.6 fractional pixels. See FT_FaceRec for the details.

-
-
-
note
-

The scaling values, if relevant, are determined first during a size changing operation. The remaining fields are then set by the driver. For scalable formats, they are usually set to scaled values of the corresponding fields in FT_FaceRec.

-

Note that due to glyph hinting, these values might not be exact for certain fonts. Thus they must be treated as unreliable with an error margin of at least one pixel!

-

Indeed, the only way to get the exact metrics is to render all glyphs. As this would be a definite performance hit, it is up to client applications to perform such computations.

-

The FT_Size_Metrics structure is valid for bitmap fonts also.

-
-
-
- - -
[Index][TOC]
- -
-

FT_SizeRec

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_SizeRec_
-  {
-    FT_Face           face;      /* parent face object              */
-    FT_Generic        generic;   /* generic pointer for client uses */
-    FT_Size_Metrics   metrics;   /* size metrics                    */
-    FT_Size_Internal  internal;
-
-  } FT_SizeRec;
-
-

-
-

FreeType root size class structure. A size object models a face object at a given size.

-

-
fields
-

- - - - -
face -

Handle to the parent face object.

-
generic -

A typeless pointer, which is unused by the FreeType library or any of its drivers. It can be used by client applications to link their own data to each size object.

-
metrics -

Metrics for this size object. This field is read-only.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_SubGlyph

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_SubGlyphRec_*  FT_SubGlyph;
-
-

-
-

The subglyph structure is an internal object used to describe subglyphs (for example, in the case of composites).

-

-
note
-

The subglyph implementation is not part of the high-level API, hence the forward structure declaration.

-

You can however retrieve subglyph information with FT_Get_SubGlyph_Info.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Slot_Internal

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_Slot_InternalRec_*  FT_Slot_Internal;
-
-

-
-

An opaque handle to an ‘FT_Slot_InternalRec’ structure, used to model private data of a given FT_GlyphSlot object.

-

-
-
- - -
[Index][TOC]
- -
-

FT_GlyphSlotRec

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_GlyphSlotRec_
-  {
-    FT_Library        library;
-    FT_Face           face;
-    FT_GlyphSlot      next;
-    FT_UInt           reserved;       /* retained for binary compatibility */
-    FT_Generic        generic;
-
-    FT_Glyph_Metrics  metrics;
-    FT_Fixed          linearHoriAdvance;
-    FT_Fixed          linearVertAdvance;
-    FT_Vector         advance;
-
-    FT_Glyph_Format   format;
-
-    FT_Bitmap         bitmap;
-    FT_Int            bitmap_left;
-    FT_Int            bitmap_top;
-
-    FT_Outline        outline;
-
-    FT_UInt           num_subglyphs;
-    FT_SubGlyph       subglyphs;
-
-    void*             control_data;
-    long              control_len;
-
-    FT_Pos            lsb_delta;
-    FT_Pos            rsb_delta;
-
-    void*             other;
-
-    FT_Slot_Internal  internal;
-
-  } FT_GlyphSlotRec;
-
-

-
-

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.

-

-
fields
-

- - - - - - - - - - - - - - - - - - - - - -
library -

A handle to the FreeType library instance this slot belongs to.

-
face -

A handle to the parent face object.

-
next -

In some cases (like some font tools), several glyph slots per face object can be a good thing. As this is rare, the glyph slots are listed through a direct, single-linked list using its ‘next’ field.

-
generic -

A typeless pointer which is unused by the FreeType library or any of its drivers. It can be used by client applications to link their own data to each glyph slot object.

-
metrics -

The metrics of the last loaded glyph in the slot. The returned values depend on the last load flags (see the FT_Load_Glyph API function) and can be expressed either in 26.6 fractional pixels or font units.

-

Note that even when the glyph image is transformed, the metrics are not.

-
linearHoriAdvance -

The advance width of the unhinted glyph. Its value is expressed in 16.16 fractional pixels, unless FT_LOAD_LINEAR_DESIGN is set when loading the glyph. This field can be important to perform correct WYSIWYG layout. Only relevant for outline glyphs.

-
linearVertAdvance -

The advance height of the unhinted glyph. Its value is expressed in 16.16 fractional pixels, unless FT_LOAD_LINEAR_DESIGN is set when loading the glyph. This field can be important to perform correct WYSIWYG layout. Only relevant for outline glyphs.

-
advance -

This shorthand is, depending on FT_LOAD_IGNORE_TRANSFORM, the transformed advance width for the glyph (in 26.6 fractional pixel format). As specified with FT_LOAD_VERTICAL_LAYOUT, it uses either the ‘horiAdvance’ or the ‘vertAdvance’ value of ‘metrics’ field.

-
format -

This field indicates the format of the image contained in the glyph slot. Typically FT_GLYPH_FORMAT_BITMAP, FT_GLYPH_FORMAT_OUTLINE, or FT_GLYPH_FORMAT_COMPOSITE, but others are possible.

-
bitmap -

This field is used as a bitmap descriptor when the slot format is FT_GLYPH_FORMAT_BITMAP. Note that the address and content of the bitmap buffer can change between calls of FT_Load_Glyph and a few other functions.

-
bitmap_left -

This is the bitmap's left bearing expressed in integer pixels. Of course, this is only valid if the format is FT_GLYPH_FORMAT_BITMAP.

-
bitmap_top -

This is the bitmap's top bearing expressed in integer pixels. Remember that this is the distance from the baseline to the top-most glyph scanline, upwards y coordinates being positive.

-
outline -

The outline descriptor for the current glyph image if its format is FT_GLYPH_FORMAT_OUTLINE. Once a glyph is loaded, ‘outline’ can be transformed, distorted, embolded, etc. However, it must not be freed.

-
num_subglyphs -

The number of subglyphs in a composite glyph. This field is only valid for the composite glyph format that should normally only be loaded with the FT_LOAD_NO_RECURSE flag. For now this is internal to FreeType.

-
subglyphs -

An array of subglyph descriptors for composite glyphs. There are ‘num_subglyphs’ elements in there. Currently internal to FreeType.

-
control_data -

Certain font drivers can also return the control data for a given glyph image (e.g. TrueType bytecode, Type 1 charstrings, etc.). This field is a pointer to such data.

-
control_len -

This is the length in bytes of the control data.

-
other -

Really wicked formats can use this pointer to present their own glyph image to client applications. Note that the application needs to know about the image format.

-
lsb_delta -

The difference between hinted and unhinted left side bearing while autohinting is active. Zero otherwise.

-
rsb_delta -

The difference between hinted and unhinted right side bearing while autohinting is active. Zero otherwise.

-
-
-
note
-

If FT_Load_Glyph is called with default flags (see FT_LOAD_DEFAULT) the glyph image is loaded in the glyph slot in its native format (e.g., an outline glyph for TrueType and Type 1 formats).

-

This image can later be converted into a bitmap by calling FT_Render_Glyph. This function finds the current renderer for the native image's format, then invokes it.

-

The renderer is in charge of transforming the native image through the slot's face transformation fields, then converting it into a bitmap that is returned in ‘slot->bitmap’.

-

Note that ‘slot->bitmap_left’ and ‘slot->bitmap_top’ are also used to specify the position of the bitmap relative to the current pen position (e.g., coordinates (0,0) on the baseline). Of course, ‘slot->format’ is also changed to FT_GLYPH_FORMAT_BITMAP.

-
-
note
-

Here a small pseudo code fragment which shows how to use ‘lsb_delta’ and ‘rsb_delta’:

-
-  FT_Pos  origin_x       = 0;                                      
-  FT_Pos  prev_rsb_delta = 0;                                      
-                                                                   
-                                                                   
-  for all glyphs do                                                
-    <compute kern between current and previous glyph and add it to 
-     `origin_x'>                                                   
-                                                                   
-    <load glyph with `FT_Load_Glyph'>                              
-                                                                   
-    if ( prev_rsb_delta - face->glyph->lsb_delta >= 32 )           
-      origin_x -= 64;                                              
-    else if ( prev_rsb_delta - face->glyph->lsb_delta < -32 )      
-      origin_x += 64;                                              
-                                                                   
-    prev_rsb_delta = face->glyph->rsb_delta;                       
-                                                                   
-    <save glyph image, or render glyph, or ...>                    
-                                                                   
-    origin_x += face->glyph->advance.x;                            
-  endfor                                                           
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Init_FreeType

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Init_FreeType( FT_Library  *alibrary );
-
-

-
-

Initialize a new FreeType library object. The set of modules that are registered by this function is determined at build time.

-

-
output
-

- - -
alibrary -

A handle to a new library object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

In case you want to provide your own memory allocating routines, use FT_New_Library instead, followed by a call to FT_Add_Default_Modules (or a series of calls to FT_Add_Module).

-
-
-
- - -
[Index][TOC]
- -
-

FT_Done_FreeType

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Done_FreeType( FT_Library  library );
-
-

-
-

Destroy a given FreeType library object and all of its children, including resources, drivers, faces, sizes, etc.

-

-
input
-

- - -
library -

A handle to the target library object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_OPEN_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_OPEN_MEMORY    0x1
-#define FT_OPEN_STREAM    0x2
-#define FT_OPEN_PATHNAME  0x4
-#define FT_OPEN_DRIVER    0x8
-#define FT_OPEN_PARAMS    0x10
-
-#define ft_open_memory    FT_OPEN_MEMORY     /* deprecated */
-#define ft_open_stream    FT_OPEN_STREAM     /* deprecated */
-#define ft_open_pathname  FT_OPEN_PATHNAME   /* deprecated */
-#define ft_open_driver    FT_OPEN_DRIVER     /* deprecated */
-#define ft_open_params    FT_OPEN_PARAMS     /* deprecated */
-
-

-
-

A list of bit-field constants used within the ‘flags’ field of the FT_Open_Args structure.

-

-
values
-

- - - - - - - - - - - -
FT_OPEN_MEMORY -

This is a memory-based stream.

-
FT_OPEN_STREAM -

Copy the stream from the ‘stream’ field.

-
FT_OPEN_PATHNAME -

Create a new input stream from a C path name.

-
FT_OPEN_DRIVER -

Use the ‘driver’ field.

-
FT_OPEN_PARAMS -

Use the ‘num_params’ and ‘params’ fields.

-
ft_open_memory -

Deprecated; use FT_OPEN_MEMORY instead.

-
ft_open_stream -

Deprecated; use FT_OPEN_STREAM instead.

-
ft_open_pathname -

Deprecated; use FT_OPEN_PATHNAME instead.

-
ft_open_driver -

Deprecated; use FT_OPEN_DRIVER instead.

-
ft_open_params -

Deprecated; use FT_OPEN_PARAMS instead.

-
-
-
note
-

The ‘FT_OPEN_MEMORY’, ‘FT_OPEN_STREAM’, and ‘FT_OPEN_PATHNAME’ flags are mutually exclusive.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Parameter

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Parameter_
-  {
-    FT_ULong    tag;
-    FT_Pointer  data;
-
-  } FT_Parameter;
-
-

-
-

A simple structure used to pass more or less generic parameters to FT_Open_Face.

-

-
fields
-

- - - -
tag -

A four-byte identification tag.

-
data -

A pointer to the parameter data.

-
-
-
note
-

The ID and function of parameters are driver-specific. See the various FT_PARAM_TAG_XXX flags for more information.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Open_Args

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Open_Args_
-  {
-    FT_UInt         flags;
-    const FT_Byte*  memory_base;
-    FT_Long         memory_size;
-    FT_String*      pathname;
-    FT_Stream       stream;
-    FT_Module       driver;
-    FT_Int          num_params;
-    FT_Parameter*   params;
-
-  } FT_Open_Args;
-
-

-
-

A structure used 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 FT_Open_Face and FT_Attach_Stream.

-

-
fields
-

- - - - - - - - - -
flags -

A set of bit flags indicating how to use the structure.

-
memory_base -

The first byte of the file in memory.

-
memory_size -

The size in bytes of the file in memory.

-
pathname -

A pointer to an 8-bit file pathname.

-
stream -

A handle to a source stream object.

-
driver -

This field is exclusively used by FT_Open_Face; it simply specifies the font driver to use to open the face. If set to 0, FreeType tries to load the face with each one of the drivers in its list.

-
num_params -

The number of extra parameters.

-
params -

Extra parameters passed to the font driver when opening a new face.

-
-
-
note
-

The stream type is determined by the contents of ‘flags’ which are tested in the following order by FT_Open_Face:

-

If the ‘FT_OPEN_MEMORY’ bit is set, assume that this is a memory file of ‘memory_size’ bytes, located at ‘memory_address’. The data are are not copied, and the client is responsible for releasing and destroying them after the corresponding call to FT_Done_Face.

-

Otherwise, if the ‘FT_OPEN_STREAM’ bit is set, assume that a custom input stream ‘stream’ is used.

-

Otherwise, if the ‘FT_OPEN_PATHNAME’ bit is set, assume that this is a normal file and use ‘pathname’ to open it.

-

If the ‘FT_OPEN_DRIVER’ bit is set, FT_Open_Face only tries to open the file with the driver whose handler is in ‘driver’.

-

If the ‘FT_OPEN_PARAMS’ bit is set, the parameters given by ‘num_params’ and ‘params’ is used. They are ignored otherwise.

-

Ideally, both the ‘pathname’ and ‘params’ fields should be tagged as ‘const’; this is missing for API backwards compatibility. In other words, applications should treat them as read-only.

-
-
-
- - -
[Index][TOC]
- -
-

FT_New_Face

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Face( FT_Library   library,
-               const char*  filepathname,
-               FT_Long      face_index,
-               FT_Face     *aface );
-
-

-
-

This function calls FT_Open_Face to open a font by its pathname.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - -
pathname -

A path to the font file.

-
face_index -

The index of the face within the font. The first face has index 0.

-
-
-
output
-

- - -
aface -

A handle to a new face object. If ‘face_index’ is greater than or equal to zero, it must be non-NULL. See FT_Open_Face for more details.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_New_Memory_Face

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Memory_Face( FT_Library      library,
-                      const FT_Byte*  file_base,
-                      FT_Long         file_size,
-                      FT_Long         face_index,
-                      FT_Face        *aface );
-
-

-
-

This function calls FT_Open_Face to open a font which has been loaded into memory.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - - -
file_base -

A pointer to the beginning of the font data.

-
file_size -

The size of the memory chunk used by the font data.

-
face_index -

The index of the face within the font. The first face has index 0.

-
-
-
output
-

- - -
aface -

A handle to a new face object. If ‘face_index’ is greater than or equal to zero, it must be non-NULL. See FT_Open_Face for more details.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You must not deallocate the memory before calling FT_Done_Face.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Open_Face

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Open_Face( FT_Library           library,
-                const FT_Open_Args*  args,
-                FT_Long              face_index,
-                FT_Face             *aface );
-
-

-
-

Create a face object from a given resource described by FT_Open_Args.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - -
args -

A pointer to an ‘FT_Open_Args’ structure which must be filled by the caller.

-
face_index -

The index of the face within the font. The first face has index 0.

-
-
-
output
-

- - -
aface -

A handle to a new face object. If ‘face_index’ is greater than or equal to zero, it must be non-NULL. See note below.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

Unlike FreeType 1.x, this function automatically creates a glyph slot for the face object which can be accessed directly through ‘face->glyph’.

-

FT_Open_Face can be used to quickly check whether the font format of a given font resource is supported by FreeType. If the ‘face_index’ field is negative, the function's return value is 0 if the font format is recognized, or non-zero otherwise; the function returns a more or less empty face handle in ‘*aface’ (if ‘aface’ isn't NULL). The only useful field in this special case is ‘face->num_faces’ which gives the number of faces within the font file. After examination, the returned FT_Face structure should be deallocated with a call to FT_Done_Face.

-

Each new face object created with this function also owns a default FT_Size object, accessible as ‘face->size’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Attach_File

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Attach_File( FT_Face      face,
-                  const char*  filepathname );
-
-

-
-

This function calls FT_Attach_Stream to attach a file.

-

-
inout
-

- - -
face -

The target face object.

-
-
-
input
-

- - -
filepathname -

The pathname.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Attach_Stream

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Attach_Stream( FT_Face        face,
-                    FT_Open_Args*  parameters );
-
-

-
-

‘Attach’ 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 1 font to get the kerning values and other metrics.

-

-
inout
-

- - -
face -

The target face object.

-
-
-
input
-

- - -
parameters -

A pointer to FT_Open_Args which must be filled by the caller.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The meaning of the ‘attach’ (i.e., what really happens when the new file is read) is not fixed by FreeType itself. It really depends on the font format (and thus the font driver).

-

Client applications are expected to know what they are doing when invoking this function. Most drivers simply do not implement file attachments.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Done_Face

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Done_Face( FT_Face  face );
-
-

-
-

Discard a given face object, as well as all of its child slots and sizes.

-

-
input
-

- - -
face -

A handle to a target face object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Select_Size

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Select_Size( FT_Face  face,
-                  FT_Int   strike_index );
-
-

-
-

Select a bitmap strike.

-

-
inout
-

- - -
face -

A handle to a target face object.

-
-
-
input
-

- - -
strike_index -

The index of the bitmap strike in the ‘available_sizes’ field of FT_FaceRec structure.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Size_Request_Type

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef enum  FT_Size_Request_Type_
-  {
-    FT_SIZE_REQUEST_TYPE_NOMINAL,
-    FT_SIZE_REQUEST_TYPE_REAL_DIM,
-    FT_SIZE_REQUEST_TYPE_BBOX,
-    FT_SIZE_REQUEST_TYPE_CELL,
-    FT_SIZE_REQUEST_TYPE_SCALES,
-
-    FT_SIZE_REQUEST_TYPE_MAX
-
-  } FT_Size_Request_Type;
-
-

-
-

An enumeration type that lists the supported size request types.

-

-
values
-

- - - - - - - - - - - -
FT_SIZE_REQUEST_TYPE_NOMINAL
-

The nominal size. The ‘units_per_EM’ field of FT_FaceRec is used to determine both scaling values.

-
FT_SIZE_REQUEST_TYPE_REAL_DIM
-

The real dimension. The sum of the the ‘Ascender’ and (minus of) the ‘Descender’ fields of FT_FaceRec are used to determine both scaling values.

-
FT_SIZE_REQUEST_TYPE_BBOX
-

The font bounding box. The width and height of the ‘bbox’ field of FT_FaceRec are used to determine the horizontal and vertical scaling value, respectively.

-
FT_SIZE_REQUEST_TYPE_CELL
-

The ‘max_advance_width’ field of FT_FaceRec is used to determine the horizontal scaling value; the vertical scaling value is determined the same way as FT_SIZE_REQUEST_TYPE_REAL_DIM does. Finally, both scaling values are set to the smaller one. This type is useful if you want to specify the font size for, say, a window of a given dimension and 80x24 cells.

-
FT_SIZE_REQUEST_TYPE_SCALES
-

Specify the scaling values directly.

-
-
-
note
-

The above descriptions only apply to scalable formats. For bitmap formats, the behaviour is up to the driver.

-

See the note section of FT_Size_Metrics if you wonder how size requesting relates to scaling values.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Size_RequestRec

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct  FT_Size_RequestRec_
-  {
-    FT_Size_Request_Type  type;
-    FT_Long               width;
-    FT_Long               height;
-    FT_UInt               horiResolution;
-    FT_UInt               vertResolution;
-
-  } FT_Size_RequestRec;
-
-

-
-

A structure used to model a size request.

-

-
fields
-

- - - - - - -
type -

See FT_Size_Request_Type.

-
width -

The desired width.

-
height -

The desired height.

-
horiResolution -

The horizontal resolution. If set to zero, ‘width’ is treated as a 26.6 fractional pixel value.

-
vertResolution -

The vertical resolution. If set to zero, ‘height’ is treated as a 26.6 fractional pixel value.

-
-
-
note
-

If ‘width’ is zero, then the horizontal scaling value is set equal to the vertical scaling value, and vice versa.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Size_Request

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef struct FT_Size_RequestRec_  *FT_Size_Request;
-
-

-
-

A handle to a size request structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Request_Size

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Request_Size( FT_Face          face,
-                   FT_Size_Request  req );
-
-

-
-

Resize the scale of the active FT_Size object in a face.

-

-
inout
-

- - -
face -

A handle to a target face object.

-
-
-
input
-

- - -
req -

A pointer to a FT_Size_RequestRec.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

Although drivers may select the bitmap strike matching the request, you should not rely on this if you intend to select a particular bitmap strike. Use FT_Select_Size instead in that case.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Char_Size

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Char_Size( FT_Face     face,
-                    FT_F26Dot6  char_width,
-                    FT_F26Dot6  char_height,
-                    FT_UInt     horz_resolution,
-                    FT_UInt     vert_resolution );
-
-

-
-

This function calls FT_Request_Size to request the nominal size (in points).

-

-
inout
-

- - -
face -

A handle to a target face object.

-
-
-
input
-

- - - - - -
char_width -

The nominal width, in 26.6 fractional points.

-
char_height -

The nominal height, in 26.6 fractional points.

-
horz_resolution -

The horizontal resolution in dpi.

-
vert_resolution -

The vertical resolution in dpi.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If either the character width or height is zero, it is set equal to the other value.

-

If either the horizontal or vertical resolution is zero, it is set equal to the other value.

-

A character width or height smaller than 1pt is set to 1pt; if both resolution values are zero, they are set to 72dpi.

-

Don't use this function if you are using the FreeType cache API.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Pixel_Sizes

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Pixel_Sizes( FT_Face  face,
-                      FT_UInt  pixel_width,
-                      FT_UInt  pixel_height );
-
-

-
-

This function calls FT_Request_Size to request the nominal size (in pixels).

-

-
inout
-

- - -
face -

A handle to the target face object.

-
-
-
input
-

- - - -
pixel_width -

The nominal width, in pixels.

-
pixel_height -

The nominal height, in pixels.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Load_Glyph

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Load_Glyph( FT_Face   face,
-                 FT_UInt   glyph_index,
-                 FT_Int32  load_flags );
-
-

-
-

A function used to load a single glyph into the glyph slot of a face object.

-

-
inout
-

- - -
face -

A handle to the target face object where the glyph is loaded.

-
-
-
input
-

- - - -
glyph_index -

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.

-
load_flags -

A flag indicating what to load for this glyph. The FT_LOAD_XXX constants can be used to control the glyph loading process (e.g., whether the outline should be scaled, whether to load bitmaps or not, whether to hint the outline, etc).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The loaded glyph may be transformed. See FT_Set_Transform for the details.

-

For subsetted CID-keyed fonts, ‘FT_Err_Invalid_Argument’ is returned for invalid CID values (this is, for CID values which don't have a corresponding glyph in the font). See the discussion of the FT_FACE_FLAG_CID_KEYED flag for more details.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Load_Char

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Load_Char( FT_Face   face,
-                FT_ULong  char_code,
-                FT_Int32  load_flags );
-
-

-
-

A function used to load a single glyph into the glyph slot of a face object, according to its character code.

-

-
inout
-

- - -
face -

A handle to a target face object where the glyph is loaded.

-
-
-
input
-

- - - -
char_code -

The glyph's character code, according to the current charmap used in the face.

-
load_flags -

A flag indicating what to load for this glyph. The FT_LOAD_XXX constants can be used to control the glyph loading process (e.g., whether the outline should be scaled, whether to load bitmaps or not, whether to hint the outline, etc).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function simply calls FT_Get_Char_Index and FT_Load_Glyph.

-
-
-
- - -
[Index][TOC]
- -
-

FT_LOAD_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_LOAD_DEFAULT                      0x0
-#define FT_LOAD_NO_SCALE                     0x1
-#define FT_LOAD_NO_HINTING                   0x2
-#define FT_LOAD_RENDER                       0x4
-#define FT_LOAD_NO_BITMAP                    0x8
-#define FT_LOAD_VERTICAL_LAYOUT              0x10
-#define FT_LOAD_FORCE_AUTOHINT               0x20
-#define FT_LOAD_CROP_BITMAP                  0x40
-#define FT_LOAD_PEDANTIC                     0x80
-#define FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH  0x200
-#define FT_LOAD_NO_RECURSE                   0x400
-#define FT_LOAD_IGNORE_TRANSFORM             0x800
-#define FT_LOAD_MONOCHROME                   0x1000
-#define FT_LOAD_LINEAR_DESIGN                0x2000
-#define FT_LOAD_NO_AUTOHINT                  0x8000U
-
-

-
-

A list of bit-field constants used with FT_Load_Glyph to indicate what kind of operations to perform during glyph loading.

-

-
values
-

- - - - - - - - - - - - - - - - - - - -
FT_LOAD_DEFAULT -

Corresponding to 0, this value is used as the default glyph load operation. In this case, the following happens:

-

1. FreeType looks for a bitmap for the glyph corresponding to the face's current size. If one is found, the function returns. The bitmap data can be accessed from the glyph slot (see note below).

-

2. If no embedded bitmap is searched or found, FreeType looks for a scalable outline. If one is found, it is loaded from the font file, scaled to device pixels, then ‘hinted’ to the pixel grid in order to optimize it. The outline data can be accessed from the glyph slot (see note below).

-

Note that by default, the glyph loader doesn't render outlines into bitmaps. The following flags are used to modify this default behaviour to more specific and useful cases.

-
FT_LOAD_NO_SCALE -

Don't scale the outline glyph loaded, but keep it in font units.

-

This flag implies FT_LOAD_NO_HINTING and FT_LOAD_NO_BITMAP, and unsets FT_LOAD_RENDER.

-
FT_LOAD_NO_HINTING -

Disable hinting. This generally generates ‘blurrier’ bitmap glyph when the glyph is rendered in any of the anti-aliased modes. See also the note below.

-

This flag is implied by FT_LOAD_NO_SCALE.

-
FT_LOAD_RENDER -

Call FT_Render_Glyph after the glyph is loaded. By default, the glyph is rendered in FT_RENDER_MODE_NORMAL mode. This can be overridden by FT_LOAD_TARGET_XXX or FT_LOAD_MONOCHROME.

-

This flag is unset by FT_LOAD_NO_SCALE.

-
FT_LOAD_NO_BITMAP -

Ignore bitmap strikes when loading. Bitmap-only fonts ignore this flag.

-

FT_LOAD_NO_SCALE always sets this flag.

-
FT_LOAD_VERTICAL_LAYOUT
-

Load the glyph for vertical text layout. Don't use it as it is problematic currently.

-
FT_LOAD_FORCE_AUTOHINT -

Indicates that the auto-hinter is preferred over the font's native hinter. See also the note below.

-
FT_LOAD_CROP_BITMAP -

Indicates that the font driver should crop the loaded bitmap glyph (i.e., remove all space around its black bits). Not all drivers implement this.

-
FT_LOAD_PEDANTIC -

Indicates that the font driver should perform pedantic verifications during glyph loading. This is mostly used to detect broken glyphs in fonts. By default, FreeType tries to handle broken fonts also.

-
FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTH
-

Indicates that the font driver should ignore the global advance width defined in the font. By default, that value is used as the advance width for all glyphs when the face has FT_FACE_FLAG_FIXED_WIDTH set.

-

This flag exists for historical reasons (to support buggy CJK fonts).

-
FT_LOAD_NO_RECURSE -

This flag is only used internally. It merely indicates that the font driver should not load composite glyphs recursively. Instead, it should set the ‘num_subglyph’ and ‘subglyphs’ values of the glyph slot accordingly, and set ‘glyph->format’ to FT_GLYPH_FORMAT_COMPOSITE.

-

The description of sub-glyphs is not available to client applications for now.

-

This flag implies FT_LOAD_NO_SCALE and FT_LOAD_IGNORE_TRANSFORM.

-
FT_LOAD_IGNORE_TRANSFORM
-

Indicates that the transform matrix set by FT_Set_Transform should be ignored.

-
FT_LOAD_MONOCHROME -

This flag is used with FT_LOAD_RENDER to indicate that you want to render an outline glyph to a 1-bit monochrome bitmap glyph, with 8 pixels packed into each byte of the bitmap data.

-

Note that this has no effect on the hinting algorithm used. You should rather use FT_LOAD_TARGET_MONO so that the monochrome-optimized hinting algorithm is used.

-
FT_LOAD_LINEAR_DESIGN -

Indicates that the ‘linearHoriAdvance’ and ‘linearVertAdvance’ fields of FT_GlyphSlotRec should be kept in font units. See FT_GlyphSlotRec for details.

-
FT_LOAD_NO_AUTOHINT -

Disable auto-hinter. See also the note below.

-
-
-
note
-

By default, hinting is enabled and the font's native hinter (see FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can disable hinting by setting FT_LOAD_NO_HINTING or change the precedence by setting FT_LOAD_FORCE_AUTOHINT. You can also set FT_LOAD_NO_AUTOHINT in case you don't want the auto-hinter to be used at all.

-

See the description of FT_FACE_FLAG_TRICKY for a special exception (affecting only a handful of Asian fonts).

-

Besides deciding which hinter to use, you can also decide which hinting algorithm to use. See FT_LOAD_TARGET_XXX for details.

-
-
-
- - -
[Index][TOC]
- -
-

FT_LOAD_TARGET_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_LOAD_TARGET_( x )   ( (FT_Int32)( (x) & 15 ) << 16 )
-
-#define FT_LOAD_TARGET_NORMAL  FT_LOAD_TARGET_( FT_RENDER_MODE_NORMAL )
-#define FT_LOAD_TARGET_LIGHT   FT_LOAD_TARGET_( FT_RENDER_MODE_LIGHT  )
-#define FT_LOAD_TARGET_MONO    FT_LOAD_TARGET_( FT_RENDER_MODE_MONO   )
-#define FT_LOAD_TARGET_LCD     FT_LOAD_TARGET_( FT_RENDER_MODE_LCD    )
-#define FT_LOAD_TARGET_LCD_V   FT_LOAD_TARGET_( FT_RENDER_MODE_LCD_V  )
-
-

-
-

A list of values that are used to select a specific hinting algorithm to use by the hinter. You should OR one of these values to your ‘load_flags’ when calling FT_Load_Glyph.

-

Note that font's native hinters may ignore the hinting algorithm you have specified (e.g., the TrueType bytecode interpreter). You can set FT_LOAD_FORCE_AUTOHINT to ensure that the auto-hinter is used.

-

Also note that FT_LOAD_TARGET_LIGHT is an exception, in that it always implies FT_LOAD_FORCE_AUTOHINT.

-

-
values
-

- - - - - - -
FT_LOAD_TARGET_NORMAL -

This corresponds to the default hinting algorithm, optimized for standard gray-level rendering. For monochrome output, use FT_LOAD_TARGET_MONO instead.

-
FT_LOAD_TARGET_LIGHT -

A lighter hinting algorithm for non-monochrome modes. Many generated glyphs are more fuzzy but better resemble its original shape. A bit like rendering on Mac OS X.

-

As a special exception, this target implies FT_LOAD_FORCE_AUTOHINT.

-
FT_LOAD_TARGET_MONO -

Strong hinting algorithm that should only be used for monochrome output. The result is probably unpleasant if the glyph is rendered in non-monochrome modes.

-
FT_LOAD_TARGET_LCD -

A variant of FT_LOAD_TARGET_NORMAL optimized for horizontally decimated LCD displays.

-
FT_LOAD_TARGET_LCD_V -

A variant of FT_LOAD_TARGET_NORMAL optimized for vertically decimated LCD displays.

-
-
-
note
-

You should use only one of the FT_LOAD_TARGET_XXX values in your ‘load_flags’. They can't be ORed.

-

If FT_LOAD_RENDER is also set, the glyph is rendered in the corresponding mode (i.e., the mode which matches the used algorithm best) unless FT_LOAD_MONOCHROME is set.

-

You can use a hinting algorithm that doesn't correspond to the same rendering mode. As an example, it is possible to use the ‘light’ hinting algorithm and have the results rendered in horizontal LCD pixel mode, with code like

-
-  FT_Load_Glyph( face, glyph_index,
-                 load_flags | FT_LOAD_TARGET_LIGHT );
-
-  FT_Render_Glyph( face->glyph, FT_RENDER_MODE_LCD );
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_LOAD_TARGET_MODE

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_LOAD_TARGET_MODE( x )  ( (FT_Render_Mode)( ( (x) >> 16 ) & 15 ) )
-
-

-
-

Return the FT_Render_Mode corresponding to a given FT_LOAD_TARGET_XXX value.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Set_Transform

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( void )
-  FT_Set_Transform( FT_Face     face,
-                    FT_Matrix*  matrix,
-                    FT_Vector*  delta );
-
-

-
-

A function used to set the transformation that is applied to glyph images when they are loaded into a glyph slot through FT_Load_Glyph.

-

-
inout
-

- - -
face -

A handle to the source face object.

-
-
-
input
-

- - - -
matrix -

A pointer to the transformation's 2x2 matrix. Use 0 for the identity matrix.

-
delta -

A pointer to the translation vector. Use 0 for the null vector.

-
-
-
note
-

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 FT_Set_Char_Size or FT_Set_Pixel_Sizes.

-

Note that this also transforms the ‘face.glyph.advance’ field, but not the values in ‘face.glyph.metrics’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Render_Mode

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef enum  FT_Render_Mode_
-  {
-    FT_RENDER_MODE_NORMAL = 0,
-    FT_RENDER_MODE_LIGHT,
-    FT_RENDER_MODE_MONO,
-    FT_RENDER_MODE_LCD,
-    FT_RENDER_MODE_LCD_V,
-
-    FT_RENDER_MODE_MAX
-
-  } FT_Render_Mode;
-
-

-
-

An enumeration type that lists the render modes supported by FreeType 2. Each mode corresponds to a specific type of scanline conversion performed on the outline.

-

For bitmap fonts and embedded bitmaps the ‘bitmap->pixel_mode’ field in the FT_GlyphSlotRec structure gives the format of the returned bitmap.

-

All modes except FT_RENDER_MODE_MONO use 256 levels of opacity.

-

-
values
-

- - - - - - -
FT_RENDER_MODE_NORMAL -

This is the default render mode; it corresponds to 8-bit anti-aliased bitmaps.

-
FT_RENDER_MODE_LIGHT -

This is equivalent to FT_RENDER_MODE_NORMAL. It is only defined as a separate value because render modes are also used indirectly to define hinting algorithm selectors. See FT_LOAD_TARGET_XXX for details.

-
FT_RENDER_MODE_MONO -

This mode corresponds to 1-bit bitmaps (with 2 levels of opacity).

-
FT_RENDER_MODE_LCD -

This mode corresponds to horizontal RGB and BGR sub-pixel displays like LCD screens. It produces 8-bit bitmaps that are 3 times the width of the original glyph outline in pixels, and which use the FT_PIXEL_MODE_LCD mode.

-
FT_RENDER_MODE_LCD_V -

This mode corresponds to vertical RGB and BGR sub-pixel displays (like PDA screens, rotated LCD displays, etc.). It produces 8-bit bitmaps that are 3 times the height of the original glyph outline in pixels and use the FT_PIXEL_MODE_LCD_V mode.

-
-
-
note
-

The LCD-optimized glyph bitmaps produced by FT_Render_Glyph can be filtered to reduce color-fringes by using FT_Library_SetLcdFilter (not active in the default builds). It is up to the caller to either call FT_Library_SetLcdFilter (if available) or do the filtering itself.

-

The selected render mode only affects vector glyphs of a font. Embedded bitmaps often have a different pixel mode like FT_PIXEL_MODE_MONO. You can use FT_Bitmap_Convert to transform them into 8-bit pixmaps.

-
-
-
- - -
[Index][TOC]
- -
-

ft_render_mode_xxx

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define ft_render_mode_normal  FT_RENDER_MODE_NORMAL
-#define ft_render_mode_mono    FT_RENDER_MODE_MONO
-
-

-
-

These constants are deprecated. Use the corresponding FT_Render_Mode values instead.

-

-
values
-

- - - -
ft_render_mode_normal -

see FT_RENDER_MODE_NORMAL

-
ft_render_mode_mono -

see FT_RENDER_MODE_MONO

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Render_Glyph

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Render_Glyph( FT_GlyphSlot    slot,
-                   FT_Render_Mode  render_mode );
-
-

-
-

Convert a given glyph image to a bitmap. It does so by inspecting the glyph image format, finding the relevant renderer, and invoking it.

-

-
inout
-

- - -
slot -

A handle to the glyph slot containing the image to convert.

-
-
-
input
-

- - -
render_mode -

This is the render mode used to render the glyph image into a bitmap. See FT_Render_Mode for a list of possible values.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Kerning_Mode

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  typedef enum  FT_Kerning_Mode_
-  {
-    FT_KERNING_DEFAULT  = 0,
-    FT_KERNING_UNFITTED,
-    FT_KERNING_UNSCALED
-
-  } FT_Kerning_Mode;
-
-

-
-

An enumeration used to specify which kerning values to return in FT_Get_Kerning.

-

-
values
-

- - - - -
FT_KERNING_DEFAULT -

Return scaled and grid-fitted kerning distances (value is 0).

-
FT_KERNING_UNFITTED -

Return scaled but un-grid-fitted kerning distances.

-
FT_KERNING_UNSCALED -

Return the kerning vector in original font units.

-
-
-
-
- - -
[Index][TOC]
- -
-

ft_kerning_default

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define ft_kerning_default   FT_KERNING_DEFAULT
-
-

-
-

This constant is deprecated. Please use FT_KERNING_DEFAULT instead.

-

-
-
- - -
[Index][TOC]
- -
-

ft_kerning_unfitted

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define ft_kerning_unfitted  FT_KERNING_UNFITTED
-
-

-
-

This constant is deprecated. Please use FT_KERNING_UNFITTED instead.

-

-
-
- - -
[Index][TOC]
- -
-

ft_kerning_unscaled

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define ft_kerning_unscaled  FT_KERNING_UNSCALED
-
-

-
-

This constant is deprecated. Please use FT_KERNING_UNSCALED instead.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Get_Kerning

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Kerning( FT_Face     face,
-                  FT_UInt     left_glyph,
-                  FT_UInt     right_glyph,
-                  FT_UInt     kern_mode,
-                  FT_Vector  *akerning );
-
-

-
-

Return the kerning vector between two glyphs of a same face.

-

-
input
-

- - - - - -
face -

A handle to a source face object.

-
left_glyph -

The index of the left glyph in the kern pair.

-
right_glyph -

The index of the right glyph in the kern pair.

-
kern_mode -

See FT_Kerning_Mode for more information. Determines the scale and dimension of the returned kerning vector.

-
-
-
output
-

- - -
akerning -

The kerning vector. This is either in font units or in pixels (26.6 format) for scalable formats, and in pixels for fixed-sizes formats.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

Only horizontal layouts (left-to-right & 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.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Track_Kerning

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Track_Kerning( FT_Face    face,
-                        FT_Fixed   point_size,
-                        FT_Int     degree,
-                        FT_Fixed*  akerning );
-
-

-
-

Return the track kerning for a given face object at a given size.

-

-
input
-

- - - - -
face -

A handle to a source face object.

-
point_size -

The point size in 16.16 fractional points.

-
degree -

The degree of tightness.

-
-
-
output
-

- - -
akerning -

The kerning in 16.16 fractional points.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Glyph_Name

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Glyph_Name( FT_Face     face,
-                     FT_UInt     glyph_index,
-                     FT_Pointer  buffer,
-                     FT_UInt     buffer_max );
-
-

-
-

Retrieve the ASCII name of a given glyph in a face. This only works for those faces where FT_HAS_GLYPH_NAMES(face) returns 1.

-

-
input
-

- - - - -
face -

A handle to a source face object.

-
glyph_index -

The glyph index.

-
buffer_max -

The maximal number of bytes available in the buffer.

-
-
-
output
-

- - -
buffer -

A pointer to a target buffer where the name is copied to.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

An error is returned if the face doesn't provide glyph names or if the glyph index is invalid. In all cases of failure, the first byte of ‘buffer’ is set to 0 to indicate an empty name.

-

The glyph name is truncated to fit within the buffer if it is too long. The returned string is always zero-terminated.

-

This function is not compiled within the library if the config macro ‘FT_CONFIG_OPTION_NO_GLYPH_NAMES’ is defined in ‘include/freetype/config/ftoptions.h’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Postscript_Name

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( const char* )
-  FT_Get_Postscript_Name( FT_Face  face );
-
-

-
-

Retrieve the ASCII PostScript name of a given face, if available. This only works with PostScript and TrueType fonts.

-

-
input
-

- - -
face -

A handle to the source face object.

-
-
-
return
-

A pointer to the face's PostScript name. NULL if unavailable.

-
-
note
-

The returned pointer is owned by the face and is destroyed with it.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Select_Charmap

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Select_Charmap( FT_Face      face,
-                     FT_Encoding  encoding );
-
-

-
-

Select a given charmap by its encoding tag (as listed in ‘freetype.h’).

-

-
inout
-

- - -
face -

A handle to the source face object.

-
-
-
input
-

- - -
encoding -

A handle to the selected encoding.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function returns an error if no charmap in the face corresponds to the encoding queried here.

-

Because many fonts contain more than a single cmap for Unicode encoding, this function has some special code to select the one which covers Unicode best (‘best’ in the sense that a UCS-4 cmap is preferred to a UCS-2 cmap). It is thus preferable to FT_Set_Charmap in this case.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Charmap

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Charmap( FT_Face     face,
-                  FT_CharMap  charmap );
-
-

-
-

Select a given charmap for character code to glyph index mapping.

-

-
inout
-

- - -
face -

A handle to the source face object.

-
-
-
input
-

- - -
charmap -

A handle to the selected charmap.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function returns an error if the charmap is not part of the face (i.e., if it is not listed in the ‘face->charmaps’ table).

-

It also fails if a type 14 charmap is selected.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Charmap_Index

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Int )
-  FT_Get_Charmap_Index( FT_CharMap  charmap );
-
-

-
-

Retrieve index of a given charmap.

-

-
input
-

- - -
charmap -

A handle to a charmap.

-
-
-
return
-

The index into the array of character maps within the face to which ‘charmap’ belongs.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Char_Index

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt )
-  FT_Get_Char_Index( FT_Face   face,
-                     FT_ULong  charcode );
-
-

-
-

Return the glyph index of a given character code. This function uses a charmap object to do the mapping.

-

-
input
-

- - - -
face -

A handle to the source face object.

-
charcode -

The character code.

-
-
-
return
-

The glyph index. 0 means ‘undefined character code’.

-
-
note
-

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 0 always corresponds to the ‘missing glyph’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_First_Char

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_ULong )
-  FT_Get_First_Char( FT_Face   face,
-                     FT_UInt  *agindex );
-
-

-
-

This function is used to return the first character code in the current charmap of a given face. It also returns the corresponding glyph index.

-

-
input
-

- - -
face -

A handle to the source face object.

-
-
-
output
-

- - -
agindex -

Glyph index of first character code. 0 if charmap is empty.

-
-
-
return
-

The charmap's first character code.

-
-
note
-

You should use this function with FT_Get_Next_Char to be able to parse all character codes available in a given charmap. The code should look like this:

-
-  FT_ULong  charcode;                                              
-  FT_UInt   gindex;                                                
-                                                                   
-                                                                   
-  charcode = FT_Get_First_Char( face, &gindex );                   
-  while ( gindex != 0 )                                            
-  {                                                                
-    ... do something with (charcode,gindex) pair ...               
-                                                                   
-    charcode = FT_Get_Next_Char( face, charcode, &gindex );        
-  }                                                                
-
-

Note that ‘*agindex’ is set to 0 if the charmap is empty. The result itself can be 0 in two cases: if the charmap is empty or if the value 0 is the first valid character code.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Next_Char

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_ULong )
-  FT_Get_Next_Char( FT_Face    face,
-                    FT_ULong   char_code,
-                    FT_UInt   *agindex );
-
-

-
-

This function is used to return the next character code in the current charmap of a given face following the value ‘char_code’, as well as the corresponding glyph index.

-

-
input
-

- - - -
face -

A handle to the source face object.

-
char_code -

The starting character code.

-
-
-
output
-

- - -
agindex -

Glyph index of next character code. 0 if charmap is empty.

-
-
-
return
-

The charmap's next character code.

-
-
note
-

You should use this function with FT_Get_First_Char to walk over all character codes available in a given charmap. See the note for this function for a simple code example.

-

Note that ‘*agindex’ is set to 0 when there are no more codes in the charmap.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Name_Index

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt )
-  FT_Get_Name_Index( FT_Face     face,
-                     FT_String*  glyph_name );
-
-

-
-

Return the glyph index of a given glyph name. This function uses driver specific objects to do the translation.

-

-
input
-

- - - -
face -

A handle to the source face object.

-
glyph_name -

The glyph name.

-
-
-
return
-

The glyph index. 0 means ‘undefined character code’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_SUBGLYPH_FLAG_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS          1
-#define FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES      2
-#define FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID        4
-#define FT_SUBGLYPH_FLAG_SCALE                   8
-#define FT_SUBGLYPH_FLAG_XY_SCALE             0x40
-#define FT_SUBGLYPH_FLAG_2X2                  0x80
-#define FT_SUBGLYPH_FLAG_USE_MY_METRICS      0x200
-
-

-
-

A list of constants used to describe subglyphs. Please refer to the TrueType specification for the meaning of the various flags.

-

-
values
-

- - - - - - - - - - - - - -
FT_SUBGLYPH_FLAG_ARGS_ARE_WORDS
-

-
FT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
-

-
FT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID
-

-
FT_SUBGLYPH_FLAG_SCALE -

-
FT_SUBGLYPH_FLAG_XY_SCALE
-

-
FT_SUBGLYPH_FLAG_2X2 -

-
FT_SUBGLYPH_FLAG_USE_MY_METRICS
-

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_SubGlyph_Info

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_SubGlyph_Info( FT_GlyphSlot  glyph,
-                        FT_UInt       sub_index,
-                        FT_Int       *p_index,
-                        FT_UInt      *p_flags,
-                        FT_Int       *p_arg1,
-                        FT_Int       *p_arg2,
-                        FT_Matrix    *p_transform );
-
-

-
-

Retrieve a description of a given subglyph. Only use it if ‘glyph->format’ is FT_GLYPH_FORMAT_COMPOSITE; an error is returned otherwise.

-

-
input
-

- - - -
glyph -

The source glyph slot.

-
sub_index -

The index of the subglyph. Must be less than ‘glyph->num_subglyphs’.

-
-
-
output
-

- - - - - - -
p_index -

The glyph index of the subglyph.

-
p_flags -

The subglyph flags, see FT_SUBGLYPH_FLAG_XXX.

-
p_arg1 -

The subglyph's first argument (if any).

-
p_arg2 -

The subglyph's second argument (if any).

-
p_transform -

The subglyph transformation (if any).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The values of ‘*p_arg1’, ‘*p_arg2’, and ‘*p_transform’ must be interpreted depending on the flags returned in ‘*p_flags’. See the TrueType specification for details.

-
-
-
- - -
[Index][TOC]
- -
-

FT_FSTYPE_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FT_FSTYPE_INSTALLABLE_EMBEDDING         0x0000
-#define FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING  0x0002
-#define FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING   0x0004
-#define FT_FSTYPE_EDITABLE_EMBEDDING            0x0008
-#define FT_FSTYPE_NO_SUBSETTING                 0x0100
-#define FT_FSTYPE_BITMAP_EMBEDDING_ONLY         0x0200
-
-

-
-

A list of bit flags used in the ‘fsType’ field of the OS/2 table in a TrueType or OpenType font and the ‘FSType’ entry in a PostScript font. These bit flags are returned by FT_Get_FSType_Flags; they inform client applications of embedding and subsetting restrictions associated with a font.

-

See http://www.adobe.com/devnet/acrobat/pdfs/FontPolicies.pdf for more details.

-

-
values
-

- - - - - - - - - - - - - -
FT_FSTYPE_INSTALLABLE_EMBEDDING
-

Fonts with no fsType bit set may be embedded and permanently installed on the remote system by an application.

-
FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDING
-

Fonts that have only this bit set must not be modified, embedded or exchanged in any manner without first obtaining permission of the font software copyright owner.

-
FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDING
-

If this bit is set, the font may be embedded and temporarily loaded on the remote system. Documents containing Preview & Print fonts must be opened ‘read-only’; no edits can be applied to the document.

-
FT_FSTYPE_EDITABLE_EMBEDDING
-

If this bit is set, the font may be embedded but must only be installed temporarily on other systems. In contrast to Preview & Print fonts, documents containing editable fonts may be opened for reading, editing is permitted, and changes may be saved.

-
FT_FSTYPE_NO_SUBSETTING
-

If this bit is set, the font may not be subsetted prior to embedding.

-
FT_FSTYPE_BITMAP_EMBEDDING_ONLY
-

If this bit is set, only bitmaps contained in the font may be embedded; no outline data may be embedded. If there are no bitmaps available in the font, then the font is unembeddable.

-
-
-
note
-

While the fsType flags can indicate that a font may be embedded, a license with the font vendor may be separately required to use the font in this way.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_FSType_Flags

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UShort )
-  FT_Get_FSType_Flags( FT_Face  face );
-
-

-
-

Return the fsType flags for a font.

-

-
input
-

- - -
face -

A handle to the source face object.

-
-
-
return
-

The fsType flags, FT_FSTYPE_XXX.

-
-
note
-

Use this function rather than directly reading the ‘fs_type’ field in the PS_FontInfoRec structure which is only guaranteed to return the correct results for Type 1 fonts.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-basic_types.html b/src/3rdparty/freetype/docs/reference/ft2-basic_types.html deleted file mode 100644 index 8df510ffb8..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-basic_types.html +++ /dev/null @@ -1,1171 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Basic Data Types -

-

Synopsis

- - - - - - - - - - - - - - - -
FT_ByteFT_OffsetFT_UnitVector
FT_BytesFT_PtrDistFT_F26Dot6
FT_CharFT_StringFT_Pixel_Mode
FT_IntFT_Tagft_pixel_mode_xxx
FT_UIntFT_ErrorFT_Palette_Mode
FT_Int16FT_FixedFT_Bitmap
FT_UInt16FT_PointerFT_IMAGE_TAG
FT_Int32FT_PosFT_Glyph_Format
FT_UInt32FT_Vectorft_glyph_format_xxx
FT_ShortFT_BBoxFT_Data
FT_UShortFT_MatrixFT_Generic_Finalizer
FT_LongFT_FWordFT_Generic
FT_ULongFT_UFWordFT_MAKE_TAG
FT_BoolFT_F2Dot14


- -
-

This section contains the basic data types defined by FreeType 2, ranging from simple scalar types to bitmap descriptors. More font-specific structures are defined in a different section.

-

-
-

FT_Byte

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned char  FT_Byte;
-
-

-
-

A simple typedef for the unsigned char type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Bytes

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef const FT_Byte*  FT_Bytes;
-
-

-
-

A typedef for constant memory areas.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Char

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed char  FT_Char;
-
-

-
-

A simple typedef for the signed char type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Int

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed int  FT_Int;
-
-

-
-

A typedef for the int type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UInt

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned int  FT_UInt;
-
-

-
-

A typedef for the unsigned int type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Int16

-
-Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h). -

-
-
-  typedef signed short  FT_Int16;
-
-

-
-

A typedef for a 16bit signed integer type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UInt16

-
-Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h). -

-
-
-  typedef unsigned short  FT_UInt16;
-
-

-
-

A typedef for a 16bit unsigned integer type.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Int32

-
-Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h). -

-
-
-  typedef signed XXX  FT_Int32;
-
-

-
-

A typedef for a 32bit signed integer type. The size depends on the configuration.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UInt32

-
-Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h). -

-
-
-  typedef unsigned XXX  FT_UInt32;
-
-

-
-
- - -
[Index][TOC]
- -
-

FT_Short

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed short  FT_Short;
-
-

-
-

A typedef for signed short.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UShort

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned short  FT_UShort;
-
-

-
-

A typedef for unsigned short.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Long

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed long  FT_Long;
-
-

-
-

A typedef for signed long.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ULong

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned long  FT_ULong;
-
-

-
-

A typedef for unsigned long.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Bool

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned char  FT_Bool;
-
-

-
-

A typedef of unsigned char, used for simple booleans. As usual, values 1 and 0 represent true and false, respectively.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Offset

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef size_t  FT_Offset;
-
-

-
-

This is equivalent to the ANSI C ‘size_t’ type, i.e., the largest unsigned integer type used to express a file size or position, or a memory block size.

-

-
-
- - -
[Index][TOC]
- -
-

FT_PtrDist

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef ft_ptrdiff_t  FT_PtrDist;
-
-

-
-

This is equivalent to the ANSI C ‘ptrdiff_t’ type, i.e., the largest signed integer type used to express the distance between two pointers.

-

-
-
- - -
[Index][TOC]
- -
-

FT_String

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef char  FT_String;
-
-

-
-

A simple typedef for the char type, usually used for strings.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Tag

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef FT_UInt32  FT_Tag;
-
-

-
-

A typedef for 32-bit tags (as used in the SFNT format).

-

-
-
- - -
[Index][TOC]
- -
-

FT_Error

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef int  FT_Error;
-
-

-
-

The FreeType error code type. A value of 0 is always interpreted as a successful operation.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Fixed

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed long  FT_Fixed;
-
-

-
-

This type is used to store 16.16 fixed float values, like scaling values or matrix coefficients.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Pointer

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef void*  FT_Pointer;
-
-

-
-

A simple typedef for a typeless pointer.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Pos

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef signed long  FT_Pos;
-
-

-
-

The type FT_Pos is used to store vectorial coordinates. Depending on the context, these can represent distances in integer font units, or 16.16, or 26.6 fixed float pixel coordinates.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Vector

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Vector_
-  {
-    FT_Pos  x;
-    FT_Pos  y;
-
-  } FT_Vector;
-
-

-
-

A simple structure used to store a 2D vector; coordinates are of the FT_Pos type.

-

-
fields
-

- - - -
x -

The horizontal coordinate.

-
y -

The vertical coordinate.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_BBox

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_BBox_
-  {
-    FT_Pos  xMin, yMin;
-    FT_Pos  xMax, yMax;
-
-  } FT_BBox;
-
-

-
-

A structure used to hold an outline's bounding box, i.e., the coordinates of its extrema in the horizontal and vertical directions.

-

-
fields
-

- - - - - -
xMin -

The horizontal minimum (left-most).

-
yMin -

The vertical minimum (bottom-most).

-
xMax -

The horizontal maximum (right-most).

-
yMax -

The vertical maximum (top-most).

-
-
-
note
-

The bounding box is specified with the coordinates of the lower left and the upper right corner. In PostScript, those values are often called (llx,lly) and (urx,ury), respectively.

-

If ‘yMin’ is negative, this value gives the glyph's descender. Otherwise, the glyph doesn't descend below the baseline. Similarly, if ‘ymax’ is positive, this value gives the glyph's ascender.

-

‘xMin’ gives the horizontal distance from the glyph's origin to the left edge of the glyph's bounding box. If ‘xMin’ is negative, the glyph extends to the left of the origin.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Matrix

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_Matrix_
-  {
-    FT_Fixed  xx, xy;
-    FT_Fixed  yx, yy;
-
-  } FT_Matrix;
-
-

-
-

A simple structure used to store a 2x2 matrix. Coefficients are in 16.16 fixed float format. The computation performed is:

-
-   x' = x*xx + y*xy                                             
-   y' = x*yx + y*yy                                             
-
-

-
fields
-

- - - - - -
xx -

Matrix coefficient.

-
xy -

Matrix coefficient.

-
yx -

Matrix coefficient.

-
yy -

Matrix coefficient.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_FWord

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed short  FT_FWord;   /* distance in FUnits */
-
-

-
-

A signed 16-bit integer used to store a distance in original font units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UFWord

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef unsigned short  FT_UFWord;  /* unsigned distance */
-
-

-
-

An unsigned 16-bit integer used to store a distance in original font units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_F2Dot14

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed short  FT_F2Dot14;
-
-

-
-

A signed 2.14 fixed float type used for unit vectors.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UnitVector

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_UnitVector_
-  {
-    FT_F2Dot14  x;
-    FT_F2Dot14  y;
-
-  } FT_UnitVector;
-
-

-
-

A simple structure used to store a 2D vector unit vector. Uses FT_F2Dot14 types.

-

-
fields
-

- - - -
x -

Horizontal coordinate.

-
y -

Vertical coordinate.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_F26Dot6

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef signed long  FT_F26Dot6;
-
-

-
-

A signed 26.6 fixed float type used for vectorial pixel coordinates.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Pixel_Mode

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef enum  FT_Pixel_Mode_
-  {
-    FT_PIXEL_MODE_NONE = 0,
-    FT_PIXEL_MODE_MONO,
-    FT_PIXEL_MODE_GRAY,
-    FT_PIXEL_MODE_GRAY2,
-    FT_PIXEL_MODE_GRAY4,
-    FT_PIXEL_MODE_LCD,
-    FT_PIXEL_MODE_LCD_V,
-
-    FT_PIXEL_MODE_MAX      /* do not remove */
-
-  } FT_Pixel_Mode;
-
-

-
-

An enumeration type used to describe the format of pixels in a given bitmap. Note that additional formats may be added in the future.

-

-
values
-

- - - - - - - - -
FT_PIXEL_MODE_NONE -

Value 0 is reserved.

-
FT_PIXEL_MODE_MONO -

A monochrome bitmap, using 1 bit per pixel. Note that pixels are stored in most-significant order (MSB), which means that the left-most pixel in a byte has value 128.

-
FT_PIXEL_MODE_GRAY -

An 8-bit bitmap, generally used to represent anti-aliased glyph images. Each pixel is stored in one byte. Note that the number of ‘gray’ levels is stored in the ‘num_grays’ field of the FT_Bitmap structure (it generally is 256).

-
FT_PIXEL_MODE_GRAY2 -

A 2-bit per pixel bitmap, used to represent embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.

-
FT_PIXEL_MODE_GRAY4 -

A 4-bit per pixel bitmap, representing embedded anti-aliased bitmaps in font files according to the OpenType specification. We haven't found a single font using this format, however.

-
FT_PIXEL_MODE_LCD -

An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on LCD displays; the bitmap is three times wider than the original glyph image. See also FT_RENDER_MODE_LCD.

-
FT_PIXEL_MODE_LCD_V -

An 8-bit bitmap, representing RGB or BGR decimated glyph images used for display on rotated LCD displays; the bitmap is three times taller than the original glyph image. See also FT_RENDER_MODE_LCD_V.

-
-
-
-
- - -
[Index][TOC]
- -
-

ft_pixel_mode_xxx

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#define ft_pixel_mode_none   FT_PIXEL_MODE_NONE
-#define ft_pixel_mode_mono   FT_PIXEL_MODE_MONO
-#define ft_pixel_mode_grays  FT_PIXEL_MODE_GRAY
-#define ft_pixel_mode_pal2   FT_PIXEL_MODE_GRAY2
-#define ft_pixel_mode_pal4   FT_PIXEL_MODE_GRAY4
-
-

-
-

A list of deprecated constants. Use the corresponding FT_Pixel_Mode values instead.

-

-
values
-

- - - - - - -
ft_pixel_mode_none -

See FT_PIXEL_MODE_NONE.

-
ft_pixel_mode_mono -

See FT_PIXEL_MODE_MONO.

-
ft_pixel_mode_grays -

See FT_PIXEL_MODE_GRAY.

-
ft_pixel_mode_pal2 -

See FT_PIXEL_MODE_GRAY2.

-
ft_pixel_mode_pal4 -

See FT_PIXEL_MODE_GRAY4.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Palette_Mode

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef enum  FT_Palette_Mode_
-  {
-    ft_palette_mode_rgb = 0,
-    ft_palette_mode_rgba,
-
-    ft_palette_mode_max   /* do not remove */
-
-  } FT_Palette_Mode;
-
-

-
-

THIS TYPE IS DEPRECATED. DO NOT USE IT!

-

An enumeration type to describe the format of a bitmap palette, used with ft_pixel_mode_pal4 and ft_pixel_mode_pal8.

-

-
values
-

- - - -
ft_palette_mode_rgb -

The palette is an array of 3-byte RGB records.

-
ft_palette_mode_rgba -

The palette is an array of 4-byte RGBA records.

-
-
-
note
-

As ft_pixel_mode_pal2, pal4 and pal8 are currently unused by FreeType, these types are not handled by the library itself.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Bitmap_
-  {
-    int             rows;
-    int             width;
-    int             pitch;
-    unsigned char*  buffer;
-    short           num_grays;
-    char            pixel_mode;
-    char            palette_mode;
-    void*           palette;
-
-  } FT_Bitmap;
-
-

-
-

A structure used to describe a bitmap or pixmap to the raster. Note that we now manage pixmaps of various depths through the ‘pixel_mode’ field.

-

-
fields
-

- - - - - - - - - -
rows -

The number of bitmap rows.

-
width -

The number of pixels in bitmap row.

-
pitch -

The pitch's absolute value is the number of bytes taken by one bitmap row, including padding. However, the pitch is positive when the bitmap has a ‘down’ flow, and negative when it has an ‘up’ flow. In all cases, the pitch is an offset to add to a bitmap pointer in order to go down one row.

-

For the B/W rasterizer, ‘pitch’ is always an even number.

-
buffer -

A typeless pointer to the bitmap buffer. This value should be aligned on 32-bit boundaries in most cases.

-
num_grays -

This field is only used with FT_PIXEL_MODE_GRAY; it gives the number of gray levels used in the bitmap.

-
pixel_mode -

The pixel mode, i.e., how pixel bits are stored. See FT_Pixel_Mode for possible values.

-
palette_mode -

This field is intended for paletted pixel modes; it indicates how the palette is stored. Not used currently.

-
palette -

A typeless pointer to the bitmap palette; this field is intended for paletted pixel modes. Not used currently.

-
-
-
note
-

For now, the only pixel modes supported by FreeType are mono and grays. However, drivers might be added in the future to support more ‘colorful’ options.

-
-
-
- - -
[Index][TOC]
- -
-

FT_IMAGE_TAG

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#ifndef FT_IMAGE_TAG
-#define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  \
-          value = ( ( (unsigned long)_x1 << 24 ) | \
-                    ( (unsigned long)_x2 << 16 ) | \
-                    ( (unsigned long)_x3 << 8  ) | \
-                      (unsigned long)_x4         )
-#endif /* FT_IMAGE_TAG */
-
-

-
-

This macro converts four-letter tags to an unsigned long type.

-

-
note
-

Since many 16-bit compilers don't like 32-bit enumerations, you should redefine this macro in case of problems to something like this:

-
-  #define FT_IMAGE_TAG( value, _x1, _x2, _x3, _x4 )  value         
-
-

to get a simple enumeration without assigning special numbers.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Format

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef enum  FT_Glyph_Format_
-  {
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_NONE, 0, 0, 0, 0 ),
-
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_COMPOSITE, 'c', 'o', 'm', 'p' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_BITMAP,    'b', 'i', 't', 's' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_OUTLINE,   'o', 'u', 't', 'l' ),
-    FT_IMAGE_TAG( FT_GLYPH_FORMAT_PLOTTER,   'p', 'l', 'o', 't' )
-
-  } FT_Glyph_Format;
-
-

-
-

An enumeration type used to describe the format of a given glyph image. Note that this version of FreeType only supports two image formats, even though future font drivers will be able to register their own format.

-

-
values
-

- - - - - - - - - -
FT_GLYPH_FORMAT_NONE -

The value 0 is reserved.

-
FT_GLYPH_FORMAT_COMPOSITE
-

The glyph image is a composite of several other images. This format is only used with FT_LOAD_NO_RECURSE, and is used to report compound glyphs (like accented characters).

-
FT_GLYPH_FORMAT_BITMAP -

The glyph image is a bitmap, and can be described as an FT_Bitmap. You generally need to access the ‘bitmap’ field of the FT_GlyphSlotRec structure to read it.

-
FT_GLYPH_FORMAT_OUTLINE
-

The glyph image is a vectorial outline made of line segments and Bézier arcs; it can be described as an FT_Outline; you generally want to access the ‘outline’ field of the FT_GlyphSlotRec structure to read it.

-
FT_GLYPH_FORMAT_PLOTTER
-

The glyph image is a vectorial path with no inside and outside contours. Some Type 1 fonts, like those in the Hershey family, contain glyphs in this format. These are described as FT_Outline, but FreeType isn't currently capable of rendering them correctly.

-
-
-
-
- - -
[Index][TOC]
- -
-

ft_glyph_format_xxx

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#define ft_glyph_format_none       FT_GLYPH_FORMAT_NONE
-#define ft_glyph_format_composite  FT_GLYPH_FORMAT_COMPOSITE
-#define ft_glyph_format_bitmap     FT_GLYPH_FORMAT_BITMAP
-#define ft_glyph_format_outline    FT_GLYPH_FORMAT_OUTLINE
-#define ft_glyph_format_plotter    FT_GLYPH_FORMAT_PLOTTER
-
-

-
-

A list of deprecated constants. Use the corresponding FT_Glyph_Format values instead.

-

-
values
-

- - - - - - - - - -
ft_glyph_format_none -

See FT_GLYPH_FORMAT_NONE.

-
ft_glyph_format_composite
-

See FT_GLYPH_FORMAT_COMPOSITE.

-
ft_glyph_format_bitmap -

See FT_GLYPH_FORMAT_BITMAP.

-
ft_glyph_format_outline
-

See FT_GLYPH_FORMAT_OUTLINE.

-
ft_glyph_format_plotter
-

See FT_GLYPH_FORMAT_PLOTTER.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Data

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_Data_
-  {
-    const FT_Byte*  pointer;
-    FT_Int          length;
-
-  } FT_Data;
-
-

-
-

Read-only binary data represented as a pointer and a length.

-

-
fields
-

- - - -
pointer -

The data.

-
length -

The length of the data in bytes.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Generic_Finalizer

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef void  (*FT_Generic_Finalizer)(void*  object);
-
-

-
-

Describe a function used to destroy the ‘client’ data of any FreeType object. See the description of the FT_Generic type for details of usage.

-

-
input
-

The address of the FreeType object which is under finalization. Its client data is accessed through its ‘generic’ field.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Generic

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_Generic_
-  {
-    void*                 data;
-    FT_Generic_Finalizer  finalizer;
-
-  } FT_Generic;
-
-

-
-

Client applications often need to associate their own data to a variety of FreeType core objects. For example, a text layout API might want to associate a glyph cache to a given size object.

-

Most FreeType object contains a ‘generic’ field, of type FT_Generic, which usage is left to client applications and font servers.

-

It can be used to store a pointer to client-specific data, as well as the address of a ‘finalizer’ function, which will be called by FreeType when the object is destroyed (for example, the previous client example would put the address of the glyph cache destructor in the ‘finalizer’ field).

-

-
fields
-

- - - -
data -

A typeless pointer to any client-specified data. This field is completely ignored by the FreeType library.

-
finalizer -

A pointer to a ‘generic finalizer’ function, which will be called when the object is destroyed. If this field is set to NULL, no code will be called.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_MAKE_TAG

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-#define FT_MAKE_TAG( _x1, _x2, _x3, _x4 ) \
-          (FT_Tag)                        \
-          ( ( (FT_ULong)_x1 << 24 ) |     \
-            ( (FT_ULong)_x2 << 16 ) |     \
-            ( (FT_ULong)_x3 <<  8 ) |     \
-              (FT_ULong)_x4         )
-
-

-
-

This macro converts four-letter tags which are used to label TrueType tables into an unsigned long to be used within FreeType.

-

-
note
-

The produced values must be 32-bit integers. Don't redefine this macro.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-bdf_fonts.html b/src/3rdparty/freetype/docs/reference/ft2-bdf_fonts.html deleted file mode 100644 index 293cd81a6f..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-bdf_fonts.html +++ /dev/null @@ -1,260 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-BDF and PCF Files -

-

Synopsis

- - - -
FT_PropertyTypeBDF_PropertyRecFT_Get_BDF_Property
BDF_PropertyFT_Get_BDF_Charset_ID


- -
-

This section contains the declaration of functions specific to BDF and PCF fonts.

-

-
-

FT_PropertyType

-
-Defined in FT_BDF_H (freetype/ftbdf.h). -

-
-
-  typedef enum  BDF_PropertyType_
-  {
-    BDF_PROPERTY_TYPE_NONE     = 0,
-    BDF_PROPERTY_TYPE_ATOM     = 1,
-    BDF_PROPERTY_TYPE_INTEGER  = 2,
-    BDF_PROPERTY_TYPE_CARDINAL = 3
-
-  } BDF_PropertyType;
-
-

-
-

A list of BDF property types.

-

-
values
-

- - - - - - - -
BDF_PROPERTY_TYPE_NONE -

Value 0 is used to indicate a missing property.

-
BDF_PROPERTY_TYPE_ATOM -

Property is a string atom.

-
BDF_PROPERTY_TYPE_INTEGER
-

Property is a 32-bit signed integer.

-
BDF_PROPERTY_TYPE_CARDINAL
-

Property is a 32-bit unsigned integer.

-
-
-
-
- - -
[Index][TOC]
- -
-

BDF_Property

-
-Defined in FT_BDF_H (freetype/ftbdf.h). -

-
-
-  typedef struct BDF_PropertyRec_*  BDF_Property;
-
-

-
-

A handle to a BDF_PropertyRec structure to model a given BDF/PCF property.

-

-
-
- - -
[Index][TOC]
- -
-

BDF_PropertyRec

-
-Defined in FT_BDF_H (freetype/ftbdf.h). -

-
-
-  typedef struct  BDF_PropertyRec_
-  {
-    BDF_PropertyType  type;
-    union {
-      const char*     atom;
-      FT_Int32        integer;
-      FT_UInt32       cardinal;
-
-    } u;
-
-  } BDF_PropertyRec;
-
-

-
-

This structure models a given BDF/PCF property.

-

-
fields
-

- - - - - -
type -

The property type.

-
u.atom -

The atom string, if type is BDF_PROPERTY_TYPE_ATOM.

-
u.integer -

A signed integer, if type is BDF_PROPERTY_TYPE_INTEGER.

-
u.cardinal -

An unsigned integer, if type is BDF_PROPERTY_TYPE_CARDINAL.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_BDF_Charset_ID

-
-Defined in FT_BDF_H (freetype/ftbdf.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_BDF_Charset_ID( FT_Face       face,
-                         const char*  *acharset_encoding,
-                         const char*  *acharset_registry );
-
-

-
-

Retrieve a BDF font character set identity, according to the BDF specification.

-

-
input
-

- - -
face -

A handle to the input face.

-
-
-
output
-

- - - -
acharset_encoding -

Charset encoding, as a C string, owned by the face.

-
acharset_registry -

Charset registry, as a C string, owned by the face.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with BDF faces, returning an error otherwise.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_BDF_Property

-
-Defined in FT_BDF_H (freetype/ftbdf.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_BDF_Property( FT_Face           face,
-                       const char*       prop_name,
-                       BDF_PropertyRec  *aproperty );
-
-

-
-

Retrieve a BDF property from a BDF or PCF font file.

-

-
input
-

- - - -
face -

A handle to the input face.

-
name -

The property name.

-
-
-
output
-

- - -
aproperty -

The property.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function works with BDF and PCF fonts. It returns an error otherwise. It also returns an error if the property is not in the font.

-

A ‘property’ is a either key-value pair within the STARTPROPERTIES ... ENDPROPERTIES block of a BDF font or a key-value pair from the ‘info->props’ array within a ‘FontRec’ structure of a PCF font.

-

Integer properties are always stored as ‘signed’ within PCF fonts; consequently, BDF_PROPERTY_TYPE_CARDINAL is a possible return value for BDF fonts only.

-

In case of error, ‘aproperty->type’ is always set to BDF_PROPERTY_TYPE_NONE.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-bitmap_handling.html b/src/3rdparty/freetype/docs/reference/ft2-bitmap_handling.html deleted file mode 100644 index dc1df69e95..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-bitmap_handling.html +++ /dev/null @@ -1,302 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Bitmap Handling -

-

Synopsis

- - - -
FT_Bitmap_NewFT_Bitmap_EmboldenFT_GlyphSlot_Own_Bitmap
FT_Bitmap_CopyFT_Bitmap_ConvertFT_Bitmap_Done


- -
-

This section contains functions for converting FT_Bitmap objects.

-

-
-

FT_Bitmap_New

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( void )
-  FT_Bitmap_New( FT_Bitmap  *abitmap );
-
-

-
-

Initialize a pointer to an FT_Bitmap structure.

-

-
inout
-

- - -
abitmap -

A pointer to the bitmap structure.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap_Copy

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Bitmap_Copy( FT_Library        library,
-                  const FT_Bitmap  *source,
-                  FT_Bitmap        *target);
-
-

-
-

Copy a bitmap into another one.

-

-
input
-

- - - -
library -

A handle to a library object.

-
source -

A handle to the source bitmap.

-
-
-
output
-

- - -
target -

A handle to the target bitmap.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap_Embolden

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Bitmap_Embolden( FT_Library  library,
-                      FT_Bitmap*  bitmap,
-                      FT_Pos      xStrength,
-                      FT_Pos      yStrength );
-
-

-
-

Embolden a bitmap. The new bitmap will be about ‘xStrength’ pixels wider and ‘yStrength’ pixels higher. The left and bottom borders are kept unchanged.

-

-
input
-

- - - - -
library -

A handle to a library object.

-
xStrength -

How strong the glyph is emboldened horizontally. Expressed in 26.6 pixel format.

-
yStrength -

How strong the glyph is emboldened vertically. Expressed in 26.6 pixel format.

-
-
-
inout
-

- - -
bitmap -

A handle to the target bitmap.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The current implementation restricts ‘xStrength’ to be less than or equal to 8 if bitmap is of pixel_mode FT_PIXEL_MODE_MONO.

-

If you want to embolden the bitmap owned by a FT_GlyphSlotRec, you should call FT_GlyphSlot_Own_Bitmap on the slot first.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap_Convert

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Bitmap_Convert( FT_Library        library,
-                     const FT_Bitmap  *source,
-                     FT_Bitmap        *target,
-                     FT_Int            alignment );
-
-

-
-

Convert a bitmap object with depth 1bpp, 2bpp, 4bpp, or 8bpp to a bitmap object with depth 8bpp, making the number of used bytes per line (a.k.a. the ‘pitch’) a multiple of ‘alignment’.

-

-
input
-

- - - - -
library -

A handle to a library object.

-
source -

The source bitmap.

-
alignment -

The pitch of the bitmap is a multiple of this parameter. Common values are 1, 2, or 4.

-
-
-
output
-

- - -
target -

The target bitmap.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

It is possible to call FT_Bitmap_Convert multiple times without calling FT_Bitmap_Done (the memory is simply reallocated).

-

Use FT_Bitmap_Done to finally remove the bitmap object.

-

The ‘library’ argument is taken to have access to FreeType's memory handling functions.

-
-
-
- - -
[Index][TOC]
- -
-

FT_GlyphSlot_Own_Bitmap

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_GlyphSlot_Own_Bitmap( FT_GlyphSlot  slot );
-
-

-
-

Make sure that a glyph slot owns ‘slot->bitmap’.

-

-
input
-

- - -
slot -

The glyph slot.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function is to be used in combination with FT_Bitmap_Embolden.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Bitmap_Done

-
-Defined in FT_BITMAP_H (freetype/ftbitmap.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Bitmap_Done( FT_Library  library,
-                  FT_Bitmap  *bitmap );
-
-

-
-

Destroy a bitmap object created with FT_Bitmap_New.

-

-
input
-

- - - -
library -

A handle to a library object.

-
bitmap -

The bitmap object to be freed.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The ‘library’ argument is taken to have access to FreeType's memory handling functions.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-cache_subsystem.html b/src/3rdparty/freetype/docs/reference/ft2-cache_subsystem.html deleted file mode 100644 index 96815a017d..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-cache_subsystem.html +++ /dev/null @@ -1,1170 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Cache Sub-System -

-

Synopsis

- - - - - - - - - - - - - - - -
FTC_ManagerFTC_CMapCache_New
FTC_FaceIDFTC_CMapCache_Lookup
FTC_Face_RequesterFTC_ImageTypeRec
FTC_NodeFTC_ImageType
FTC_Manager_NewFTC_ImageCache
FTC_Manager_ResetFTC_ImageCache_New
FTC_Manager_DoneFTC_ImageCache_Lookup
FTC_Manager_LookupFaceFTC_ImageCache_LookupScaler
FTC_ScalerRecFTC_SBit
FTC_ScalerFTC_SBitRec
FTC_Manager_LookupSizeFTC_SBitCache
FTC_Node_UnrefFTC_SBitCache_New
FTC_Manager_RemoveFaceIDFTC_SBitCache_Lookup
FTC_CMapCacheFTC_SBitCache_LookupScaler


- -
-

This section describes the FreeType 2 cache sub-system, which is used to limit the number of concurrently opened FT_Face and FT_Size objects, as well as caching information like character maps and glyph images while limiting their maximum memory usage.

-

Note that all types and functions begin with the ‘FTC_’ prefix.

-

The cache is highly portable and thus doesn't know anything about the fonts installed on your system, or how to access them. This implies the following scheme:

-

First, available or installed font faces are uniquely identified by FTC_FaceID values, provided to the cache by the client. Note that the cache only stores and compares these values, and doesn't try to interpret them in any way.

-

Second, the cache calls, only when needed, a client-provided function to convert a FTC_FaceID into a new FT_Face object. The latter is then completely managed by the cache, including its termination through FT_Done_Face.

-

Clients are free to map face IDs to anything else. The most simple usage is to associate them to a (pathname,face_index) pair that is used to call FT_New_Face. However, more complex schemes are also possible.

-

Note that for the cache to work correctly, the face ID values must be persistent, which means that the contents they point to should not change at runtime, or that their value should not become invalid.

-

If this is unavoidable (e.g., when a font is uninstalled at runtime), you should call FTC_Manager_RemoveFaceID as soon as possible, to let the cache get rid of any references to the old FTC_FaceID it may keep internally. Failure to do so will lead to incorrect behaviour or even crashes.

-

To use the cache, start with calling FTC_Manager_New to create a new FTC_Manager object, which models a single cache instance. You can then look up FT_Face and FT_Size objects with FTC_Manager_LookupFace and FTC_Manager_LookupSize, respectively.

-

If you want to use the charmap caching, call FTC_CMapCache_New, then later use FTC_CMapCache_Lookup to perform the equivalent of FT_Get_Char_Index, only much faster.

-

If you want to use the FT_Glyph caching, call FTC_ImageCache, then later use FTC_ImageCache_Lookup to retrieve the corresponding FT_Glyph objects from the cache.

-

If you need lots of small bitmaps, it is much more memory efficient to call FTC_SBitCache_New followed by FTC_SBitCache_Lookup. This returns FTC_SBitRec structures, which are used to store small bitmaps directly. (A small bitmap is one whose metrics and dimensions all fit into 8-bit integers).

-

We hope to also provide a kerning cache in the near future.

-

-
-

FTC_Manager

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_ManagerRec_*  FTC_Manager;
-
-

-
-

This object corresponds to one instance of the cache-subsystem. It is used to cache one or more FT_Face objects, along with corresponding FT_Size objects.

-

The manager intentionally limits the total number of opened FT_Face and FT_Size objects to control memory usage. See the ‘max_faces’ and ‘max_sizes’ parameters of FTC_Manager_New.

-

The manager is also used to cache ‘nodes’ of various types while limiting their total memory usage.

-

All limitations are enforced by keeping lists of managed objects in most-recently-used order, and flushing old nodes to make room for new ones.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_FaceID

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef FT_Pointer  FTC_FaceID;
-
-

-
-

An opaque pointer type that is used to identity face objects. The contents of such objects is application-dependent.

-

These pointers are typically used to point to a user-defined structure containing a font file path, and face index.

-

-
note
-

Never use NULL as a valid FTC_FaceID.

-

Face IDs are passed by the client to the cache manager, which calls, when needed, the FTC_Face_Requester to translate them into new FT_Face objects.

-

If the content of a given face ID changes at runtime, or if the value becomes invalid (e.g., when uninstalling a font), you should immediately call FTC_Manager_RemoveFaceID before any other cache function.

-

Failure to do so will result in incorrect behaviour or even memory leaks and crashes.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_Face_Requester

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef FT_Error
-  (*FTC_Face_Requester)( FTC_FaceID  face_id,
-                         FT_Library  library,
-                         FT_Pointer  request_data,
-                         FT_Face*    aface );
-
-

-
-

A callback function provided by client applications. It is used by the cache manager to translate a given FTC_FaceID into a new valid FT_Face object, on demand.

-

-
input
-

- - - - -
face_id -

The face ID to resolve.

-
library -

A handle to a FreeType library object.

-
req_data -

Application-provided request data (see note below).

-
-
-
output
-

- - -
aface -

A new FT_Face handle.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The third parameter ‘req_data’ is the same as the one passed by the client when FTC_Manager_New is called.

-

The face requester should not perform funny things on the returned face object, like creating a new FT_Size for it, or setting a transformation through FT_Set_Transform!

-
-
-
- - -
[Index][TOC]
- -
-

FTC_Node

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_NodeRec_*  FTC_Node;
-
-

-
-

An opaque handle to a cache node object. Each cache node is reference-counted. A node with a count of 0 might be flushed out of a full cache whenever a lookup request is performed.

-

If you lookup nodes, you have the ability to ‘acquire’ them, i.e., to increment their reference count. This will prevent the node from being flushed out of the cache until you explicitly ‘release’ it (see FTC_Node_Unref).

-

See also FTC_SBitCache_Lookup and FTC_ImageCache_Lookup.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_New

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_Manager_New( FT_Library          library,
-                   FT_UInt             max_faces,
-                   FT_UInt             max_sizes,
-                   FT_ULong            max_bytes,
-                   FTC_Face_Requester  requester,
-                   FT_Pointer          req_data,
-                   FTC_Manager        *amanager );
-
-

-
-

Create a new cache manager.

-

-
input
-

- - - - - - - -
library -

The parent FreeType library handle to use.

-
max_faces -

Maximum number of opened FT_Face objects managed by this cache instance. Use 0 for defaults.

-
max_sizes -

Maximum number of opened FT_Size objects managed by this cache instance. Use 0 for defaults.

-
max_bytes -

Maximum number of bytes to use for cached data nodes. Use 0 for defaults. Note that this value does not account for managed FT_Face and FT_Size objects.

-
requester -

An application-provided callback used to translate face IDs into real FT_Face objects.

-
req_data -

A generic pointer that is passed to the requester each time it is called (see FTC_Face_Requester).

-
-
-
output
-

- - -
amanager -

A handle to a new manager object. 0 in case of failure.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_Reset

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( void )
-  FTC_Manager_Reset( FTC_Manager  manager );
-
-

-
-

Empty a given cache manager. This simply gets rid of all the currently cached FT_Face and FT_Size objects within the manager.

-

-
inout
-

- - -
manager -

A handle to the manager.

-
-
-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_Done

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( void )
-  FTC_Manager_Done( FTC_Manager  manager );
-
-

-
-

Destroy a given manager after emptying it.

-

-
input
-

- - -
manager -

A handle to the target cache manager object.

-
-
-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_LookupFace

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_Manager_LookupFace( FTC_Manager  manager,
-                          FTC_FaceID   face_id,
-                          FT_Face     *aface );
-
-

-
-

Retrieve the FT_Face object that corresponds to a given face ID through a cache manager.

-

-
input
-

- - - -
manager -

A handle to the cache manager.

-
face_id -

The ID of the face object.

-
-
-
output
-

- - -
aface -

A handle to the face object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The returned FT_Face object is always owned by the manager. You should never try to discard it yourself.

-

The FT_Face object doesn't necessarily have a current size object (i.e., face->size can be 0). If you need a specific ‘font size’, use FTC_Manager_LookupSize instead.

-

Never change the face's transformation matrix (i.e., never call the FT_Set_Transform function) on a returned face! If you need to transform glyphs, do it yourself after glyph loading.

-

When you perform a lookup, out-of-memory errors are detected within the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.

-

If a lookup fails with ‘FT_Err_Out_Of_Memory’ the cache has already been completely flushed, and still no memory was available for the operation.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_ScalerRec

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct  FTC_ScalerRec_
-  {
-    FTC_FaceID  face_id;
-    FT_UInt     width;
-    FT_UInt     height;
-    FT_Int      pixel;
-    FT_UInt     x_res;
-    FT_UInt     y_res;
-
-  } FTC_ScalerRec;
-
-

-
-

A structure used to describe a given character size in either pixels or points to the cache manager. See FTC_Manager_LookupSize.

-

-
fields
-

- - - - - - - -
face_id -

The source face ID.

-
width -

The character width.

-
height -

The character height.

-
pixel -

A Boolean. If 1, the ‘width’ and ‘height’ fields are interpreted as integer pixel character sizes. Otherwise, they are expressed as 1/64th of points.

-
x_res -

Only used when ‘pixel’ is value 0 to indicate the horizontal resolution in dpi.

-
y_res -

Only used when ‘pixel’ is value 0 to indicate the vertical resolution in dpi.

-
-
-
note
-

This type is mainly used to retrieve FT_Size objects through the cache manager.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_Scaler

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_ScalerRec_*  FTC_Scaler;
-
-

-
-

A handle to an FTC_ScalerRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_LookupSize

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_Manager_LookupSize( FTC_Manager  manager,
-                          FTC_Scaler   scaler,
-                          FT_Size     *asize );
-
-

-
-

Retrieve the FT_Size object that corresponds to a given FTC_ScalerRec pointer through a cache manager.

-

-
input
-

- - - -
manager -

A handle to the cache manager.

-
scaler -

A scaler handle.

-
-
-
output
-

- - -
asize -

A handle to the size object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The returned FT_Size object is always owned by the manager. You should never try to discard it by yourself.

-

You can access the parent FT_Face object simply as ‘size->face’ if you need it. Note that this object is also owned by the manager.

-
-
note
-

When you perform a lookup, out-of-memory errors are detected within the lookup and force incremental flushes of the cache until enough memory is released for the lookup to succeed.

-

If a lookup fails with ‘FT_Err_Out_Of_Memory’ the cache has already been completely flushed, and still no memory is available for the operation.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_Node_Unref

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( void )
-  FTC_Node_Unref( FTC_Node     node,
-                  FTC_Manager  manager );
-
-

-
-

Decrement a cache node's internal reference count. When the count reaches 0, it is not destroyed but becomes eligible for subsequent cache flushes.

-

-
input
-

- - - -
node -

The cache node handle.

-
manager -

The cache manager handle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FTC_Manager_RemoveFaceID

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( void )
-  FTC_Manager_RemoveFaceID( FTC_Manager  manager,
-                            FTC_FaceID   face_id );
-
-

-
-

A special function used to indicate to the cache manager that a given FTC_FaceID is no longer valid, either because its content changed, or because it was deallocated or uninstalled.

-

-
input
-

- - - -
manager -

The cache manager handle.

-
face_id -

The FTC_FaceID to be removed.

-
-
-
note
-

This function flushes all nodes from the cache corresponding to this ‘face_id’, with the exception of nodes with a non-null reference count.

-

Such nodes are however modified internally so as to never appear in later lookups with the same ‘face_id’ value, and to be immediately destroyed when released by all their users.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_CMapCache

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_CMapCacheRec_*  FTC_CMapCache;
-
-

-
-

An opaque handle used to model a charmap cache. This cache is to hold character codes -> glyph indices mappings.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_CMapCache_New

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_CMapCache_New( FTC_Manager     manager,
-                     FTC_CMapCache  *acache );
-
-

-
-

Create a new charmap cache.

-

-
input
-

- - -
manager -

A handle to the cache manager.

-
-
-
output
-

- - -
acache -

A new cache handle. NULL in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

Like all other caches, this one will be destroyed with the cache manager.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_CMapCache_Lookup

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_UInt )
-  FTC_CMapCache_Lookup( FTC_CMapCache  cache,
-                        FTC_FaceID     face_id,
-                        FT_Int         cmap_index,
-                        FT_UInt32      char_code );
-
-

-
-

Translate a character code into a glyph index, using the charmap cache.

-

-
input
-

- - - - - -
cache -

A charmap cache handle.

-
face_id -

The source face ID.

-
cmap_index -

The index of the charmap in the source face. Any negative value means to use the cache FT_Face's default charmap.

-
char_code -

The character code (in the corresponding charmap).

-
-
-
return
-

Glyph index. 0 means ‘no glyph’.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_ImageTypeRec

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct  FTC_ImageTypeRec_
-  {
-    FTC_FaceID  face_id;
-    FT_Int      width;
-    FT_Int      height;
-    FT_Int32    flags;
-
-  } FTC_ImageTypeRec;
-
-

-
-

A structure used to model the type of images in a glyph cache.

-

-
fields
-

- - - - - -
face_id -

The face ID.

-
width -

The width in pixels.

-
height -

The height in pixels.

-
flags -

The load flags, as in FT_Load_Glyph.

-
-
-
-
- - -
[Index][TOC]
- -
-

FTC_ImageType

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_ImageTypeRec_*  FTC_ImageType;
-
-

-
-

A handle to an FTC_ImageTypeRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_ImageCache

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_ImageCacheRec_*  FTC_ImageCache;
-
-

-
-

A handle to an glyph image cache object. They are designed to hold many distinct glyph images while not exceeding a certain memory threshold.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_ImageCache_New

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_ImageCache_New( FTC_Manager      manager,
-                      FTC_ImageCache  *acache );
-
-

-
-

Create a new glyph image cache.

-

-
input
-

- - -
manager -

The parent manager for the image cache.

-
-
-
output
-

- - -
acache -

A handle to the new glyph image cache object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_ImageCache_Lookup

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_ImageCache_Lookup( FTC_ImageCache  cache,
-                         FTC_ImageType   type,
-                         FT_UInt         gindex,
-                         FT_Glyph       *aglyph,
-                         FTC_Node       *anode );
-
-

-
-

Retrieve a given glyph image from a glyph image cache.

-

-
input
-

- - - - -
cache -

A handle to the source glyph image cache.

-
type -

A pointer to a glyph image type descriptor.

-
gindex -

The glyph index to retrieve.

-
-
-
output
-

- - - -
aglyph -

The corresponding FT_Glyph object. 0 in case of failure.

-
anode -

Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with FT_Glyph_Copy and modify the new one.

-

If ‘anode’ is not NULL, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the FT_Glyph) will always be kept in the cache until you call FTC_Node_Unref to ‘release’ it.

-

If ‘anode’ is NULL, the cache node is left unchanged, which means that the FT_Glyph could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!

-
-
-
- - -
[Index][TOC]
- -
-

FTC_ImageCache_LookupScaler

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_ImageCache_LookupScaler( FTC_ImageCache  cache,
-                               FTC_Scaler      scaler,
-                               FT_ULong        load_flags,
-                               FT_UInt         gindex,
-                               FT_Glyph       *aglyph,
-                               FTC_Node       *anode );
-
-

-
-

A variant of FTC_ImageCache_Lookup that uses an FTC_ScalerRec to specify the face ID and its size.

-

-
input
-

- - - - - -
cache -

A handle to the source glyph image cache.

-
scaler -

A pointer to a scaler descriptor.

-
load_flags -

The corresponding load flags.

-
gindex -

The glyph index to retrieve.

-
-
-
output
-

- - - -
aglyph -

The corresponding FT_Glyph object. 0 in case of failure.

-
anode -

Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The returned glyph is owned and managed by the glyph image cache. Never try to transform or discard it manually! You can however create a copy with FT_Glyph_Copy and modify the new one.

-

If ‘anode’ is not NULL, it receives the address of the cache node containing the glyph image, after increasing its reference count. This ensures that the node (as well as the FT_Glyph) will always be kept in the cache until you call FTC_Node_Unref to ‘release’ it.

-

If ‘anode’ is NULL, the cache node is left unchanged, which means that the FT_Glyph could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!

-

Calls to FT_Set_Char_Size and friends have no effect on cached glyphs; you should always use the FreeType cache API instead.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_SBit

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_SBitRec_*  FTC_SBit;
-
-

-
-

A handle to a small bitmap descriptor. See the FTC_SBitRec structure for details.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_SBitRec

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct  FTC_SBitRec_
-  {
-    FT_Byte   width;
-    FT_Byte   height;
-    FT_Char   left;
-    FT_Char   top;
-
-    FT_Byte   format;
-    FT_Byte   max_grays;
-    FT_Short  pitch;
-    FT_Char   xadvance;
-    FT_Char   yadvance;
-
-    FT_Byte*  buffer;
-
-  } FTC_SBitRec;
-
-

-
-

A very compact structure used to describe a small glyph bitmap.

-

-
fields
-

- - - - - - - - - - - -
width -

The bitmap width in pixels.

-
height -

The bitmap height in pixels.

-
left -

The horizontal distance from the pen position to the left bitmap border (a.k.a. ‘left side bearing’, or ‘lsb’).

-
top -

The vertical distance from the pen position (on the baseline) to the upper bitmap border (a.k.a. ‘top side bearing’). The distance is positive for upwards y coordinates.

-
format -

The format of the glyph bitmap (monochrome or gray).

-
max_grays -

Maximum gray level value (in the range 1 to 255).

-
pitch -

The number of bytes per bitmap line. May be positive or negative.

-
xadvance -

The horizontal advance width in pixels.

-
yadvance -

The vertical advance height in pixels.

-
buffer -

A pointer to the bitmap pixels.

-
-
-
-
- - -
[Index][TOC]
- -
-

FTC_SBitCache

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  typedef struct FTC_SBitCacheRec_*  FTC_SBitCache;
-
-

-
-

A handle to a small bitmap cache. These are special cache objects used to store small glyph bitmaps (and anti-aliased pixmaps) in a much more efficient way than the traditional glyph image cache implemented by FTC_ImageCache.

-

-
-
- - -
[Index][TOC]
- -
-

FTC_SBitCache_New

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_SBitCache_New( FTC_Manager     manager,
-                     FTC_SBitCache  *acache );
-
-

-
-

Create a new cache to store small glyph bitmaps.

-

-
input
-

- - -
manager -

A handle to the source cache manager.

-
-
-
output
-

- - -
acache -

A handle to the new sbit cache. NULL in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FTC_SBitCache_Lookup

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_SBitCache_Lookup( FTC_SBitCache    cache,
-                        FTC_ImageType    type,
-                        FT_UInt          gindex,
-                        FTC_SBit        *sbit,
-                        FTC_Node        *anode );
-
-

-
-

Look up a given small glyph bitmap in a given sbit cache and ‘lock’ it to prevent its flushing from the cache until needed.

-

-
input
-

- - - - -
cache -

A handle to the source sbit cache.

-
type -

A pointer to the glyph image type descriptor.

-
gindex -

The glyph index.

-
-
-
output
-

- - - -
sbit -

A handle to a small bitmap descriptor.

-
anode -

Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.

-

The descriptor's ‘buffer’ field is set to 0 to indicate a missing glyph bitmap.

-

If ‘anode’ is not NULL, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call FTC_Node_Unref to ‘release’ it.

-

If ‘anode’ is NULL, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!

-
-
-
- - -
[Index][TOC]
- -
-

FTC_SBitCache_LookupScaler

-
-Defined in FT_CACHE_H (freetype/ftcache.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FTC_SBitCache_LookupScaler( FTC_SBitCache  cache,
-                              FTC_Scaler     scaler,
-                              FT_ULong       load_flags,
-                              FT_UInt        gindex,
-                              FTC_SBit      *sbit,
-                              FTC_Node      *anode );
-
-

-
-

A variant of FTC_SBitCache_Lookup that uses an FTC_ScalerRec to specify the face ID and its size.

-

-
input
-

- - - - - -
cache -

A handle to the source sbit cache.

-
scaler -

A pointer to the scaler descriptor.

-
load_flags -

The corresponding load flags.

-
gindex -

The glyph index.

-
-
-
output
-

- - - -
sbit -

A handle to a small bitmap descriptor.

-
anode -

Used to return the address of of the corresponding cache node after incrementing its reference count (see note below).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The small bitmap descriptor and its bit buffer are owned by the cache and should never be freed by the application. They might as well disappear from memory on the next cache lookup, so don't treat them as persistent data.

-

The descriptor's ‘buffer’ field is set to 0 to indicate a missing glyph bitmap.

-

If ‘anode’ is not NULL, it receives the address of the cache node containing the bitmap, after increasing its reference count. This ensures that the node (as well as the image) will always be kept in the cache until you call FTC_Node_Unref to ‘release’ it.

-

If ‘anode’ is NULL, the cache node is left unchanged, which means that the bitmap could be flushed out of the cache on the next call to one of the caching sub-system APIs. Don't assume that it is persistent!

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-cid_fonts.html b/src/3rdparty/freetype/docs/reference/ft2-cid_fonts.html deleted file mode 100644 index 37aa4b4bd9..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-cid_fonts.html +++ /dev/null @@ -1,204 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-CID Fonts -

-

Synopsis

- - - - -
FT_Get_CID_Registry_Ordering_Supplement
FT_Get_CID_Is_Internally_CID_Keyed
FT_Get_CID_From_Glyph_Index


- -
-

This section contains the declaration of CID-keyed font specific functions.

-

-
-

FT_Get_CID_Registry_Ordering_Supplement

-
-Defined in FT_CID_H (freetype/ftcid.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_CID_Registry_Ordering_Supplement( FT_Face       face,
-                                           const char*  *registry,
-                                           const char*  *ordering,
-                                           FT_Int       *supplement);
-
-

-
-

Retrieve the Registry/Ordering/Supplement triple (also known as the "R/O/S") from a CID-keyed font.

-

-
input
-

- - -
face -

A handle to the input face.

-
-
-
output
-

- - - - -
registry -

The registry, as a C string, owned by the face.

-
ordering -

The ordering, as a C string, owned by the face.

-
supplement -

The supplement.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with CID faces, returning an error otherwise.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_CID_Is_Internally_CID_Keyed

-
-Defined in FT_CID_H (freetype/ftcid.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_CID_Is_Internally_CID_Keyed( FT_Face   face,
-                                      FT_Bool  *is_cid );
-
-

-
-

Retrieve the type of the input face, CID keyed or not. In constrast to the FT_IS_CID_KEYED macro this function returns successfully also for CID-keyed fonts in an SNFT wrapper.

-

-
input
-

- - -
face -

A handle to the input face.

-
-
-
output
-

- - -
is_cid -

The type of the face as an FT_Bool.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with CID faces and OpenType fonts, returning an error otherwise.

-
-
since
-

2.3.9

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_CID_From_Glyph_Index

-
-Defined in FT_CID_H (freetype/ftcid.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_CID_From_Glyph_Index( FT_Face   face,
-                               FT_UInt   glyph_index,
-                               FT_UInt  *cid );
-
-

-
-

Retrieve the CID of the input glyph index.

-

-
input
-

- - - -
face -

A handle to the input face.

-
glyph_index -

The input glyph index.

-
-
-
output
-

- - -
cid -

The CID as an FT_UInt.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with CID faces and OpenType fonts, returning an error otherwise.

-
-
since
-

2.3.9

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-computations.html b/src/3rdparty/freetype/docs/reference/ft2-computations.html deleted file mode 100644 index 37db13cd28..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-computations.html +++ /dev/null @@ -1,832 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Computations -

-

Synopsis

- - - - - - - - - -
FT_MulDivFT_Matrix_InvertFT_Tan
FT_MulFixFT_AngleFT_Atan2
FT_DivFixFT_ANGLE_PIFT_Angle_Diff
FT_RoundFixFT_ANGLE_2PIFT_Vector_Unit
FT_CeilFixFT_ANGLE_PI2FT_Vector_Rotate
FT_FloorFixFT_ANGLE_PI4FT_Vector_Length
FT_Vector_TransformFT_SinFT_Vector_Polarize
FT_Matrix_MultiplyFT_CosFT_Vector_From_Polar


- -
-

This section contains various functions used to perform computations on 16.16 fixed-float numbers or 2d vectors.

-

-
-

FT_MulDiv

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Long )
-  FT_MulDiv( FT_Long  a,
-             FT_Long  b,
-             FT_Long  c );
-
-

-
-

A very simple function used to perform the computation ‘(a*b)/c’ with maximal accuracy (it uses a 64-bit intermediate integer whenever necessary).

-

This function isn't necessarily as fast as some processor specific operations, but is at least completely portable.

-

-
input
-

- - - - -
a -

The first multiplier.

-
b -

The second multiplier.

-
c -

The divisor.

-
-
-
return
-

The result of ‘(a*b)/c’. This function never traps when trying to divide by zero; it simply returns ‘MaxInt’ or ‘MinInt’ depending on the signs of ‘a’ and ‘b’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_MulFix

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Long )
-  FT_MulFix( FT_Long  a,
-             FT_Long  b );
-
-

-
-

A very simple function used to perform the computation ‘(a*b)/0x10000’ with maximal accuracy. Most of the time this is used to multiply a given value by a 16.16 fixed float factor.

-

-
input
-

- - - -
a -

The first multiplier.

-
b -

The second multiplier. Use a 16.16 factor here whenever possible (see note below).

-
-
-
return
-

The result of ‘(a*b)/0x10000’.

-
-
note
-

This function has been optimized for the case where the absolute value of ‘a’ is less than 2048, and ‘b’ is a 16.16 scaling factor. As this happens mainly when scaling from notional units to fractional pixels in FreeType, it resulted in noticeable speed improvements between versions 2.x and 1.x.

-

As a conclusion, always try to place a 16.16 factor as the second argument of this function; this can make a great difference.

-
-
-
- - -
[Index][TOC]
- -
-

FT_DivFix

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Long )
-  FT_DivFix( FT_Long  a,
-             FT_Long  b );
-
-

-
-

A very simple function used to perform the computation ‘(a*0x10000)/b’ with maximal accuracy. Most of the time, this is used to divide a given value by a 16.16 fixed float factor.

-

-
input
-

- - - -
a -

The first multiplier.

-
b -

The second multiplier. Use a 16.16 factor here whenever possible (see note below).

-
-
-
return
-

The result of ‘(a*0x10000)/b’.

-
-
note
-

The optimization for FT_DivFix() is simple: If (a << 16) fits in 32 bits, then the division is computed directly. Otherwise, we use a specialized version of FT_MulDiv.

-
-
-
- - -
[Index][TOC]
- -
-

FT_RoundFix

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_RoundFix( FT_Fixed  a );
-
-

-
-

A very simple function used to round a 16.16 fixed number.

-

-
input
-

- - -
a -

The number to be rounded.

-
-
-
return
-

The result of ‘(a + 0x8000) & -0x10000’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_CeilFix

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_CeilFix( FT_Fixed  a );
-
-

-
-

A very simple function used to compute the ceiling function of a 16.16 fixed number.

-

-
input
-

- - -
a -

The number for which the ceiling function is to be computed.

-
-
-
return
-

The result of ‘(a + 0x10000 - 1) & -0x10000’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_FloorFix

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_FloorFix( FT_Fixed  a );
-
-

-
-

A very simple function used to compute the floor function of a 16.16 fixed number.

-

-
input
-

- - -
a -

The number for which the floor function is to be computed.

-
-
-
return
-

The result of ‘a & -0x10000’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_Transform

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( void )
-  FT_Vector_Transform( FT_Vector*        vec,
-                       const FT_Matrix*  matrix );
-
-

-
-

Transform a single vector through a 2x2 matrix.

-

-
inout
-

- - -
vector -

The target vector to transform.

-
-
-
input
-

- - -
matrix -

A pointer to the source 2x2 matrix.

-
-
-
note
-

The result is undefined if either ‘vector’ or ‘matrix’ is invalid.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Matrix_Multiply

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( void )
-  FT_Matrix_Multiply( const FT_Matrix*  a,
-                      FT_Matrix*        b );
-
-

-
-

Perform the matrix operation ‘b = a*b’.

-

-
input
-

- - -
a -

A pointer to matrix ‘a’.

-
-
-
inout
-

- - -
b -

A pointer to matrix ‘b’.

-
-
-
note
-

The result is undefined if either ‘a’ or ‘b’ is zero.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Matrix_Invert

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Matrix_Invert( FT_Matrix*  matrix );
-
-

-
-

Invert a 2x2 matrix. Return an error if it can't be inverted.

-

-
inout
-

- - -
matrix -

A pointer to the target matrix. Remains untouched in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Angle

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  typedef FT_Fixed  FT_Angle;
-
-

-
-

This type is used to model angle values in FreeType. Note that the angle is a 16.16 fixed float value expressed in degrees.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ANGLE_PI

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-#define FT_ANGLE_PI  ( 180L << 16 )
-
-

-
-

The angle pi expressed in FT_Angle units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ANGLE_2PI

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-#define FT_ANGLE_2PI  ( FT_ANGLE_PI * 2 )
-
-

-
-

The angle 2*pi expressed in FT_Angle units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ANGLE_PI2

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-#define FT_ANGLE_PI2  ( FT_ANGLE_PI / 2 )
-
-

-
-

The angle pi/2 expressed in FT_Angle units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ANGLE_PI4

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-#define FT_ANGLE_PI4  ( FT_ANGLE_PI / 4 )
-
-

-
-

The angle pi/4 expressed in FT_Angle units.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Sin

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_Sin( FT_Angle  angle );
-
-

-
-

Return the sinus of a given angle in fixed point format.

-

-
input
-

- - -
angle -

The input angle.

-
-
-
return
-

The sinus value.

-
-
note
-

If you need both the sinus and cosinus for a given angle, use the function FT_Vector_Unit.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Cos

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_Cos( FT_Angle  angle );
-
-

-
-

Return the cosinus of a given angle in fixed point format.

-

-
input
-

- - -
angle -

The input angle.

-
-
-
return
-

The cosinus value.

-
-
note
-

If you need both the sinus and cosinus for a given angle, use the function FT_Vector_Unit.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Tan

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_Tan( FT_Angle  angle );
-
-

-
-

Return the tangent of a given angle in fixed point format.

-

-
input
-

- - -
angle -

The input angle.

-
-
-
return
-

The tangent value.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Atan2

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Angle )
-  FT_Atan2( FT_Fixed  x,
-            FT_Fixed  y );
-
-

-
-

Return the arc-tangent corresponding to a given vector (x,y) in the 2d plane.

-

-
input
-

- - - -
x -

The horizontal vector coordinate.

-
y -

The vertical vector coordinate.

-
-
-
return
-

The arc-tangent value (i.e. angle).

-
-
-
- - -
[Index][TOC]
- -
-

FT_Angle_Diff

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Angle )
-  FT_Angle_Diff( FT_Angle  angle1,
-                 FT_Angle  angle2 );
-
-

-
-

Return the difference between two angles. The result is always constrained to the ]-PI..PI] interval.

-

-
input
-

- - - -
angle1 -

First angle.

-
angle2 -

Second angle.

-
-
-
return
-

Constrained value of ‘value2-value1’.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_Unit

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( void )
-  FT_Vector_Unit( FT_Vector*  vec,
-                  FT_Angle    angle );
-
-

-
-

Return the unit vector corresponding to a given angle. After the call, the value of ‘vec.x’ will be ‘sin(angle)’, and the value of ‘vec.y’ will be ‘cos(angle)’.

-

This function is useful to retrieve both the sinus and cosinus of a given angle quickly.

-

-
output
-

- - -
vec -

The address of target vector.

-
-
-
input
-

- - -
angle -

The address of angle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_Rotate

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( void )
-  FT_Vector_Rotate( FT_Vector*  vec,
-                    FT_Angle    angle );
-
-

-
-

Rotate a vector by a given angle.

-

-
inout
-

- - -
vec -

The address of target vector.

-
-
-
input
-

- - -
angle -

The address of angle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_Length

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( FT_Fixed )
-  FT_Vector_Length( FT_Vector*  vec );
-
-

-
-

Return the length of a given vector.

-

-
input
-

- - -
vec -

The address of target vector.

-
-
-
return
-

The vector length, expressed in the same units that the original vector coordinates.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_Polarize

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( void )
-  FT_Vector_Polarize( FT_Vector*  vec,
-                      FT_Fixed   *length,
-                      FT_Angle   *angle );
-
-

-
-

Compute both the length and angle of a given vector.

-

-
input
-

- - -
vec -

The address of source vector.

-
-
-
output
-

- - - -
length -

The vector length.

-
angle -

The vector angle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Vector_From_Polar

-
-Defined in FT_TRIGONOMETRY_H (freetype/fttrigon.h). -

-
-
-  FT_EXPORT( void )
-  FT_Vector_From_Polar( FT_Vector*  vec,
-                        FT_Fixed    length,
-                        FT_Angle    angle );
-
-

-
-

Compute vector coordinates from a length and angle.

-

-
output
-

- - -
vec -

The address of source vector.

-
-
-
input
-

- - - -
length -

The vector length.

-
angle -

The vector angle.

-
-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-font_formats.html b/src/3rdparty/freetype/docs/reference/ft2-font_formats.html deleted file mode 100644 index 677f5c2ce5..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-font_formats.html +++ /dev/null @@ -1,84 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Font Formats -

-

Synopsis

- - -
FT_Get_X11_Font_Format


- -
-

The single function in this section can be used to get the font format. Note that this information is not needed normally; however, there are special cases (like in PDF devices) where it is important to differentiate, in spite of FreeType's uniform API.

-

This function is in the X11/xf86 namespace for historical reasons and in no way depends on that windowing system.

-

-
-

FT_Get_X11_Font_Format

-
-Defined in FT_XFREE86_H (freetype/ftxf86.h). -

-
-
-  FT_EXPORT( const char* )
-  FT_Get_X11_Font_Format( FT_Face  face );
-
-

-
-

Return a string describing the format of a given face, using values which can be used as an X11 FONT_PROPERTY. Possible values are ‘TrueType’, ‘Type 1’, ‘BDF’, ‘PCF’, ‘Type 42’, ‘CID Type 1’, ‘CFF’, ‘PFR’, and ‘Windows FNT’.

-

-
input
-

- - -
face -

Input face handle.

-
-
-
return
-

Font format string. NULL in case of error.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-gasp_table.html b/src/3rdparty/freetype/docs/reference/ft2-gasp_table.html deleted file mode 100644 index 613cb65452..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-gasp_table.html +++ /dev/null @@ -1,141 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Gasp Table -

-

Synopsis

- - -
FT_GASP_XXXFT_Get_Gasp


- -
-

The function FT_Get_Gasp can be used to query a TrueType or OpenType font for specific entries in its ‘gasp’ table, if any. This is mainly useful when implementing native TrueType hinting with the bytecode interpreter to duplicate the Windows text rendering results.

-

-
-

FT_GASP_XXX

-
-Defined in FT_GASP_H (freetype/ftgasp.h). -

-
-
-#define FT_GASP_NO_TABLE               -1
-#define FT_GASP_DO_GRIDFIT           0x01
-#define FT_GASP_DO_GRAY              0x02
-#define FT_GASP_SYMMETRIC_SMOOTHING  0x08
-#define FT_GASP_SYMMETRIC_GRIDFIT    0x10
-
-

-
-

A list of values and/or bit-flags returned by the FT_Get_Gasp function.

-

-
values
-

- - - - - - - - -
FT_GASP_NO_TABLE -

This special value means that there is no GASP table in this face. It is up to the client to decide what to do.

-
FT_GASP_DO_GRIDFIT -

Grid-fitting and hinting should be performed at the specified ppem. This really means TrueType bytecode interpretation.

-
FT_GASP_DO_GRAY -

Anti-aliased rendering should be performed at the specified ppem.

-
FT_GASP_SYMMETRIC_SMOOTHING
-

Smoothing along multiple axes must be used with ClearType.

-
FT_GASP_SYMMETRIC_GRIDFIT
-

Grid-fitting must be used with ClearType's symmetric smoothing.

-
-
-
note
-

‘ClearType’ is Microsoft's implementation of LCD rendering, partly protected by patents.

-
-
since
-

2.3.0

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Gasp

-
-Defined in FT_GASP_H (freetype/ftgasp.h). -

-
-
-  FT_EXPORT( FT_Int )
-  FT_Get_Gasp( FT_Face  face,
-               FT_UInt  ppem );
-
-

-
-

Read the ‘gasp’ table from a TrueType or OpenType font file and return the entry corresponding to a given character pixel size.

-

-
input
-

- - - -
face -

The source face handle.

-
ppem -

The vertical character pixel size.

-
-
-
return
-

Bit flags (see FT_GASP_XXX), or FT_GASP_NO_TABLE if there is no ‘gasp’ table in the face.

-
-
since
-

2.3.0

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-glyph_management.html b/src/3rdparty/freetype/docs/reference/ft2-glyph_management.html deleted file mode 100644 index 65335e8a4d..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-glyph_management.html +++ /dev/null @@ -1,672 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Glyph Management -

-

Synopsis

- - - - - - -
FT_GlyphFT_OutlineGlyphRecft_glyph_bbox_xxx
FT_GlyphRecFT_Get_GlyphFT_Glyph_Get_CBox
FT_BitmapGlyphFT_Glyph_CopyFT_Glyph_To_Bitmap
FT_BitmapGlyphRecFT_Glyph_TransformFT_Done_Glyph
FT_OutlineGlyphFT_Glyph_BBox_Mode


- -
-

This section contains definitions used to manage glyph data through generic FT_Glyph objects. Each of them can contain a bitmap, a vector outline, or even images in other formats.

-

-
-

FT_Glyph

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct FT_GlyphRec_*  FT_Glyph;
-
-

-
-

Handle to an object used to model generic glyph images. It is a pointer to the FT_GlyphRec structure and can contain a glyph bitmap or pointer.

-

-
note
-

Glyph objects are not owned by the library. You must thus release them manually (through FT_Done_Glyph) before calling FT_Done_FreeType.

-
-
-
- - -
[Index][TOC]
- -
-

FT_GlyphRec

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct  FT_GlyphRec_
-  {
-    FT_Library             library;
-    const FT_Glyph_Class*  clazz;
-    FT_Glyph_Format        format;
-    FT_Vector              advance;
-
-  } FT_GlyphRec;
-
-

-
-

The root glyph structure contains a given glyph image plus its advance width in 16.16 fixed float format.

-

-
fields
-

- - - - - -
library -

A handle to the FreeType library object.

-
clazz -

A pointer to the glyph's class. Private.

-
format -

The format of the glyph's image.

-
advance -

A 16.16 vector that gives the glyph's advance width.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_BitmapGlyph

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct FT_BitmapGlyphRec_*  FT_BitmapGlyph;
-
-

-
-

A handle to an object used to model a bitmap glyph image. This is a sub-class of FT_Glyph, and a pointer to FT_BitmapGlyphRec.

-

-
-
- - -
[Index][TOC]
- -
-

FT_BitmapGlyphRec

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct  FT_BitmapGlyphRec_
-  {
-    FT_GlyphRec  root;
-    FT_Int       left;
-    FT_Int       top;
-    FT_Bitmap    bitmap;
-
-  } FT_BitmapGlyphRec;
-
-

-
-

A structure used for bitmap glyph images. This really is a ‘sub-class’ of FT_GlyphRec.

-

-
fields
-

- - - - - -
root -

The root FT_Glyph fields.

-
left -

The left-side bearing, i.e., the horizontal distance from the current pen position to the left border of the glyph bitmap.

-
top -

The top-side bearing, i.e., the vertical distance from the current pen position to the top border of the glyph bitmap. This distance is positive for upwards y!

-
bitmap -

A descriptor for the bitmap.

-
-
-
note
-

You can typecast an FT_Glyph to FT_BitmapGlyph if you have ‘glyph->format == FT_GLYPH_FORMAT_BITMAP’. This lets you access the bitmap's contents easily.

-

The corresponding pixel buffer is always owned by FT_BitmapGlyph and is thus created and destroyed with it.

-
-
-
- - -
[Index][TOC]
- -
-

FT_OutlineGlyph

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct FT_OutlineGlyphRec_*  FT_OutlineGlyph;
-
-

-
-

A handle to an object used to model an outline glyph image. This is a sub-class of FT_Glyph, and a pointer to FT_OutlineGlyphRec.

-

-
-
- - -
[Index][TOC]
- -
-

FT_OutlineGlyphRec

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef struct  FT_OutlineGlyphRec_
-  {
-    FT_GlyphRec  root;
-    FT_Outline   outline;
-
-  } FT_OutlineGlyphRec;
-
-

-
-

A structure used for outline (vectorial) glyph images. This really is a ‘sub-class’ of FT_GlyphRec.

-

-
fields
-

- - - -
root -

The root FT_Glyph fields.

-
outline -

A descriptor for the outline.

-
-
-
note
-

You can typecast an FT_Glyph to FT_OutlineGlyph if you have ‘glyph->format == FT_GLYPH_FORMAT_OUTLINE’. This lets you access the outline's content easily.

-

As the outline is extracted from a glyph slot, its coordinates are expressed normally in 26.6 pixels, unless the flag FT_LOAD_NO_SCALE was used in FT_Load_Glyph() or FT_Load_Char().

-

The outline's tables are always owned by the object and are destroyed with it.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Glyph

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Glyph( FT_GlyphSlot  slot,
-                FT_Glyph     *aglyph );
-
-

-
-

A function used to extract a glyph image from a slot. Note that the created FT_Glyph object must be released with FT_Done_Glyph.

-

-
input
-

- - -
slot -

A handle to the source glyph slot.

-
-
-
output
-

- - -
aglyph -

A handle to the glyph object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Copy

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Copy( FT_Glyph   source,
-                 FT_Glyph  *target );
-
-

-
-

A function used to copy a glyph image. Note that the created FT_Glyph object must be released with FT_Done_Glyph.

-

-
input
-

- - -
source -

A handle to the source glyph object.

-
-
-
output
-

- - -
target -

A handle to the target glyph object. 0 in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Transform

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Transform( FT_Glyph    glyph,
-                      FT_Matrix*  matrix,
-                      FT_Vector*  delta );
-
-

-
-

Transform a glyph image if its format is scalable.

-

-
inout
-

- - -
glyph -

A handle to the target glyph object.

-
-
-
input
-

- - - -
matrix -

A pointer to a 2x2 matrix to apply.

-
delta -

A pointer to a 2d vector to apply. Coordinates are expressed in 1/64th of a pixel.

-
-
-
return
-

FreeType error code (if not 0, the glyph format is not scalable).

-
-
note
-

The 2x2 transformation matrix is also applied to the glyph's advance vector.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_BBox_Mode

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  typedef enum  FT_Glyph_BBox_Mode_
-  {
-    FT_GLYPH_BBOX_UNSCALED  = 0,
-    FT_GLYPH_BBOX_SUBPIXELS = 0,
-    FT_GLYPH_BBOX_GRIDFIT   = 1,
-    FT_GLYPH_BBOX_TRUNCATE  = 2,
-    FT_GLYPH_BBOX_PIXELS    = 3
-
-  } FT_Glyph_BBox_Mode;
-
-

-
-

The mode how the values of FT_Glyph_Get_CBox are returned.

-

-
values
-

- - - - - - - -
FT_GLYPH_BBOX_UNSCALED -

Return unscaled font units.

-
FT_GLYPH_BBOX_SUBPIXELS
-

Return unfitted 26.6 coordinates.

-
FT_GLYPH_BBOX_GRIDFIT -

Return grid-fitted 26.6 coordinates.

-
FT_GLYPH_BBOX_TRUNCATE -

Return coordinates in integer pixels.

-
FT_GLYPH_BBOX_PIXELS -

Return grid-fitted pixel coordinates.

-
-
-
-
- - -
[Index][TOC]
- -
-

ft_glyph_bbox_xxx

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-#define ft_glyph_bbox_unscaled   FT_GLYPH_BBOX_UNSCALED
-#define ft_glyph_bbox_subpixels  FT_GLYPH_BBOX_SUBPIXELS
-#define ft_glyph_bbox_gridfit    FT_GLYPH_BBOX_GRIDFIT
-#define ft_glyph_bbox_truncate   FT_GLYPH_BBOX_TRUNCATE
-#define ft_glyph_bbox_pixels     FT_GLYPH_BBOX_PIXELS
-
-

-
-

These constants are deprecated. Use the corresponding FT_Glyph_BBox_Mode values instead.

-

-
values
-

- - - - - - - -
ft_glyph_bbox_unscaled -

See FT_GLYPH_BBOX_UNSCALED.

-
ft_glyph_bbox_subpixels
-

See FT_GLYPH_BBOX_SUBPIXELS.

-
ft_glyph_bbox_gridfit -

See FT_GLYPH_BBOX_GRIDFIT.

-
ft_glyph_bbox_truncate -

See FT_GLYPH_BBOX_TRUNCATE.

-
ft_glyph_bbox_pixels -

See FT_GLYPH_BBOX_PIXELS.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Get_CBox

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( void )
-  FT_Glyph_Get_CBox( FT_Glyph  glyph,
-                     FT_UInt   bbox_mode,
-                     FT_BBox  *acbox );
-
-

-
-

Return a glyph's ‘control box’. The control box encloses all the outline's points, including Bézier control points. Though it coincides with the exact bounding box for most glyphs, it can be slightly larger in some situations (like when rotating an outline which contains Bézier outside arcs).

-

Computing the control box is very fast, while getting the bounding box can take much more time as it needs to walk over all segments and arcs in the outline. To get the latter, you can use the ‘ftbbox’ component which is dedicated to this single task.

-

-
input
-

- - - -
glyph -

A handle to the source glyph object.

-
mode -

The mode which indicates how to interpret the returned bounding box values.

-
-
-
output
-

- - -
acbox -

The glyph coordinate bounding box. Coordinates are expressed in 1/64th of pixels if it is grid-fitted.

-
-
-
note
-

Coordinates are relative to the glyph origin, using the y upwards convention.

-

If the glyph has been loaded with FT_LOAD_NO_SCALE, ‘bbox_mode’ must be set to FT_GLYPH_BBOX_UNSCALED to get unscaled font units in 26.6 pixel format. The value FT_GLYPH_BBOX_SUBPIXELS is another name for this constant.

-

Note that the maximum coordinates are exclusive, which means that one can compute the width and height of the glyph image (be it in integer or 26.6 pixels) as:

-
-  width  = bbox.xMax - bbox.xMin;                                  
-  height = bbox.yMax - bbox.yMin;                                  
-
-

Note also that for 26.6 coordinates, if ‘bbox_mode’ is set to FT_GLYPH_BBOX_GRIDFIT, the coordinates will also be grid-fitted, which corresponds to:

-
-  bbox.xMin = FLOOR(bbox.xMin);                                    
-  bbox.yMin = FLOOR(bbox.yMin);                                    
-  bbox.xMax = CEILING(bbox.xMax);                                  
-  bbox.yMax = CEILING(bbox.yMax);                                  
-
-

To get the bbox in pixel coordinates, set ‘bbox_mode’ to FT_GLYPH_BBOX_TRUNCATE.

-

To get the bbox in grid-fitted pixel coordinates, set ‘bbox_mode’ to FT_GLYPH_BBOX_PIXELS.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_To_Bitmap

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Glyph_To_Bitmap( FT_Glyph*       the_glyph,
-                      FT_Render_Mode  render_mode,
-                      FT_Vector*      origin,
-                      FT_Bool         destroy );
-
-

-
-

Convert a given glyph object to a bitmap glyph object.

-

-
inout
-

- - -
the_glyph -

A pointer to a handle to the target glyph.

-
-
-
input
-

- - - - -
render_mode -

An enumeration that describes how the data is rendered.

-
origin -

A pointer to a vector used to translate the glyph image before rendering. Can be 0 (if no translation). The origin is expressed in 26.6 pixels.

-
destroy -

A boolean that indicates that the original glyph image should be destroyed by this function. It is never destroyed in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function does nothing if the glyph format isn't scalable.

-

The glyph image is translated with the ‘origin’ vector before rendering.

-

The first parameter is a pointer to an FT_Glyph handle, that will be replaced by this function (with newly allocated data). Typically, you would use (omitting error handling):

-

-
-  FT_Glyph        glyph;                                         
-  FT_BitmapGlyph  glyph_bitmap;                                  
-                                                                 
-                                                                 
-  // load glyph                                                  
-  error = FT_Load_Char( face, glyph_index, FT_LOAD_DEFAUT );     
-                                                                 
-  // extract glyph image                                         
-  error = FT_Get_Glyph( face->glyph, &glyph );                   
-                                                                 
-  // convert to a bitmap (default render mode + destroying old)  
-  if ( glyph->format != FT_GLYPH_FORMAT_BITMAP )                 
-  {                                                              
-    error = FT_Glyph_To_Bitmap( &glyph, FT_RENDER_MODE_NORMAL,   
-                                0, 1 );                          
-    if ( error ) // `glyph' unchanged                            
-      ...                                                        
-  }                                                              
-                                                                 
-  // access bitmap content by typecasting                        
-  glyph_bitmap = (FT_BitmapGlyph)glyph;                          
-                                                                 
-  // do funny stuff with it, like blitting/drawing               
-  ...                                                            
-                                                                 
-  // discard glyph image (bitmap or not)                         
-  FT_Done_Glyph( glyph );                                        
-
-

-

Here another example, again without error handling:

-

-
-  FT_Glyph  glyphs[MAX_GLYPHS]                                   
-                                                                 
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-    error = FT_Load_Glyph( face, idx, FT_LOAD_DEFAULT ) ||       
-            FT_Get_Glyph ( face->glyph, &glyph[idx] );           
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-  {                                                              
-    FT_Glyph  bitmap = glyphs[idx];                              
-                                                                 
-                                                                 
-    ...                                                          
-                                                                 
-    // after this call, `bitmap' no longer points into           
-    // the `glyphs' array (and the old value isn't destroyed)    
-    FT_Glyph_To_Bitmap( &bitmap, FT_RENDER_MODE_MONO, 0, 0 );    
-                                                                 
-    ...                                                          
-                                                                 
-    FT_Done_Glyph( bitmap );                                     
-  }                                                              
-                                                                 
-  ...                                                            
-                                                                 
-  for ( idx = 0; i < MAX_GLYPHS; i++ )                           
-    FT_Done_Glyph( glyphs[idx] );                                
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Done_Glyph

-
-Defined in FT_GLYPH_H (freetype/ftglyph.h). -

-
-
-  FT_EXPORT( void )
-  FT_Done_Glyph( FT_Glyph  glyph );
-
-

-
-

Destroy a given glyph.

-

-
input
-

- - -
glyph -

A handle to the target glyph object.

-
-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-glyph_stroker.html b/src/3rdparty/freetype/docs/reference/ft2-glyph_stroker.html deleted file mode 100644 index 9f0eb06663..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-glyph_stroker.html +++ /dev/null @@ -1,928 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Glyph Stroker -

-

Synopsis

- - - - - - - - - - - - -
FT_StrokerFT_Stroker_EndSubPath
FT_Stroker_LineJoinFT_Stroker_LineTo
FT_Stroker_LineCapFT_Stroker_ConicTo
FT_StrokerBorderFT_Stroker_CubicTo
FT_Outline_GetInsideBorderFT_Stroker_GetBorderCounts
FT_Outline_GetOutsideBorderFT_Stroker_ExportBorder
FT_Stroker_NewFT_Stroker_GetCounts
FT_Stroker_SetFT_Stroker_Export
FT_Stroker_RewindFT_Stroker_Done
FT_Stroker_ParseOutlineFT_Glyph_Stroke
FT_Stroker_BeginSubPathFT_Glyph_StrokeBorder


- -
-

This component generates stroked outlines of a given vectorial glyph. It also allows you to retrieve the ‘outside’ and/or the ‘inside’ borders of the stroke.

-

This can be useful to generate ‘bordered’ glyph, i.e., glyphs displayed with a coloured (and anti-aliased) border around their shape.

-

-
-

FT_Stroker

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  typedef struct FT_StrokerRec_*  FT_Stroker;
-
-

-
-

Opaque handler to a path stroker object.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_LineJoin

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  typedef enum  FT_Stroker_LineJoin_
-  {
-    FT_STROKER_LINEJOIN_ROUND = 0,
-    FT_STROKER_LINEJOIN_BEVEL,
-    FT_STROKER_LINEJOIN_MITER
-
-  } FT_Stroker_LineJoin;
-
-

-
-

These values determine how two joining lines are rendered in a stroker.

-

-
values
-

- - - - - - - -
FT_STROKER_LINEJOIN_ROUND
-

Used to render rounded line joins. Circular arcs are used to join two lines smoothly.

-
FT_STROKER_LINEJOIN_BEVEL
-

Used to render beveled line joins; i.e., the two joining lines are extended until they intersect.

-
FT_STROKER_LINEJOIN_MITER
-

Same as beveled rendering, except that an additional line break is added if the angle between the two joining lines is too closed (this is useful to avoid unpleasant spikes in beveled rendering).

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_LineCap

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  typedef enum  FT_Stroker_LineCap_
-  {
-    FT_STROKER_LINECAP_BUTT = 0,
-    FT_STROKER_LINECAP_ROUND,
-    FT_STROKER_LINECAP_SQUARE
-
-  } FT_Stroker_LineCap;
-
-

-
-

These values determine how the end of opened sub-paths are rendered in a stroke.

-

-
values
-

- - - - - - - -
FT_STROKER_LINECAP_BUTT
-

The end of lines is rendered as a full stop on the last point itself.

-
FT_STROKER_LINECAP_ROUND
-

The end of lines is rendered as a half-circle around the last point.

-
FT_STROKER_LINECAP_SQUARE
-

The end of lines is rendered as a square around the last point.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_StrokerBorder

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  typedef enum  FT_StrokerBorder_
-  {
-    FT_STROKER_BORDER_LEFT = 0,
-    FT_STROKER_BORDER_RIGHT
-
-  } FT_StrokerBorder;
-
-

-
-

These values are used to select a given stroke border in FT_Stroker_GetBorderCounts and FT_Stroker_ExportBorder.

-

-
values
-

- - - - -
FT_STROKER_BORDER_LEFT -

Select the left border, relative to the drawing direction.

-
FT_STROKER_BORDER_RIGHT
-

Select the right border, relative to the drawing direction.

-
-
-
note
-

Applications are generally interested in the ‘inside’ and ‘outside’ borders. However, there is no direct mapping between these and the ‘left’ and ‘right’ ones, since this really depends on the glyph's drawing orientation, which varies between font formats.

-

You can however use FT_Outline_GetInsideBorder and FT_Outline_GetOutsideBorder to get these.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_GetInsideBorder

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_StrokerBorder )
-  FT_Outline_GetInsideBorder( FT_Outline*  outline );
-
-

-
-

Retrieve the FT_StrokerBorder value corresponding to the ‘inside’ borders of a given outline.

-

-
input
-

- - -
outline -

The source outline handle.

-
-
-
return
-

The border index. FT_STROKER_BORDER_RIGHT for empty or invalid outlines.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_GetOutsideBorder

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_StrokerBorder )
-  FT_Outline_GetOutsideBorder( FT_Outline*  outline );
-
-

-
-

Retrieve the FT_StrokerBorder value corresponding to the ‘outside’ borders of a given outline.

-

-
input
-

- - -
outline -

The source outline handle.

-
-
-
return
-

The border index. FT_STROKER_BORDER_LEFT for empty or invalid outlines.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_New

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_New( FT_Library   library,
-                  FT_Stroker  *astroker );
-
-

-
-

Create a new stroker object.

-

-
input
-

- - -
library -

FreeType library handle.

-
-
-
output
-

- - -
astroker -

A new stroker object handle. NULL in case of error.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_Set

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( void )
-  FT_Stroker_Set( FT_Stroker           stroker,
-                  FT_Fixed             radius,
-                  FT_Stroker_LineCap   line_cap,
-                  FT_Stroker_LineJoin  line_join,
-                  FT_Fixed             miter_limit );
-
-

-
-

Reset a stroker object's attributes.

-

-
input
-

- - - - - - -
stroker -

The target stroker handle.

-
radius -

The border radius.

-
line_cap -

The line cap style.

-
line_join -

The line join style.

-
miter_limit -

The miter limit for the FT_STROKER_LINEJOIN_MITER style, expressed as 16.16 fixed point value.

-
-
-
note
-

The radius is expressed in the same units as the outline coordinates.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_Rewind

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( void )
-  FT_Stroker_Rewind( FT_Stroker  stroker );
-
-

-
-

Reset a stroker object without changing its attributes. You should call this function before beginning a new series of calls to FT_Stroker_BeginSubPath or FT_Stroker_EndSubPath.

-

-
input
-

- - -
stroker -

The target stroker handle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_ParseOutline

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_ParseOutline( FT_Stroker   stroker,
-                           FT_Outline*  outline,
-                           FT_Bool      opened );
-
-

-
-

A convenience function used to parse a whole outline with the stroker. The resulting outline(s) can be retrieved later by functions like FT_Stroker_GetCounts and FT_Stroker_Export.

-

-
input
-

- - - - -
stroker -

The target stroker handle.

-
outline -

The source outline.

-
opened -

A boolean. If 1, the outline is treated as an open path instead of a closed one.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If ‘opened’ is 0 (the default), the outline is treated as a closed path, and the stroker generates two distinct ‘border’ outlines.

-

If ‘opened’ is 1, the outline is processed as an open path, and the stroker generates a single ‘stroke’ outline.

-

This function calls FT_Stroker_Rewind automatically.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_BeginSubPath

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_BeginSubPath( FT_Stroker  stroker,
-                           FT_Vector*  to,
-                           FT_Bool     open );
-
-

-
-

Start a new sub-path in the stroker.

-

-
input
-

- - - - -
stroker -

The target stroker handle.

-
to -

A pointer to the start vector.

-
open -

A boolean. If 1, the sub-path is treated as an open one.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function is useful when you need to stroke a path that is not stored as an FT_Outline object.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_EndSubPath

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_EndSubPath( FT_Stroker  stroker );
-
-

-
-

Close the current sub-path in the stroker.

-

-
input
-

- - -
stroker -

The target stroker handle.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You should call this function after FT_Stroker_BeginSubPath. If the subpath was not ‘opened’, this function ‘draws’ a single line segment to the start position when needed.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_LineTo

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_LineTo( FT_Stroker  stroker,
-                     FT_Vector*  to );
-
-

-
-

‘Draw’ a single line segment in the stroker's current sub-path, from the last position.

-

-
input
-

- - - -
stroker -

The target stroker handle.

-
to -

A pointer to the destination point.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You should call this function between FT_Stroker_BeginSubPath and FT_Stroker_EndSubPath.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_ConicTo

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_ConicTo( FT_Stroker  stroker,
-                      FT_Vector*  control,
-                      FT_Vector*  to );
-
-

-
-

‘Draw’ a single quadratic Bézier in the stroker's current sub-path, from the last position.

-

-
input
-

- - - - -
stroker -

The target stroker handle.

-
control -

A pointer to a Bézier control point.

-
to -

A pointer to the destination point.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You should call this function between FT_Stroker_BeginSubPath and FT_Stroker_EndSubPath.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_CubicTo

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_CubicTo( FT_Stroker  stroker,
-                      FT_Vector*  control1,
-                      FT_Vector*  control2,
-                      FT_Vector*  to );
-
-

-
-

‘Draw’ a single cubic Bézier in the stroker's current sub-path, from the last position.

-

-
input
-

- - - - - -
stroker -

The target stroker handle.

-
control1 -

A pointer to the first Bézier control point.

-
control2 -

A pointer to second Bézier control point.

-
to -

A pointer to the destination point.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You should call this function between FT_Stroker_BeginSubPath and FT_Stroker_EndSubPath.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_GetBorderCounts

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_GetBorderCounts( FT_Stroker        stroker,
-                              FT_StrokerBorder  border,
-                              FT_UInt          *anum_points,
-                              FT_UInt          *anum_contours );
-
-

-
-

Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export one of the ‘border’ or ‘stroke’ outlines generated by the stroker.

-

-
input
-

- - - -
stroker -

The target stroker handle.

-
border -

The border index.

-
-
-
output
-

- - - -
anum_points -

The number of points.

-
anum_contours -

The number of contours.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

When an outline, or a sub-path, is ‘closed’, the stroker generates two independent ‘border’ outlines, named ‘left’ and ‘right’.

-

When the outline, or a sub-path, is ‘opened’, the stroker merges the ‘border’ outlines with caps. The ‘left’ border receives all points, while the ‘right’ border becomes empty.

-

Use the function FT_Stroker_GetCounts instead if you want to retrieve the counts associated to both borders.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_ExportBorder

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( void )
-  FT_Stroker_ExportBorder( FT_Stroker        stroker,
-                           FT_StrokerBorder  border,
-                           FT_Outline*       outline );
-
-

-
-

Call this function after FT_Stroker_GetBorderCounts to export the corresponding border to your own FT_Outline structure.

-

Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.

-

-
input
-

- - - - -
stroker -

The target stroker handle.

-
border -

The border index.

-
outline -

The target outline handle.

-
-
-
note
-

Always call this function after FT_Stroker_GetBorderCounts to get sure that there is enough room in your FT_Outline object to receive all new data.

-

When an outline, or a sub-path, is ‘closed’, the stroker generates two independent ‘border’ outlines, named ‘left’ and ‘right’

-

When the outline, or a sub-path, is ‘opened’, the stroker merges the ‘border’ outlines with caps. The ‘left’ border receives all points, while the ‘right’ border becomes empty.

-

Use the function FT_Stroker_Export instead if you want to retrieve all borders at once.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_GetCounts

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stroker_GetCounts( FT_Stroker  stroker,
-                        FT_UInt    *anum_points,
-                        FT_UInt    *anum_contours );
-
-

-
-

Call this function once you have finished parsing your paths with the stroker. It returns the number of points and contours necessary to export all points/borders from the stroked outline/path.

-

-
input
-

- - -
stroker -

The target stroker handle.

-
-
-
output
-

- - - -
anum_points -

The number of points.

-
anum_contours -

The number of contours.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_Export

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( void )
-  FT_Stroker_Export( FT_Stroker   stroker,
-                     FT_Outline*  outline );
-
-

-
-

Call this function after FT_Stroker_GetBorderCounts to export all borders to your own FT_Outline structure.

-

Note that this function appends the border points and contours to your outline, but does not try to resize its arrays.

-

-
input
-

- - - -
stroker -

The target stroker handle.

-
outline -

The target outline handle.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Stroker_Done

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( void )
-  FT_Stroker_Done( FT_Stroker  stroker );
-
-

-
-

Destroy a stroker object.

-

-
input
-

- - -
stroker -

A stroker handle. Can be NULL.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_Stroke

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Glyph_Stroke( FT_Glyph    *pglyph,
-                   FT_Stroker   stroker,
-                   FT_Bool      destroy );
-
-

-
-

Stroke a given outline glyph object with a given stroker.

-

-
inout
-

- - -
pglyph -

Source glyph handle on input, new glyph handle on output.

-
-
-
input
-

- - - -
stroker -

A stroker handle.

-
destroy -

A Boolean. If 1, the source glyph object is destroyed on success.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The source glyph is untouched in case of error.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Glyph_StrokeBorder

-
-Defined in FT_STROKER_H (freetype/ftstroke.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Glyph_StrokeBorder( FT_Glyph    *pglyph,
-                         FT_Stroker   stroker,
-                         FT_Bool      inside,
-                         FT_Bool      destroy );
-
-

-
-

Stroke a given outline glyph object with a given stroker, but only return either its inside or outside border.

-

-
inout
-

- - -
pglyph -

Source glyph handle on input, new glyph handle on output.

-
-
-
input
-

- - - - -
stroker -

A stroker handle.

-
inside -

A Boolean. If 1, return the inside border, otherwise the outside border.

-
destroy -

A Boolean. If 1, the source glyph object is destroyed on success.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The source glyph is untouched in case of error.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-glyph_variants.html b/src/3rdparty/freetype/docs/reference/ft2-glyph_variants.html deleted file mode 100644 index b59ce8a8d5..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-glyph_variants.html +++ /dev/null @@ -1,267 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Glyph Variants -

-

Synopsis

- - - - -
FT_Face_GetCharVariantIndexFT_Face_GetVariantsOfChar
FT_Face_GetCharVariantIsDefaultFT_Face_GetCharsOfVariant
FT_Face_GetVariantSelectors


- -
-

Many CJK characters have variant forms. They are a sort of grey area somewhere between being totally irrelevant and semantically distinct; for this reason, the Unicode consortium decided to introduce Ideographic Variation Sequences (IVS), consisting of a Unicode base character and one of 240 variant selectors (U+E0100-U+E01EF), instead of further extending the already huge code range for CJK characters.

-

An IVS is registered and unique; for further details please refer to Unicode Technical Report #37, the Ideographic Variation Database. To date (October 2007), the character with the most variants is U+908A, having 8 such IVS.

-

Adobe and MS decided to support IVS with a new cmap subtable (format 14). It is an odd subtable because it is not a mapping of input code points to glyphs, but contains lists of all variants supported by the font.

-

A variant may be either ‘default’ or ‘non-default’. A default variant is the one you will get for that code point if you look it up in the standard Unicode cmap. A non-default variant is a different glyph.

-

-
-

FT_Face_GetCharVariantIndex

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt )
-  FT_Face_GetCharVariantIndex( FT_Face   face,
-                               FT_ULong  charcode,
-                               FT_ULong  variantSelector );
-
-

-
-

Return the glyph index of a given character code as modified by the variation selector.

-

-
input
-

- - - - -
face -

A handle to the source face object.

-
charcode -

The character code point in Unicode.

-
variantSelector -

The Unicode code point of the variation selector.

-
-
-
return
-

The glyph index. 0 means either ‘undefined character code’, or ‘undefined selector code’, or ‘no variation selector cmap subtable’, or ‘current CharMap is not Unicode’.

-
-
note
-

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 0 always corresponds to the ‘missing glyph’.

-

This function is only meaningful if a) the font has a variation selector cmap sub table, and b) the current charmap has a Unicode encoding.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_GetCharVariantIsDefault

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Int )
-  FT_Face_GetCharVariantIsDefault( FT_Face   face,
-                                   FT_ULong  charcode,
-                                   FT_ULong  variantSelector );
-
-

-
-

Check whether this variant of this Unicode character is the one to be found in the ‘cmap’.

-

-
input
-

- - - - -
face -

A handle to the source face object.

-
charcode -

The character codepoint in Unicode.

-
variantSelector -

The Unicode codepoint of the variation selector.

-
-
-
return
-

1 if found in the standard (Unicode) cmap, 0 if found in the variation selector cmap, or -1 if it is not a variant.

-
-
note
-

This function is only meaningful if the font has a variation selector cmap subtable.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_GetVariantSelectors

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt32* )
-  FT_Face_GetVariantSelectors( FT_Face  face );
-
-

-
-

Return a zero-terminated list of Unicode variant selectors found in the font.

-

-
input
-

- - -
face -

A handle to the source face object.

-
-
-
return
-

A pointer to an array of selector code points, or NULL if there is no valid variant selector cmap subtable.

-
-
note
-

The last item in the array is 0; the array is owned by the FT_Face object but can be overwritten or released on the next call to a FreeType function.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_GetVariantsOfChar

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt32* )
-  FT_Face_GetVariantsOfChar( FT_Face   face,
-                             FT_ULong  charcode );
-
-

-
-

Return a zero-terminated list of Unicode variant selectors found for the specified character code.

-

-
input
-

- - - -
face -

A handle to the source face object.

-
charcode -

The character codepoint in Unicode.

-
-
-
return
-

A pointer to an array of variant selector code points which are active for the given character, or NULL if the corresponding list is empty.

-
-
note
-

The last item in the array is 0; the array is owned by the FT_Face object but can be overwritten or released on the next call to a FreeType function.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_GetCharsOfVariant

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_UInt32* )
-  FT_Face_GetCharsOfVariant( FT_Face   face,
-                             FT_ULong  variantSelector );
-
-

-
-

Return a zero-terminated list of Unicode character codes found for the specified variant selector.

-

-
input
-

- - - -
face -

A handle to the source face object.

-
variantSelector -

The variant selector code point in Unicode.

-
-
-
return
-

A list of all the code points which are specified by this selector (both default and non-default codes are returned) or NULL if there is no valid cmap or the variant selector is invalid.

-
-
note
-

The last item in the array is 0; the array is owned by the FT_Face object but can be overwritten or released on the next call to a FreeType function.

-
-
since
-

2.3.6

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-gx_validation.html b/src/3rdparty/freetype/docs/reference/ft2-gx_validation.html deleted file mode 100644 index cd7184ce4a..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-gx_validation.html +++ /dev/null @@ -1,356 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-TrueTypeGX/AAT Validation -

-

Synopsis

- - - - -
FT_VALIDATE_GX_LENGTHFT_TrueTypeGX_FreeFT_ClassicKern_Free
FT_VALIDATE_GXXXXFT_VALIDATE_CKERNXXX
FT_TrueTypeGX_ValidateFT_ClassicKern_Validate


- -
-

This section contains the declaration of functions to validate some TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop, lcar).

-

-
-

FT_VALIDATE_GX_LENGTH

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-#define FT_VALIDATE_GX_LENGTH     (FT_VALIDATE_GX_LAST_INDEX + 1)
-
-

-
-

The number of tables checked in this module. Use it as a parameter for the ‘table-length’ argument of function FT_TrueTypeGX_Validate.

-

-
-
- - -
[Index][TOC]
- -
-

FT_VALIDATE_GXXXX

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-#define FT_VALIDATE_feat  FT_VALIDATE_GX_BITFIELD( feat )
-#define FT_VALIDATE_mort  FT_VALIDATE_GX_BITFIELD( mort )
-#define FT_VALIDATE_morx  FT_VALIDATE_GX_BITFIELD( morx )
-#define FT_VALIDATE_bsln  FT_VALIDATE_GX_BITFIELD( bsln )
-#define FT_VALIDATE_just  FT_VALIDATE_GX_BITFIELD( just )
-#define FT_VALIDATE_kern  FT_VALIDATE_GX_BITFIELD( kern )
-#define FT_VALIDATE_opbd  FT_VALIDATE_GX_BITFIELD( opbd )
-#define FT_VALIDATE_trak  FT_VALIDATE_GX_BITFIELD( trak )
-#define FT_VALIDATE_prop  FT_VALIDATE_GX_BITFIELD( prop )
-#define FT_VALIDATE_lcar  FT_VALIDATE_GX_BITFIELD( lcar )
-
-#define FT_VALIDATE_GX  ( FT_VALIDATE_feat | \
-                          FT_VALIDATE_mort | \
-                          FT_VALIDATE_morx | \
-                          FT_VALIDATE_bsln | \
-                          FT_VALIDATE_just | \
-                          FT_VALIDATE_kern | \
-                          FT_VALIDATE_opbd | \
-                          FT_VALIDATE_trak | \
-                          FT_VALIDATE_prop | \
-                          FT_VALIDATE_lcar )
-
-

-
-

A list of bit-field constants used with FT_TrueTypeGX_Validate to indicate which TrueTypeGX/AAT Type tables should be validated.

-

-
values
-

- - - - - - - - - - - - -
FT_VALIDATE_feat -

Validate ‘feat’ table.

-
FT_VALIDATE_mort -

Validate ‘mort’ table.

-
FT_VALIDATE_morx -

Validate ‘morx’ table.

-
FT_VALIDATE_bsln -

Validate ‘bsln’ table.

-
FT_VALIDATE_just -

Validate ‘just’ table.

-
FT_VALIDATE_kern -

Validate ‘kern’ table.

-
FT_VALIDATE_opbd -

Validate ‘opbd’ table.

-
FT_VALIDATE_trak -

Validate ‘trak’ table.

-
FT_VALIDATE_prop -

Validate ‘prop’ table.

-
FT_VALIDATE_lcar -

Validate ‘lcar’ table.

-
FT_VALIDATE_GX -

Validate all TrueTypeGX tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop and lcar).

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_TrueTypeGX_Validate

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_TrueTypeGX_Validate( FT_Face   face,
-                          FT_UInt   validation_flags,
-                          FT_Bytes  tables[FT_VALIDATE_GX_LENGTH],
-                          FT_UInt   table_length );
-
-

-
-

Validate various TrueTypeGX tables to assure that all offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).

-

-
input
-

- - - - -
face -

A handle to the input face.

-
validation_flags -

A bit field which specifies the tables to be validated. See FT_VALIDATE_GXXXX for possible values.

-
table_length -

The size of the ‘tables’ array. Normally, FT_VALIDATE_GX_LENGTH should be passed.

-
-
-
output
-

- - -
tables -

The array where all validated sfnt tables are stored. The array itself must be allocated by a client.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with TrueTypeGX fonts, returning an error otherwise.

-

After use, the application should deallocate the buffers pointed to by each ‘tables’ element, by calling FT_TrueTypeGX_Free. A NULL value indicates that the table either doesn't exist in the font, the application hasn't asked for validation, or the validator doesn't have the ability to validate the sfnt table.

-
-
-
- - -
[Index][TOC]
- -
-

FT_TrueTypeGX_Free

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-  FT_EXPORT( void )
-  FT_TrueTypeGX_Free( FT_Face   face,
-                      FT_Bytes  table );
-
-

-
-

Free the buffer allocated by TrueTypeGX validator.

-

-
input
-

- - - -
face -

A handle to the input face.

-
table -

The pointer to the buffer allocated by FT_TrueTypeGX_Validate.

-
-
-
note
-

This function must be used to free the buffer allocated by FT_TrueTypeGX_Validate only.

-
-
-
- - -
[Index][TOC]
- -
-

FT_VALIDATE_CKERNXXX

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-#define FT_VALIDATE_MS     ( FT_VALIDATE_GX_START << 0 )
-#define FT_VALIDATE_APPLE  ( FT_VALIDATE_GX_START << 1 )
-
-#define FT_VALIDATE_CKERN  ( FT_VALIDATE_MS | FT_VALIDATE_APPLE )
-
-

-
-

A list of bit-field constants used with FT_ClassicKern_Validate to indicate the classic kern dialect or dialects. If the selected type doesn't fit, FT_ClassicKern_Validate regards the table as invalid.

-

-
values
-

- - - - -
FT_VALIDATE_MS -

Handle the ‘kern’ table as a classic Microsoft kern table.

-
FT_VALIDATE_APPLE -

Handle the ‘kern’ table as a classic Apple kern table.

-
FT_VALIDATE_CKERN -

Handle the ‘kern’ as either classic Apple or Microsoft kern table.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_ClassicKern_Validate

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_ClassicKern_Validate( FT_Face    face,
-                           FT_UInt    validation_flags,
-                           FT_Bytes  *ckern_table );
-
-

-
-

Validate classic (16-bit format) kern table to assure that the offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).

-

The ‘kern’ table validator in FT_TrueTypeGX_Validate deals with both the new 32-bit format and the classic 16-bit format, while FT_ClassicKern_Validate only supports the classic 16-bit format.

-

-
input
-

- - - -
face -

A handle to the input face.

-
validation_flags -

A bit field which specifies the dialect to be validated. See FT_VALIDATE_CKERNXXX for possible values.

-
-
-
output
-

- - -
ckern_table -

A pointer to the kern table.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

After use, the application should deallocate the buffers pointed to by ‘ckern_table’, by calling FT_ClassicKern_Free. A NULL value indicates that the table doesn't exist in the font.

-
-
-
- - -
[Index][TOC]
- -
-

FT_ClassicKern_Free

-
-Defined in FT_GX_VALIDATE_H (freetype/ftgxval.h). -

-
-
-  FT_EXPORT( void )
-  FT_ClassicKern_Free( FT_Face   face,
-                       FT_Bytes  table );
-
-

-
-

Free the buffer allocated by classic Kern validator.

-

-
input
-

- - - -
face -

A handle to the input face.

-
table -

The pointer to the buffer that is allocated by FT_ClassicKern_Validate.

-
-
-
note
-

This function must be used to free the buffer allocated by FT_ClassicKern_Validate only.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-gzip.html b/src/3rdparty/freetype/docs/reference/ft2-gzip.html deleted file mode 100644 index 2c442e8fc7..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-gzip.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-GZIP Streams -

-

Synopsis

- - -
FT_Stream_OpenGzip


- -
-

This section contains the declaration of Gzip-specific functions.

-

-
-

FT_Stream_OpenGzip

-
-Defined in FT_GZIP_H (freetype/ftgzip.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stream_OpenGzip( FT_Stream  stream,
-                      FT_Stream  source );
-
-

-
-

Open a new stream to parse gzip-compressed font files. This is mainly used to support the compressed ‘*.pcf.gz’ fonts that come with XFree86.

-

-
input
-

- - - -
stream -

The target embedding stream.

-
source -

The source stream.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The source stream must be opened before calling this function.

-

Calling the internal function ‘FT_Stream_Close’ on the new stream will not call ‘FT_Stream_Close’ on the source stream. None of the stream objects will be released to the heap.

-

The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.

-

In certain builds of the library, gzip compression recognition is automatically handled when calling FT_New_Face or FT_Open_Face. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it.

-

This function may return ‘FT_Err_Unimplemented_Feature’ if your build of FreeType was not compiled with zlib support.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-header_file_macros.html b/src/3rdparty/freetype/docs/reference/ft2-header_file_macros.html deleted file mode 100644 index 44593c31d5..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-header_file_macros.html +++ /dev/null @@ -1,836 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Header File Macros -

-

Synopsis

- - - - - - - - - - - - - - - - - - - - - - - - -
FT_CONFIG_CONFIG_HFT_WINFONTS_H
FT_CONFIG_STANDARD_LIBRARY_HFT_GLYPH_H
FT_CONFIG_OPTIONS_HFT_BITMAP_H
FT_CONFIG_MODULES_HFT_BBOX_H
FT_FREETYPE_HFT_CACHE_H
FT_ERRORS_HFT_CACHE_IMAGE_H
FT_MODULE_ERRORS_HFT_CACHE_SMALL_BITMAPS_H
FT_SYSTEM_HFT_CACHE_CHARMAP_H
FT_IMAGE_HFT_MAC_H
FT_TYPES_HFT_MULTIPLE_MASTERS_H
FT_LIST_HFT_SFNT_NAMES_H
FT_OUTLINE_HFT_OPENTYPE_VALIDATE_H
FT_SIZES_HFT_GX_VALIDATE_H
FT_MODULE_HFT_PFR_H
FT_RENDER_HFT_STROKER_H
FT_TYPE1_TABLES_HFT_SYNTHESIS_H
FT_TRUETYPE_IDS_HFT_XFREE86_H
FT_TRUETYPE_TABLES_HFT_TRIGONOMETRY_H
FT_TRUETYPE_TAGS_HFT_LCD_FILTER_H
FT_BDF_HFT_UNPATENTED_HINTING_H
FT_CID_HFT_INCREMENTAL_H
FT_GZIP_HFT_GASP_H
FT_LZW_HFT_ADVANCES_H


- -
-

The following macros are defined to the name of specific FreeType 2 header files. They can be used directly in #include statements as in:

-
-  #include FT_FREETYPE_H                                           
-  #include FT_MULTIPLE_MASTERS_H                                   
-  #include FT_GLYPH_H                                              
-
-

There are several reasons why we are now using macros to name public header files. The first one is that such macros are not limited to the infamous 8.3 naming rule required by DOS (and ‘FT_MULTIPLE_MASTERS_H’ is a lot more meaningful than ‘ftmm.h’).

-

The second reason is that it allows for more flexibility in the way FreeType 2 is installed on a given system.

-

-
-

FT_CONFIG_CONFIG_H

-
-
-#ifndef FT_CONFIG_CONFIG_H
-#define FT_CONFIG_CONFIG_H  <freetype/config/ftconfig.h>
-#endif
-
-

-
-

A macro used in #include statements to name the file containing FreeType 2 configuration data.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CONFIG_STANDARD_LIBRARY_H

-
-
-#ifndef FT_CONFIG_STANDARD_LIBRARY_H
-#define FT_CONFIG_STANDARD_LIBRARY_H  <freetype/config/ftstdlib.h>
-#endif
-
-

-
-

A macro used in #include statements to name the file containing FreeType 2 interface to the standard C library functions.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CONFIG_OPTIONS_H

-
-
-#ifndef FT_CONFIG_OPTIONS_H
-#define FT_CONFIG_OPTIONS_H  <freetype/config/ftoption.h>
-#endif
-
-

-
-

A macro used in #include statements to name the file containing FreeType 2 project-specific configuration options.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CONFIG_MODULES_H

-
-
-#ifndef FT_CONFIG_MODULES_H
-#define FT_CONFIG_MODULES_H  <freetype/config/ftmodule.h>
-#endif
-
-

-
-

A macro used in #include statements to name the file containing the list of FreeType 2 modules that are statically linked to new library instances in FT_Init_FreeType.

-

-
-
- - -
[Index][TOC]
- -
-

FT_FREETYPE_H

-
-
-#define FT_FREETYPE_H  <freetype/freetype.h>
-
-

-
-

A macro used in #include statements to name the file containing the base FreeType 2 API.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ERRORS_H

-
-
-#define FT_ERRORS_H  <freetype/fterrors.h>
-
-

-
-

A macro used in #include statements to name the file containing the list of FreeType 2 error codes (and messages).

-

It is included by FT_FREETYPE_H.

-

-
-
- - -
[Index][TOC]
- -
-

FT_MODULE_ERRORS_H

-
-
-#define FT_MODULE_ERRORS_H  <freetype/ftmoderr.h>
-
-

-
-

A macro used in #include statements to name the file containing the list of FreeType 2 module error offsets (and messages).

-

-
-
- - -
[Index][TOC]
- -
-

FT_SYSTEM_H

-
-
-#define FT_SYSTEM_H  <freetype/ftsystem.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 interface to low-level operations (i.e., memory management and stream i/o).

-

It is included by FT_FREETYPE_H.

-

-
-
- - -
[Index][TOC]
- -
-

FT_IMAGE_H

-
-
-#define FT_IMAGE_H  <freetype/ftimage.h>
-
-

-
-

A macro used in #include statements to name the file containing type definitions related to glyph images (i.e., bitmaps, outlines, scan-converter parameters).

-

It is included by FT_FREETYPE_H.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TYPES_H

-
-
-#define FT_TYPES_H  <freetype/fttypes.h>
-
-

-
-

A macro used in #include statements to name the file containing the basic data types defined by FreeType 2.

-

It is included by FT_FREETYPE_H.

-

-
-
- - -
[Index][TOC]
- -
-

FT_LIST_H

-
-
-#define FT_LIST_H  <freetype/ftlist.h>
-
-

-
-

A macro used in #include statements to name the file containing the list management API of FreeType 2.

-

(Most applications will never need to include this file.)

-

-
-
- - -
[Index][TOC]
- -
-

FT_OUTLINE_H

-
-
-#define FT_OUTLINE_H  <freetype/ftoutln.h>
-
-

-
-

A macro used in #include statements to name the file containing the scalable outline management API of FreeType 2.

-

-
-
- - -
[Index][TOC]
- -
-

FT_SIZES_H

-
-
-#define FT_SIZES_H  <freetype/ftsizes.h>
-
-

-
-

A macro used in #include statements to name the file containing the API which manages multiple FT_Size objects per face.

-

-
-
- - -
[Index][TOC]
- -
-

FT_MODULE_H

-
-
-#define FT_MODULE_H  <freetype/ftmodapi.h>
-
-

-
-

A macro used in #include statements to name the file containing the module management API of FreeType 2.

-

-
-
- - -
[Index][TOC]
- -
-

FT_RENDER_H

-
-
-#define FT_RENDER_H  <freetype/ftrender.h>
-
-

-
-

A macro used in #include statements to name the file containing the renderer module management API of FreeType 2.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TYPE1_TABLES_H

-
-
-#define FT_TYPE1_TABLES_H  <freetype/t1tables.h>
-
-

-
-

A macro used in #include statements to name the file containing the types and API specific to the Type 1 format.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TRUETYPE_IDS_H

-
-
-#define FT_TRUETYPE_IDS_H  <freetype/ttnameid.h>
-
-

-
-

A macro used in #include statements to name the file containing the enumeration values which identify name strings, languages, encodings, etc. This file really contains a large set of constant macro definitions, taken from the TrueType and OpenType specifications.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TRUETYPE_TABLES_H

-
-
-#define FT_TRUETYPE_TABLES_H  <freetype/tttables.h>
-
-

-
-

A macro used in #include statements to name the file containing the types and API specific to the TrueType (as well as OpenType) format.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TRUETYPE_TAGS_H

-
-
-#define FT_TRUETYPE_TAGS_H  <freetype/tttags.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of TrueType four-byte ‘tags’ which identify blocks in SFNT-based font formats (i.e., TrueType and OpenType).

-

-
-
- - -
[Index][TOC]
- -
-

FT_BDF_H

-
-
-#define FT_BDF_H  <freetype/ftbdf.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of an API which accesses BDF-specific strings from a face.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CID_H

-
-
-#define FT_CID_H  <freetype/ftcid.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of an API which access CID font information from a face.

-

-
-
- - -
[Index][TOC]
- -
-

FT_GZIP_H

-
-
-#define FT_GZIP_H  <freetype/ftgzip.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of an API which supports gzip-compressed files.

-

-
-
- - -
[Index][TOC]
- -
-

FT_LZW_H

-
-
-#define FT_LZW_H  <freetype/ftlzw.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of an API which supports LZW-compressed files.

-

-
-
- - -
[Index][TOC]
- -
-

FT_WINFONTS_H

-
-
-#define FT_WINFONTS_H   <freetype/ftwinfnt.h>
-
-

-
-

A macro used in #include statements to name the file containing the definitions of an API which supports Windows FNT files.

-

-
-
- - -
[Index][TOC]
- -
-

FT_GLYPH_H

-
-
-#define FT_GLYPH_H  <freetype/ftglyph.h>
-
-

-
-

A macro used in #include statements to name the file containing the API of the optional glyph management component.

-

-
-
- - -
[Index][TOC]
- -
-

FT_BITMAP_H

-
-
-#define FT_BITMAP_H  <freetype/ftbitmap.h>
-
-

-
-

A macro used in #include statements to name the file containing the API of the optional bitmap conversion component.

-

-
-
- - -
[Index][TOC]
- -
-

FT_BBOX_H

-
-
-#define FT_BBOX_H  <freetype/ftbbox.h>
-
-

-
-

A macro used in #include statements to name the file containing the API of the optional exact bounding box computation routines.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CACHE_H

-
-
-#define FT_CACHE_H  <freetype/ftcache.h>
-
-

-
-

A macro used in #include statements to name the file containing the API of the optional FreeType 2 cache sub-system.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CACHE_IMAGE_H

-
-
-#define FT_CACHE_IMAGE_H  FT_CACHE_H
-
-

-
-

A macro used in #include statements to name the file containing the ‘glyph image’ API of the FreeType 2 cache sub-system.

-

It is used to define a cache for FT_Glyph elements. You can also use the API defined in FT_CACHE_SMALL_BITMAPS_H if you only need to store small glyph bitmaps, as it will use less memory.

-

This macro is deprecated. Simply include FT_CACHE_H to have all glyph image-related cache declarations.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CACHE_SMALL_BITMAPS_H

-
-
-#define FT_CACHE_SMALL_BITMAPS_H  FT_CACHE_H
-
-

-
-

A macro used in #include statements to name the file containing the ‘small bitmaps’ API of the FreeType 2 cache sub-system.

-

It is used to define a cache for small glyph bitmaps in a relatively memory-efficient way. You can also use the API defined in FT_CACHE_IMAGE_H if you want to cache arbitrary glyph images, including scalable outlines.

-

This macro is deprecated. Simply include FT_CACHE_H to have all small bitmaps-related cache declarations.

-

-
-
- - -
[Index][TOC]
- -
-

FT_CACHE_CHARMAP_H

-
-
-#define FT_CACHE_CHARMAP_H  FT_CACHE_H
-
-

-
-

A macro used in #include statements to name the file containing the ‘charmap’ API of the FreeType 2 cache sub-system.

-

This macro is deprecated. Simply include FT_CACHE_H to have all charmap-based cache declarations.

-

-
-
- - -
[Index][TOC]
- -
-

FT_MAC_H

-
-
-#define FT_MAC_H  <freetype/ftmac.h>
-
-

-
-

A macro used in #include statements to name the file containing the Macintosh-specific FreeType 2 API. The latter is used to access fonts embedded in resource forks.

-

This header file must be explicitly included by client applications compiled on the Mac (note that the base API still works though).

-

-
-
- - -
[Index][TOC]
- -
-

FT_MULTIPLE_MASTERS_H

-
-
-#define FT_MULTIPLE_MASTERS_H  <freetype/ftmm.h>
-
-

-
-

A macro used in #include statements to name the file containing the optional multiple-masters management API of FreeType 2.

-

-
-
- - -
[Index][TOC]
- -
-

FT_SFNT_NAMES_H

-
-
-#define FT_SFNT_NAMES_H  <freetype/ftsnames.h>
-
-

-
-

A macro used in #include statements to name the file containing the optional FreeType 2 API which accesses embedded ‘name’ strings in SFNT-based font formats (i.e., TrueType and OpenType).

-

-
-
- - -
[Index][TOC]
- -
-

FT_OPENTYPE_VALIDATE_H

-
-
-#define FT_OPENTYPE_VALIDATE_H  <freetype/ftotval.h>
-
-

-
-

A macro used in #include statements to name the file containing the optional FreeType 2 API which validates OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF).

-

-
-
- - -
[Index][TOC]
- -
-

FT_GX_VALIDATE_H

-
-
-#define FT_GX_VALIDATE_H  <freetype/ftgxval.h>
-
-

-
-

A macro used in #include statements to name the file containing the optional FreeType 2 API which validates TrueTypeGX/AAT tables (feat, mort, morx, bsln, just, kern, opbd, trak, prop).

-

-
-
- - -
[Index][TOC]
- -
-

FT_PFR_H

-
-
-#define FT_PFR_H  <freetype/ftpfr.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which accesses PFR-specific data.

-

-
-
- - -
[Index][TOC]
- -
-

FT_STROKER_H

-
-
-#define FT_STROKER_H  <freetype/ftstroke.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which provides functions to stroke outline paths.

-

-
-
- - -
[Index][TOC]
- -
-

FT_SYNTHESIS_H

-
-
-#define FT_SYNTHESIS_H  <freetype/ftsynth.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which performs artificial obliquing and emboldening.

-

-
-
- - -
[Index][TOC]
- -
-

FT_XFREE86_H

-
-
-#define FT_XFREE86_H  <freetype/ftxf86.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which provides functions specific to the XFree86 and X.Org X11 servers.

-

-
-
- - -
[Index][TOC]
- -
-

FT_TRIGONOMETRY_H

-
-
-#define FT_TRIGONOMETRY_H  <freetype/fttrigon.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which performs trigonometric computations (e.g., cosines and arc tangents).

-

-
-
- - -
[Index][TOC]
- -
-

FT_LCD_FILTER_H

-
-
-#define FT_LCD_FILTER_H  <freetype/ftlcdfil.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which performs color filtering for subpixel rendering.

-

-
-
- - -
[Index][TOC]
- -
-

FT_UNPATENTED_HINTING_H

-
-
-#define FT_UNPATENTED_HINTING_H  <freetype/ttunpat.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which performs color filtering for subpixel rendering.

-

-
-
- - -
[Index][TOC]
- -
-

FT_INCREMENTAL_H

-
-
-#define FT_INCREMENTAL_H  <freetype/ftincrem.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which performs color filtering for subpixel rendering.

-

-
-
- - -
[Index][TOC]
- -
-

FT_GASP_H

-
-
-#define FT_GASP_H  <freetype/ftgasp.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which returns entries from the TrueType GASP table.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ADVANCES_H

-
-
-#define FT_ADVANCES_H  <freetype/ftadvanc.h>
-
-

-
-

A macro used in #include statements to name the file containing the FreeType 2 API which returns individual and ranged glyph advances.

-

-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-incremental.html b/src/3rdparty/freetype/docs/reference/ft2-incremental.html deleted file mode 100644 index 4fa3b10a31..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-incremental.html +++ /dev/null @@ -1,401 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Incremental Loading -

-

Synopsis

- - - - - - -
FT_IncrementalFT_Incremental_GetGlyphMetricsFunc
FT_Incremental_MetricsRecFT_Incremental_FuncsRec
FT_Incremental_MetricsFT_Incremental_InterfaceRec
FT_Incremental_GetGlyphDataFuncFT_Incremental_Interface
FT_Incremental_FreeGlyphDataFuncFT_PARAM_TAG_INCREMENTAL


- -
-

This section contains various functions used to perform so-called ‘incremental’ glyph loading. This is a mode where all glyphs loaded from a given FT_Face are provided by the client application,

-

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.

-

To enable this mode, you must use FT_Open_Face, passing an FT_Parameter with the FT_PARAM_TAG_INCREMENTAL tag and an FT_Incremental_Interface value. See the comments for FT_Incremental_InterfaceRec for an example.

-

-
-

FT_Incremental

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef struct FT_IncrementalRec_*  FT_Incremental;
-
-

-
-

An opaque type describing a user-provided object used to implement ‘incremental’ 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.

-

-
note
-

It is up to client applications to create and implement FT_Incremental objects, as long as they provide implementations for the methods FT_Incremental_GetGlyphDataFunc, FT_Incremental_FreeGlyphDataFunc and FT_Incremental_GetGlyphMetricsFunc.

-

See the description of FT_Incremental_InterfaceRec to understand how to use incremental objects with FreeType.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_MetricsRec

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef struct  FT_Incremental_MetricsRec_
-  {
-    FT_Long  bearing_x;
-    FT_Long  bearing_y;
-    FT_Long  advance;
-    FT_Long  advance_v;     /* since 2.3.12 */
-
-  } FT_Incremental_MetricsRec;
-
-

-
-

A small structure used to contain the basic glyph metrics returned by the FT_Incremental_GetGlyphMetricsFunc method.

-

-
fields
-

- - - - - -
bearing_x -

Left bearing, in font units.

-
bearing_y -

Top bearing, in font units.

-
advance -

Horizontal component of glyph advance, in font units.

-
advance_v -

Vertical component of glyph advance, in font units.

-
-
-
note
-

These correspond to horizontal or vertical metrics depending on the value of the ‘vertical’ argument to the function FT_Incremental_GetGlyphMetricsFunc.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_Metrics

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-   typedef struct FT_Incremental_MetricsRec_*  FT_Incremental_Metrics;
-
-

-
-

A handle to an FT_Incremental_MetricsRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_GetGlyphDataFunc

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef FT_Error
-  (*FT_Incremental_GetGlyphDataFunc)( FT_Incremental  incremental,
-                                      FT_UInt         glyph_index,
-                                      FT_Data*        adata );
-
-

-
-

A function called by FreeType to access a given glyph's data bytes during FT_Load_Glyph or FT_Load_Char if incremental loading is enabled.

-

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 ‘glyf’ table. For PostScript formats, it must correspond to the unencrypted charstring bytes, without any ‘lenIV’ header. It is undefined for any other format.

-

-
input
-

- - - -
incremental -

Handle to an opaque FT_Incremental handle provided by the client application.

-
glyph_index -

Index of relevant glyph.

-
-
-
output
-

- - -
adata -

A structure describing the returned glyph data bytes (which will be accessed as a read-only byte block).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If this function returns successfully the method FT_Incremental_FreeGlyphDataFunc will be called later to release the data bytes.

-

Nested calls to FT_Incremental_GetGlyphDataFunc can happen for compound glyphs.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_FreeGlyphDataFunc

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef void
-  (*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental  incremental,
-                                       FT_Data*        data );
-
-

-
-

A function used to release the glyph data bytes returned by a successful call to FT_Incremental_GetGlyphDataFunc.

-

-
input
-

- - - -
incremental -

A handle to an opaque FT_Incremental handle provided by the client application.

-
data -

A structure describing the glyph data bytes (which will be accessed as a read-only byte block).

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_GetGlyphMetricsFunc

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef FT_Error
-  (*FT_Incremental_GetGlyphMetricsFunc)
-                      ( FT_Incremental              incremental,
-                        FT_UInt                     glyph_index,
-                        FT_Bool                     vertical,
-                        FT_Incremental_MetricsRec  *ametrics );
-
-

-
-

A function used to retrieve the basic metrics of a given glyph index before accessing its data. This is necessary because, in certain formats like TrueType, the metrics are stored in a different place from the glyph images proper.

-

-
input
-

- - - - - -
incremental -

A handle to an opaque FT_Incremental handle provided by the client application.

-
glyph_index -

Index of relevant glyph.

-
vertical -

If true, return vertical metrics.

-
ametrics -

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.

-
-
-
output
-

- - -
ametrics -

The replacement glyph metrics in font units.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_FuncsRec

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef struct  FT_Incremental_FuncsRec_
-  {
-    FT_Incremental_GetGlyphDataFunc     get_glyph_data;
-    FT_Incremental_FreeGlyphDataFunc    free_glyph_data;
-    FT_Incremental_GetGlyphMetricsFunc  get_glyph_metrics;
-
-  } FT_Incremental_FuncsRec;
-
-

-
-

A table of functions for accessing fonts that load data incrementally. Used in FT_Incremental_InterfaceRec.

-

-
fields
-

- - - - -
get_glyph_data -

The function to get glyph data. Must not be null.

-
free_glyph_data -

The function to release glyph data. Must not be null.

-
get_glyph_metrics -

The function to get glyph metrics. May be null if the font does not provide overriding glyph metrics.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_InterfaceRec

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef struct  FT_Incremental_InterfaceRec_
-  {
-    const FT_Incremental_FuncsRec*  funcs;
-    FT_Incremental                  object;
-
-  } FT_Incremental_InterfaceRec;
-
-

-
-

A structure to be used with FT_Open_Face to indicate that the user wants to support incremental glyph loading. You should use it with FT_PARAM_TAG_INCREMENTAL as in the following example:

-
-  FT_Incremental_InterfaceRec  inc_int;
-  FT_Parameter                 parameter;
-  FT_Open_Args                 open_args;
-
-
-  // set up incremental descriptor
-  inc_int.funcs  = my_funcs;
-  inc_int.object = my_object;
-
-  // set up optional parameter
-  parameter.tag  = FT_PARAM_TAG_INCREMENTAL;
-  parameter.data = &inc_int;
-
-  // set up FT_Open_Args structure
-  open_args.flags      = FT_OPEN_PATHNAME | FT_OPEN_PARAMS;
-  open_args.pathname   = my_font_pathname;
-  open_args.num_params = 1;
-  open_args.params     = &parameter; // we use one optional argument
-
-  // open the font
-  error = FT_Open_Face( library, &open_args, index, &face );
-  ...
-
-

-
-
- - -
[Index][TOC]
- -
-

FT_Incremental_Interface

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-  typedef FT_Incremental_InterfaceRec*   FT_Incremental_Interface;
-
-

-
-

A pointer to an FT_Incremental_InterfaceRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_PARAM_TAG_INCREMENTAL

-
-Defined in FT_INCREMENTAL_H (freetype/ftincrem.h). -

-
-
-#define FT_PARAM_TAG_INCREMENTAL  FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
-
-

-
-

A constant used as the tag of FT_Parameter structures to indicate an incremental loading object to be used by FreeType.

-

-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-index.html b/src/3rdparty/freetype/docs/reference/ft2-index.html deleted file mode 100644 index 48dc736b19..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-index.html +++ /dev/null @@ -1,290 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - -
[TOC]
-

FreeType-2.3.12 API Reference

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BDF_PROPERTY_TYPE_ATOMFT_LCD_FILTER_LIGHTFT_Stroker_ParseOutline
BDF_PROPERTY_TYPE_CARDINALFT_LCD_FILTER_NONEFT_Stroker_Rewind
BDF_PROPERTY_TYPE_INTEGERFT_LcdFilterFT_Stroker_Set
BDF_PROPERTY_TYPE_NONEFT_LIST_HFT_StrokerBorder
BDF_PropertyFT_LibraryFT_SUBGLYPH_FLAG_2X2
BDF_PropertyRecFT_Library_SetLcdFilterFT_SUBGLYPH_FLAG_ARGS_ARE_WORDS
CID_FaceDictFT_Library_VersionFT_SUBGLYPH_FLAG_ARGS_ARE_XY_VALUES
CID_FaceDictRecFT_ListFT_SUBGLYPH_FLAG_ROUND_XY_TO_GRID
CID_FaceInfoFT_List_AddFT_SUBGLYPH_FLAG_SCALE
CID_FaceInfoRecFT_List_DestructorFT_SUBGLYPH_FLAG_USE_MY_METRICS
CID_InfoFT_List_FinalizeFT_SUBGLYPH_FLAG_XXX
FREETYPE_MAJORFT_List_FindFT_SUBGLYPH_FLAG_XY_SCALE
FREETYPE_MINORFT_List_InsertFT_SubGlyph
FREETYPE_PATCHFT_List_IterateFT_SYNTHESIS_H
FREETYPE_XXXFT_List_IteratorFT_SYSTEM_H
FT_Activate_SizeFT_List_RemoveFT_Tag
FT_ADVANCE_FLAG_FAST_ONLYFT_List_UpFT_Tan
FT_ADVANCES_HFT_ListNodeFT_TRIGONOMETRY_H
FT_Add_Default_ModulesFT_ListNodeRecFT_TRUETYPE_ENGINE_TYPE_NONE
FT_Add_ModuleFT_ListRecFT_TRUETYPE_ENGINE_TYPE_PATENTED
FT_Alloc_FuncFT_LOAD_CROP_BITMAPFT_TRUETYPE_ENGINE_TYPE_UNPATENTED
FT_ANGLE_2PIFT_LOAD_DEFAULTFT_TRUETYPE_IDS_H
FT_ANGLE_PIFT_LOAD_FORCE_AUTOHINTFT_TRUETYPE_TABLES_H
FT_ANGLE_PI2FT_LOAD_IGNORE_GLOBAL_ADVANCE_WIDTHFT_TRUETYPE_TAGS_H
FT_ANGLE_PI4FT_LOAD_IGNORE_TRANSFORMFT_TrueTypeEngineType
FT_AngleFT_LOAD_LINEAR_DESIGNFT_TrueTypeGX_Free
FT_Angle_DiffFT_LOAD_MONOCHROMEFT_TrueTypeGX_Validate
FT_Atan2FT_LOAD_NO_AUTOHINTFT_TYPE1_TABLES_H
FT_Attach_FileFT_LOAD_NO_BITMAPFT_TYPES_H
FT_Attach_StreamFT_LOAD_NO_HINTINGFT_UFWord
FT_BBOX_HFT_LOAD_NO_RECURSEFT_UInt
FT_BBoxFT_LOAD_NO_SCALEFT_UInt16
FT_BDF_HFT_LOAD_PEDANTICFT_UInt32
FT_BITMAP_HFT_LOAD_RENDERFT_ULong
FT_BitmapFT_LOAD_TARGET_LCDFT_UNPATENTED_HINTING_H
FT_Bitmap_ConvertFT_LOAD_TARGET_LCD_VFT_UnitVector
FT_Bitmap_CopyFT_LOAD_TARGET_LIGHTFT_UShort
FT_Bitmap_DoneFT_LOAD_TARGET_MODEFT_VALIDATE_APPLE
FT_Bitmap_EmboldenFT_LOAD_TARGET_MONOFT_VALIDATE_BASE
FT_Bitmap_NewFT_LOAD_TARGET_NORMALFT_VALIDATE_bsln
FT_Bitmap_SizeFT_LOAD_TARGET_XXXFT_VALIDATE_CKERN
FT_BitmapGlyphFT_LOAD_VERTICAL_LAYOUTFT_VALIDATE_CKERNXXX
FT_BitmapGlyphRecFT_LOAD_XXXFT_VALIDATE_feat
FT_BoolFT_Load_CharFT_VALIDATE_GDEF
FT_ByteFT_Load_GlyphFT_VALIDATE_GPOS
FT_BytesFT_Load_Sfnt_TableFT_VALIDATE_GSUB
FT_CACHE_CHARMAP_HFT_LongFT_VALIDATE_GX
FT_CACHE_HFT_LZW_HFT_VALIDATE_GX_LENGTH
FT_CACHE_IMAGE_HFT_MAC_HFT_VALIDATE_GXXXX
FT_CACHE_SMALL_BITMAPS_HFT_MAKE_TAGFT_VALIDATE_JSTF
FT_CeilFixFT_MatrixFT_VALIDATE_just
FT_CharFT_Matrix_InvertFT_VALIDATE_kern
FT_CharMapFT_Matrix_MultiplyFT_VALIDATE_lcar
FT_CharMapRecFT_MemoryFT_VALIDATE_MATH
FT_CID_HFT_MemoryRecFT_VALIDATE_MS
FT_ClassicKern_FreeFT_MM_AxisFT_VALIDATE_mort
FT_ClassicKern_ValidateFT_MM_VarFT_VALIDATE_morx
FT_CONFIG_CONFIG_HFT_MODULE_ERRORS_HFT_VALIDATE_OT
FT_CONFIG_MODULES_HFT_MODULE_HFT_VALIDATE_OTXXX
FT_CONFIG_OPTIONS_HFT_ModuleFT_VALIDATE_opbd
FT_CONFIG_STANDARD_LIBRARY_HFT_Module_ClassFT_VALIDATE_prop
FT_CosFT_Module_ConstructorFT_VALIDATE_trak
FT_DataFT_Module_DestructorFT_Var_Axis
FT_DivFixFT_Module_RequesterFT_Var_Named_Style
FT_Done_FaceFT_MULTIPLE_MASTERS_HFT_Vector
FT_Done_FreeTypeFT_MulDivFT_Vector_From_Polar
FT_Done_GlyphFT_MulFixFT_Vector_Length
FT_Done_LibraryFT_Multi_MasterFT_Vector_Polarize
FT_Done_SizeFT_New_FaceFT_Vector_Rotate
FT_DriverFT_New_Face_From_FONDFT_Vector_Transform
FT_ENC_TAGFT_New_Face_From_FSRefFT_Vector_Unit
FT_ENCODING_ADOBE_CUSTOMFT_New_Face_From_FSSpecFT_WINFONTS_H
FT_ENCODING_ADOBE_EXPERTFT_New_LibraryFT_WinFNT_Header
FT_ENCODING_ADOBE_LATIN_1FT_New_Memory_FaceFT_WinFNT_HeaderRec
FT_ENCODING_ADOBE_STANDARDFT_New_SizeFT_WinFNT_ID_CP1250
FT_ENCODING_APPLE_ROMANFT_OffsetFT_WinFNT_ID_CP1251
FT_ENCODING_BIG5FT_OPEN_DRIVERFT_WinFNT_ID_CP1252
FT_ENCODING_GB2312FT_OPEN_MEMORYFT_WinFNT_ID_CP1253
FT_ENCODING_JOHABFT_OPEN_PARAMSFT_WinFNT_ID_CP1254
FT_ENCODING_MS_BIG5FT_OPEN_PATHNAMEFT_WinFNT_ID_CP1255
FT_ENCODING_MS_GB2312FT_OPEN_STREAMFT_WinFNT_ID_CP1256
FT_ENCODING_MS_JOHABFT_OPEN_XXXFT_WinFNT_ID_CP1257
FT_ENCODING_MS_SJISFT_OPENTYPE_VALIDATE_HFT_WinFNT_ID_CP1258
FT_ENCODING_MS_SYMBOLFT_Open_ArgsFT_WinFNT_ID_CP1361
FT_ENCODING_MS_WANSUNGFT_Open_FaceFT_WinFNT_ID_CP874
FT_ENCODING_NONEFT_OpenType_FreeFT_WinFNT_ID_CP932
FT_ENCODING_OLD_LATIN_2FT_OpenType_ValidateFT_WinFNT_ID_CP936
FT_ENCODING_SJISFT_ORIENTATION_FILL_LEFTFT_WinFNT_ID_CP949
FT_ENCODING_UNICODEFT_ORIENTATION_FILL_RIGHTFT_WinFNT_ID_CP950
FT_ENCODING_WANSUNGFT_ORIENTATION_NONEFT_WinFNT_ID_DEFAULT
FT_EncodingFT_ORIENTATION_POSTSCRIPTFT_WinFNT_ID_MAC
FT_ERRORS_HFT_ORIENTATION_TRUETYPEFT_WinFNT_ID_OEM
FT_ErrorFT_OrientationFT_WinFNT_ID_SYMBOL
FT_F26Dot6FT_OUTLINE_EVEN_ODD_FILLFT_WinFNT_ID_XXX
FT_F2Dot14FT_OUTLINE_FLAGSFT_XFREE86_H
FT_FACE_FLAG_CID_KEYEDFT_OUTLINE_HFTC_CMapCache
FT_FACE_FLAG_EXTERNAL_STREAMFT_OUTLINE_HIGH_PRECISIONFTC_CMapCache_Lookup
FT_FACE_FLAG_FAST_GLYPHSFT_OUTLINE_IGNORE_DROPOUTSFTC_CMapCache_New
FT_FACE_FLAG_FIXED_SIZESFT_OUTLINE_INCLUDE_STUBSFTC_Face_Requester
FT_FACE_FLAG_FIXED_WIDTHFT_OUTLINE_NONEFTC_FaceID
FT_FACE_FLAG_GLYPH_NAMESFT_OUTLINE_OWNERFTC_ImageCache
FT_FACE_FLAG_HINTERFT_OUTLINE_REVERSE_FILLFTC_ImageCache_Lookup
FT_FACE_FLAG_HORIZONTALFT_OUTLINE_SINGLE_PASSFTC_ImageCache_LookupScaler
FT_FACE_FLAG_KERNINGFT_OUTLINE_SMART_DROPOUTSFTC_ImageCache_New
FT_FACE_FLAG_MULTIPLE_MASTERSFT_OutlineFTC_ImageType
FT_FACE_FLAG_SCALABLEFT_Outline_CheckFTC_ImageTypeRec
FT_FACE_FLAG_SFNTFT_Outline_ConicToFuncFTC_Manager
FT_FACE_FLAG_TRICKYFT_Outline_CopyFTC_Manager_Done
FT_FACE_FLAG_VERTICALFT_Outline_CubicToFuncFTC_Manager_LookupFace
FT_FACE_FLAG_XXXFT_Outline_DecomposeFTC_Manager_LookupSize
FT_FaceFT_Outline_DoneFTC_Manager_New
FT_Face_CheckTrueTypePatentsFT_Outline_EmboldenFTC_Manager_RemoveFaceID
FT_Face_GetCharsOfVariantFT_Outline_FuncsFTC_Manager_Reset
FT_Face_GetCharVariantIndexFT_Outline_Get_BBoxFTC_Node
FT_Face_GetCharVariantIsDefaultFT_Outline_Get_BitmapFTC_Node_Unref
FT_Face_GetVariantSelectorsFT_Outline_Get_CBoxFTC_SBit
FT_Face_GetVariantsOfCharFT_Outline_Get_OrientationFTC_SBitCache
FT_Face_InternalFT_Outline_GetInsideBorderFTC_SBitCache_Lookup
FT_Face_SetUnpatentedHintingFT_Outline_GetOutsideBorderFTC_SBitCache_LookupScaler
FT_FaceRecFT_Outline_LineToFuncFTC_SBitCache_New
FT_FixedFT_Outline_MoveToFuncFTC_SBitRec
FT_FloorFixFT_Outline_NewFTC_Scaler
FT_FREETYPE_HFT_Outline_RenderFTC_ScalerRec
FT_Free_FuncFT_Outline_Reverseft_encoding_xxx
FT_FSTYPE_BITMAP_EMBEDDING_ONLYFT_Outline_Transformft_glyph_bbox_gridfit
FT_FSTYPE_EDITABLE_EMBEDDINGFT_Outline_Translateft_glyph_bbox_pixels
FT_FSTYPE_INSTALLABLE_EMBEDDINGFT_OutlineGlyphft_glyph_bbox_subpixels
FT_FSTYPE_NO_SUBSETTINGFT_OutlineGlyphRecft_glyph_bbox_truncate
FT_FSTYPE_PREVIEW_AND_PRINT_EMBEDDINGFT_PARAM_TAG_IGNORE_PREFERRED_FAMILYft_glyph_bbox_unscaled
FT_FSTYPE_RESTRICTED_LICENSE_EMBEDDINGFT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILYft_glyph_bbox_xxx
FT_FSTYPE_XXXFT_PARAM_TAG_INCREMENTALft_glyph_format_bitmap
FT_FWordFT_PARAM_TAG_UNPATENTED_HINTINGft_glyph_format_composite
FT_GASP_DO_GRAYFT_Palette_Modeft_glyph_format_none
FT_GASP_DO_GRIDFITFT_Parameterft_glyph_format_outline
FT_GASP_HFT_PFR_Hft_glyph_format_plotter
FT_GASP_NO_TABLEFT_PIXEL_MODE_GRAYft_glyph_format_xxx
FT_GASP_SYMMETRIC_GRIDFITFT_PIXEL_MODE_GRAY2ft_kerning_default
FT_GASP_SYMMETRIC_SMOOTHINGFT_PIXEL_MODE_GRAY4ft_kerning_unfitted
FT_GASP_XXXFT_PIXEL_MODE_LCDft_kerning_unscaled
FT_GenericFT_PIXEL_MODE_LCD_Vft_open_driver
FT_Generic_FinalizerFT_PIXEL_MODE_MONOft_open_memory
FT_Get_AdvanceFT_PIXEL_MODE_NONEft_open_params
FT_Get_AdvancesFT_Pixel_Modeft_open_pathname
FT_Get_BDF_Charset_IDFT_Pointerft_open_stream
FT_Get_BDF_PropertyFT_Posft_outline_even_odd_fill
FT_Get_Char_IndexFT_PropertyTypeft_outline_flags
FT_Get_Charmap_IndexFT_PtrDistft_outline_high_precision
FT_Get_CID_From_Glyph_IndexFT_RASTER_FLAG_AAft_outline_ignore_dropouts
FT_Get_CID_Is_Internally_CID_KeyedFT_RASTER_FLAG_CLIPft_outline_none
FT_Get_CID_Registry_Ordering_SupplementFT_RASTER_FLAG_DEFAULTft_outline_owner
FT_Get_CMap_FormatFT_RASTER_FLAG_DIRECTft_outline_reverse_fill
FT_Get_CMap_Language_IDFT_RASTER_FLAG_XXXft_outline_single_pass
FT_Get_First_CharFT_Rasterft_palette_mode_rgb
FT_Get_FSType_FlagsFT_Raster_BitSet_Funcft_palette_mode_rgba
FT_Get_GaspFT_Raster_BitTest_Funcft_pixel_mode_grays
FT_Get_GlyphFT_Raster_DoneFuncft_pixel_mode_mono
FT_Get_Glyph_NameFT_Raster_Funcsft_pixel_mode_none
FT_Get_KerningFT_Raster_NewFuncft_pixel_mode_pal2
FT_Get_MM_VarFT_Raster_Paramsft_pixel_mode_pal4
FT_Get_ModuleFT_Raster_RenderFuncft_pixel_mode_xxx
FT_Get_Multi_MasterFT_Raster_ResetFuncft_render_mode_mono
FT_Get_Name_IndexFT_Raster_SetModeFuncft_render_mode_normal
FT_Get_Next_CharFT_RENDER_Hft_render_mode_xxx
FT_Get_PFR_AdvanceFT_RENDER_MODE_LCDPS_FontInfo
FT_Get_PFR_KerningFT_RENDER_MODE_LCD_VPS_FontInfoRec
FT_Get_PFR_MetricsFT_RENDER_MODE_LIGHTPS_Private
FT_Get_Postscript_NameFT_RENDER_MODE_MONOPS_PrivateRec
FT_Get_PS_Font_InfoFT_RENDER_MODE_NORMALT1_Blend_Flags
FT_Get_PS_Font_PrivateFT_Realloc_FuncT1_FontInfo
FT_Get_RendererFT_Remove_ModuleT1_Private
FT_Get_Sfnt_NameFT_Render_GlyphTT_ADOBE_ID_CUSTOM
FT_Get_Sfnt_Name_CountFT_Render_ModeTT_ADOBE_ID_EXPERT
FT_Get_Sfnt_TableFT_RendererTT_ADOBE_ID_LATIN_1
FT_Get_SubGlyph_InfoFT_Renderer_ClassTT_ADOBE_ID_STANDARD
FT_Get_Track_KerningFT_Request_SizeTT_ADOBE_ID_XXX
FT_Get_TrueType_Engine_TypeFT_RoundFixTT_APPLE_ID_DEFAULT
FT_Get_WinFNT_HeaderFT_Select_CharmapTT_APPLE_ID_ISO_10646
FT_Get_X11_Font_FormatFT_Select_SizeTT_APPLE_ID_UNICODE_1_1
FT_GetFile_From_Mac_ATS_NameFT_Set_Char_SizeTT_APPLE_ID_UNICODE_2_0
FT_GetFile_From_Mac_NameFT_Set_CharmapTT_APPLE_ID_UNICODE_32
FT_GetFilePath_From_Mac_ATS_NameFT_Set_Debug_HookTT_APPLE_ID_VARIANT_SELECTOR
FT_GLYPH_BBOX_GRIDFITFT_Set_MM_Blend_CoordinatesTT_APPLE_ID_XXX
FT_GLYPH_BBOX_PIXELSFT_Set_MM_Design_CoordinatesTT_Header
FT_GLYPH_BBOX_SUBPIXELSFT_Set_Pixel_SizesTT_HoriHeader
FT_GLYPH_BBOX_TRUNCATEFT_Set_RendererTT_ISO_ID_10646
FT_GLYPH_BBOX_UNSCALEDFT_Set_TransformTT_ISO_ID_7BIT_ASCII
FT_GLYPH_FORMAT_BITMAPFT_Set_Var_Blend_CoordinatesTT_ISO_ID_8859_1
FT_GLYPH_FORMAT_COMPOSITEFT_Set_Var_Design_CoordinatesTT_ISO_ID_XXX
FT_GLYPH_FORMAT_NONEFT_SFNT_NAMES_HTT_MAC_ID_ARABIC
FT_GLYPH_FORMAT_OUTLINEFT_Sfnt_Table_InfoTT_MAC_ID_ARMENIAN
FT_GLYPH_FORMAT_PLOTTERFT_Sfnt_TagTT_MAC_ID_BENGALI
FT_GLYPH_HFT_SfntNameTT_MAC_ID_BURMESE
FT_GlyphFT_ShortTT_MAC_ID_DEVANAGARI
FT_Glyph_BBox_ModeFT_SIZE_REQUEST_TYPE_BBOXTT_MAC_ID_GEEZ
FT_Glyph_CopyFT_SIZE_REQUEST_TYPE_CELLTT_MAC_ID_GEORGIAN
FT_Glyph_FormatFT_SIZE_REQUEST_TYPE_NOMINALTT_MAC_ID_GREEK
FT_Glyph_Get_CBoxFT_SIZE_REQUEST_TYPE_REAL_DIMTT_MAC_ID_GUJARATI
FT_Glyph_MetricsFT_SIZE_REQUEST_TYPE_SCALESTT_MAC_ID_GURMUKHI
FT_Glyph_StrokeFT_SIZES_HTT_MAC_ID_HEBREW
FT_Glyph_StrokeBorderFT_SinTT_MAC_ID_JAPANESE
FT_Glyph_To_BitmapFT_SizeTT_MAC_ID_KANNADA
FT_Glyph_TransformFT_Size_InternalTT_MAC_ID_KHMER
FT_GlyphRecFT_Size_MetricsTT_MAC_ID_KOREAN
FT_GlyphSlotFT_Size_RequestTT_MAC_ID_LAOTIAN
FT_GlyphSlot_Own_BitmapFT_Size_Request_TypeTT_MAC_ID_MALAYALAM
FT_GlyphSlotRecFT_Size_RequestRecTT_MAC_ID_MALDIVIAN
FT_GX_VALIDATE_HFT_SizeRecTT_MAC_ID_MONGOLIAN
FT_GZIP_HFT_Slot_InternalTT_MAC_ID_ORIYA
FT_HAS_FAST_GLYPHSFT_SpanTT_MAC_ID_ROMAN
FT_HAS_FIXED_SIZESFT_SpanFuncTT_MAC_ID_RSYMBOL
FT_HAS_GLYPH_NAMESFT_STROKER_BORDER_LEFTTT_MAC_ID_RUSSIAN
FT_HAS_HORIZONTALFT_STROKER_BORDER_RIGHTTT_MAC_ID_SIMPLIFIED_CHINESE
FT_HAS_KERNINGFT_STROKER_HTT_MAC_ID_SINDHI
FT_HAS_MULTIPLE_MASTERSFT_STROKER_LINECAP_BUTTTT_MAC_ID_SINHALESE
FT_HAS_VERTICALFT_STROKER_LINECAP_ROUNDTT_MAC_ID_SLAVIC
FT_Has_PS_Glyph_NamesFT_STROKER_LINECAP_SQUARETT_MAC_ID_TAMIL
FT_IMAGE_HFT_STROKER_LINEJOIN_BEVELTT_MAC_ID_TELUGU
FT_IMAGE_TAGFT_STROKER_LINEJOIN_MITERTT_MAC_ID_THAI
FT_INCREMENTAL_HFT_STROKER_LINEJOIN_ROUNDTT_MAC_ID_TIBETAN
FT_IncrementalFT_STYLE_FLAG_BOLDTT_MAC_ID_TRADITIONAL_CHINESE
FT_Incremental_FreeGlyphDataFuncFT_STYLE_FLAG_ITALICTT_MAC_ID_UNINTERP
FT_Incremental_FuncsRecFT_STYLE_FLAG_XXXTT_MAC_ID_VIETNAMESE
FT_Incremental_GetGlyphDataFuncFT_StreamTT_MAC_ID_XXX
FT_Incremental_GetGlyphMetricsFuncFT_Stream_CloseFuncTT_MaxProfile
FT_Incremental_InterfaceFT_Stream_IoFuncTT_MS_ID_BIG_5
FT_Incremental_InterfaceRecFT_Stream_OpenGzipTT_MS_ID_GB2312
FT_Incremental_MetricsFT_Stream_OpenLZWTT_MS_ID_JOHAB
FT_Incremental_MetricsRecFT_StreamDescTT_MS_ID_SJIS
FT_Init_FreeTypeFT_StreamRecTT_MS_ID_SYMBOL_CS
FT_IntFT_StringTT_MS_ID_UCS_4
FT_Int16FT_StrokerTT_MS_ID_UNICODE_CS
FT_Int32FT_Stroker_BeginSubPathTT_MS_ID_WANSUNG
FT_IS_CID_KEYEDFT_Stroker_ConicToTT_MS_ID_XXX
FT_IS_FIXED_WIDTHFT_Stroker_CubicToTT_OS2
FT_IS_SCALABLEFT_Stroker_DoneTT_PCLT
FT_IS_SFNTFT_Stroker_EndSubPathTT_PLATFORM_ADOBE
FT_IS_TRICKYFT_Stroker_ExportTT_PLATFORM_APPLE_UNICODE
FT_KERNING_DEFAULTFT_Stroker_ExportBorderTT_PLATFORM_CUSTOM
FT_KERNING_UNFITTEDFT_Stroker_GetBorderCountsTT_PLATFORM_ISO
FT_KERNING_UNSCALEDFT_Stroker_GetCountsTT_PLATFORM_MACINTOSH
FT_Kerning_ModeFT_Stroker_LineCapTT_PLATFORM_MICROSOFT
FT_LCD_FILTER_DEFAULTFT_Stroker_LineJoinTT_PLATFORM_XXX
FT_LCD_FILTER_HFT_Stroker_LineToTT_Postscript
FT_LCD_FILTER_LEGACYFT_Stroker_NewTT_VertHeader
-
- -
[TOC]
- -
generated on Sat Feb 13 08:32:30 2010
- diff --git a/src/3rdparty/freetype/docs/reference/ft2-lcd_filtering.html b/src/3rdparty/freetype/docs/reference/ft2-lcd_filtering.html deleted file mode 100644 index 04da06ffd8..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-lcd_filtering.html +++ /dev/null @@ -1,149 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-LCD Filtering -

-

Synopsis

- - -
FT_LcdFilterFT_Library_SetLcdFilter


- -
-

The FT_Library_SetLcdFilter API can be used to specify a low-pass filter which is then applied to LCD-optimized bitmaps generated through FT_Render_Glyph. This is useful to reduce color fringes which would occur with unfiltered rendering.

-

Note that no filter is active by default, and that this function is not implemented in default builds of the library. You need to #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your ‘ftoption.h’ file in order to activate it.

-

-
-

FT_LcdFilter

-
-Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h). -

-
-
-  typedef enum  FT_LcdFilter_
-  {
-    FT_LCD_FILTER_NONE    = 0,
-    FT_LCD_FILTER_DEFAULT = 1,
-    FT_LCD_FILTER_LIGHT   = 2,
-    FT_LCD_FILTER_LEGACY  = 16,
-
-    FT_LCD_FILTER_MAX   /* do not remove */
-
-  } FT_LcdFilter;
-
-

-
-

A list of values to identify various types of LCD filters.

-

-
values
-

- - - - - -
FT_LCD_FILTER_NONE -

Do not perform filtering. When used with subpixel rendering, this results in sometimes severe color fringes.

-
FT_LCD_FILTER_DEFAULT -

The default filter reduces color fringes considerably, at the cost of a slight blurriness in the output.

-
FT_LCD_FILTER_LIGHT -

The light filter is a variant that produces less blurriness at the cost of slightly more color fringes than the default one. It might be better, depending on taste, your monitor, or your personal vision.

-
FT_LCD_FILTER_LEGACY -

This filter corresponds to the original libXft color filter. It provides high contrast output but can exhibit really bad color fringes if glyphs are not extremely well hinted to the pixel grid. In other words, it only works well if the TrueType bytecode interpreter is enabled and high-quality hinted fonts are used.

-

This filter is only provided for comparison purposes, and might be disabled or stay unsupported in the future.

-
-
-
since
-

2.3.0

-
-
-
- - -
[Index][TOC]
- -
-

FT_Library_SetLcdFilter

-
-Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Library_SetLcdFilter( FT_Library    library,
-                           FT_LcdFilter  filter );
-
-

-
-

This function is used to apply color filtering to LCD decimated bitmaps, like the ones used when calling FT_Render_Glyph with FT_RENDER_MODE_LCD or FT_RENDER_MODE_LCD_V.

-

-
input
-

- - - -
library -

A handle to the target library instance.

-
filter -

The filter type.

-

You can use FT_LCD_FILTER_NONE here to disable this feature, or FT_LCD_FILTER_DEFAULT to use a default filter that should work well on most LCD screens.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This feature is always disabled by default. Clients must make an explicit call to this function with a ‘filter’ value other than FT_LCD_FILTER_NONE in order to enable it.

-

Due to PATENTS covering subpixel rendering, this function doesn't do anything except returning ‘FT_Err_Unimplemented_Feature’ if the configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING is not defined in your build of the library, which should correspond to all default builds of FreeType.

-

The filter affects glyph bitmaps rendered through FT_Render_Glyph, FT_Outline_Get_Bitmap, FT_Load_Glyph, and FT_Load_Char.

-

It does not affect the output of FT_Outline_Render and FT_Outline_Get_Bitmap.

-

If this feature is activated, the dimensions of LCD glyph bitmaps are either larger or taller than the dimensions of the corresponding outline with regards to the pixel grid. For example, for FT_RENDER_MODE_LCD, the filter adds up to 3 pixels to the left, and up to 3 pixels to the right.

-

The bitmap offset values are adjusted correctly, so clients shouldn't need to modify their layout and glyph positioning code when enabling the filter.

-
-
since
-

2.3.0

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-list_processing.html b/src/3rdparty/freetype/docs/reference/ft2-list_processing.html deleted file mode 100644 index 47552340fa..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-list_processing.html +++ /dev/null @@ -1,483 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-List Processing -

-

Synopsis

- - - - - - -
FT_ListFT_List_AddFT_List_Iterate
FT_ListNodeFT_List_InsertFT_List_Destructor
FT_ListRecFT_List_RemoveFT_List_Finalize
FT_ListNodeRecFT_List_Up
FT_List_FindFT_List_Iterator


- -
-

This section contains various definitions related to list processing using doubly-linked nodes.

-

-
-

FT_List

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct FT_ListRec_*  FT_List;
-
-

-
-

A handle to a list record (see FT_ListRec).

-

-
-
- - -
[Index][TOC]
- -
-

FT_ListNode

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct FT_ListNodeRec_*  FT_ListNode;
-
-

-
-

Many elements and objects in FreeType are listed through an FT_List record (see FT_ListRec). As its name suggests, an FT_ListNode is a handle to a single list element.

-

-
-
- - -
[Index][TOC]
- -
-

FT_ListRec

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_ListRec_
-  {
-    FT_ListNode  head;
-    FT_ListNode  tail;
-
-  } FT_ListRec;
-
-

-
-

A structure used to hold a simple doubly-linked list. These are used in many parts of FreeType.

-

-
fields
-

- - - -
head -

The head (first element) of doubly-linked list.

-
tail -

The tail (last element) of doubly-linked list.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_ListNodeRec

-
-Defined in FT_TYPES_H (freetype/fttypes.h). -

-
-
-  typedef struct  FT_ListNodeRec_
-  {
-    FT_ListNode  prev;
-    FT_ListNode  next;
-    void*        data;
-
-  } FT_ListNodeRec;
-
-

-
-

A structure used to hold a single list element.

-

-
fields
-

- - - - -
prev -

The previous element in the list. NULL if first.

-
next -

The next element in the list. NULL if last.

-
data -

A typeless pointer to the listed object.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Find

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( FT_ListNode )
-  FT_List_Find( FT_List  list,
-                void*    data );
-
-

-
-

Find the list node for a given listed object.

-

-
input
-

- - - -
list -

A pointer to the parent list.

-
data -

The address of the listed object.

-
-
-
return
-

List node. NULL if it wasn't found.

-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Add

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( void )
-  FT_List_Add( FT_List      list,
-               FT_ListNode  node );
-
-

-
-

Append an element to the end of a list.

-

-
inout
-

- - - -
list -

A pointer to the parent list.

-
node -

The node to append.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Insert

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( void )
-  FT_List_Insert( FT_List      list,
-                  FT_ListNode  node );
-
-

-
-

Insert an element at the head of a list.

-

-
inout
-

- - - -
list -

A pointer to parent list.

-
node -

The node to insert.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Remove

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( void )
-  FT_List_Remove( FT_List      list,
-                  FT_ListNode  node );
-
-

-
-

Remove a node from a list. This function doesn't check whether the node is in the list!

-

-
input
-

- - -
node -

The node to remove.

-
-
-
inout
-

- - -
list -

A pointer to the parent list.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Up

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( void )
-  FT_List_Up( FT_List      list,
-              FT_ListNode  node );
-
-

-
-

Move a node to the head/top of a list. Used to maintain LRU lists.

-

-
inout
-

- - - -
list -

A pointer to the parent list.

-
node -

The node to move.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Iterator

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  typedef FT_Error
-  (*FT_List_Iterator)( FT_ListNode  node,
-                       void*        user );
-
-

-
-

An FT_List iterator function which is called during a list parse by FT_List_Iterate.

-

-
input
-

- - - -
node -

The current iteration list node.

-
user -

A typeless pointer passed to FT_List_Iterate. Can be used to point to the iteration's state.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Iterate

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_List_Iterate( FT_List           list,
-                   FT_List_Iterator  iterator,
-                   void*             user );
-
-

-
-

Parse a list and calls a given iterator function on each element. Note that parsing is stopped as soon as one of the iterator calls returns a non-zero value.

-

-
input
-

- - - - -
list -

A handle to the list.

-
iterator -

An iterator function, called on each node of the list.

-
user -

A user-supplied field which is passed as the second argument to the iterator.

-
-
-
return
-

The result (a FreeType error code) of the last iterator call.

-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Destructor

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  typedef void
-  (*FT_List_Destructor)( FT_Memory  memory,
-                         void*      data,
-                         void*      user );
-
-

-
-

An FT_List iterator function which is called during a list finalization by FT_List_Finalize to destroy all elements in a given list.

-

-
input
-

- - - - -
system -

The current system object.

-
data -

The current object to destroy.

-
user -

A typeless pointer passed to FT_List_Iterate. It can be used to point to the iteration's state.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_List_Finalize

-
-Defined in FT_LIST_H (freetype/ftlist.h). -

-
-
-  FT_EXPORT( void )
-  FT_List_Finalize( FT_List             list,
-                    FT_List_Destructor  destroy,
-                    FT_Memory           memory,
-                    void*               user );
-
-

-
-

Destroy all elements in the list as well as the list itself.

-

-
input
-

- - - - - -
list -

A handle to the list.

-
destroy -

A list destructor that will be applied to each element of the list.

-
memory -

The current memory object which handles deallocation.

-
user -

A user-supplied field which is passed as the last argument to the destructor.

-
-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-lzw.html b/src/3rdparty/freetype/docs/reference/ft2-lzw.html deleted file mode 100644 index fbd0f35953..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-lzw.html +++ /dev/null @@ -1,94 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-LZW Streams -

-

Synopsis

- - -
FT_Stream_OpenLZW


- -
-

This section contains the declaration of LZW-specific functions.

-

-
-

FT_Stream_OpenLZW

-
-Defined in FT_LZW_H (freetype/ftlzw.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Stream_OpenLZW( FT_Stream  stream,
-                     FT_Stream  source );
-
-

-
-

Open a new stream to parse LZW-compressed font files. This is mainly used to support the compressed ‘*.pcf.Z’ fonts that come with XFree86.

-

-
input
-

- - - -
stream -

The target embedding stream.

-
source -

The source stream.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The source stream must be opened before calling this function.

-

Calling the internal function ‘FT_Stream_Close’ on the new stream will not call ‘FT_Stream_Close’ on the source stream. None of the stream objects will be released to the heap.

-

The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream

-

In certain builds of the library, LZW compression recognition is automatically handled when calling FT_New_Face or FT_Open_Face. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a LZW stream from it and re-open the face with it.

-

This function may return ‘FT_Err_Unimplemented_Feature’ if your build of FreeType was not compiled with LZW support.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-mac_specific.html b/src/3rdparty/freetype/docs/reference/ft2-mac_specific.html deleted file mode 100644 index ff64964daa..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-mac_specific.html +++ /dev/null @@ -1,368 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Mac Specific Interface -

-

Synopsis

- - - - -
FT_New_Face_From_FONDFT_GetFilePath_From_Mac_ATS_Name
FT_GetFile_From_Mac_NameFT_New_Face_From_FSSpec
FT_GetFile_From_Mac_ATS_NameFT_New_Face_From_FSRef


- -
-

The following definitions are only available if FreeType is compiled on a Macintosh.

-

-
-

FT_New_Face_From_FOND

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Face_From_FOND( FT_Library  library,
-                         Handle      fond,
-                         FT_Long     face_index,
-                         FT_Face    *aface )
-                       FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Create a new face object from a FOND resource.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - -
fond -

A FOND resource.

-
face_index -

Only supported for the -1 ‘sanity check’ special case.

-
-
-
output
-

- - -
aface -

A handle to a new face object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
notes
-

This function can be used to create FT_Face objects from fonts that are installed in the system as follows.

-
-  fond = GetResource( 'FOND', fontName );                          
-  error = FT_New_Face_From_FOND( library, fond, 0, &face );        
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_GetFile_From_Mac_Name

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_GetFile_From_Mac_Name( const char*  fontName,
-                            FSSpec*      pathSpec,
-                            FT_Long*     face_index )
-                          FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Return an FSSpec for the disk file containing the named font.

-

-
input
-

- - -
fontName -

Mac OS name of the font (e.g., Times New Roman Bold).

-
-
-
output
-

- - - -
pathSpec -

FSSpec to the file. For passing to FT_New_Face_From_FSSpec.

-
face_index -

Index of the face. For passing to FT_New_Face_From_FSSpec.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_GetFile_From_Mac_ATS_Name

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_GetFile_From_Mac_ATS_Name( const char*  fontName,
-                                FSSpec*      pathSpec,
-                                FT_Long*     face_index )
-                              FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Return an FSSpec for the disk file containing the named font.

-

-
input
-

- - -
fontName -

Mac OS name of the font in ATS framework.

-
-
-
output
-

- - - -
pathSpec -

FSSpec to the file. For passing to FT_New_Face_From_FSSpec.

-
face_index -

Index of the face. For passing to FT_New_Face_From_FSSpec.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_GetFilePath_From_Mac_ATS_Name

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_GetFilePath_From_Mac_ATS_Name( const char*  fontName,
-                                    UInt8*       path,
-                                    UInt32       maxPathSize,
-                                    FT_Long*     face_index )
-                                  FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Return a pathname of the disk file and face index for given font name which is handled by ATS framework.

-

-
input
-

- - -
fontName -

Mac OS name of the font in ATS framework.

-
-
-
output
-

- - - - -
path -

Buffer to store pathname of the file. For passing to FT_New_Face. The client must allocate this buffer before calling this function.

-
maxPathSize -

Lengths of the buffer ‘path’ that client allocated.

-
face_index -

Index of the face. For passing to FT_New_Face.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_New_Face_From_FSSpec

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Face_From_FSSpec( FT_Library     library,
-                           const FSSpec  *spec,
-                           FT_Long        face_index,
-                           FT_Face       *aface )
-                         FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Create a new face object from a given resource and typeface index using an FSSpec to the font file.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - -
spec -

FSSpec to the font file.

-
face_index -

The index of the face within the resource. The first face has index 0.

-
-
-
output
-

- - -
aface -

A handle to a new face object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

FT_New_Face_From_FSSpec is identical to FT_New_Face except it accepts an FSSpec instead of a path.

-
-
-
- - -
[Index][TOC]
- -
-

FT_New_Face_From_FSRef

-
-Defined in FT_MAC_H (freetype/ftmac.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Face_From_FSRef( FT_Library    library,
-                          const FSRef  *ref,
-                          FT_Long       face_index,
-                          FT_Face      *aface )
-                        FT_DEPRECATED_ATTRIBUTE;
-
-

-
-

Create a new face object from a given resource and typeface index using an FSRef to the font file.

-

-
inout
-

- - -
library -

A handle to the library resource.

-
-
-
input
-

- - - -
spec -

FSRef to the font file.

-
face_index -

The index of the face within the resource. The first face has index 0.

-
-
-
output
-

- - -
aface -

A handle to a new face object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

FT_New_Face_From_FSRef is identical to FT_New_Face except it accepts an FSRef instead of a path.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-module_management.html b/src/3rdparty/freetype/docs/reference/ft2-module_management.html deleted file mode 100644 index a571c87df8..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-module_management.html +++ /dev/null @@ -1,627 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Module Management -

-

Synopsis

- - - - - - -
FT_Module_ConstructorFT_Get_ModuleFT_Add_Default_Modules
FT_Module_DestructorFT_Remove_ModuleFT_Renderer_Class
FT_Module_RequesterFT_New_LibraryFT_Get_Renderer
FT_Module_ClassFT_Done_LibraryFT_Set_Renderer
FT_Add_ModuleFT_Set_Debug_Hook


- -
-

The definitions below are used to manage modules within FreeType. Modules can be added, upgraded, and removed at runtime.

-

-
-

FT_Module_Constructor

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  typedef FT_Error
-  (*FT_Module_Constructor)( FT_Module  module );
-
-

-
-

A function used to initialize (not create) a new module object.

-

-
input
-

- - -
module -

The module to initialize.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Module_Destructor

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  typedef void
-  (*FT_Module_Destructor)( FT_Module  module );
-
-

-
-

A function used to finalize (not destroy) a given module object.

-

-
input
-

- - -
module -

The module to finalize.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Module_Requester

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  typedef FT_Module_Interface
-  (*FT_Module_Requester)( FT_Module    module,
-                          const char*  name );
-
-

-
-

A function used to query a given module for a specific interface.

-

-
input
-

- - - -
module -

The module to finalize.

-
name -

The name of the interface in the module.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Module_Class

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  typedef struct  FT_Module_Class_
-  {
-    FT_ULong               module_flags;
-    FT_Long                module_size;
-    const FT_String*       module_name;
-    FT_Fixed               module_version;
-    FT_Fixed               module_requires;
-
-    const void*            module_interface;
-
-    FT_Module_Constructor  module_init;
-    FT_Module_Destructor   module_done;
-    FT_Module_Requester    get_interface;
-
-  } FT_Module_Class;
-
-

-
-

The module class descriptor.

-

-
fields
-

- - - - - - - - - -
module_flags -

Bit flags describing the module.

-
module_size -

The size of one module object/instance in bytes.

-
module_name -

The name of the module.

-
module_version -

The version, as a 16.16 fixed number (major.minor).

-
module_requires -

The version of FreeType this module requires, as a 16.16 fixed number (major.minor). Starts at version 2.0, i.e., 0x20000.

-
module_init -

The initializing function.

-
module_done -

The finalizing function.

-
get_interface -

The interface requesting function.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Add_Module

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Add_Module( FT_Library              library,
-                 const FT_Module_Class*  clazz );
-
-

-
-

Add a new module to a given library instance.

-

-
inout
-

- - -
library -

A handle to the library object.

-
-
-
input
-

- - -
clazz -

A pointer to class descriptor for the module.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Module

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_Module )
-  FT_Get_Module( FT_Library   library,
-                 const char*  module_name );
-
-

-
-

Find a module by its name.

-

-
input
-

- - - -
library -

A handle to the library object.

-
module_name -

The module's name (as an ASCII string).

-
-
-
return
-

A module handle. 0 if none was found.

-
-
note
-

FreeType's internal modules aren't documented very well, and you should look up the source code for details.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Remove_Module

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Remove_Module( FT_Library  library,
-                    FT_Module   module );
-
-

-
-

Remove a given module from a library instance.

-

-
inout
-

- - -
library -

A handle to a library object.

-
-
-
input
-

- - -
module -

A handle to a module object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The module object is destroyed by the function in case of success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_New_Library

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Library( FT_Memory    memory,
-                  FT_Library  *alibrary );
-
-

-
-

This function is used to create a new FreeType library instance from a given memory object. It is thus possible to use libraries with distinct memory allocators within the same program.

-

Normally, you would call this function (followed by a call to FT_Add_Default_Modules or a series of calls to FT_Add_Module) instead of FT_Init_FreeType to initialize the FreeType library.

-

-
input
-

- - -
memory -

A handle to the original memory object.

-
-
-
output
-

- - -
alibrary -

A pointer to handle of a new library object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Done_Library

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Done_Library( FT_Library  library );
-
-

-
-

Discard a given library object. This closes all drivers and discards all resource objects.

-

-
input
-

- - -
library -

A handle to the target library.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Debug_Hook

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( void )
-  FT_Set_Debug_Hook( FT_Library         library,
-                     FT_UInt            hook_index,
-                     FT_DebugHook_Func  debug_hook );
-
-

-
-

Set a debug hook function for debugging the interpreter of a font format.

-

-
inout
-

- - -
library -

A handle to the library object.

-
-
-
input
-

- - - -
hook_index -

The index of the debug hook. You should use the values defined in ‘ftobjs.h’, e.g., ‘FT_DEBUG_HOOK_TRUETYPE’.

-
debug_hook -

The function used to debug the interpreter.

-
-
-
note
-

Currently, four debug hook slots are available, but only two (for the TrueType and the Type 1 interpreter) are defined.

-

Since the internal headers of FreeType are no longer installed, the symbol ‘FT_DEBUG_HOOK_TRUETYPE’ isn't available publicly. This is a bug and will be fixed in a forthcoming release.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Add_Default_Modules

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( void )
-  FT_Add_Default_Modules( FT_Library  library );
-
-

-
-

Add the set of default drivers to a given library object. This is only useful when you create a library object with FT_New_Library (usually to plug a custom memory manager).

-

-
inout
-

- - -
library -

A handle to a new library object.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Renderer_Class

-
-Defined in FT_RENDER_H (freetype/ftrender.h). -

-
-
-  typedef struct  FT_Renderer_Class_
-  {
-    FT_Module_Class            root;
-
-    FT_Glyph_Format            glyph_format;
-
-    FT_Renderer_RenderFunc     render_glyph;
-    FT_Renderer_TransformFunc  transform_glyph;
-    FT_Renderer_GetCBoxFunc    get_glyph_cbox;
-    FT_Renderer_SetModeFunc    set_mode;
-
-    FT_Raster_Funcs*           raster_class;
-
-  } FT_Renderer_Class;
-
-

-
-

The renderer module class descriptor.

-

-
fields
-

- - - - - - - - - -
root -

The root FT_Module_Class fields.

-
glyph_format -

The glyph image format this renderer handles.

-
render_glyph -

A method used to render the image that is in a given glyph slot into a bitmap.

-
transform_glyph -

A method used to transform the image that is in a given glyph slot.

-
get_glyph_cbox -

A method used to access the glyph's cbox.

-
set_mode -

A method used to pass additional parameters.

-
raster_class -

For FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to its raster's class.

-
raster -

For FT_GLYPH_FORMAT_OUTLINE renderers only. This is a pointer to the corresponding raster object, if any.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Renderer

-
-Defined in FT_RENDER_H (freetype/ftrender.h). -

-
-
-  FT_EXPORT( FT_Renderer )
-  FT_Get_Renderer( FT_Library       library,
-                   FT_Glyph_Format  format );
-
-

-
-

Retrieve the current renderer for a given glyph format.

-

-
input
-

- - - -
library -

A handle to the library object.

-
format -

The glyph format.

-
-
-
return
-

A renderer handle. 0 if none found.

-
-
note
-

An error will be returned if a module already exists by that name, or if the module requires a version of FreeType that is too great.

-

To add a new renderer, simply use FT_Add_Module. To retrieve a renderer by its name, use FT_Get_Module.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Renderer

-
-Defined in FT_RENDER_H (freetype/ftrender.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Renderer( FT_Library     library,
-                   FT_Renderer    renderer,
-                   FT_UInt        num_params,
-                   FT_Parameter*  parameters );
-
-

-
-

Set the current renderer to use, and set additional mode.

-

-
inout
-

- - -
library -

A handle to the library object.

-
-
-
input
-

- - - - -
renderer -

A handle to the renderer object.

-
num_params -

The number of additional parameters.

-
parameters -

Additional parameters.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

In case of success, the renderer will be used to convert glyph images in the renderer's known format into bitmaps.

-

This doesn't change the current renderer for other formats.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-multiple_masters.html b/src/3rdparty/freetype/docs/reference/ft2-multiple_masters.html deleted file mode 100644 index ac2251536a..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-multiple_masters.html +++ /dev/null @@ -1,511 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Multiple Masters -

-

Synopsis

- - - - - - - -
FT_MM_AxisFT_Get_MM_Var
FT_Multi_MasterFT_Set_MM_Design_Coordinates
FT_Var_AxisFT_Set_Var_Design_Coordinates
FT_Var_Named_StyleFT_Set_MM_Blend_Coordinates
FT_MM_VarFT_Set_Var_Blend_Coordinates
FT_Get_Multi_Master


- -
-

The following types and functions are used to manage Multiple Master fonts, i.e., the selection of specific design instances by setting design axis coordinates.

-

George Williams has extended this interface to make it work with both Type 1 Multiple Masters fonts and GX distortable (var) fonts. Some of these routines only work with MM fonts, others will work with both types. They are similar enough that a consistent interface makes sense.

-

-
-

FT_MM_Axis

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  typedef struct  FT_MM_Axis_
-  {
-    FT_String*  name;
-    FT_Long     minimum;
-    FT_Long     maximum;
-
-  } FT_MM_Axis;
-
-

-
-

A simple structure used to model a given axis in design space for Multiple Masters fonts.

-

This structure can't be used for GX var fonts.

-

-
fields
-

- - - - -
name -

The axis's name.

-
minimum -

The axis's minimum design coordinate.

-
maximum -

The axis's maximum design coordinate.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Multi_Master

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  typedef struct  FT_Multi_Master_
-  {
-    FT_UInt     num_axis;
-    FT_UInt     num_designs;
-    FT_MM_Axis  axis[T1_MAX_MM_AXIS];
-
-  } FT_Multi_Master;
-
-

-
-

A structure used to model the axes and space of a Multiple Masters font.

-

This structure can't be used for GX var fonts.

-

-
fields
-

- - - - -
num_axis -

Number of axes. Cannot exceed 4.

-
num_designs -

Number of designs; should be normally 2^num_axis even though the Type 1 specification strangely allows for intermediate designs to be present. This number cannot exceed 16.

-
axis -

A table of axis descriptors.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Var_Axis

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  typedef struct  FT_Var_Axis_
-  {
-    FT_String*  name;
-
-    FT_Fixed    minimum;
-    FT_Fixed    def;
-    FT_Fixed    maximum;
-
-    FT_ULong    tag;
-    FT_UInt     strid;
-
-  } FT_Var_Axis;
-
-

-
-

A simple structure used to model a given axis in design space for Multiple Masters and GX var fonts.

-

-
fields
-

- - - - - - - -
name -

The axis's name. Not always meaningful for GX.

-
minimum -

The axis's minimum design coordinate.

-
def -

The axis's default design coordinate. FreeType computes meaningful default values for MM; it is then an integer value, not in 16.16 format.

-
maximum -

The axis's maximum design coordinate.

-
tag -

The axis's tag (the GX equivalent to ‘name’). FreeType provides default values for MM if possible.

-
strid -

The entry in ‘name’ table (another GX version of ‘name’). Not meaningful for MM.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Var_Named_Style

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  typedef struct  FT_Var_Named_Style_
-  {
-    FT_Fixed*  coords;
-    FT_UInt    strid;
-
-  } FT_Var_Named_Style;
-
-

-
-

A simple structure used to model a named style in a GX var font.

-

This structure can't be used for MM fonts.

-

-
fields
-

- - - -
coords -

The design coordinates for this style. This is an array with one entry for each axis.

-
strid -

The entry in ‘name’ table identifying this style.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_MM_Var

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  typedef struct  FT_MM_Var_
-  {
-    FT_UInt              num_axis;
-    FT_UInt              num_designs;
-    FT_UInt              num_namedstyles;
-    FT_Var_Axis*         axis;
-    FT_Var_Named_Style*  namedstyle;
-
-  } FT_MM_Var;
-
-

-
-

A structure used to model the axes and space of a Multiple Masters or GX var distortable font.

-

Some fields are specific to one format and not to the other.

-

-
fields
-

- - - - - - -
num_axis -

The number of axes. The maximum value is 4 for MM; no limit in GX.

-
num_designs -

The number of designs; should be normally 2^num_axis for MM fonts. Not meaningful for GX (where every glyph could have a different number of designs).

-
num_namedstyles -

The number of named styles; only meaningful for GX which allows certain design coordinates to have a string ID (in the ‘name’ table) associated with them. The font can tell the user that, for example, Weight=1.5 is ‘Bold’.

-
axis -

A table of axis descriptors. GX fonts contain slightly more data than MM.

-
namedstyles -

A table of named styles. Only meaningful with GX.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Multi_Master

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Multi_Master( FT_Face           face,
-                       FT_Multi_Master  *amaster );
-
-

-
-

Retrieve the Multiple Master descriptor of a given font.

-

This function can't be used with GX fonts.

-

-
input
-

- - -
face -

A handle to the source face.

-
-
-
output
-

- - -
amaster -

The Multiple Masters descriptor.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_MM_Var

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_MM_Var( FT_Face      face,
-                 FT_MM_Var*  *amaster );
-
-

-
-

Retrieve the Multiple Master/GX var descriptor of a given font.

-

-
input
-

- - -
face -

A handle to the source face.

-
-
-
output
-

- - -
amaster -

The Multiple Masters/GX var descriptor. Allocates a data structure, which the user must free (a single call to FT_FREE will do it).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_MM_Design_Coordinates

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_MM_Design_Coordinates( FT_Face   face,
-                                FT_UInt   num_coords,
-                                FT_Long*  coords );
-
-

-
-

For Multiple Masters fonts, choose an interpolated font design through design coordinates.

-

This function can't be used with GX fonts.

-

-
inout
-

- - -
face -

A handle to the source face.

-
-
-
input
-

- - - -
num_coords -

The number of design coordinates (must be equal to the number of axes in the font).

-
coords -

An array of design coordinates.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Var_Design_Coordinates

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Var_Design_Coordinates( FT_Face    face,
-                                 FT_UInt    num_coords,
-                                 FT_Fixed*  coords );
-
-

-
-

For Multiple Master or GX Var fonts, choose an interpolated font design through design coordinates.

-

-
inout
-

- - -
face -

A handle to the source face.

-
-
-
input
-

- - - -
num_coords -

The number of design coordinates (must be equal to the number of axes in the font).

-
coords -

An array of design coordinates.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_MM_Blend_Coordinates

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_MM_Blend_Coordinates( FT_Face    face,
-                               FT_UInt    num_coords,
-                               FT_Fixed*  coords );
-
-

-
-

For Multiple Masters and GX var fonts, choose an interpolated font design through normalized blend coordinates.

-

-
inout
-

- - -
face -

A handle to the source face.

-
-
-
input
-

- - - -
num_coords -

The number of design coordinates (must be equal to the number of axes in the font).

-
coords -

The design coordinates array (each element must be between 0 and 1.0).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Set_Var_Blend_Coordinates

-
-Defined in FT_MULTIPLE_MASTERS_H (freetype/ftmm.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Set_Var_Blend_Coordinates( FT_Face    face,
-                                FT_UInt    num_coords,
-                                FT_Fixed*  coords );
-
-

-
-

This is another name of FT_Set_MM_Blend_Coordinates.

-

-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-ot_validation.html b/src/3rdparty/freetype/docs/reference/ft2-ot_validation.html deleted file mode 100644 index 06c7db3753..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-ot_validation.html +++ /dev/null @@ -1,208 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-OpenType Validation -

-

Synopsis

- - -
FT_VALIDATE_OTXXXFT_OpenType_ValidateFT_OpenType_Free


- -
-

This section contains the declaration of functions to validate some OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).

-

-
-

FT_VALIDATE_OTXXX

-
-Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h). -

-
-
-#define FT_VALIDATE_BASE  0x0100
-#define FT_VALIDATE_GDEF  0x0200
-#define FT_VALIDATE_GPOS  0x0400
-#define FT_VALIDATE_GSUB  0x0800
-#define FT_VALIDATE_JSTF  0x1000
-#define FT_VALIDATE_MATH  0x2000
-
-#define FT_VALIDATE_OT  FT_VALIDATE_BASE | \
-                        FT_VALIDATE_GDEF | \
-                        FT_VALIDATE_GPOS | \
-                        FT_VALIDATE_GSUB | \
-                        FT_VALIDATE_JSTF | \
-                        FT_VALIDATE_MATH
-
-

-
-

A list of bit-field constants used with FT_OpenType_Validate to indicate which OpenType tables should be validated.

-

-
values
-

- - - - - - - - -
FT_VALIDATE_BASE -

Validate BASE table.

-
FT_VALIDATE_GDEF -

Validate GDEF table.

-
FT_VALIDATE_GPOS -

Validate GPOS table.

-
FT_VALIDATE_GSUB -

Validate GSUB table.

-
FT_VALIDATE_JSTF -

Validate JSTF table.

-
FT_VALIDATE_MATH -

Validate MATH table.

-
FT_VALIDATE_OT -

Validate all OpenType tables (BASE, GDEF, GPOS, GSUB, JSTF, MATH).

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_OpenType_Validate

-
-Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_OpenType_Validate( FT_Face    face,
-                        FT_UInt    validation_flags,
-                        FT_Bytes  *BASE_table,
-                        FT_Bytes  *GDEF_table,
-                        FT_Bytes  *GPOS_table,
-                        FT_Bytes  *GSUB_table,
-                        FT_Bytes  *JSTF_table );
-
-

-
-

Validate various OpenType tables to assure that all offsets and indices are valid. The idea is that a higher-level library which actually does the text layout can access those tables without error checking (which can be quite time consuming).

-

-
input
-

- - - -
face -

A handle to the input face.

-
validation_flags -

A bit field which specifies the tables to be validated. See FT_VALIDATE_OTXXX for possible values.

-
-
-
output
-

- - - - - - -
BASE_table -

A pointer to the BASE table.

-
GDEF_table -

A pointer to the GDEF table.

-
GPOS_table -

A pointer to the GPOS table.

-
GSUB_table -

A pointer to the GSUB table.

-
JSTF_table -

A pointer to the JSTF table.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with OpenType fonts, returning an error otherwise.

-

After use, the application should deallocate the five tables with FT_OpenType_Free. A NULL value indicates that the table either doesn't exist in the font, or the application hasn't asked for validation.

-
-
-
- - -
[Index][TOC]
- -
-

FT_OpenType_Free

-
-Defined in FT_OPENTYPE_VALIDATE_H (freetype/ftotval.h). -

-
-
-  FT_EXPORT( void )
-  FT_OpenType_Free( FT_Face   face,
-                    FT_Bytes  table );
-
-

-
-

Free the buffer allocated by OpenType validator.

-

-
input
-

- - - -
face -

A handle to the input face.

-
table -

The pointer to the buffer that is allocated by FT_OpenType_Validate.

-
-
-
note
-

This function must be used to free the buffer allocated by FT_OpenType_Validate only.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-outline_processing.html b/src/3rdparty/freetype/docs/reference/ft2-outline_processing.html deleted file mode 100644 index c0c0bc8ea7..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-outline_processing.html +++ /dev/null @@ -1,1119 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Outline Processing -

-

Synopsis

- - - - - - - - - - - - - -
FT_OutlineFT_Outline_MoveToFunc
FT_OUTLINE_FLAGSFT_Outline_LineToFunc
FT_Outline_NewFT_Outline_ConicToFunc
FT_Outline_DoneFT_Outline_CubicToFunc
FT_Outline_CopyFT_Outline_Funcs
FT_Outline_TranslateFT_Outline_Decompose
FT_Outline_TransformFT_Outline_Get_CBox
FT_Outline_EmboldenFT_Outline_Get_Bitmap
FT_Outline_ReverseFT_Outline_Render
FT_Outline_CheckFT_Orientation
FT_Outline_Get_BBoxFT_Outline_Get_Orientation
ft_outline_flags


- -
-

This section contains routines used to create and destroy scalable glyph images known as ‘outlines’. These can also be measured, transformed, and converted into bitmaps and pixmaps.

-

-
-

FT_Outline

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Outline_
-  {
-    short       n_contours;      /* number of contours in glyph        */
-    short       n_points;        /* number of points in the glyph      */
-
-    FT_Vector*  points;          /* the outline's points               */
-    char*       tags;            /* the points flags                   */
-    short*      contours;        /* the contour end points             */
-
-    int         flags;           /* outline masks                      */
-
-  } FT_Outline;
-
-  /* Following limits must be consistent with */
-  /* FT_Outline.{n_contours,n_points}         */
-#define FT_OUTLINE_CONTOURS_MAX  SHRT_MAX
-#define FT_OUTLINE_POINTS_MAX    SHRT_MAX
-
-

-
-

This structure is used to describe an outline to the scan-line converter.

-

-
fields
-

- - - - - - - -
n_contours -

The number of contours in the outline.

-
n_points -

The number of points in the outline.

-
points -

A pointer to an array of ‘n_points’ FT_Vector elements, giving the outline's point coordinates.

-
tags -

A pointer to an array of ‘n_points’ chars, giving each outline point's type.

-

If bit 0 is unset, the point is ‘off’ the curve, i.e., a Bézier control point, while it is ‘on’ if set.

-

Bit 1 is meaningful for ‘off’ points only. If set, it indicates a third-order Bézier arc control point; and a second-order control point if unset.

-

If bit 2 is set, bits 5-7 contain the drop-out mode (as defined in the OpenType specification; the value is the same as the argument to the SCANMODE instruction).

-

Bits 3 and 4 are reserved for internal purposes.

-
contours -

An array of ‘n_contours’ shorts, giving the end point of each contour within the outline. For example, the first contour is defined by the points ‘0’ to ‘contours[0]’, the second one is defined by the points ‘contours[0]+1’ to ‘contours[1]’, etc.

-
flags -

A set of bit flags used to characterize the outline and give hints to the scan-converter and hinter on how to convert/grid-fit it. See FT_OUTLINE_FLAGS.

-
-
-
note
-

The B/W rasterizer only checks bit 2 in the ‘tags’ array for the first point of each contour. The drop-out mode as given with FT_OUTLINE_IGNORE_DROPOUTS, FT_OUTLINE_SMART_DROPOUTS, and FT_OUTLINE_INCLUDE_STUBS in ‘flags’ is then overridden.

-
-
-
- - -
[Index][TOC]
- -
-

FT_OUTLINE_FLAGS

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#define FT_OUTLINE_NONE             0x0
-#define FT_OUTLINE_OWNER            0x1
-#define FT_OUTLINE_EVEN_ODD_FILL    0x2
-#define FT_OUTLINE_REVERSE_FILL     0x4
-#define FT_OUTLINE_IGNORE_DROPOUTS  0x8
-#define FT_OUTLINE_SMART_DROPOUTS   0x10
-#define FT_OUTLINE_INCLUDE_STUBS    0x20
-
-#define FT_OUTLINE_HIGH_PRECISION   0x100
-#define FT_OUTLINE_SINGLE_PASS      0x200
-
-

-
-

A list of bit-field constants use for the flags in an outline's ‘flags’ field.

-

-
values
-

- - - - - - - - - - - - - - - - -
FT_OUTLINE_NONE -

Value 0 is reserved.

-
FT_OUTLINE_OWNER -

If set, this flag indicates that the outline's field arrays (i.e., ‘points’, ‘flags’, and ‘contours’) are ‘owned’ by the outline object, and should thus be freed when it is destroyed.

-
FT_OUTLINE_EVEN_ODD_FILL
-

By default, outlines are filled using the non-zero winding rule. If set to 1, the outline will be filled using the even-odd fill rule (only works with the smooth rasterizer).

-
FT_OUTLINE_REVERSE_FILL
-

By default, outside contours of an outline are oriented in clock-wise direction, as defined in the TrueType specification. This flag is set if the outline uses the opposite direction (typically for Type 1 fonts). This flag is ignored by the scan converter.

-
FT_OUTLINE_IGNORE_DROPOUTS
-

By default, the scan converter will try to detect drop-outs in an outline and correct the glyph bitmap to ensure consistent shape continuity. If set, this flag hints the scan-line converter to ignore such cases. See below for more information.

-
FT_OUTLINE_SMART_DROPOUTS
-

Select smart dropout control. If unset, use simple dropout control. Ignored if FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more information.

-
FT_OUTLINE_INCLUDE_STUBS
-

If set, turn pixels on for ‘stubs’, otherwise exclude them. Ignored if FT_OUTLINE_IGNORE_DROPOUTS is set. See below for more information.

-
FT_OUTLINE_HIGH_PRECISION
-

This flag indicates that the scan-line converter should try to convert this outline to bitmaps with the highest possible quality. It is typically set for small character sizes. Note that this is only a hint that might be completely ignored by a given scan-converter.

-
FT_OUTLINE_SINGLE_PASS -

This flag is set to force a given scan-converter to only use a single pass over the outline to render a bitmap glyph image. Normally, it is set for very large character sizes. It is only a hint that might be completely ignored by a given scan-converter.

-
-
-
note
-

The flags FT_OUTLINE_IGNORE_DROPOUTS, FT_OUTLINE_SMART_DROPOUTS, and FT_OUTLINE_INCLUDE_STUBS are ignored by the smooth rasterizer.

-

There exists a second mechanism to pass the drop-out mode to the B/W rasterizer; see the ‘tags’ field in FT_Outline.

-

Please refer to the description of the ‘SCANTYPE’ instruction in the OpenType specification (in file ‘ttinst1.doc’) how simple drop-outs, smart drop-outs, and stubs are defined.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_New

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_New( FT_Library   library,
-                  FT_UInt      numPoints,
-                  FT_Int       numContours,
-                  FT_Outline  *anoutline );
-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_New_Internal( FT_Memory    memory,
-                           FT_UInt      numPoints,
-                           FT_Int       numContours,
-                           FT_Outline  *anoutline );
-
-

-
-

Create a new outline of a given size.

-

-
input
-

- - - - -
library -

A handle to the library object from where the outline is allocated. Note however that the new outline will not necessarily be freed, when destroying the library, by FT_Done_FreeType.

-
numPoints -

The maximal number of points within the outline.

-
numContours -

The maximal number of contours within the outline.

-
-
-
output
-

- - -
anoutline -

A handle to the new outline.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The reason why this function takes a ‘library’ parameter is simply to use the library's memory allocator.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Done

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Done( FT_Library   library,
-                   FT_Outline*  outline );
-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Done_Internal( FT_Memory    memory,
-                            FT_Outline*  outline );
-
-

-
-

Destroy an outline created with FT_Outline_New.

-

-
input
-

- - - -
library -

A handle of the library object used to allocate the outline.

-
outline -

A pointer to the outline object to be discarded.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If the outline's ‘owner’ field is not set, only the outline descriptor will be released.

-

The reason why this function takes an ‘library’ parameter is simply to use ft_mem_free().

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Copy

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Copy( const FT_Outline*  source,
-                   FT_Outline        *target );
-
-

-
-

Copy an outline into another one. Both objects must have the same sizes (number of points & number of contours) when this function is called.

-

-
input
-

- - -
source -

A handle to the source outline.

-
-
-
output
-

- - -
target -

A handle to the target outline.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Translate

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( void )
-  FT_Outline_Translate( const FT_Outline*  outline,
-                        FT_Pos             xOffset,
-                        FT_Pos             yOffset );
-
-

-
-

Apply a simple translation to the points of an outline.

-

-
inout
-

- - -
outline -

A pointer to the target outline descriptor.

-
-
-
input
-

- - - -
xOffset -

The horizontal offset.

-
yOffset -

The vertical offset.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Transform

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( void )
-  FT_Outline_Transform( const FT_Outline*  outline,
-                        const FT_Matrix*   matrix );
-
-

-
-

Apply a simple 2x2 matrix to all of an outline's points. Useful for applying rotations, slanting, flipping, etc.

-

-
inout
-

- - -
outline -

A pointer to the target outline descriptor.

-
-
-
input
-

- - -
matrix -

A pointer to the transformation matrix.

-
-
-
note
-

You can use FT_Outline_Translate if you need to translate the outline's points.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Embolden

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Embolden( FT_Outline*  outline,
-                       FT_Pos       strength );
-
-

-
-

Embolden an outline. The new outline will be at most 4 times ‘strength’ pixels wider and higher. You may think of the left and bottom borders as unchanged.

-

Negative ‘strength’ values to reduce the outline thickness are possible also.

-

-
inout
-

- - -
outline -

A handle to the target outline.

-
-
-
input
-

- - -
strength -

How strong the glyph is emboldened. Expressed in 26.6 pixel format.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The used algorithm to increase or decrease the thickness of the glyph doesn't change the number of points; this means that certain situations like acute angles or intersections are sometimes handled incorrectly.

-

If you need ‘better’ metrics values you should call FT_Outline_Get_CBox ot FT_Outline_Get_BBox.

-

Example call:

-
-  FT_Load_Glyph( face, index, FT_LOAD_DEFAULT );                   
-  if ( face->slot->format == FT_GLYPH_FORMAT_OUTLINE )             
-    FT_Outline_Embolden( &face->slot->outline, strength );         
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Reverse

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( void )
-  FT_Outline_Reverse( FT_Outline*  outline );
-
-

-
-

Reverse the drawing direction of an outline. This is used to ensure consistent fill conventions for mirrored glyphs.

-

-
inout
-

- - -
outline -

A pointer to the target outline descriptor.

-
-
-
note
-

This function toggles the bit flag FT_OUTLINE_REVERSE_FILL in the outline's ‘flags’ field.

-

It shouldn't be used by a normal client application, unless it knows what it is doing.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Check

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Check( FT_Outline*  outline );
-
-

-
-

Check the contents of an outline descriptor.

-

-
input
-

- - -
outline -

A handle to a source outline.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Get_BBox

-
-Defined in FT_BBOX_H (freetype/ftbbox.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Get_BBox( FT_Outline*  outline,
-                       FT_BBox     *abbox );
-
-

-
-

Compute the exact bounding box of an outline. This is slower than computing the control box. However, it uses an advanced algorithm which returns very quickly when the two boxes coincide. Otherwise, the outline Bézier arcs are traversed to extract their extrema.

-

-
input
-

- - -
outline -

A pointer to the source outline.

-
-
-
output
-

- - -
abbox -

The outline's exact bounding box.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

ft_outline_flags

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#define ft_outline_none             FT_OUTLINE_NONE
-#define ft_outline_owner            FT_OUTLINE_OWNER
-#define ft_outline_even_odd_fill    FT_OUTLINE_EVEN_ODD_FILL
-#define ft_outline_reverse_fill     FT_OUTLINE_REVERSE_FILL
-#define ft_outline_ignore_dropouts  FT_OUTLINE_IGNORE_DROPOUTS
-#define ft_outline_high_precision   FT_OUTLINE_HIGH_PRECISION
-#define ft_outline_single_pass      FT_OUTLINE_SINGLE_PASS
-
-

-
-

These constants are deprecated. Please use the corresponding FT_OUTLINE_FLAGS values.

-

-
values
-

- - - - - - - - - - - - -
ft_outline_none -

See FT_OUTLINE_NONE.

-
ft_outline_owner -

See FT_OUTLINE_OWNER.

-
ft_outline_even_odd_fill
-

See FT_OUTLINE_EVEN_ODD_FILL.

-
ft_outline_reverse_fill
-

See FT_OUTLINE_REVERSE_FILL.

-
ft_outline_ignore_dropouts
-

See FT_OUTLINE_IGNORE_DROPOUTS.

-
ft_outline_high_precision
-

See FT_OUTLINE_HIGH_PRECISION.

-
ft_outline_single_pass -

See FT_OUTLINE_SINGLE_PASS.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_MoveToFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Outline_MoveToFunc)( const FT_Vector*  to,
-                            void*             user );
-
-#define FT_Outline_MoveTo_Func  FT_Outline_MoveToFunc
-
-

-
-

A function pointer type used to describe the signature of a ‘move to’ function during outline walking/decomposition.

-

A ‘move to’ is emitted to start a new contour in an outline.

-

-
input
-

- - - -
to -

A pointer to the target point of the ‘move to’.

-
user -

A typeless pointer which is passed from the caller of the decomposition function.

-
-
-
return
-

Error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_LineToFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Outline_LineToFunc)( const FT_Vector*  to,
-                            void*             user );
-
-#define FT_Outline_LineTo_Func  FT_Outline_LineToFunc
-
-

-
-

A function pointer type used to describe the signature of a ‘line to’ function during outline walking/decomposition.

-

A ‘line to’ is emitted to indicate a segment in the outline.

-

-
input
-

- - - -
to -

A pointer to the target point of the ‘line to’.

-
user -

A typeless pointer which is passed from the caller of the decomposition function.

-
-
-
return
-

Error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_ConicToFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Outline_ConicToFunc)( const FT_Vector*  control,
-                             const FT_Vector*  to,
-                             void*             user );
-
-#define FT_Outline_ConicTo_Func  FT_Outline_ConicToFunc
-
-

-
-

A function pointer type used to describe the signature of a ‘conic to’ function during outline walking or decomposition.

-

A ‘conic to’ is emitted to indicate a second-order Bézier arc in the outline.

-

-
input
-

- - - - -
control -

An intermediate control point between the last position and the new target in ‘to’.

-
to -

A pointer to the target end point of the conic arc.

-
user -

A typeless pointer which is passed from the caller of the decomposition function.

-
-
-
return
-

Error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_CubicToFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Outline_CubicToFunc)( const FT_Vector*  control1,
-                             const FT_Vector*  control2,
-                             const FT_Vector*  to,
-                             void*             user );
-
-#define FT_Outline_CubicTo_Func  FT_Outline_CubicToFunc
-
-

-
-

A function pointer type used to describe the signature of a ‘cubic to’ function during outline walking or decomposition.

-

A ‘cubic to’ is emitted to indicate a third-order Bézier arc.

-

-
input
-

- - - - - -
control1 -

A pointer to the first Bézier control point.

-
control2 -

A pointer to the second Bézier control point.

-
to -

A pointer to the target end point.

-
user -

A typeless pointer which is passed from the caller of the decomposition function.

-
-
-
return
-

Error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Funcs

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Outline_Funcs_
-  {
-    FT_Outline_MoveToFunc   move_to;
-    FT_Outline_LineToFunc   line_to;
-    FT_Outline_ConicToFunc  conic_to;
-    FT_Outline_CubicToFunc  cubic_to;
-
-    int                     shift;
-    FT_Pos                  delta;
-
-  } FT_Outline_Funcs;
-
-

-
-

A structure to hold various function pointers used during outline decomposition in order to emit segments, conic, and cubic Béziers.

-

-
fields
-

- - - - - - - -
move_to -

The ‘move to’ emitter.

-
line_to -

The segment emitter.

-
conic_to -

The second-order Bézier arc emitter.

-
cubic_to -

The third-order Bézier arc emitter.

-
shift -

The shift that is applied to coordinates before they are sent to the emitter.

-
delta -

The delta that is applied to coordinates before they are sent to the emitter, but after the shift.

-
-
-
note
-

The point coordinates sent to the emitters are the transformed version of the original coordinates (this is important for high accuracy during scan-conversion). The transformation is simple:

-
-  x' = (x << shift) - delta                                        
-  y' = (x << shift) - delta                                        
-
-

Set the values of ‘shift’ and ‘delta’ to 0 to get the original point coordinates.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Decompose

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Decompose( FT_Outline*              outline,
-                        const FT_Outline_Funcs*  func_interface,
-                        void*                    user );
-
-

-
-

Walk over an outline's structure to decompose it into individual segments and Bézier arcs. This function also emits ‘move to’ operations to indicate the start of new contours in the outline.

-

-
input
-

- - - -
outline -

A pointer to the source target.

-
func_interface -

A table of ‘emitters’, i.e., function pointers called during decomposition to indicate path operations.

-
-
-
inout
-

- - -
user -

A typeless pointer which is passed to each emitter during the decomposition. It can be used to store the state during the decomposition.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Get_CBox

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( void )
-  FT_Outline_Get_CBox( const FT_Outline*  outline,
-                       FT_BBox           *acbox );
-
-

-
-

Return an outline's ‘control box’. The control box encloses all the outline's points, including Bézier control points. Though it coincides with the exact bounding box for most glyphs, it can be slightly larger in some situations (like when rotating an outline which contains Bézier outside arcs).

-

Computing the control box is very fast, while getting the bounding box can take much more time as it needs to walk over all segments and arcs in the outline. To get the latter, you can use the ‘ftbbox’ component which is dedicated to this single task.

-

-
input
-

- - -
outline -

A pointer to the source outline descriptor.

-
-
-
output
-

- - -
acbox -

The outline's control box.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Get_Bitmap

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Get_Bitmap( FT_Library        library,
-                         FT_Outline*       outline,
-                         const FT_Bitmap  *abitmap );
-
-

-
-

Render an outline within a bitmap. The outline's image is simply OR-ed to the target bitmap.

-

-
input
-

- - - -
library -

A handle to a FreeType library object.

-
outline -

A pointer to the source outline descriptor.

-
-
-
inout
-

- - -
abitmap -

A pointer to the target bitmap descriptor.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function does NOT CREATE the bitmap, it only renders an outline image within the one you pass to it! Consequently, the various fields in ‘abitmap’ should be set accordingly.

-

It will use the raster corresponding to the default glyph format.

-

The value of the ‘num_grays’ field in ‘abitmap’ is ignored. If you select the gray-level rasterizer, and you want less than 256 gray levels, you have to use FT_Outline_Render directly.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Render

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Outline_Render( FT_Library         library,
-                     FT_Outline*        outline,
-                     FT_Raster_Params*  params );
-
-

-
-

Render an outline within a bitmap using the current scan-convert. This function uses an FT_Raster_Params structure as an argument, allowing advanced features like direct composition, translucency, etc.

-

-
input
-

- - - -
library -

A handle to a FreeType library object.

-
outline -

A pointer to the source outline descriptor.

-
-
-
inout
-

- - -
params -

A pointer to an FT_Raster_Params structure used to describe the rendering operation.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You should know what you are doing and how FT_Raster_Params works to use this function.

-

The field ‘params.source’ will be set to ‘outline’ before the scan converter is called, which means that the value you give to it is actually ignored.

-

The gray-level rasterizer always uses 256 gray levels. If you want less gray levels, you have to provide your own span callback. See the FT_RASTER_FLAG_DIRECT value of the ‘flags’ field in the FT_Raster_Params structure for more details.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Orientation

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  typedef enum  FT_Orientation_
-  {
-    FT_ORIENTATION_TRUETYPE   = 0,
-    FT_ORIENTATION_POSTSCRIPT = 1,
-    FT_ORIENTATION_FILL_RIGHT = FT_ORIENTATION_TRUETYPE,
-    FT_ORIENTATION_FILL_LEFT  = FT_ORIENTATION_POSTSCRIPT,
-    FT_ORIENTATION_NONE
-
-  } FT_Orientation;
-
-

-
-

A list of values used to describe an outline's contour orientation.

-

The TrueType and PostScript specifications use different conventions to determine whether outline contours should be filled or unfilled.

-

-
values
-

- - - - - - - - - - -
FT_ORIENTATION_TRUETYPE
-

According to the TrueType specification, clockwise contours must be filled, and counter-clockwise ones must be unfilled.

-
FT_ORIENTATION_POSTSCRIPT
-

According to the PostScript specification, counter-clockwise contours must be filled, and clockwise ones must be unfilled.

-
FT_ORIENTATION_FILL_RIGHT
-

This is identical to FT_ORIENTATION_TRUETYPE, but is used to remember that in TrueType, everything that is to the right of the drawing direction of a contour must be filled.

-
FT_ORIENTATION_FILL_LEFT
-

This is identical to FT_ORIENTATION_POSTSCRIPT, but is used to remember that in PostScript, everything that is to the left of the drawing direction of a contour must be filled.

-
FT_ORIENTATION_NONE -

The orientation cannot be determined. That is, different parts of the glyph have different orientation.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Outline_Get_Orientation

-
-Defined in FT_OUTLINE_H (freetype/ftoutln.h). -

-
-
-  FT_EXPORT( FT_Orientation )
-  FT_Outline_Get_Orientation( FT_Outline*  outline );
-
-

-
-

This function analyzes a glyph outline and tries to compute its fill orientation (see FT_Orientation). This is done by computing the direction of each global horizontal and/or vertical extrema within the outline.

-

Note that this will return FT_ORIENTATION_TRUETYPE for empty outlines.

-

-
input
-

- - -
outline -

A handle to the source outline.

-
-
-
return
-

The orientation.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-pfr_fonts.html b/src/3rdparty/freetype/docs/reference/ft2-pfr_fonts.html deleted file mode 100644 index 2b5e146e0b..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-pfr_fonts.html +++ /dev/null @@ -1,206 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-PFR Fonts -

-

Synopsis

- - -
FT_Get_PFR_MetricsFT_Get_PFR_KerningFT_Get_PFR_Advance


- -
-

This section contains the declaration of PFR-specific functions.

-

-
-

FT_Get_PFR_Metrics

-
-Defined in FT_PFR_H (freetype/ftpfr.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Metrics( FT_Face    face,
-                      FT_UInt   *aoutline_resolution,
-                      FT_UInt   *ametrics_resolution,
-                      FT_Fixed  *ametrics_x_scale,
-                      FT_Fixed  *ametrics_y_scale );
-
-

-
-

Return the outline and metrics resolutions of a given PFR face.

-

-
input
-

- - -
face -

Handle to the input face. It can be a non-PFR face.

-
-
-
output
-

- - - - - -
aoutline_resolution -

Outline resolution. This is equivalent to ‘face->units_per_EM’ for non-PFR fonts. Optional (parameter can be NULL).

-
ametrics_resolution -

Metrics resolution. This is equivalent to ‘outline_resolution’ for non-PFR fonts. Optional (parameter can be NULL).

-
ametrics_x_scale -

A 16.16 fixed-point number used to scale distance expressed in metrics units to device sub-pixels. This is equivalent to ‘face->size->x_scale’, but for metrics only. Optional (parameter can be NULL).

-
ametrics_y_scale -

Same as ‘ametrics_x_scale’ but for the vertical direction. optional (parameter can be NULL).

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If the input face is not a PFR, this function will return an error. However, in all cases, it will return valid values.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_PFR_Kerning

-
-Defined in FT_PFR_H (freetype/ftpfr.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Kerning( FT_Face     face,
-                      FT_UInt     left,
-                      FT_UInt     right,
-                      FT_Vector  *avector );
-
-

-
-

Return the kerning pair corresponding to two glyphs in a PFR face. The distance is expressed in metrics units, unlike the result of FT_Get_Kerning.

-

-
input
-

- - - - -
face -

A handle to the input face.

-
left -

Index of the left glyph.

-
right -

Index of the right glyph.

-
-
-
output
-

- - -
avector -

A kerning vector.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function always return distances in original PFR metrics units. This is unlike FT_Get_Kerning with the FT_KERNING_UNSCALED mode, which always returns distances converted to outline units.

-

You can use the value of the ‘x_scale’ and ‘y_scale’ parameters returned by FT_Get_PFR_Metrics to scale these to device sub-pixels.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_PFR_Advance

-
-Defined in FT_PFR_H (freetype/ftpfr.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_PFR_Advance( FT_Face   face,
-                      FT_UInt   gindex,
-                      FT_Pos   *aadvance );
-
-

-
-

Return a given glyph advance, expressed in original metrics units, from a PFR font.

-

-
input
-

- - - -
face -

A handle to the input face.

-
gindex -

The glyph index.

-
-
-
output
-

- - -
aadvance -

The glyph advance in metrics units.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You can use the ‘x_scale’ or ‘y_scale’ results of FT_Get_PFR_Metrics to convert the advance to device sub-pixels (i.e., 1/64th of pixels).

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-quick_advance.html b/src/3rdparty/freetype/docs/reference/ft2-quick_advance.html deleted file mode 100644 index 9a509484b7..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-quick_advance.html +++ /dev/null @@ -1,185 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Quick retrieval of advance values -

-

Synopsis

- - - -
FT_ADVANCE_FLAG_FAST_ONLYFT_Get_Advances
FT_Get_Advance


- -
-

This section contains functions to quickly extract advance values without handling glyph outlines, if possible.

-

-
-

FT_ADVANCE_FLAG_FAST_ONLY

-
-Defined in FT_ADVANCES_H (freetype/ftadvanc.h). -

-
-
-#define FT_ADVANCE_FLAG_FAST_ONLY  0x20000000UL
-
-

-
-

A bit-flag to be OR-ed with the ‘flags’ parameter of the FT_Get_Advance and FT_Get_Advances functions.

-

If set, it indicates that you want these functions to fail if the corresponding hinting mode or font driver doesn't allow for very quick advance computation.

-

Typically, glyphs which are either unscaled, unhinted, bitmapped, or light-hinted can have their advance width computed very quickly.

-

Normal and bytecode hinted modes, which require loading, scaling, and hinting of the glyph outline, are extremely slow by comparison.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Get_Advance

-
-Defined in FT_ADVANCES_H (freetype/ftadvanc.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Advance( FT_Face    face,
-                  FT_UInt    gindex,
-                  FT_Int32   load_flags,
-                  FT_Fixed  *padvance );
-
-

-
-

Retrieve the advance value of a given glyph outline in an FT_Face. By default, the unhinted advance is returned in font units.

-

-
input
-

- - - - -
face -

The source FT_Face handle.

-
gindex -

The glyph index.

-
load_flags -

A set of bit flags similar to those used when calling FT_Load_Glyph, used to determine what kind of advances you need.

-
-
-
output
-

- - -
padvance -

The advance value, in either font units or 16.16 format.

-

If FT_LOAD_VERTICAL_LAYOUT is set, this is the vertical advance corresponding to a vertical layout. Otherwise, it is the horizontal advance in a horizontal layout.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function may fail if you use FT_ADVANCE_FLAG_FAST_ONLY and if the corresponding font backend doesn't have a quick way to retrieve the advances.

-

A scaled advance is returned in 16.16 format but isn't transformed by the affine transformation specified by FT_Set_Transform.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Advances

-
-Defined in FT_ADVANCES_H (freetype/ftadvanc.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Advances( FT_Face    face,
-                   FT_UInt    start,
-                   FT_UInt    count,
-                   FT_Int32   load_flags,
-                   FT_Fixed  *padvances );
-
-

-
-

Retrieve the advance values of several glyph outlines in an FT_Face. By default, the unhinted advances are returned in font units.

-

-
input
-

- - - - - -
face -

The source FT_Face handle.

-
start -

The first glyph index.

-
count -

The number of advance values you want to retrieve.

-
load_flags -

A set of bit flags similar to those used when calling FT_Load_Glyph.

-
-
-
output
-

- - -
padvance -

The advances, in either font units or 16.16 format. This array must contain at least ‘count’ elements.

-

If FT_LOAD_VERTICAL_LAYOUT is set, these are the vertical advances corresponding to a vertical layout. Otherwise, they are the horizontal advances in a horizontal layout.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function may fail if you use FT_ADVANCE_FLAG_FAST_ONLY and if the corresponding font backend doesn't have a quick way to retrieve the advances.

-

Scaled advances are returned in 16.16 format but aren't transformed by the affine transformation specified by FT_Set_Transform.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-raster.html b/src/3rdparty/freetype/docs/reference/ft2-raster.html deleted file mode 100644 index ee0e38bb3e..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-raster.html +++ /dev/null @@ -1,606 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Scanline Converter -

-

Synopsis

- - - - - - -
FT_RasterFT_RASTER_FLAG_XXXFT_Raster_SetModeFunc
FT_SpanFT_Raster_ParamsFT_Raster_RenderFunc
FT_SpanFuncFT_Raster_NewFuncFT_Raster_Funcs
FT_Raster_BitTest_FuncFT_Raster_DoneFunc
FT_Raster_BitSet_FuncFT_Raster_ResetFunc


- -
-

This section contains technical definitions.

-

-
-

FT_Raster

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct FT_RasterRec_*  FT_Raster;
-
-

-
-

A handle (pointer) to a raster object. Each object can be used independently to convert an outline into a bitmap or pixmap.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Span

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Span_
-  {
-    short           x;
-    unsigned short  len;
-    unsigned char   coverage;
-
-  } FT_Span;
-
-

-
-

A structure used to model a single span of gray (or black) pixels when rendering a monochrome or anti-aliased bitmap.

-

-
fields
-

- - - - -
x -

The span's horizontal start position.

-
len -

The span's length in pixels.

-
coverage -

The span color/coverage, ranging from 0 (background) to 255 (foreground). Only used for anti-aliased rendering.

-
-
-
note
-

This structure is used by the span drawing callback type named FT_SpanFunc which takes the y coordinate of the span as a a parameter.

-

The coverage value is always between 0 and 255. If you want less gray values, the callback function has to reduce them.

-
-
-
- - -
[Index][TOC]
- -
-

FT_SpanFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef void
-  (*FT_SpanFunc)( int             y,
-                  int             count,
-                  const FT_Span*  spans,
-                  void*           user );
-
-#define FT_Raster_Span_Func  FT_SpanFunc
-
-

-
-

A function used as a call-back by the anti-aliased renderer in order to let client applications draw themselves the gray pixel spans on each scan line.

-

-
input
-

- - - - - -
y -

The scanline's y coordinate.

-
count -

The number of spans to draw on this scanline.

-
spans -

A table of ‘count’ spans to draw on the scanline.

-
user -

User-supplied data that is passed to the callback.

-
-
-
note
-

This callback allows client applications to directly render the gray spans of the anti-aliased bitmap to any kind of surfaces.

-

This can be used to write anti-aliased outlines directly to a given background bitmap, and even perform translucency.

-

Note that the ‘count’ field cannot be greater than a fixed value defined by the ‘FT_MAX_GRAY_SPANS’ configuration macro in ‘ftoption.h’. By default, this value is set to 32, which means that if there are more than 32 spans on a given scanline, the callback is called several times with the same ‘y’ parameter in order to draw all callbacks.

-

Otherwise, the callback is only called once per scan-line, and only for those scanlines that do have ‘gray’ pixels on them.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_BitTest_Func

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Raster_BitTest_Func)( int    y,
-                             int    x,
-                             void*  user );
-
-

-
-

THIS TYPE IS DEPRECATED. DO NOT USE IT.

-

A function used as a call-back by the monochrome scan-converter to test whether a given target pixel is already set to the drawing ‘color’. These tests are crucial to implement drop-out control per-se the TrueType spec.

-

-
input
-

- - - - -
y -

The pixel's y coordinate.

-
x -

The pixel's x coordinate.

-
user -

User-supplied data that is passed to the callback.

-
-
-
return
-

1 if the pixel is ‘set’, 0 otherwise.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_BitSet_Func

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef void
-  (*FT_Raster_BitSet_Func)( int    y,
-                            int    x,
-                            void*  user );
-
-

-
-

THIS TYPE IS DEPRECATED. DO NOT USE IT.

-

A function used as a call-back by the monochrome scan-converter to set an individual target pixel. This is crucial to implement drop-out control according to the TrueType specification.

-

-
input
-

- - - - -
y -

The pixel's y coordinate.

-
x -

The pixel's x coordinate.

-
user -

User-supplied data that is passed to the callback.

-
-
-
return
-

1 if the pixel is ‘set’, 0 otherwise.

-
-
-
- - -
[Index][TOC]
- -
-

FT_RASTER_FLAG_XXX

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-#define FT_RASTER_FLAG_DEFAULT  0x0
-#define FT_RASTER_FLAG_AA       0x1
-#define FT_RASTER_FLAG_DIRECT   0x2
-#define FT_RASTER_FLAG_CLIP     0x4
-
-  /* deprecated */
-#define ft_raster_flag_default  FT_RASTER_FLAG_DEFAULT
-#define ft_raster_flag_aa       FT_RASTER_FLAG_AA
-#define ft_raster_flag_direct   FT_RASTER_FLAG_DIRECT
-#define ft_raster_flag_clip     FT_RASTER_FLAG_CLIP
-
-

-
-

A list of bit flag constants as used in the ‘flags’ field of a FT_Raster_Params structure.

-

-
values
-

- - - - - -
FT_RASTER_FLAG_DEFAULT -

This value is 0.

-
FT_RASTER_FLAG_AA -

This flag is set to indicate that an anti-aliased glyph image should be generated. Otherwise, it will be monochrome (1-bit).

-
FT_RASTER_FLAG_DIRECT -

This flag is set to indicate direct rendering. In this mode, client applications must provide their own span callback. This lets them directly draw or compose over an existing bitmap. If this bit is not set, the target pixmap's buffer must be zeroed before rendering.

-

Note that for now, direct rendering is only possible with anti-aliased glyphs.

-
FT_RASTER_FLAG_CLIP -

This flag is only used in direct rendering mode. If set, the output will be clipped to a box specified in the ‘clip_box’ field of the FT_Raster_Params structure.

-

Note that by default, the glyph bitmap is clipped to the target pixmap, except in direct rendering mode where all spans are generated if no clipping box is set.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_Params

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Raster_Params_
-  {
-    const FT_Bitmap*        target;
-    const void*             source;
-    int                     flags;
-    FT_SpanFunc             gray_spans;
-    FT_SpanFunc             black_spans;  /* doesn't work! */
-    FT_Raster_BitTest_Func  bit_test;     /* doesn't work! */
-    FT_Raster_BitSet_Func   bit_set;      /* doesn't work! */
-    void*                   user;
-    FT_BBox                 clip_box;
-
-  } FT_Raster_Params;
-
-

-
-

A structure to hold the arguments used by a raster's render function.

-

-
fields
-

- - - - - - - - - - -
target -

The target bitmap.

-
source -

A pointer to the source glyph image (e.g., an FT_Outline).

-
flags -

The rendering flags.

-
gray_spans -

The gray span drawing callback.

-
black_spans -

The black span drawing callback. UNIMPLEMENTED!

-
bit_test -

The bit test callback. UNIMPLEMENTED!

-
bit_set -

The bit set callback. UNIMPLEMENTED!

-
user -

User-supplied data that is passed to each drawing callback.

-
clip_box -

An optional clipping box. It is only used in direct rendering mode. Note that coordinates here should be expressed in integer pixels (and not in 26.6 fixed-point units).

-
-
-
note
-

An anti-aliased glyph bitmap is drawn if the FT_RASTER_FLAG_AA bit flag is set in the ‘flags’ field, otherwise a monochrome bitmap is generated.

-

If the FT_RASTER_FLAG_DIRECT bit flag is set in ‘flags’, the raster will call the ‘gray_spans’ callback to draw gray pixel spans, in the case of an aa glyph bitmap, it will call ‘black_spans’, and ‘bit_test’ and ‘bit_set’ in the case of a monochrome bitmap. This allows direct composition over a pre-existing bitmap through user-provided callbacks to perform the span drawing/composition.

-

Note that the ‘bit_test’ and ‘bit_set’ callbacks are required when rendering a monochrome bitmap, as they are crucial to implement correct drop-out control as defined in the TrueType specification.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_NewFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Raster_NewFunc)( void*       memory,
-                        FT_Raster*  raster );
-
-#define FT_Raster_New_Func  FT_Raster_NewFunc
-
-

-
-

A function used to create a new raster object.

-

-
input
-

- - -
memory -

A handle to the memory allocator.

-
-
-
output
-

- - -
raster -

A handle to the new raster object.

-
-
-
return
-

Error code. 0 means success.

-
-
note
-

The ‘memory’ parameter is a typeless pointer in order to avoid un-wanted dependencies on the rest of the FreeType code. In practice, it is an FT_Memory object, i.e., a handle to the standard FreeType memory allocator. However, this field can be completely ignored by a given raster implementation.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_DoneFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef void
-  (*FT_Raster_DoneFunc)( FT_Raster  raster );
-
-#define FT_Raster_Done_Func  FT_Raster_DoneFunc
-
-

-
-

A function used to destroy a given raster object.

-

-
input
-

- - -
raster -

A handle to the raster object.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_ResetFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef void
-  (*FT_Raster_ResetFunc)( FT_Raster       raster,
-                          unsigned char*  pool_base,
-                          unsigned long   pool_size );
-
-#define FT_Raster_Reset_Func  FT_Raster_ResetFunc
-
-

-
-

FreeType provides an area of memory called the ‘render pool’, available to all registered rasters. This pool can be freely used during a given scan-conversion but is shared by all rasters. Its content is thus transient.

-

This function is called each time the render pool changes, or just after a new raster object is created.

-

-
input
-

- - - - -
raster -

A handle to the new raster object.

-
pool_base -

The address in memory of the render pool.

-
pool_size -

The size in bytes of the render pool.

-
-
-
note
-

Rasters can ignore the render pool and rely on dynamic memory allocation if they want to (a handle to the memory allocator is passed to the raster constructor). However, this is not recommended for efficiency purposes.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_SetModeFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Raster_SetModeFunc)( FT_Raster      raster,
-                            unsigned long  mode,
-                            void*          args );
-
-#define FT_Raster_Set_Mode_Func  FT_Raster_SetModeFunc
-
-

-
-

This function is a generic facility to change modes or attributes in a given raster. This can be used for debugging purposes, or simply to allow implementation-specific ‘features’ in a given raster module.

-

-
input
-

- - - - -
raster -

A handle to the new raster object.

-
mode -

A 4-byte tag used to name the mode or property.

-
args -

A pointer to the new mode/property to use.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_RenderFunc

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef int
-  (*FT_Raster_RenderFunc)( FT_Raster                raster,
-                           const FT_Raster_Params*  params );
-
-#define FT_Raster_Render_Func  FT_Raster_RenderFunc
-
-

-
-

Invoke a given raster to scan-convert a given glyph image into a target bitmap.

-

-
input
-

- - - -
raster -

A handle to the raster object.

-
params -

A pointer to an FT_Raster_Params structure used to store the rendering parameters.

-
-
-
return
-

Error code. 0 means success.

-
-
note
-

The exact format of the source image depends on the raster's glyph format defined in its FT_Raster_Funcs structure. It can be an FT_Outline or anything else in order to support a large array of glyph formats.

-

Note also that the render function can fail and return a ‘FT_Err_Unimplemented_Feature’ error code if the raster used does not support direct composition.

-

XXX: For now, the standard raster doesn't support direct composition but this should change for the final release (see the files ‘demos/src/ftgrays.c’ and ‘demos/src/ftgrays2.c’ for examples of distinct implementations which support direct composition).

-
-
-
- - -
[Index][TOC]
- -
-

FT_Raster_Funcs

-
-Defined in FT_IMAGE_H (freetype/ftimage.h). -

-
-
-  typedef struct  FT_Raster_Funcs_
-  {
-    FT_Glyph_Format        glyph_format;
-    FT_Raster_NewFunc      raster_new;
-    FT_Raster_ResetFunc    raster_reset;
-    FT_Raster_SetModeFunc  raster_set_mode;
-    FT_Raster_RenderFunc   raster_render;
-    FT_Raster_DoneFunc     raster_done;
-
-  } FT_Raster_Funcs;
-
-

-
-

A structure used to describe a given raster class to the library.

-

-
fields
-

- - - - - - -
glyph_format -

The supported glyph format for this raster.

-
raster_new -

The raster constructor.

-
raster_reset -

Used to reset the render pool within the raster.

-
raster_render -

A function to render a glyph into a given bitmap.

-
raster_done -

The raster destructor.

-
-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-sfnt_names.html b/src/3rdparty/freetype/docs/reference/ft2-sfnt_names.html deleted file mode 100644 index ff859bdccd..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-sfnt_names.html +++ /dev/null @@ -1,232 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-SFNT Names -

-

Synopsis

- - - - - - -
FT_SfntName
FT_Get_Sfnt_Name_Count
FT_Get_Sfnt_Name
FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY
FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY


- -
-

The TrueType and OpenType specifications allow the inclusion of a special ‘names table’ in font files. This table contains textual (and internationalized) information regarding the font, like family name, copyright, version, etc.

-

The definitions below are used to access them if available.

-

Note that this has nothing to do with glyph names!

-

-
-

FT_SfntName

-
-Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h). -

-
-
-  typedef struct  FT_SfntName_
-  {
-    FT_UShort  platform_id;
-    FT_UShort  encoding_id;
-    FT_UShort  language_id;
-    FT_UShort  name_id;
-
-    FT_Byte*   string;      /* this string is *not* null-terminated! */
-    FT_UInt    string_len;  /* in bytes */
-
-  } FT_SfntName;
-
-

-
-

A structure used to model an SFNT ‘name’ table entry.

-

-
fields
-

- - - - - - - -
platform_id -

The platform ID for ‘string’.

-
encoding_id -

The encoding ID for ‘string’.

-
language_id -

The language ID for ‘string’.

-
name_id -

An identifier for ‘string’.

-
string -

The ‘name’ string. Note that its format differs depending on the (platform,encoding) pair. It can be a Pascal String, a UTF-16 one, etc.

-

Generally speaking, the string is not zero-terminated. Please refer to the TrueType specification for details.

-
string_len -

The length of ‘string’ in bytes.

-
-
-
note
-

Possible values for ‘platform_id’, ‘encoding_id’, ‘language_id’, and ‘name_id’ are given in the file ‘ttnameid.h’. For details please refer to the TrueType or OpenType specification.

-

See also TT_PLATFORM_XXX, TT_APPLE_ID_XXX, TT_MAC_ID_XXX, TT_ISO_ID_XXX, and TT_MS_ID_XXX.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Sfnt_Name_Count

-
-Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h). -

-
-
-  FT_EXPORT( FT_UInt )
-  FT_Get_Sfnt_Name_Count( FT_Face  face );
-
-

-
-

Retrieve the number of name strings in the SFNT ‘name’ table.

-

-
input
-

- - -
face -

A handle to the source face.

-
-
-
return
-

The number of strings in the ‘name’ table.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_Sfnt_Name

-
-Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_Sfnt_Name( FT_Face       face,
-                    FT_UInt       idx,
-                    FT_SfntName  *aname );
-
-

-
-

Retrieve a string of the SFNT ‘name’ table for a given index.

-

-
input
-

- - - -
face -

A handle to the source face.

-
idx -

The index of the ‘name’ string.

-
-
-
output
-

- - -
aname -

The indexed FT_SfntName structure.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The ‘string’ array returned in the ‘aname’ structure is not null-terminated. The application should deallocate it if it is no longer in use.

-

Use FT_Get_Sfnt_Name_Count to get the total number of available ‘name’ table entries, then do a loop until you get the right platform, encoding, and name ID.

-
-
-
- - -
[Index][TOC]
- -
-

FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY

-
-Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h). -

-
-
-#define FT_PARAM_TAG_IGNORE_PREFERRED_FAMILY  FT_MAKE_TAG( 'i', 'g', 'p', 'f' )
-
-

-
-

A constant used as the tag of FT_Parameter structures to make FT_Open_Face() ignore preferred family subfamily names in ‘name’ table since OpenType version 1.4. For backwards compatibility with legacy systems which has 4-face-per-family restriction.

-

-
-
- - -
[Index][TOC]
- -
-

FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY

-
-Defined in FT_SFNT_NAMES_H (freetype/ftsnames.h). -

-
-
-#define FT_PARAM_TAG_IGNORE_PREFERRED_SUBFAMILY  FT_MAKE_TAG( 'i', 'g', 'p', 's' )
-
-

-
-

A constant used as the tag of FT_Parameter structures to make FT_Open_Face() ignore preferred subfamily names in ‘name’ table since OpenType version 1.4. For backwards compatibility with legacy systems which has 4-face-per-family restriction.

-

-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-sizes_management.html b/src/3rdparty/freetype/docs/reference/ft2-sizes_management.html deleted file mode 100644 index 1c48be997f..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-sizes_management.html +++ /dev/null @@ -1,164 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Size Management -

-

Synopsis

- - -
FT_New_SizeFT_Done_SizeFT_Activate_Size


- -
-

When creating a new face object (e.g., with FT_New_Face), an FT_Size object is automatically created and used to store all pixel-size dependent information, available in the ‘face->size’ field.

-

It is however possible to create more sizes for a given face, mostly in order to manage several character pixel sizes of the same font family and style. See FT_New_Size and FT_Done_Size.

-

Note that FT_Set_Pixel_Sizes and FT_Set_Char_Size only modify the contents of the current ‘active’ size; you thus need to use FT_Activate_Size to change it.

-

99% of applications won't need the functions provided here, especially if they use the caching sub-system, so be cautious when using these.

-

-
-

FT_New_Size

-
-Defined in FT_SIZES_H (freetype/ftsizes.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_New_Size( FT_Face   face,
-               FT_Size*  size );
-
-

-
-

Create a new size object from a given face object.

-

-
input
-

- - -
face -

A handle to a parent face object.

-
-
-
output
-

- - -
asize -

A handle to a new size object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

You need to call FT_Activate_Size in order to select the new size for upcoming calls to FT_Set_Pixel_Sizes, FT_Set_Char_Size, FT_Load_Glyph, FT_Load_Char, etc.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Done_Size

-
-Defined in FT_SIZES_H (freetype/ftsizes.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Done_Size( FT_Size  size );
-
-

-
-

Discard a given size object. Note that FT_Done_Face automatically discards all size objects allocated with FT_New_Size.

-

-
input
-

- - -
size -

A handle to a target size object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Activate_Size

-
-Defined in FT_SIZES_H (freetype/ftsizes.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Activate_Size( FT_Size  size );
-
-

-
-

Even though it is possible to create several size objects for a given face (see FT_New_Size for details), functions like FT_Load_Glyph or FT_Load_Char only use the one which has been activated last to determine the ‘current character pixel size’.

-

This function can be used to ‘activate’ a previously created size object.

-

-
input
-

- - -
size -

A handle to a target size object.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If ‘face’ is the size's parent face object, this function changes the value of ‘face->size’ to the input size handle.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-system_interface.html b/src/3rdparty/freetype/docs/reference/ft2-system_interface.html deleted file mode 100644 index ed50f8ad5d..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-system_interface.html +++ /dev/null @@ -1,415 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-System Interface -

-

Synopsis

- - - - - -
FT_MemoryFT_MemoryRecFT_Stream_CloseFunc
FT_Alloc_FuncFT_StreamFT_StreamRec
FT_Free_FuncFT_StreamDesc
FT_Realloc_FuncFT_Stream_IoFunc


- -
-

This section contains various definitions related to memory management and i/o access. You need to understand this information if you want to use a custom memory manager or you own i/o streams.

-

-
-

FT_Memory

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef struct FT_MemoryRec_*  FT_Memory;
-
-

-
-

A handle to a given memory manager object, defined with an FT_MemoryRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Alloc_Func

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef void*
-  (*FT_Alloc_Func)( FT_Memory  memory,
-                    long       size );
-
-

-
-

A function used to allocate ‘size’ bytes from ‘memory’.

-

-
input
-

- - - -
memory -

A handle to the source memory manager.

-
size -

The size in bytes to allocate.

-
-
-
return
-

Address of new memory block. 0 in case of failure.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Free_Func

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef void
-  (*FT_Free_Func)( FT_Memory  memory,
-                   void*      block );
-
-

-
-

A function used to release a given block of memory.

-

-
input
-

- - - -
memory -

A handle to the source memory manager.

-
block -

The address of the target memory block.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Realloc_Func

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef void*
-  (*FT_Realloc_Func)( FT_Memory  memory,
-                      long       cur_size,
-                      long       new_size,
-                      void*      block );
-
-

-
-

A function used to re-allocate a given block of memory.

-

-
input
-

- - - - - -
memory -

A handle to the source memory manager.

-
cur_size -

The block's current size in bytes.

-
new_size -

The block's requested new size.

-
block -

The block's current address.

-
-
-
return
-

New block address. 0 in case of memory shortage.

-
-
note
-

In case of error, the old block must still be available.

-
-
-
- - -
[Index][TOC]
- -
-

FT_MemoryRec

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  struct  FT_MemoryRec_
-  {
-    void*            user;
-    FT_Alloc_Func    alloc;
-    FT_Free_Func     free;
-    FT_Realloc_Func  realloc;
-  };
-
-

-
-

A structure used to describe a given memory manager to FreeType 2.

-

-
fields
-

- - - - - -
user -

A generic typeless pointer for user data.

-
alloc -

A pointer type to an allocation function.

-
free -

A pointer type to an memory freeing function.

-
realloc -

A pointer type to a reallocation function.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Stream

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef struct FT_StreamRec_*  FT_Stream;
-
-

-
-

A handle to an input stream.

-

-
-
- - -
[Index][TOC]
- -
-

FT_StreamDesc

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef union  FT_StreamDesc_
-  {
-    long   value;
-    void*  pointer;
-
-  } FT_StreamDesc;
-
-

-
-

A union type used to store either a long or a pointer. This is used to store a file descriptor or a ‘FILE*’ in an input stream.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Stream_IoFunc

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef unsigned long
-  (*FT_Stream_IoFunc)( FT_Stream       stream,
-                       unsigned long   offset,
-                       unsigned char*  buffer,
-                       unsigned long   count );
-
-

-
-

A function used to seek and read data from a given input stream.

-

-
input
-

- - - - - -
stream -

A handle to the source stream.

-
offset -

The offset of read in stream (always from start).

-
buffer -

The address of the read buffer.

-
count -

The number of bytes to read from the stream.

-
-
-
return
-

The number of bytes effectively read by the stream.

-
-
note
-

This function might be called to perform a seek or skip operation with a ‘count’ of 0.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Stream_CloseFunc

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef void
-  (*FT_Stream_CloseFunc)( FT_Stream  stream );
-
-

-
-

A function used to close a given input stream.

-

-
input
-

- - -
stream -

A handle to the target stream.

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_StreamRec

-
-Defined in FT_SYSTEM_H (freetype/ftsystem.h). -

-
-
-  typedef struct  FT_StreamRec_
-  {
-    unsigned char*       base;
-    unsigned long        size;
-    unsigned long        pos;
-
-    FT_StreamDesc        descriptor;
-    FT_StreamDesc        pathname;
-    FT_Stream_IoFunc     read;
-    FT_Stream_CloseFunc  close;
-
-    FT_Memory            memory;
-    unsigned char*       cursor;
-    unsigned char*       limit;
-
-  } FT_StreamRec;
-
-

-
-

A structure used to describe an input stream.

-

-
input
-

- - - - - - - - - - - -
base -

For memory-based streams, this is the address of the first stream byte in memory. This field should always be set to NULL for disk-based streams.

-
size -

The stream size in bytes.

-
pos -

The current position within the stream.

-
descriptor -

This field is a union that can hold an integer or a pointer. It is used by stream implementations to store file descriptors or ‘FILE*’ pointers.

-
pathname -

This field is completely ignored by FreeType. However, it is often useful during debugging to use it to store the stream's filename (where available).

-
read -

The stream's input function.

-
close -

The stream;s close function.

-
memory -

The memory manager to use to preload frames. This is set internally by FreeType and shouldn't be touched by stream implementations.

-
cursor -

This field is set and used internally by FreeType when parsing frames.

-
limit -

This field is set and used internally by FreeType when parsing frames.

-
-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-toc.html b/src/3rdparty/freetype/docs/reference/ft2-toc.html deleted file mode 100644 index a2330f6380..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-toc.html +++ /dev/null @@ -1,215 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - -
[Index]
-

FreeType-2.3.12 API Reference

- -

Table of Contents

-

General Remarks

  • - - -
    -User allocation -

    How client applications should allocate FreeType data structures.

    -
    -
-

Core API

-

Format-Specific API

-

Cache Sub-System

  • - - -
    -Cache Sub-System -

    How to cache face, size, and glyph data with FreeType 2.

    -
    -
-

Support API

-

Miscellaneous

-

Global Index

-
- - -
[Index]
- -
generated on Sat Feb 13 08:32:30 2010
- diff --git a/src/3rdparty/freetype/docs/reference/ft2-truetype_engine.html b/src/3rdparty/freetype/docs/reference/ft2-truetype_engine.html deleted file mode 100644 index 45369ea882..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-truetype_engine.html +++ /dev/null @@ -1,132 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-The TrueType Engine -

-

Synopsis

- - -
FT_TrueTypeEngineTypeFT_Get_TrueType_Engine_Type


- -
-

This section contains a function used to query the level of TrueType bytecode support compiled in this version of the library.

-

-
-

FT_TrueTypeEngineType

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  typedef enum  FT_TrueTypeEngineType_
-  {
-    FT_TRUETYPE_ENGINE_TYPE_NONE = 0,
-    FT_TRUETYPE_ENGINE_TYPE_UNPATENTED,
-    FT_TRUETYPE_ENGINE_TYPE_PATENTED
-
-  } FT_TrueTypeEngineType;
-
-

-
-

A list of values describing which kind of TrueType bytecode engine is implemented in a given FT_Library instance. It is used by the FT_Get_TrueType_Engine_Type function.

-

-
values
-

- - - - - - - -
FT_TRUETYPE_ENGINE_TYPE_NONE
-

The library doesn't implement any kind of bytecode interpreter.

-
FT_TRUETYPE_ENGINE_TYPE_UNPATENTED
-

The library implements a bytecode interpreter that doesn't support the patented operations of the TrueType virtual machine.

-

Its main use is to load certain Asian fonts which position and scale glyph components with bytecode instructions. It produces bad output for most other fonts.

-
FT_TRUETYPE_ENGINE_TYPE_PATENTED
-

The library implements a bytecode interpreter that covers the full instruction set of the TrueType virtual machine. See the file ‘docs/PATENTS’ for legal aspects.

-
-
-
since
-

2.2

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_TrueType_Engine_Type

-
-Defined in FT_MODULE_H (freetype/ftmodapi.h). -

-
-
-  FT_EXPORT( FT_TrueTypeEngineType )
-  FT_Get_TrueType_Engine_Type( FT_Library  library );
-
-

-
-

Return an FT_TrueTypeEngineType value to indicate which level of the TrueType virtual machine a given library instance supports.

-

-
input
-

- - -
library -

A library instance.

-
-
-
return
-

A value indicating which level is supported.

-
-
since
-

2.2

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-truetype_tables.html b/src/3rdparty/freetype/docs/reference/ft2-truetype_tables.html deleted file mode 100644 index c2bdb192b5..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-truetype_tables.html +++ /dev/null @@ -1,1217 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-TrueType Tables -

-

Synopsis

- - - - - - - - - - - -
TT_PLATFORM_XXXTT_Postscript
TT_APPLE_ID_XXXTT_PCLT
TT_MAC_ID_XXXTT_MaxProfile
TT_ISO_ID_XXXFT_Sfnt_Tag
TT_MS_ID_XXXFT_Get_Sfnt_Table
TT_ADOBE_ID_XXXFT_Load_Sfnt_Table
TT_HeaderFT_Sfnt_Table_Info
TT_HoriHeaderFT_Get_CMap_Language_ID
TT_VertHeaderFT_Get_CMap_Format
TT_OS2FT_PARAM_TAG_UNPATENTED_HINTING


- -
-

This section contains the definition of TrueType-specific tables as well as some routines used to access and process them.

-

-
-

TT_PLATFORM_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_PLATFORM_APPLE_UNICODE  0
-#define TT_PLATFORM_MACINTOSH      1
-#define TT_PLATFORM_ISO            2 /* deprecated */
-#define TT_PLATFORM_MICROSOFT      3
-#define TT_PLATFORM_CUSTOM         4
-#define TT_PLATFORM_ADOBE          7 /* artificial */
-
-

-
-

A list of valid values for the ‘platform_id’ identifier code in FT_CharMapRec and FT_SfntName structures.

-

-
values
-

- - - - - - - - -
TT_PLATFORM_APPLE_UNICODE
-

Used by Apple to indicate a Unicode character map and/or name entry. See TT_APPLE_ID_XXX for corresponding ‘encoding_id’ values. Note that name entries in this format are coded as big-endian UCS-2 character codes only.

-
TT_PLATFORM_MACINTOSH -

Used by Apple to indicate a MacOS-specific charmap and/or name entry. See TT_MAC_ID_XXX for corresponding ‘encoding_id’ values. Note that most TrueType fonts contain an Apple roman charmap to be usable on MacOS systems (even if they contain a Microsoft charmap as well).

-
TT_PLATFORM_ISO -

This value was used to specify Unicode charmaps. It is however now deprecated. See TT_ISO_ID_XXX for a list of corresponding ‘encoding_id’ values.

-
TT_PLATFORM_MICROSOFT -

Used by Microsoft to indicate Windows-specific charmaps. See TT_MS_ID_XXX for a list of corresponding ‘encoding_id’ values. Note that most fonts contain a Unicode charmap using (TT_PLATFORM_MICROSOFT, TT_MS_ID_UNICODE_CS).

-
TT_PLATFORM_CUSTOM -

Used to indicate application-specific charmaps.

-
TT_PLATFORM_ADOBE -

This value isn't part of any font format specification, but is used by FreeType to report Adobe-specific charmaps in an FT_CharMapRec structure. See TT_ADOBE_ID_XXX.

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_APPLE_ID_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_APPLE_ID_DEFAULT           0 /* Unicode 1.0 */
-#define TT_APPLE_ID_UNICODE_1_1       1 /* specify Hangul at U+34xx */
-#define TT_APPLE_ID_ISO_10646         2 /* deprecated */
-#define TT_APPLE_ID_UNICODE_2_0       3 /* or later */
-#define TT_APPLE_ID_UNICODE_32        4 /* 2.0 or later, full repertoire */
-#define TT_APPLE_ID_VARIANT_SELECTOR  5 /* variation selector data */
-
-

-
-

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_APPLE_UNICODE charmaps and name entries.

-

-
values
-

- - - - - - - - - - -
TT_APPLE_ID_DEFAULT -

Unicode version 1.0.

-
TT_APPLE_ID_UNICODE_1_1
-

Unicode 1.1; specifies Hangul characters starting at U+34xx.

-
TT_APPLE_ID_ISO_10646 -

Deprecated (identical to preceding).

-
TT_APPLE_ID_UNICODE_2_0
-

Unicode 2.0 and beyond (UTF-16 BMP only).

-
TT_APPLE_ID_UNICODE_32 -

Unicode 3.1 and beyond, using UTF-32.

-
TT_APPLE_ID_VARIANT_SELECTOR
-

From Adobe, not Apple. Not a normal cmap. Specifies variations on a real cmap.

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_MAC_ID_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_MAC_ID_ROMAN                 0
-#define TT_MAC_ID_JAPANESE              1
-#define TT_MAC_ID_TRADITIONAL_CHINESE   2
-#define TT_MAC_ID_KOREAN                3
-#define TT_MAC_ID_ARABIC                4
-#define TT_MAC_ID_HEBREW                5
-#define TT_MAC_ID_GREEK                 6
-#define TT_MAC_ID_RUSSIAN               7
-#define TT_MAC_ID_RSYMBOL               8
-#define TT_MAC_ID_DEVANAGARI            9
-#define TT_MAC_ID_GURMUKHI             10
-#define TT_MAC_ID_GUJARATI             11
-#define TT_MAC_ID_ORIYA                12
-#define TT_MAC_ID_BENGALI              13
-#define TT_MAC_ID_TAMIL                14
-#define TT_MAC_ID_TELUGU               15
-#define TT_MAC_ID_KANNADA              16
-#define TT_MAC_ID_MALAYALAM            17
-#define TT_MAC_ID_SINHALESE            18
-#define TT_MAC_ID_BURMESE              19
-#define TT_MAC_ID_KHMER                20
-#define TT_MAC_ID_THAI                 21
-#define TT_MAC_ID_LAOTIAN              22
-#define TT_MAC_ID_GEORGIAN             23
-#define TT_MAC_ID_ARMENIAN             24
-#define TT_MAC_ID_MALDIVIAN            25
-#define TT_MAC_ID_SIMPLIFIED_CHINESE   25
-#define TT_MAC_ID_TIBETAN              26
-#define TT_MAC_ID_MONGOLIAN            27
-#define TT_MAC_ID_GEEZ                 28
-#define TT_MAC_ID_SLAVIC               29
-#define TT_MAC_ID_VIETNAMESE           30
-#define TT_MAC_ID_SINDHI               31
-#define TT_MAC_ID_UNINTERP             32
-
-

-
-

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_MACINTOSH charmaps and name entries.

-

-
values
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
TT_MAC_ID_ROMAN -

-
TT_MAC_ID_JAPANESE -

-
TT_MAC_ID_TRADITIONAL_CHINESE
-

-
TT_MAC_ID_KOREAN -

-
TT_MAC_ID_ARABIC -

-
TT_MAC_ID_HEBREW -

-
TT_MAC_ID_GREEK -

-
TT_MAC_ID_RUSSIAN -

-
TT_MAC_ID_RSYMBOL -

-
TT_MAC_ID_DEVANAGARI -

-
TT_MAC_ID_GURMUKHI -

-
TT_MAC_ID_GUJARATI -

-
TT_MAC_ID_ORIYA -

-
TT_MAC_ID_BENGALI -

-
TT_MAC_ID_TAMIL -

-
TT_MAC_ID_TELUGU -

-
TT_MAC_ID_KANNADA -

-
TT_MAC_ID_MALAYALAM -

-
TT_MAC_ID_SINHALESE -

-
TT_MAC_ID_BURMESE -

-
TT_MAC_ID_KHMER -

-
TT_MAC_ID_THAI -

-
TT_MAC_ID_LAOTIAN -

-
TT_MAC_ID_GEORGIAN -

-
TT_MAC_ID_ARMENIAN -

-
TT_MAC_ID_MALDIVIAN -

-
TT_MAC_ID_SIMPLIFIED_CHINESE
-

-
TT_MAC_ID_TIBETAN -

-
TT_MAC_ID_MONGOLIAN -

-
TT_MAC_ID_GEEZ -

-
TT_MAC_ID_SLAVIC -

-
TT_MAC_ID_VIETNAMESE -

-
TT_MAC_ID_SINDHI -

-
TT_MAC_ID_UNINTERP -

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_ISO_ID_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_ISO_ID_7BIT_ASCII  0
-#define TT_ISO_ID_10646       1
-#define TT_ISO_ID_8859_1      2
-
-

-
-

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_ISO charmaps and name entries.

-

Their use is now deprecated.

-

-
values
-

- - - - -
TT_ISO_ID_7BIT_ASCII -

ASCII.

-
TT_ISO_ID_10646 -

ISO/10646.

-
TT_ISO_ID_8859_1 -

Also known as Latin-1.

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_MS_ID_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_MS_ID_SYMBOL_CS    0
-#define TT_MS_ID_UNICODE_CS   1
-#define TT_MS_ID_SJIS         2
-#define TT_MS_ID_GB2312       3
-#define TT_MS_ID_BIG_5        4
-#define TT_MS_ID_WANSUNG      5
-#define TT_MS_ID_JOHAB        6
-#define TT_MS_ID_UCS_4       10
-
-

-
-

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_MICROSOFT charmaps and name entries.

-

-
values
-

- - - - - - - - - -
TT_MS_ID_SYMBOL_CS -

Corresponds to Microsoft symbol encoding. See FT_ENCODING_MS_SYMBOL.

-
TT_MS_ID_UNICODE_CS -

Corresponds to a Microsoft WGL4 charmap, matching Unicode. See FT_ENCODING_UNICODE.

-
TT_MS_ID_SJIS -

Corresponds to SJIS Japanese encoding. See FT_ENCODING_SJIS.

-
TT_MS_ID_GB2312 -

Corresponds to Simplified Chinese as used in Mainland China. See FT_ENCODING_GB2312.

-
TT_MS_ID_BIG_5 -

Corresponds to Traditional Chinese as used in Taiwan and Hong Kong. See FT_ENCODING_BIG5.

-
TT_MS_ID_WANSUNG -

Corresponds to Korean Wansung encoding. See FT_ENCODING_WANSUNG.

-
TT_MS_ID_JOHAB -

Corresponds to Johab encoding. See FT_ENCODING_JOHAB.

-
TT_MS_ID_UCS_4 -

Corresponds to UCS-4 or UTF-32 charmaps. This has been added to the OpenType specification version 1.4 (mid-2001.)

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_ADOBE_ID_XXX

-
-Defined in FT_TRUETYPE_IDS_H (freetype/ttnameid.h). -

-
-
-#define TT_ADOBE_ID_STANDARD  0
-#define TT_ADOBE_ID_EXPERT    1
-#define TT_ADOBE_ID_CUSTOM    2
-#define TT_ADOBE_ID_LATIN_1   3
-
-

-
-

A list of valid values for the ‘encoding_id’ for TT_PLATFORM_ADOBE charmaps. This is a FreeType-specific extension!

-

-
values
-

- - - - - -
TT_ADOBE_ID_STANDARD -

Adobe standard encoding.

-
TT_ADOBE_ID_EXPERT -

Adobe expert encoding.

-
TT_ADOBE_ID_CUSTOM -

Adobe custom encoding.

-
TT_ADOBE_ID_LATIN_1 -

Adobe Latin 1 encoding.

-
-
-
-
- - -
[Index][TOC]
- -
-

TT_Header

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_Header_
-  {
-    FT_Fixed   Table_Version;
-    FT_Fixed   Font_Revision;
-
-    FT_Long    CheckSum_Adjust;
-    FT_Long    Magic_Number;
-
-    FT_UShort  Flags;
-    FT_UShort  Units_Per_EM;
-
-    FT_Long    Created [2];
-    FT_Long    Modified[2];
-
-    FT_Short   xMin;
-    FT_Short   yMin;
-    FT_Short   xMax;
-    FT_Short   yMax;
-
-    FT_UShort  Mac_Style;
-    FT_UShort  Lowest_Rec_PPEM;
-
-    FT_Short   Font_Direction;
-    FT_Short   Index_To_Loc_Format;
-    FT_Short   Glyph_Data_Format;
-
-  } TT_Header;
-
-

-
-

A structure used to model a TrueType font header table. All fields follow the TrueType specification.

-

-
-
- - -
[Index][TOC]
- -
-

TT_HoriHeader

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_HoriHeader_
-  {
-    FT_Fixed   Version;
-    FT_Short   Ascender;
-    FT_Short   Descender;
-    FT_Short   Line_Gap;
-
-    FT_UShort  advance_Width_Max;      /* advance width maximum */
-
-    FT_Short   min_Left_Side_Bearing;  /* minimum left-sb       */
-    FT_Short   min_Right_Side_Bearing; /* minimum right-sb      */
-    FT_Short   xMax_Extent;            /* xmax extents          */
-    FT_Short   caret_Slope_Rise;
-    FT_Short   caret_Slope_Run;
-    FT_Short   caret_Offset;
-
-    FT_Short   Reserved[4];
-
-    FT_Short   metric_Data_Format;
-    FT_UShort  number_Of_HMetrics;
-
-    /* The following fields are not defined by the TrueType specification */
-    /* but they are used to connect the metrics header to the relevant    */
-    /* `HMTX' table.                                                      */
-
-    void*      long_metrics;
-    void*      short_metrics;
-
-  } TT_HoriHeader;
-
-

-
-

A structure used to model a TrueType horizontal header, the ‘hhea’ table, as well as the corresponding horizontal metrics table, i.e., the ‘hmtx’ table.

-

-
fields
-

- - - - - - - - - - - - - - - - -
Version -

The table version.

-
Ascender -

The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.

-

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

-

You should use the ‘sTypoAscender’ field of the OS/2 table instead if you want the correct one.

-
Descender -

The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.

-

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

-

You should use the ‘sTypoDescender’ field of the OS/2 table instead if you want the correct one.

-
Line_Gap -

The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.

-
advance_Width_Max -

This field is the maximum of all advance widths found in the font. It can be used to compute the maximum width of an arbitrary string of text.

-
min_Left_Side_Bearing -

The minimum left side bearing of all glyphs within the font.

-
min_Right_Side_Bearing -

The minimum right side bearing of all glyphs within the font.

-
xMax_Extent -

The maximum horizontal extent (i.e., the ‘width’ of a glyph's bounding box) for all glyphs in the font.

-
caret_Slope_Rise -

The rise coefficient of the cursor's slope of the cursor (slope=rise/run).

-
caret_Slope_Run -

The run coefficient of the cursor's slope.

-
Reserved -

8 reserved bytes.

-
metric_Data_Format -

Always 0.

-
number_Of_HMetrics -

Number of HMetrics entries in the ‘hmtx’ table -- this value can be smaller than the total number of glyphs in the font.

-
long_metrics -

A pointer into the ‘hmtx’ table.

-
short_metrics -

A pointer into the ‘hmtx’ table.

-
-
-
note
-

IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should be identical except for the names of their fields which are different.

-

This ensures that a single function in the ‘ttload’ module is able to read both the horizontal and vertical headers.

-
-
-
- - -
[Index][TOC]
- -
-

TT_VertHeader

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_VertHeader_
-  {
-    FT_Fixed   Version;
-    FT_Short   Ascender;
-    FT_Short   Descender;
-    FT_Short   Line_Gap;
-
-    FT_UShort  advance_Height_Max;      /* advance height maximum */
-
-    FT_Short   min_Top_Side_Bearing;    /* minimum left-sb or top-sb       */
-    FT_Short   min_Bottom_Side_Bearing; /* minimum right-sb or bottom-sb   */
-    FT_Short   yMax_Extent;             /* xmax or ymax extents            */
-    FT_Short   caret_Slope_Rise;
-    FT_Short   caret_Slope_Run;
-    FT_Short   caret_Offset;
-
-    FT_Short   Reserved[4];
-
-    FT_Short   metric_Data_Format;
-    FT_UShort  number_Of_VMetrics;
-
-    /* The following fields are not defined by the TrueType specification */
-    /* but they're used to connect the metrics header to the relevant     */
-    /* `HMTX' or `VMTX' table.                                            */
-
-    void*      long_metrics;
-    void*      short_metrics;
-
-  } TT_VertHeader;
-
-

-
-

A structure used to model a TrueType vertical header, the ‘vhea’ table, as well as the corresponding vertical metrics table, i.e., the ‘vmtx’ table.

-

-
fields
-

- - - - - - - - - - - - - - - - - - -
Version -

The table version.

-
Ascender -

The font's ascender, i.e., the distance from the baseline to the top-most of all glyph points found in the font.

-

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

-

You should use the ‘sTypoAscender’ field of the OS/2 table instead if you want the correct one.

-
Descender -

The font's descender, i.e., the distance from the baseline to the bottom-most of all glyph points found in the font. It is negative.

-

This value is invalid in many fonts, as it is usually set by the font designer, and often reflects only a portion of the glyphs found in the font (maybe ASCII).

-

You should use the ‘sTypoDescender’ field of the OS/2 table instead if you want the correct one.

-
Line_Gap -

The font's line gap, i.e., the distance to add to the ascender and descender to get the BTB, i.e., the baseline-to-baseline distance for the font.

-
advance_Height_Max -

This field is the maximum of all advance heights found in the font. It can be used to compute the maximum height of an arbitrary string of text.

-
min_Top_Side_Bearing -

The minimum top side bearing of all glyphs within the font.

-
min_Bottom_Side_Bearing
-

The minimum bottom side bearing of all glyphs within the font.

-
yMax_Extent -

The maximum vertical extent (i.e., the ‘height’ of a glyph's bounding box) for all glyphs in the font.

-
caret_Slope_Rise -

The rise coefficient of the cursor's slope of the cursor (slope=rise/run).

-
caret_Slope_Run -

The run coefficient of the cursor's slope.

-
caret_Offset -

The cursor's offset for slanted fonts. This value is ‘reserved’ in vmtx version 1.0.

-
Reserved -

8 reserved bytes.

-
metric_Data_Format -

Always 0.

-
number_Of_HMetrics -

Number of VMetrics entries in the ‘vmtx’ table -- this value can be smaller than the total number of glyphs in the font.

-
long_metrics -

A pointer into the ‘vmtx’ table.

-
short_metrics -

A pointer into the ‘vmtx’ table.

-
-
-
note
-

IMPORTANT: The TT_HoriHeader and TT_VertHeader structures should be identical except for the names of their fields which are different.

-

This ensures that a single function in the ‘ttload’ module is able to read both the horizontal and vertical headers.

-
-
-
- - -
[Index][TOC]
- -
-

TT_OS2

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_OS2_
-  {
-    FT_UShort  version;                /* 0x0001 - more or 0xFFFF */
-    FT_Short   xAvgCharWidth;
-    FT_UShort  usWeightClass;
-    FT_UShort  usWidthClass;
-    FT_Short   fsType;
-    FT_Short   ySubscriptXSize;
-    FT_Short   ySubscriptYSize;
-    FT_Short   ySubscriptXOffset;
-    FT_Short   ySubscriptYOffset;
-    FT_Short   ySuperscriptXSize;
-    FT_Short   ySuperscriptYSize;
-    FT_Short   ySuperscriptXOffset;
-    FT_Short   ySuperscriptYOffset;
-    FT_Short   yStrikeoutSize;
-    FT_Short   yStrikeoutPosition;
-    FT_Short   sFamilyClass;
-
-    FT_Byte    panose[10];
-
-    FT_ULong   ulUnicodeRange1;        /* Bits 0-31   */
-    FT_ULong   ulUnicodeRange2;        /* Bits 32-63  */
-    FT_ULong   ulUnicodeRange3;        /* Bits 64-95  */
-    FT_ULong   ulUnicodeRange4;        /* Bits 96-127 */
-
-    FT_Char    achVendID[4];
-
-    FT_UShort  fsSelection;
-    FT_UShort  usFirstCharIndex;
-    FT_UShort  usLastCharIndex;
-    FT_Short   sTypoAscender;
-    FT_Short   sTypoDescender;
-    FT_Short   sTypoLineGap;
-    FT_UShort  usWinAscent;
-    FT_UShort  usWinDescent;
-
-    /* only version 1 tables: */
-
-    FT_ULong   ulCodePageRange1;       /* Bits 0-31   */
-    FT_ULong   ulCodePageRange2;       /* Bits 32-63  */
-
-    /* only version 2 tables: */
-
-    FT_Short   sxHeight;
-    FT_Short   sCapHeight;
-    FT_UShort  usDefaultChar;
-    FT_UShort  usBreakChar;
-    FT_UShort  usMaxContext;
-
-  } TT_OS2;
-
-

-
-

A structure used to model a TrueType OS/2 table. This is the long table version. All fields comply to the TrueType specification.

-

Note that we now support old Mac fonts which do not include an OS/2 table. In this case, the ‘version’ field is always set to 0xFFFF.

-

-
-
- - -
[Index][TOC]
- -
-

TT_Postscript

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_Postscript_
-  {
-    FT_Fixed  FormatType;
-    FT_Fixed  italicAngle;
-    FT_Short  underlinePosition;
-    FT_Short  underlineThickness;
-    FT_ULong  isFixedPitch;
-    FT_ULong  minMemType42;
-    FT_ULong  maxMemType42;
-    FT_ULong  minMemType1;
-    FT_ULong  maxMemType1;
-
-    /* Glyph names follow in the file, but we don't   */
-    /* load them by default.  See the ttpost.c file.  */
-
-  } TT_Postscript;
-
-

-
-

A structure used to model a TrueType PostScript table. All fields comply to the TrueType specification. This structure does not reference the PostScript glyph names, which can be nevertheless accessed with the ‘ttpost’ module.

-

-
-
- - -
[Index][TOC]
- -
-

TT_PCLT

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_PCLT_
-  {
-    FT_Fixed   Version;
-    FT_ULong   FontNumber;
-    FT_UShort  Pitch;
-    FT_UShort  xHeight;
-    FT_UShort  Style;
-    FT_UShort  TypeFamily;
-    FT_UShort  CapHeight;
-    FT_UShort  SymbolSet;
-    FT_Char    TypeFace[16];
-    FT_Char    CharacterComplement[8];
-    FT_Char    FileName[6];
-    FT_Char    StrokeWeight;
-    FT_Char    WidthType;
-    FT_Byte    SerifStyle;
-    FT_Byte    Reserved;
-
-  } TT_PCLT;
-
-

-
-

A structure used to model a TrueType PCLT table. All fields comply to the TrueType specification.

-

-
-
- - -
[Index][TOC]
- -
-

TT_MaxProfile

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef struct  TT_MaxProfile_
-  {
-    FT_Fixed   version;
-    FT_UShort  numGlyphs;
-    FT_UShort  maxPoints;
-    FT_UShort  maxContours;
-    FT_UShort  maxCompositePoints;
-    FT_UShort  maxCompositeContours;
-    FT_UShort  maxZones;
-    FT_UShort  maxTwilightPoints;
-    FT_UShort  maxStorage;
-    FT_UShort  maxFunctionDefs;
-    FT_UShort  maxInstructionDefs;
-    FT_UShort  maxStackElements;
-    FT_UShort  maxSizeOfInstructions;
-    FT_UShort  maxComponentElements;
-    FT_UShort  maxComponentDepth;
-
-  } TT_MaxProfile;
-
-

-
-

The maximum profile is a table containing many max values which can be used to pre-allocate arrays. This ensures that no memory allocation occurs during a glyph load.

-

-
fields
-

- - - - - - - - - - - - - - - - -
version -

The version number.

-
numGlyphs -

The number of glyphs in this TrueType font.

-
maxPoints -

The maximum number of points in a non-composite TrueType glyph. See also the structure element ‘maxCompositePoints’.

-
maxContours -

The maximum number of contours in a non-composite TrueType glyph. See also the structure element ‘maxCompositeContours’.

-
maxCompositePoints -

The maximum number of points in a composite TrueType glyph. See also the structure element ‘maxPoints’.

-
maxCompositeContours -

The maximum number of contours in a composite TrueType glyph. See also the structure element ‘maxContours’.

-
maxZones -

The maximum number of zones used for glyph hinting.

-
maxTwilightPoints -

The maximum number of points in the twilight zone used for glyph hinting.

-
maxStorage -

The maximum number of elements in the storage area used for glyph hinting.

-
maxFunctionDefs -

The maximum number of function definitions in the TrueType bytecode for this font.

-
maxInstructionDefs -

The maximum number of instruction definitions in the TrueType bytecode for this font.

-
maxStackElements -

The maximum number of stack elements used during bytecode interpretation.

-
maxSizeOfInstructions -

The maximum number of TrueType opcodes used for glyph hinting.

-
maxComponentElements -

The maximum number of simple (i.e., non- composite) glyphs in a composite glyph.

-
maxComponentDepth -

The maximum nesting depth of composite glyphs.

-
-
-
note
-

This structure is only used during font loading.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Sfnt_Tag

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  typedef enum  FT_Sfnt_Tag_
-  {
-    ft_sfnt_head = 0,
-    ft_sfnt_maxp = 1,
-    ft_sfnt_os2  = 2,
-    ft_sfnt_hhea = 3,
-    ft_sfnt_vhea = 4,
-    ft_sfnt_post = 5,
-    ft_sfnt_pclt = 6,
-
-    sfnt_max   /* internal end mark */
-
-  } FT_Sfnt_Tag;
-
-

-
-

An enumeration used to specify the index of an SFNT table. Used in the FT_Get_Sfnt_Table API function.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Get_Sfnt_Table

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  FT_EXPORT( void* )
-  FT_Get_Sfnt_Table( FT_Face      face,
-                     FT_Sfnt_Tag  tag );
-
-

-
-

Return a pointer to a given SFNT table within a face.

-

-
input
-

- - - -
face -

A handle to the source.

-
tag -

The index of the SFNT table.

-
-
-
return
-

A type-less pointer to the table. This will be 0 in case of error, or if the corresponding table was not found OR loaded from the file.

-
-
note
-

The table is owned by the face object and disappears with it.

-

This function is only useful to access SFNT tables that are loaded by the sfnt, truetype, and opentype drivers. See FT_Sfnt_Tag for a list.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Load_Sfnt_Table

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Load_Sfnt_Table( FT_Face    face,
-                      FT_ULong   tag,
-                      FT_Long    offset,
-                      FT_Byte*   buffer,
-                      FT_ULong*  length );
-
-

-
-

Load any font table into client memory.

-

-
input
-

- - - - -
face -

A handle to the source face.

-
tag -

The four-byte tag of the table to load. Use the value 0 if you want to access the whole font file. Otherwise, you can use one of the definitions found in the FT_TRUETYPE_TAGS_H file, or forge a new one with FT_MAKE_TAG.

-
offset -

The starting offset in the table (or file if tag == 0).

-
-
-
output
-

- - -
buffer -

The target buffer address. The client must ensure that the memory array is big enough to hold the data.

-
-
-
inout
-

- - -
length -

If the ‘length’ parameter is NULL, then try to load the whole table. Return an error code if it fails.

-

Else, if ‘*length’ is 0, exit immediately while returning the table's (or file) full size in it.

-

Else the number of bytes to read from the table or file, from the starting offset.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

If you need to determine the table's length you should first call this function with ‘*length’ set to 0, as in the following example:

-
-  FT_ULong  length = 0;
-
-
-  error = FT_Load_Sfnt_Table( face, tag, 0, NULL, &length );
-  if ( error ) { ... table does not exist ... }
-
-  buffer = malloc( length );
-  if ( buffer == NULL ) { ... not enough memory ... }
-
-  error = FT_Load_Sfnt_Table( face, tag, 0, buffer, &length );
-  if ( error ) { ... could not load table ... }
-
-
-
-
- - -
[Index][TOC]
- -
-

FT_Sfnt_Table_Info

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Sfnt_Table_Info( FT_Face    face,
-                      FT_UInt    table_index,
-                      FT_ULong  *tag,
-                      FT_ULong  *length );
-
-

-
-

Return information on an SFNT table.

-

-
input
-

- - - -
face -

A handle to the source face.

-
table_index -

The index of an SFNT table. The function returns FT_Err_Table_Missing for an invalid value.

-
-
-
output
-

- - - -
tag -

The name tag of the SFNT table.

-
length -

The length of the SFNT table.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

SFNT tables with length zero are treated as missing.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_CMap_Language_ID

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  FT_EXPORT( FT_ULong )
-  FT_Get_CMap_Language_ID( FT_CharMap  charmap );
-
-

-
-

Return TrueType/sfnt specific cmap language ID. Definitions of language ID values are in ‘freetype/ttnameid.h’.

-

-
input
-

- - -
charmap -

The target charmap.

-
-
-
return
-

The language ID of ‘charmap’. If ‘charmap’ doesn't belong to a TrueType/sfnt face, just return 0 as the default value.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_CMap_Format

-
-Defined in FT_TRUETYPE_TABLES_H (freetype/tttables.h). -

-
-
-  FT_EXPORT( FT_Long )
-  FT_Get_CMap_Format( FT_CharMap  charmap );
-
-

-
-

Return TrueType/sfnt specific cmap format.

-

-
input
-

- - -
charmap -

The target charmap.

-
-
-
return
-

The format of ‘charmap’. If ‘charmap’ doesn't belong to a TrueType/sfnt face, return -1.

-
-
-
- - -
[Index][TOC]
- -
-

FT_PARAM_TAG_UNPATENTED_HINTING

-
-Defined in FT_UNPATENTED_HINTING_H (freetype/ttunpat.h). -

-
-
-#define FT_PARAM_TAG_UNPATENTED_HINTING  FT_MAKE_TAG( 'u', 'n', 'p', 'a' )
-
-

-
-

A constant used as the tag of an FT_Parameter structure to indicate that unpatented methods only should be used by the TrueType bytecode interpreter for a typeface opened by FT_Open_Face.

-

-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-type1_tables.html b/src/3rdparty/freetype/docs/reference/ft2-type1_tables.html deleted file mode 100644 index 44ca9772d0..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-type1_tables.html +++ /dev/null @@ -1,522 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Type 1 Tables -

-

Synopsis

- - - - - - -
PS_FontInfoRecT1_PrivateCID_FaceInfo
PS_FontInfoT1_Blend_FlagsCID_Info
T1_FontInfoCID_FaceDictRecFT_Has_PS_Glyph_Names
PS_PrivateRecCID_FaceDictFT_Get_PS_Font_Info
PS_PrivateCID_FaceInfoRecFT_Get_PS_Font_Private


- -
-

This section contains the definition of Type 1-specific tables, including structures related to other PostScript font formats.

-

-
-

PS_FontInfoRec

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct  PS_FontInfoRec_
-  {
-    FT_String*  version;
-    FT_String*  notice;
-    FT_String*  full_name;
-    FT_String*  family_name;
-    FT_String*  weight;
-    FT_Long     italic_angle;
-    FT_Bool     is_fixed_pitch;
-    FT_Short    underline_position;
-    FT_UShort   underline_thickness;
-
-  } PS_FontInfoRec;
-
-

-
-

A structure used to model a Type 1 or Type 2 FontInfo dictionary. Note that for Multiple Master fonts, each instance has its own FontInfo dictionary.

-

-
-
- - -
[Index][TOC]
- -
-

PS_FontInfo

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct PS_FontInfoRec_*  PS_FontInfo;
-
-

-
-

A handle to a PS_FontInfoRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

T1_FontInfo

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef PS_FontInfoRec  T1_FontInfo;
-
-

-
-

This type is equivalent to PS_FontInfoRec. It is deprecated but kept to maintain source compatibility between various versions of FreeType.

-

-
-
- - -
[Index][TOC]
- -
-

PS_PrivateRec

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct  PS_PrivateRec_
-  {
-    FT_Int     unique_id;
-    FT_Int     lenIV;
-
-    FT_Byte    num_blue_values;
-    FT_Byte    num_other_blues;
-    FT_Byte    num_family_blues;
-    FT_Byte    num_family_other_blues;
-
-    FT_Short   blue_values[14];
-    FT_Short   other_blues[10];
-
-    FT_Short   family_blues      [14];
-    FT_Short   family_other_blues[10];
-
-    FT_Fixed   blue_scale;
-    FT_Int     blue_shift;
-    FT_Int     blue_fuzz;
-
-    FT_UShort  standard_width[1];
-    FT_UShort  standard_height[1];
-
-    FT_Byte    num_snap_widths;
-    FT_Byte    num_snap_heights;
-    FT_Bool    force_bold;
-    FT_Bool    round_stem_up;
-
-    FT_Short   snap_widths [13];  /* including std width  */
-    FT_Short   snap_heights[13];  /* including std height */
-
-    FT_Fixed   expansion_factor;
-
-    FT_Long    language_group;
-    FT_Long    password;
-
-    FT_Short   min_feature[2];
-
-  } PS_PrivateRec;
-
-

-
-

A structure used to model a Type 1 or Type 2 private dictionary. Note that for Multiple Master fonts, each instance has its own Private dictionary.

-

-
-
- - -
[Index][TOC]
- -
-

PS_Private

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct PS_PrivateRec_*  PS_Private;
-
-

-
-

A handle to a PS_PrivateRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

T1_Private

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef PS_PrivateRec  T1_Private;
-
-

-
-

This type is equivalent to PS_PrivateRec. It is deprecated but kept to maintain source compatibility between various versions of FreeType.

-

-
-
- - -
[Index][TOC]
- -
-

T1_Blend_Flags

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef enum  T1_Blend_Flags_
-  {
-    /*# required fields in a FontInfo blend dictionary */
-    T1_BLEND_UNDERLINE_POSITION = 0,
-    T1_BLEND_UNDERLINE_THICKNESS,
-    T1_BLEND_ITALIC_ANGLE,
-
-    /*# required fields in a Private blend dictionary */
-    T1_BLEND_BLUE_VALUES,
-    T1_BLEND_OTHER_BLUES,
-    T1_BLEND_STANDARD_WIDTH,
-    T1_BLEND_STANDARD_HEIGHT,
-    T1_BLEND_STEM_SNAP_WIDTHS,
-    T1_BLEND_STEM_SNAP_HEIGHTS,
-    T1_BLEND_BLUE_SCALE,
-    T1_BLEND_BLUE_SHIFT,
-    T1_BLEND_FAMILY_BLUES,
-    T1_BLEND_FAMILY_OTHER_BLUES,
-    T1_BLEND_FORCE_BOLD,
-
-    /*# never remove */
-    T1_BLEND_MAX
-
-  } T1_Blend_Flags;
-
-

-
-

A set of flags used to indicate which fields are present in a given blend dictionary (font info or private). Used to support Multiple Masters fonts.

-

-
-
- - -
[Index][TOC]
- -
-

CID_FaceDictRec

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct  CID_FaceDictRec_
-  {
-    PS_PrivateRec  private_dict;
-
-    FT_UInt        len_buildchar;
-    FT_Fixed       forcebold_threshold;
-    FT_Pos         stroke_width;
-    FT_Fixed       expansion_factor;
-
-    FT_Byte        paint_type;
-    FT_Byte        font_type;
-    FT_Matrix      font_matrix;
-    FT_Vector      font_offset;
-
-    FT_UInt        num_subrs;
-    FT_ULong       subrmap_offset;
-    FT_Int         sd_bytes;
-
-  } CID_FaceDictRec;
-
-

-
-

A structure used to represent data in a CID top-level dictionary.

-

-
-
- - -
[Index][TOC]
- -
-

CID_FaceDict

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct CID_FaceDictRec_*  CID_FaceDict;
-
-

-
-

A handle to a CID_FaceDictRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

CID_FaceInfoRec

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct  CID_FaceInfoRec_
-  {
-    FT_String*      cid_font_name;
-    FT_Fixed        cid_version;
-    FT_Int          cid_font_type;
-
-    FT_String*      registry;
-    FT_String*      ordering;
-    FT_Int          supplement;
-
-    PS_FontInfoRec  font_info;
-    FT_BBox         font_bbox;
-    FT_ULong        uid_base;
-
-    FT_Int          num_xuid;
-    FT_ULong        xuid[16];
-
-    FT_ULong        cidmap_offset;
-    FT_Int          fd_bytes;
-    FT_Int          gd_bytes;
-    FT_ULong        cid_count;
-
-    FT_Int          num_dicts;
-    CID_FaceDict    font_dicts;
-
-    FT_ULong        data_offset;
-
-  } CID_FaceInfoRec;
-
-

-
-

A structure used to represent CID Face information.

-

-
-
- - -
[Index][TOC]
- -
-

CID_FaceInfo

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef struct CID_FaceInfoRec_*  CID_FaceInfo;
-
-

-
-

A handle to a CID_FaceInfoRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

CID_Info

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  typedef CID_FaceInfoRec  CID_Info;
-
-

-
-

This type is equivalent to CID_FaceInfoRec. It is deprecated but kept to maintain source compatibility between various versions of FreeType.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Has_PS_Glyph_Names

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  FT_EXPORT( FT_Int )
-  FT_Has_PS_Glyph_Names( FT_Face  face );
-
-

-
-

Return true if a given face provides reliable PostScript glyph names. This is similar to using the FT_HAS_GLYPH_NAMES macro, except that certain fonts (mostly TrueType) contain incorrect glyph name tables.

-

When this function returns true, the caller is sure that the glyph names returned by FT_Get_Glyph_Name are reliable.

-

-
input
-

- - -
face -

face handle

-
-
-
return
-

Boolean. True if glyph names are reliable.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_PS_Font_Info

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_PS_Font_Info( FT_Face      face,
-                       PS_FontInfo  afont_info );
-
-

-
-

Retrieve the PS_FontInfoRec structure corresponding to a given PostScript font.

-

-
input
-

- - -
face -

PostScript face handle.

-
-
-
output
-

- - -
afont_info -

Output font info structure pointer.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The string pointers within the font info structure are owned by the face and don't need to be freed by the caller.

-

If the font's format is not PostScript-based, this function will return the ‘FT_Err_Invalid_Argument’ error code.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Get_PS_Font_Private

-
-Defined in FT_TYPE1_TABLES_H (freetype/t1tables.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_PS_Font_Private( FT_Face     face,
-                          PS_Private  afont_private );
-
-

-
-

Retrieve the PS_PrivateRec structure corresponding to a given PostScript font.

-

-
input
-

- - -
face -

PostScript face handle.

-
-
-
output
-

- - -
afont_private -

Output private dictionary structure pointer.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

The string pointers within the PS_PrivateRec structure are owned by the face and don't need to be freed by the caller.

-

If the font's format is not PostScript-based, this function returns the ‘FT_Err_Invalid_Argument’ error code.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-user_allocation.html b/src/3rdparty/freetype/docs/reference/ft2-user_allocation.html deleted file mode 100644 index 98ab2f9e1a..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-user_allocation.html +++ /dev/null @@ -1,47 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-User allocation -

-
-

FreeType assumes that structures allocated by the user and passed as arguments are zeroed out except for the actual data. In other words, it is recommended to use ‘calloc’ (or variants of it) instead of ‘malloc’ for allocation.

-

- - diff --git a/src/3rdparty/freetype/docs/reference/ft2-version.html b/src/3rdparty/freetype/docs/reference/ft2-version.html deleted file mode 100644 index 9949b8f0b3..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-version.html +++ /dev/null @@ -1,213 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-FreeType Version -

-

Synopsis

- - - -
FREETYPE_XXXFT_Face_CheckTrueTypePatents
FT_Library_VersionFT_Face_SetUnpatentedHinting


- -
-

Note that those functions and macros are of limited use because even a new release of FreeType with only documentation changes increases the version number.

-

-
-

FREETYPE_XXX

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-#define FREETYPE_MAJOR  2
-#define FREETYPE_MINOR  3
-#define FREETYPE_PATCH  12
-
-

-
-

These three macros identify the FreeType source code version. Use FT_Library_Version to access them at runtime.

-

-
values
-

- - - - -
FREETYPE_MAJOR -

The major version number.

-
FREETYPE_MINOR -

The minor version number.

-
FREETYPE_PATCH -

The patch level.

-
-
-
note
-

The version number of FreeType if built as a dynamic link library with the ‘libtool’ package is not controlled by these three macros.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Library_Version

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( void )
-  FT_Library_Version( FT_Library   library,
-                      FT_Int      *amajor,
-                      FT_Int      *aminor,
-                      FT_Int      *apatch );
-
-

-
-

Return the version of the FreeType library being used. This is useful when dynamically linking to the library, since one cannot use the macros FREETYPE_MAJOR, FREETYPE_MINOR, and FREETYPE_PATCH.

-

-
input
-

- - -
library -

A source library handle.

-
-
-
output
-

- - - - -
amajor -

The major version number.

-
aminor -

The minor version number.

-
apatch -

The patch version number.

-
-
-
note
-

The reason why this function takes a ‘library’ argument is because certain programs implement library initialization in a custom way that doesn't use FT_Init_FreeType.

-

In such cases, the library version might not be available before the library object has been created.

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_CheckTrueTypePatents

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Bool )
-  FT_Face_CheckTrueTypePatents( FT_Face  face );
-
-

-
-

Parse all bytecode instructions of a TrueType font file to check whether any of the patented opcodes are used. This is only useful if you want to be able to use the unpatented hinter with fonts that do not use these opcodes.

-

Note that this function parses all glyph instructions in the font file, which may be slow.

-

-
input
-

- - -
face -

A face handle.

-
-
-
return
-

1 if this is a TrueType font that uses one of the patented opcodes, 0 otherwise.

-
-
since
-

2.3.5

-
-
-
- - -
[Index][TOC]
- -
-

FT_Face_SetUnpatentedHinting

-
-Defined in FT_FREETYPE_H (freetype/freetype.h). -

-
-
-  FT_EXPORT( FT_Bool )
-  FT_Face_SetUnpatentedHinting( FT_Face  face,
-                                FT_Bool  value );
-
-

-
-

Enable or disable the unpatented hinter for a given face. Only enable it if you have determined that the face doesn't use any patented opcodes (see FT_Face_CheckTrueTypePatents).

-

-
input
-

- - - -
face -

A face handle.

-
value -

New boolean setting.

-
-
-
return
-

The old setting value. This will always be false if this is not an SFNT font, or if the unpatented hinter is not compiled in this instance of the library.

-
-
since
-

2.3.5

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/reference/ft2-winfnt_fonts.html b/src/3rdparty/freetype/docs/reference/ft2-winfnt_fonts.html deleted file mode 100644 index 82ada84323..0000000000 --- a/src/3rdparty/freetype/docs/reference/ft2-winfnt_fonts.html +++ /dev/null @@ -1,278 +0,0 @@ - - - - -FreeType-2.3.12 API Reference - - - - - - -
[Index][TOC]
-

FreeType-2.3.12 API Reference

- -

-Window FNT Files -

-

Synopsis

- - - -
FT_WinFNT_ID_XXXFT_WinFNT_Header
FT_WinFNT_HeaderRecFT_Get_WinFNT_Header


- -
-

This section contains the declaration of Windows FNT specific functions.

-

-
-

FT_WinFNT_ID_XXX

-
-Defined in FT_WINFONTS_H (freetype/ftwinfnt.h). -

-
-
-#define FT_WinFNT_ID_CP1252    0
-#define FT_WinFNT_ID_DEFAULT   1
-#define FT_WinFNT_ID_SYMBOL    2
-#define FT_WinFNT_ID_MAC      77
-#define FT_WinFNT_ID_CP932   128
-#define FT_WinFNT_ID_CP949   129
-#define FT_WinFNT_ID_CP1361  130
-#define FT_WinFNT_ID_CP936   134
-#define FT_WinFNT_ID_CP950   136
-#define FT_WinFNT_ID_CP1253  161
-#define FT_WinFNT_ID_CP1254  162
-#define FT_WinFNT_ID_CP1258  163
-#define FT_WinFNT_ID_CP1255  177
-#define FT_WinFNT_ID_CP1256  178
-#define FT_WinFNT_ID_CP1257  186
-#define FT_WinFNT_ID_CP1251  204
-#define FT_WinFNT_ID_CP874   222
-#define FT_WinFNT_ID_CP1250  238
-#define FT_WinFNT_ID_OEM     255
-
-

-
-

A list of valid values for the ‘charset’ byte in FT_WinFNT_HeaderRec. Exact mapping tables for the various cpXXXX encodings (except for cp1361) can be found at ftp://ftp.unicode.org in the MAPPINGS/VENDORS/MICSFT/WINDOWS subdirectory. cp1361 is roughly a superset of MAPPINGS/OBSOLETE/EASTASIA/KSC/JOHAB.TXT.

-

-
values
-

- - - - - - - - - - - - - - - - - - - - -
FT_WinFNT_ID_DEFAULT -

This is used for font enumeration and font creation as a ‘don't care’ value. Valid font files don't contain this value. When querying for information about the character set of the font that is currently selected into a specified device context, this return value (of the related Windows API) simply denotes failure.

-
FT_WinFNT_ID_SYMBOL -

There is no known mapping table available.

-
FT_WinFNT_ID_MAC -

Mac Roman encoding.

-
FT_WinFNT_ID_OEM -

From Michael Pöttgen <michael@poettgen.de>:

-

The ‘Windows Font Mapping’ article says that FT_WinFNT_ID_OEM is used for the charset of vector fonts, like ‘modern.fon’, ‘roman.fon’, and ‘script.fon’ on Windows.

-

The ‘CreateFont’ documentation says: The FT_WinFNT_ID_OEM value specifies a character set that is operating-system dependent.

-

The ‘IFIMETRICS’ documentation from the ‘Windows Driver Development Kit’ says: This font supports an OEM-specific character set. The OEM character set is system dependent.

-

In general OEM, as opposed to ANSI (i.e., cp1252), denotes the second default codepage that most international versions of Windows have. It is one of the OEM codepages from

-

http://www.microsoft.com/globaldev/reference/cphome.mspx,

-

and is used for the ‘DOS boxes’, to support legacy applications. A German Windows version for example usually uses ANSI codepage 1252 and OEM codepage 850.

-
FT_WinFNT_ID_CP874 -

A superset of Thai TIS 620 and ISO 8859-11.

-
FT_WinFNT_ID_CP932 -

A superset of Japanese Shift-JIS (with minor deviations).

-
FT_WinFNT_ID_CP936 -

A superset of simplified Chinese GB 2312-1980 (with different ordering and minor deviations).

-
FT_WinFNT_ID_CP949 -

A superset of Korean Hangul KS C 5601-1987 (with different ordering and minor deviations).

-
FT_WinFNT_ID_CP950 -

A superset of traditional Chinese Big 5 ETen (with different ordering and minor deviations).

-
FT_WinFNT_ID_CP1250 -

A superset of East European ISO 8859-2 (with slightly different ordering).

-
FT_WinFNT_ID_CP1251 -

A superset of Russian ISO 8859-5 (with different ordering).

-
FT_WinFNT_ID_CP1252 -

ANSI encoding. A superset of ISO 8859-1.

-
FT_WinFNT_ID_CP1253 -

A superset of Greek ISO 8859-7 (with minor modifications).

-
FT_WinFNT_ID_CP1254 -

A superset of Turkish ISO 8859-9.

-
FT_WinFNT_ID_CP1255 -

A superset of Hebrew ISO 8859-8 (with some modifications).

-
FT_WinFNT_ID_CP1256 -

A superset of Arabic ISO 8859-6 (with different ordering).

-
FT_WinFNT_ID_CP1257 -

A superset of Baltic ISO 8859-13 (with some deviations).

-
FT_WinFNT_ID_CP1258 -

For Vietnamese. This encoding doesn't cover all necessary characters.

-
FT_WinFNT_ID_CP1361 -

Korean (Johab).

-
-
-
-
- - -
[Index][TOC]
- -
-

FT_WinFNT_HeaderRec

-
-Defined in FT_WINFONTS_H (freetype/ftwinfnt.h). -

-
-
-  typedef struct  FT_WinFNT_HeaderRec_
-  {
-    FT_UShort  version;
-    FT_ULong   file_size;
-    FT_Byte    copyright[60];
-    FT_UShort  file_type;
-    FT_UShort  nominal_point_size;
-    FT_UShort  vertical_resolution;
-    FT_UShort  horizontal_resolution;
-    FT_UShort  ascent;
-    FT_UShort  internal_leading;
-    FT_UShort  external_leading;
-    FT_Byte    italic;
-    FT_Byte    underline;
-    FT_Byte    strike_out;
-    FT_UShort  weight;
-    FT_Byte    charset;
-    FT_UShort  pixel_width;
-    FT_UShort  pixel_height;
-    FT_Byte    pitch_and_family;
-    FT_UShort  avg_width;
-    FT_UShort  max_width;
-    FT_Byte    first_char;
-    FT_Byte    last_char;
-    FT_Byte    default_char;
-    FT_Byte    break_char;
-    FT_UShort  bytes_per_row;
-    FT_ULong   device_offset;
-    FT_ULong   face_name_offset;
-    FT_ULong   bits_pointer;
-    FT_ULong   bits_offset;
-    FT_Byte    reserved;
-    FT_ULong   flags;
-    FT_UShort  A_space;
-    FT_UShort  B_space;
-    FT_UShort  C_space;
-    FT_UShort  color_table_offset;
-    FT_ULong   reserved1[4];
-
-  } FT_WinFNT_HeaderRec;
-
-

-
-

Windows FNT Header info.

-

-
-
- - -
[Index][TOC]
- -
-

FT_WinFNT_Header

-
-Defined in FT_WINFONTS_H (freetype/ftwinfnt.h). -

-
-
-  typedef struct FT_WinFNT_HeaderRec_*  FT_WinFNT_Header;
-
-

-
-

A handle to an FT_WinFNT_HeaderRec structure.

-

-
-
- - -
[Index][TOC]
- -
-

FT_Get_WinFNT_Header

-
-Defined in FT_WINFONTS_H (freetype/ftwinfnt.h). -

-
-
-  FT_EXPORT( FT_Error )
-  FT_Get_WinFNT_Header( FT_Face               face,
-                        FT_WinFNT_HeaderRec  *aheader );
-
-

-
-

Retrieve a Windows FNT font info header.

-

-
input
-

- - -
face -

A handle to the input face.

-
-
-
output
-

- - -
aheader -

The WinFNT header.

-
-
-
return
-

FreeType error code. 0 means success.

-
-
note
-

This function only works with Windows FNT faces, returning an error otherwise.

-
-
-
- - -
[Index][TOC]
- - - diff --git a/src/3rdparty/freetype/docs/release b/src/3rdparty/freetype/docs/release deleted file mode 100644 index 5e2d51f880..0000000000 --- a/src/3rdparty/freetype/docs/release +++ /dev/null @@ -1,195 +0,0 @@ -How to prepare a new release ----------------------------- - -. include/freetype/freetype.h: Update FREETYPE_MAJOR, FREETYPE_MINOR, - and FREETYPE_PATCH. - -. Update version numbers in all files where necessary (for example, do - a grep for both `2.3.1' and `231' for release 2.3.1). - -. builds/unix/configure.raw: Update `version_info'. - -. docs/CHANGES: Document differences to last release. - -. README: Update. - -. docs/VERSION.DLL: Document changed `version_info'. - -. ChangeLog: Announce new release (both in the freetype2 and - freetype2-demos modules). - -. Clone the git archive to another directory with - - git clone -l -s . ../freetype2.test - - or something like this and run - - make distclean; make devel; make - make distclean; make devel; make multi - make distclean; make devel CC=g++; make CC=g++ - make distclean; make devel CC=g++; make multi CC=g++ - - sh autogen.sh - make distclean; ./configure; make - make distclean; ./configure CC=g++; make - - in the cloned repository to test compilation with both gcc and g++. - -. Test C++ compilation for freetype2-demos too (using `git clone' as - above). - -. Run src/tools/chktrcmp.py and check that there are no undefined - trace_XXXX macros. - -. Tag the git repositories (freetype2, freetype2-demos) with - - git tag VER- -m "" -u - - and push the tags with - - git push --tags - - TODO: Tag the home page CVS on savannah.nongnu.org. - -. Say `make dist' in both the freetype2 and freetype2-demos modules - to generate the .tar.gz, .tar.bz2, and .zip files. - -. Create the doc bundles (freetype-doc-.tar.gz, - freetype-doc-.tar.bz2, ftdoc.zip). This is - everything below - - freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/ - - except the `reference' subdirectory. Do *not* use option `-l' from - zip! - -. Run the following script (with updated `$VERSION', `$SAVANNAH_USER', - and $SOURCEFORGE_USER variables) to sign and upload the bundles to - both Savannah and SourceForge. The signing code has been taken from - the `gnupload' script (part of the automake bundle). - - #!/bin/sh - - VERSION=2.3.11 - SAVANNAH_USER=wl - SOURCEFORGE_USER=wlemb - - ##################################################################### - - GPG='/usr/bin/gpg --batch --no-tty' - - version=`echo $VERSION | sed "s/\\.//g"` - - FREETYPE_PACKAGES="freetype-$VERSION.tar.gz \ - freetype-$VERSION.tar.bz2 \ - ft$version.zip" - FT2DEMOS_PACKAGES="ft2demos-$VERSION.tar.gz \ - ft2demos-$VERSION.tar.bz2 \ - ftdmo$version.zip" - FTDOC_PACKAGES="freetype-doc-$VERSION.tar.gz \ - freetype-doc-$VERSION.tar.bz2 \ - ftdoc$version.zip" - - PACKAGE_LIST="$FREETYPE_PACKAGES \ - $FT2DEMOS_PACKAGES \ - $FTDOC_PACKAGES" - - set -e - unset passphrase - - PATH=/empty echo -n "Enter GPG passphrase: " - stty -echo - read -r passphrase - stty echo - echo - - for f in $PACKAGE_LIST; do - if test ! -f $f; then - echo "$0: Cannot find \`$f'" 1>&2 - exit 1 - else - : - fi - done - - for f in $PACKAGE_LIST; do - echo "Signing $f..." - rm -f $f.sig - echo $passphrase | $GPG --passphrase-fd 0 -ba -o $f.sig $f - done - - FREETYPE_SIGNATURES= - for i in $FREETYPE_PACKAGES; do - FREETYPE_SIGNATURES="$FREETYPE_SIGNATURES $i.sig" - done - - FT2DEMOS_SIGNATURES= - for i in $FT2DEMOS_PACKAGES; do - FT2DEMOS_SIGNATURES="$FT2DEMOS_SIGNATURES $i.sig" - done - - FTDOC_SIGNATURES= - for i in $FTDOC_PACKAGES; do - FTDOC_SIGNATURES="$FTDOC_SIGNATURES $i.sig" - done - - SIGNATURE_LIST="$FREETYPE_SIGNATURES \ - $FT2DEMOS_SIGNATURES \ - $FTDOC_SIGNATURES" - - scp $PACKAGE_LIST $SIGNATURE_LIST \ - $SAVANNAH_USER@dl.sv.nongnu.org:/releases/freetype/ - - rsync -avP -e ssh $FREETYPE_PACKAGES $FREETYPE_SIGNATURES \ - $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype2/$VERSION/ - rsync -avP -e ssh $FT2DEMOS_PACKAGES $FT2DEMOS_SIGNATURES \ - $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-demos/$VERSION/ - rsync -avP -e ssh $FTDOC_PACKAGES $FTDOC_SIGNATURES \ - $SOURCEFORGE_USER,freetype@frs.sf.net:/home/frs/project/f/fr/freetype/freetype-docs/$VERSION/ - - # EOF - -. While files on savannah.gnu.org are automatically moved to the right - directory, it must be done manually on SourceForge. Do that now. - -. Update the FreeType release notes on SourceForge. - -. Copy the reference files (generated by `make dist') to - - freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/freetype2/docs/reference - - and - - shell.sf.net:/home/groups/f/fr/freetype/htdocs/freetype2/docs/reference - - TODO: Create FreeType home page CVS on savannah.nongnu.org and - update it accordingly. - - Write script to automatically do this. - - Mirror FreeType's savannah home page everywhere. - -. Update - - freetype.freedesktop.org:/srv/freetype.freedesktop.org/www/index2.html - - and copy it to - - shell.sf.net:/home/groups/f/fr/freetype/htdocs/index2.html - -. Announce new release on freetype-announce@nongnu.org and to relevant - newsgroups. - ----------------------------------------------------------------------- - -Copyright 2003, 2005, 2006, 2007, 2009 by -David Turner, Robert Wilhelm, and Werner Lemberg. - -This file is part of the FreeType project, and may only be used, -modified, and distributed under the terms of the FreeType project -license, LICENSE.TXT. By continuing to use, modify, or distribute -this file you indicate that you have read the license and understand -and accept it fully. - - ---- end of release --- -- cgit v1.2.3