mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-07 16:28:38 +09:00
Issue #1863 - Update freetype2 to 2.13.0.
This commit is contained in:
parent
0132ae2101
commit
8a54b4f303
885 changed files with 207490 additions and 81111 deletions
|
|
@ -1,4 +1,597 @@
|
|||
CHANGES BETWEEN 2.9 and 2.9.1
|
||||
CHANGES BETWEEN 2.12.1 and 2.13.0 (2023-Feb-09)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- The demo program `ftinspect` has been completely updated and much
|
||||
enhanced. It now combines the functionality of almost all other
|
||||
graphical FreeType demo programs into a single application based
|
||||
on the Qt framework. This was Charlie Jiang's GSoC 2022 project.
|
||||
|
||||
- The 'COLR' v1 API is now considered as stable.
|
||||
|
||||
https://learn.microsoft.com/en-us/typography/opentype/spec/colr
|
||||
|
||||
|
||||
III. MISCELLANEOUS
|
||||
|
||||
- For OpenType Variable Fonts, `avar` table format 2.0 is now
|
||||
supported. The code was contributed by Behdad Esfahbod.
|
||||
|
||||
Note that this is an extension supported on recent Apple platforms
|
||||
and by HarfBuzz, but not yet in the OpenType standard! See
|
||||
|
||||
https://github.com/harfbuzz/boring-expansion-spec/blob/main/avar2.md
|
||||
|
||||
for the specification. To deactivate it, define the configuration
|
||||
macro 'TT_CONFIG_OPTION_NO_BORING_EXPANSION'.
|
||||
|
||||
- A new API `FT_GlyphSlot_Slant` to slant a glyph by a given angle
|
||||
has been added. Note that this function is part of `ftsynth.h`,
|
||||
which is still considered to be in alpha stage.
|
||||
|
||||
- TrueType interpreter version 38 (also known as 'Infinality') that
|
||||
was first introduced about 10 years ago in FreeType 2.4.11 is now
|
||||
deprecated and slated to be removed in the next version. TrueType
|
||||
interpreter version 40 has been FreeType's default version for six
|
||||
years now and provides an excellent alternative. This is the last
|
||||
FreeType version with TT_INTERPRETER_VERSION_38 and
|
||||
TT_INTERPRETER_VERSION_40 treated differently.
|
||||
|
||||
- The only referenced but never documented configuration macro
|
||||
`FT_CONFIG_OPTION_NO_GLYPH_NAMES` has been removed.
|
||||
|
||||
- The `ftbench` demo program got a new command line option `-e` to
|
||||
set a charmap index.
|
||||
|
||||
- Specifying a point size is now optional for the demo programs
|
||||
`ftgrid`, `ftmulti`, `ftstring`, and `ftview`. If not given, a
|
||||
default size is used.
|
||||
|
||||
- For `ftgrid`, `ftstring`, and `ftview`, option `-e` now also
|
||||
accepts a numeric value to set a charmap index.
|
||||
|
||||
- In `ftstring`, it is now possible to set the displayed text
|
||||
interactively by pressing the 'Enter' key.
|
||||
|
||||
- `ftmulti` can now handle up to 16 design axes.
|
||||
|
||||
- To avoid reserved identifiers that are globally defined, the
|
||||
auto-hinter debugging macros (which are only available if
|
||||
`FT_DEBUG_AUTOFIT` is defined)
|
||||
|
||||
```
|
||||
_af_debug_disable_horz_hints
|
||||
_af_debug_disable_vert_hints
|
||||
_af_debug_disable_blue_hints
|
||||
_af_debug_hints
|
||||
```
|
||||
|
||||
have been renamed to
|
||||
|
||||
```
|
||||
af_debug_disable_horz_hints_
|
||||
af_debug_disable_vert_hints_
|
||||
af_debug_disable_blue_hints_
|
||||
af_debug_hints_
|
||||
```
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.12.0 and 2.12.1 (2022-May-01)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
- Loading CFF fonts sometimes made FreeType crash (bug introduced in
|
||||
version 2.12.0)
|
||||
|
||||
- Loading a fully hinted TrueType glyph a second time (without
|
||||
caching) sometimes yielded different rendering results if TrueType
|
||||
hinting was active (bug introduced in version 2.12.0).
|
||||
|
||||
- The generation of the pkg-config file `freetype2.pc` was broken if
|
||||
the build was done with cmake (bug introduced in version 2.12.0).
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- New option `--with-librsvg` for the `configure` script for better
|
||||
FreeType demo support.
|
||||
|
||||
- The meson build no longer enforces both static and dynamic
|
||||
versions of the library by default.
|
||||
|
||||
- The internal zlib library was updated to version 1.2.12. Note,
|
||||
however, that FreeType is *not* affected by CVE-2018-25032 since
|
||||
it only does decompression.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.11.1 and 2.12.0 (2022-Mar-30)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- FreeType now handles OT-SVG fonts, to be controlled with
|
||||
`FT_CONFIG_OPTION_SVG` configuration macro. By default, it can
|
||||
only load the 'SVG ' table of an OpenType font. However, by using
|
||||
the `svg-hooks` property of the new 'ot-svg' module it is possible
|
||||
to register an external SVG rendering engine. The FreeType demo
|
||||
programs have been set up to use 'librsvg' as the rendering
|
||||
library.
|
||||
|
||||
This work was Moazin Khatti's GSoC 2019 project.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- The handling of fonts with an 'sbix' table has been improved.
|
||||
|
||||
- Corrected bitmap offsets.
|
||||
|
||||
- A new tag `FT_PARAM_TAG_IGNORE_SBIX` for `FT_Open_Face` makes
|
||||
FreeType ignore an 'sbix' table in a font, allowing applications
|
||||
to access the font's outline glyphs.
|
||||
|
||||
- `FT_FACE_FLAG_SBIX` and `FT_FACE_FLAG_SBIX_OVERLAY` together
|
||||
with their corresponding preprocessor macros `FT_HAS_SBIX` and
|
||||
`FT_HAS_SBIX_OVERLAY` enable applications to treat 'sbix' tables
|
||||
as described in the OpenType specification.
|
||||
|
||||
- The internal 'zlib' code has been updated to be in sync with the
|
||||
current 'zlib' version (1.2.11).
|
||||
|
||||
- The previously internal load flag `FT_LOAD_SBITS_ONLY` is now
|
||||
public.
|
||||
|
||||
- Some minor improvements of the building systems, in particular
|
||||
handling of the 'zlib' library (internal vs. external).
|
||||
|
||||
- Support for non-desktop Universal Windows Platform.
|
||||
|
||||
- Various other minor bug and documentation fixes.
|
||||
|
||||
- The `ftdump` demo program shows more information for Type1 fonts
|
||||
if option `-n` is given.
|
||||
|
||||
- `ftgrid` can now display embedded bitmap strikes.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.11.0 and 2.11.1 (2021-Dec-01)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- Some fields in the `CID_FaceDictRec`, `CID_FaceInfoRec`, and
|
||||
`FT_Data` structures 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.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- Cmake support has been further improved. To do that various
|
||||
backward-incompatible changes were necessary; please see file
|
||||
`CMakeLists.txt` for more details.
|
||||
|
||||
- Since version 2.11.0, a C99 compiler is necessary to compile
|
||||
FreeType.
|
||||
|
||||
- The experimental 'COLR' v1 API has been updated to the latest
|
||||
OpenType standard 1.9.
|
||||
|
||||
- The `apinames` tool got a new option `-wV` to output an OpenVMS
|
||||
Linker Option File.
|
||||
|
||||
- VMS support was updated.
|
||||
|
||||
- MS Visual Studio support was added to build the demo programs.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.10.4 and 2.11.0 (2021-Jul-18)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- A new rendering module has been added to create 8-bit Signed
|
||||
Distance Field (SDF) bitmaps for both outline and bitmap glyphs.
|
||||
The new rendering mode is called `FT_RENDER_MODE_SDF`, the pixel
|
||||
mode is `FT_PIXEL_MODE_GRAY8`, and the corresponding raster flag
|
||||
is `FT_RASTER_FLAG_SDF`.
|
||||
|
||||
This work was Anuj Verma's GSoC 2020 project.
|
||||
|
||||
- A new, experimental API is now available for surfacing properties
|
||||
of 'COLR' v1 color fonts (as the name says, this is an extension
|
||||
to the 'COLR' table for outline color fonts using the SFNT
|
||||
container format). 'COLR' v1 fonts are a recently proposed
|
||||
addition to OFF and OpenType; specification work currently happens
|
||||
in
|
||||
|
||||
https://github.com/googlefonts/colr-gradients-spec/
|
||||
|
||||
'COLR' v1 is expected to be merged to OpenType; the ISO
|
||||
standardisation process for adding 'COLR' v1 as an amendment to
|
||||
OFF is underway.
|
||||
|
||||
Functions similar to the already existing 'COLR' API have been
|
||||
added to access the corresponding data.
|
||||
|
||||
FT_Get_Color_Glyph_Paint
|
||||
Retrieve the root paint for a given glyph ID.
|
||||
|
||||
FT_Get_Paint_Layers
|
||||
Access the layers of a `PaintColrLayers` table.
|
||||
|
||||
FT_Get_Colorline_Stops
|
||||
Retrieve the 'color stops' on a color line. As an input, a
|
||||
color stop iterator gets used, which in turn is retrieved from
|
||||
a paint.
|
||||
|
||||
FT_Get_Paint
|
||||
Dereference an `FT_OpaquePaint` object and retrieve the
|
||||
corresponding `FT_COLR_Paint` object, which contains details
|
||||
on how to draw the respective 'COLR' v1 `Paint` table.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- FreeType has moved its infrastructure to
|
||||
|
||||
https://gitlab.freedesktop.org/freetype
|
||||
|
||||
A side effect is that the git repositories are now called
|
||||
`freetype.git` and `freetype-demos.git`, which by default expand
|
||||
to the directories `freetype` and `freetype-demos`, respectively.
|
||||
The documentation has been updated accordingly.
|
||||
|
||||
FreeType's Savannah repositories will stay; they are now mirrors
|
||||
of the 'freedesktop.org' repositories.
|
||||
|
||||
- A new function `FT_Get_Transform` returns the values set by
|
||||
`FT_Set_Transform`.
|
||||
|
||||
- A new configuration macro `FT_DEBUG_LOGGING` is available. It
|
||||
provides extended debugging capabilities for FreeType, for example
|
||||
showing a time stamp or displaying the component a tracing message
|
||||
comes from. See file `docs/DEBUG` for more information.
|
||||
|
||||
This work was Priyesh Kumar's GSoC 2020 project.
|
||||
|
||||
- The legacy Type 1 and CFF engines are further demoted due to lack
|
||||
of CFF2 charstring support. You now need to use `FT_Property_Set`
|
||||
to enable them besides the `T1_CONFIG_OPTION_OLD_ENGINE` and
|
||||
`CFF_CONFIG_OPTION_OLD_ENGINE` options, respectively.
|
||||
|
||||
- The experimental 'warp' mode (AF_CONFIG_OPTION_USE_WARPER) for the
|
||||
auto-hinter has been removed.
|
||||
|
||||
- The smooth rasterizer performance has been improved by >10%. Note
|
||||
that due to necessary code changes there might be very subtle
|
||||
differences in rendering. They are not visible by the eye,
|
||||
however.
|
||||
|
||||
- PCF bitmap fonts compressed with LZW (these are usually files with
|
||||
the extension `.pcf.Z`) are now handled correctly.
|
||||
|
||||
- Improved Meson build files, including support to build the
|
||||
FreeType demo programs.
|
||||
|
||||
- A new demo program `ftsdf` is available to display Signed Distance
|
||||
Fields of glyphs.
|
||||
|
||||
- The `ftlint` demo program has been extended to do more testing of
|
||||
its input. In particular, it can display horizontal and vertical
|
||||
acutances for quality assessment, together with computing MD5
|
||||
checksums of rendered glyphs.
|
||||
|
||||
[The acutance measures how sharply the pixel coverage changes at
|
||||
glyph edges. For monochrome bitmaps, it is always 2.0 in either
|
||||
X or Y direction. For anti-aliased bitmaps, it depends on the
|
||||
hinting and the shape of a glyph and might approach or even reach
|
||||
value 2.0 for glyphs like 'I', 'L', '+', '-', or '=', while it
|
||||
might be lower for glyphs like 'O', 'S', or 'W'.]
|
||||
|
||||
- The `ttdebug` demo program didn't show changed point coordinates
|
||||
(bug introduced in version 2.10.3).
|
||||
|
||||
- It is now possible to adjust the axis increment for variable fonts
|
||||
in the `ftmulti` demo program.
|
||||
|
||||
- It is now possible to change the hinting engine in the `ftstring`
|
||||
demo program.
|
||||
|
||||
- The graphical demo programs work better now in native color depth
|
||||
on win32 and x11.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.10.3 and 2.10.4 (2020-Oct-20)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
- A heap buffer overflow has been found in the handling of embedded
|
||||
PNG bitmaps, introduced in FreeType version 2.6.
|
||||
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-15999
|
||||
|
||||
If you use option FT_CONFIG_OPTION_USE_PNG you should upgrade
|
||||
immediately.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.10.2 and 2.10.3 (2020-Oct-10)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- New flag `FT_OUTLINE_OVERLAP'. If set, make the smooth rasterizer
|
||||
do 4x4 oversampling to mitigate artifacts in pixels partially
|
||||
covered by overlapping contours. Note that this at least
|
||||
quadruples the rendering time.
|
||||
|
||||
If a glyph in a TrueType font has the `OVERLAP_SIMPLE' or
|
||||
`OVERLAP_COMPOUND' bit set, FreeType automatically selects this
|
||||
rendering mode.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- Using the arcane method of including FreeType header files with
|
||||
macros like `FT_FREETYPE_H' is no longer mandatory (but retained
|
||||
as an optional feature for backward compatibility).
|
||||
|
||||
- Support for building the library with Meson. Building the demo
|
||||
programs with Meson will follow in a forthcoming release.
|
||||
|
||||
- Minor improvements to the B/W rasterizer.
|
||||
|
||||
- Auto-hinter support for Medefaidrin script.
|
||||
|
||||
- Fix various memory leaks (mainly for CFF) and other issues that
|
||||
might cause crashes in rare circumstances.
|
||||
|
||||
- Jam support has been removed.
|
||||
|
||||
- In `ftview', custom LCD filter values are now normalized and
|
||||
balanced. Unorthodox filters are still available through the `-L'
|
||||
command line option.
|
||||
|
||||
- The GUI demo programs can now be resized.
|
||||
|
||||
- Demo programs that accept command line option `-k' can now handle
|
||||
function keys, too. The corresponding character codes start with
|
||||
0xF1. As an example, the POSIX shell syntax (accepted by bash,
|
||||
ksh, and zsh)
|
||||
|
||||
-k $'\xF3q'
|
||||
|
||||
emulates the pressing of function key `F3' followed by key `q'.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.10.1 and 2.10.2 (2020-May-09)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- Support of WOFF2 fonts. This code contribution was Nikhil
|
||||
Ramakrishnan's GSoC 2019 project.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- Function `FT_Get_Var_Axis_Flags' returned random data for Type 1
|
||||
MM fonts.
|
||||
|
||||
- Type 1 fonts with non-integer metrics are now supported by the new
|
||||
(CFF) engine introduced in FreeType 2.9.
|
||||
|
||||
- Drop support for Python 2 in Freetype's API reference generator
|
||||
`docwriter' (Python >= 3.5 is required for targets `make refdoc'
|
||||
and `make refdoc-venv').
|
||||
|
||||
- Auto-hinter support for Hanifi Rohingya.
|
||||
|
||||
- Document the `FT2_KEEP_ALIVE' debugging environment variable.
|
||||
|
||||
- The Visual C++ (and Visual C) project files for Windows builds no
|
||||
longer generate libraries that contain the FreeType version in its
|
||||
filenames. Instead, a resource file gets used to make the
|
||||
libraries contain the corresponding information.
|
||||
|
||||
- The next release will remove Jam build support.
|
||||
|
||||
- The `ftbench' demo program has a new test for testing the
|
||||
`FT_Glyph_Stroke' functionality.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.10.0 and 2.10.1 (2019-Jul-01)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
- The bytecode hinting of OpenType variation fonts was flawed, since
|
||||
the data in the `CVAR' table wasn't correctly applied.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- Auto-hinter support for Mongolian.
|
||||
|
||||
- For distribution, `.tar.bz2' packages are replaced with `.tar.xz'
|
||||
bundles.
|
||||
|
||||
- The handling of the default character in PCF fonts as introduced
|
||||
in version 2.10.0 was partially broken, causing premature abortion
|
||||
of charmap iteration for many fonts.
|
||||
|
||||
- If `FT_Set_Named_Instance' was called with the same arguments
|
||||
twice in a row, the function returned an incorrect error code the
|
||||
second time.
|
||||
|
||||
- Direct rendering using FT_RASTER_FLAG_DIRECT crashed (bug
|
||||
introduced in version 2.10.0).
|
||||
|
||||
- Increased precision while computing OpenType font variation
|
||||
instances.
|
||||
|
||||
- The flattening algorithm of cubic Bezier curves was slightly
|
||||
changed to make it faster. This can cause very subtle rendering
|
||||
changes, which aren't noticeable by the eye, however.
|
||||
|
||||
- The auto-hinter now disables hinting if there are blue zones
|
||||
defined for a `style' (i.e., a certain combination of a script and
|
||||
its related typographic features) but the font doesn't contain any
|
||||
characters needed to set up at least one blue zone.
|
||||
|
||||
- The `ftmulti' demo program now supports multiple hidden axes with
|
||||
the same name tag.
|
||||
|
||||
- `ftview', `ftstring', and `ftgrid' got a `-k' command line option
|
||||
to emulate a sequence of keystrokes at start-up.
|
||||
|
||||
- `ftview', `ftstring', and `ftgrid' now support screen dumping to a
|
||||
PNG file.
|
||||
|
||||
- The bytecode debugger, `ttdebug', now supports variation TrueType
|
||||
fonts; a variation font instance can be selected with the new `-d'
|
||||
command line option.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.9.1 and 2.10.0 (2019-Mar-15)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
- A bunch of new functions has been added to access and process
|
||||
COLR/CPAL data of OpenType fonts with color-layered glyphs.
|
||||
|
||||
FT_Palette_Data_Get
|
||||
Retrieve color palette data.
|
||||
FT_Palette_Select
|
||||
Select and activate a color palette for color-layered
|
||||
glyphs.
|
||||
FT_Palette_Set_Foreground_Color
|
||||
Set text foreground color for palette index 0xFFFF.
|
||||
|
||||
FT_Get_Color_Glyph_Layer
|
||||
Get color layers for a given glyph (using an interator
|
||||
object).
|
||||
|
||||
FT_Bitmap_Blend
|
||||
Blend one bitmap onto another with a given color.
|
||||
|
||||
- An experimental feature is the new behaviour of the
|
||||
`FT_LOAD_COLOR' load flag for color-layered glyphs: Internally
|
||||
it sets a flag so that if `FT_Render_Glyph' is called with
|
||||
`FT_RENDER_MODE_NORMAL' (or `FT_Load_Glyph' with
|
||||
`FT_LOAD_RENDER'), a default blending of the color glyph layers
|
||||
will happen automatically for convenience.
|
||||
|
||||
- As a GSoC 2018 project, Nikhil Ramakrishnan completely
|
||||
overhauled and modernized the API reference.
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
||||
- The logic for computing the global ascender, descender, and
|
||||
height of OpenType fonts has been slightly adjusted for
|
||||
consistency.
|
||||
|
||||
. If the `useTypoMetrics' flag (i.e., bit 7 in the `fsSelection'
|
||||
field) in the `OS/2' table is set, use the `sTypo' fields in
|
||||
`OS/2' unconditionally.
|
||||
. Otherwise use the metrics data from the `hhea' table (if not
|
||||
zero).
|
||||
. Otherwise use the `sTypo' fields from the `OS/2' table (if not
|
||||
zero).
|
||||
. Otherwise use the `usWin' data from the `OS/2' table as a last
|
||||
resort.
|
||||
|
||||
Variable fonts will apply the `MVAR' deltas to whichever metrics
|
||||
were picked.
|
||||
|
||||
- `TT_Set_MM_Blend' could fail if call repeatedly with the same
|
||||
arguments.
|
||||
|
||||
- The precision of handling deltas in Variation Fonts has been
|
||||
increased. The problem did only show up with multidimensional
|
||||
designspaces.
|
||||
|
||||
- New function `FT_Library_SetLcdGeometry' to set up the geometry
|
||||
of LCD subpixels.
|
||||
|
||||
- FreeType now uses the `defaultChar' property of PCF fonts to set
|
||||
the glyph for the undefined character at glyph index 0 (as
|
||||
FreeType already does for all other supported font formats). As
|
||||
a consequence, the order of glyphs of a PCF font if accessed
|
||||
with FreeType can be different now compared to previous
|
||||
versions.
|
||||
|
||||
This change doesn't affect PCF font access with cmaps.
|
||||
|
||||
- `FT_Select_Charmap' has been changed to allow parameter value
|
||||
`FT_ENCODING_NONE', which is valid for BDF, PCF, and Windows FNT
|
||||
formats to access built-in cmaps that don't have a predefined
|
||||
`FT_Encoding' value.
|
||||
|
||||
- A previously reserved field in the `FT_GlyphSlotRec' structure
|
||||
now holds the glyph index.
|
||||
|
||||
- On Win32 platforms, the use of `_DLL' to build the library has
|
||||
been replaced with `DLL_EXPORT' and `DLL_IMPORT'.
|
||||
|
||||
- The usual round of fuzzer bug fixes to better reject malformed
|
||||
fonts.
|
||||
|
||||
- `FT_Outline_New_Internal' and `FT_Outline_Done_Internal' have
|
||||
been removed. These two functions were public by oversight only
|
||||
and were never documented.
|
||||
|
||||
- A new function `FT_Error_String' returns descriptions of error
|
||||
codes if configuration macro FT_CONFIG_OPTION_ERROR_STRINGS is
|
||||
defined.
|
||||
|
||||
- `FT_Set_MM_WeightVector' and `FT_Get_MM_WeightVector' are new
|
||||
functions limited to Adobe MultiMaster fonts to directly set and
|
||||
get the weight vector.
|
||||
|
||||
- Support for Position Independent Code as needed by systems that
|
||||
prohibit automatic address fixups, such as BREW, has been
|
||||
removed. [Compilation with modern compilers that use flags like
|
||||
`-fPIC' or `-fPIE' is not affected.]
|
||||
|
||||
- The `ftdump' demo program has new options `-c' and `-C' to
|
||||
display charmaps in compact and detailed format, respectively.
|
||||
Option `-V' has been removed.
|
||||
|
||||
- The `ftview', `ftstring', and `ftgrid' demo programs use a new
|
||||
command line option `-d' to specify the program window's width,
|
||||
height, and color depth.
|
||||
|
||||
- The `ftview' demo program now displays red boxes for zero-width
|
||||
glyphs.
|
||||
|
||||
- `ftglyph' has limited support to display fonts with
|
||||
color-layered glyphs. This will be improved later on.
|
||||
|
||||
- `ftgrid' can now display bitmap fonts also.
|
||||
|
||||
- The `ttdebug' demo program has a new option `-f' to select a
|
||||
member of a TrueType collection (TTC).
|
||||
|
||||
- Other various improvements to the demo programs.
|
||||
|
||||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.9 and 2.9.1 (2019-May-01)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -8,7 +601,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
|
|||
- CVE-2018-6942: Older FreeType versions can crash with certain
|
||||
malformed variation fonts.
|
||||
|
||||
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942
|
||||
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2018-6942
|
||||
|
||||
|
||||
II. MISCELLANEOUS
|
||||
|
|
@ -28,7 +621,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
|
|||
use the `pkg-config' interface.
|
||||
|
||||
The `configure' script no longer installs `freetype-config' by
|
||||
default. For backwards compatibility, a new configure option
|
||||
default. For backward compatibility, a new configure option
|
||||
`--enable-freetype-config' is provided that reverts this
|
||||
decision.
|
||||
|
||||
|
|
@ -46,7 +639,7 @@ CHANGES BETWEEN 2.9 and 2.9.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.8.1 and 2.9
|
||||
CHANGES BETWEEN 2.8.1 and 2.9 (2018-Jan-08)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -136,7 +729,7 @@ CHANGES BETWEEN 2.8.1 and 2.9
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.8 and 2.8.1
|
||||
CHANGES BETWEEN 2.8 and 2.8.1 (2017-Sep-16)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -219,7 +812,7 @@ CHANGES BETWEEN 2.8 and 2.8.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.7.1 and 2.8
|
||||
CHANGES BETWEEN 2.7.1 and 2.8 (2017-May-13)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -232,7 +825,7 @@ CHANGES BETWEEN 2.7.1 and 2.8
|
|||
following properties can be handled: stem darkening, LCD filter
|
||||
weights, and the random seed for the `random' CFF operator.
|
||||
|
||||
- The PCF change to show more `colourful' family names (introduced
|
||||
- The PCF change to show more `colorful' family names (introduced
|
||||
in version 2.7.1) was too radical; it can now be configured with
|
||||
PCF_CONFIG_OPTION_LONG_FAMILY_NAMES at compile time. If
|
||||
activated, it can be switched off at run time with the new pcf
|
||||
|
|
@ -340,7 +933,7 @@ CHANGES BETWEEN 2.7.1 and 2.8
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.7 and 2.7.1
|
||||
CHANGES BETWEEN 2.7 and 2.7.1 (2016-Dec-30)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -383,7 +976,7 @@ CHANGES BETWEEN 2.7 and 2.7.1
|
|||
and the number of CVT entries. Please report if you encounter a
|
||||
font where the selected values are not adequate.
|
||||
|
||||
- PCF family names are made more `colourful'; they now include the
|
||||
- PCF family names are made more `colorful'; they now include the
|
||||
foundry and information whether they contain wide characters.
|
||||
For example, you no longer get `Fixed' but rather `Sony Fixed'
|
||||
or `Misc Fixed Wide'.
|
||||
|
|
@ -417,7 +1010,7 @@ CHANGES BETWEEN 2.7 and 2.7.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6.5 and 2.7
|
||||
CHANGES BETWEEN 2.6.5 and 2.7 (2016-Sep-08)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -481,7 +1074,7 @@ CHANGES BETWEEN 2.6.5 and 2.7
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6.4 and 2.6.5
|
||||
CHANGES BETWEEN 2.6.4 and 2.6.5 (2016-Jul-12)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -501,7 +1094,7 @@ CHANGES BETWEEN 2.6.4 and 2.6.5
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6.3 and 2.6.4
|
||||
CHANGES BETWEEN 2.6.3 and 2.6.4 (2016-Jul-05)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -567,7 +1160,7 @@ CHANGES BETWEEN 2.6.3 and 2.6.4
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6.2 and 2.6.3
|
||||
CHANGES BETWEEN 2.6.2 and 2.6.3 (2016-Feb-08)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -616,7 +1209,7 @@ CHANGES BETWEEN 2.6.2 and 2.6.3
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6.1 and 2.6.2
|
||||
CHANGES BETWEEN 2.6.1 and 2.6.2 (2015-Nov-28)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -667,8 +1260,8 @@ CHANGES BETWEEN 2.6.1 and 2.6.2
|
|||
- The `ftstring' demo program now supports subpixel rendering; use
|
||||
key `l' to cycle through the LCD modes.
|
||||
|
||||
- The `ftstring' demo program now supports colour rendering; use
|
||||
the `space' key to cycle through various colour combinations.
|
||||
- The `ftstring' demo program now supports color rendering; use
|
||||
the `space' key to cycle through various color combinations.
|
||||
|
||||
- The graphical demo programs now use a default gamma value of 1.8
|
||||
(instead of 1.2).
|
||||
|
|
@ -676,7 +1269,7 @@ CHANGES BETWEEN 2.6.1 and 2.6.2
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.6 and 2.6.1
|
||||
CHANGES BETWEEN 2.6 and 2.6.1 (2015-Oct-04)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -757,7 +1350,7 @@ CHANGES BETWEEN 2.6 and 2.6.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5.5 and 2.6
|
||||
CHANGES BETWEEN 2.5.5 and 2.6 (2015-Jun-07)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -863,7 +1456,7 @@ CHANGES BETWEEN 2.5.5 and 2.6
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5.4 and 2.5.5
|
||||
CHANGES BETWEEN 2.5.4 and 2.5.5 (2014-Dec-30)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -873,7 +1466,7 @@ CHANGES BETWEEN 2.5.4 and 2.5.5
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5.3 and 2.5.4
|
||||
CHANGES BETWEEN 2.5.3 and 2.5.4 (2014-Dec-06)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -944,7 +1537,7 @@ CHANGES BETWEEN 2.5.3 and 2.5.4
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5.2 and 2.5.3
|
||||
CHANGES BETWEEN 2.5.2 and 2.5.3 (2014-Mar-06)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1012,7 +1605,7 @@ CHANGES BETWEEN 2.5.2 and 2.5.3
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5.1 and 2.5.2
|
||||
CHANGES BETWEEN 2.5.1 and 2.5.2 (2013-Dec-08)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1036,7 +1629,7 @@ CHANGES BETWEEN 2.5.1 and 2.5.2
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.5 and 2.5.1
|
||||
CHANGES BETWEEN 2.5 and 2.5.1 (2013-Nov-25)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1140,7 +1733,7 @@ CHANGES BETWEEN 2.5 and 2.5.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.12 and 2.5
|
||||
CHANGES BETWEEN 2.4.12 and 2.5 (2013-Jun-19)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1220,7 +1813,7 @@ CHANGES BETWEEN 2.4.12 and 2.5
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.11 and 2.4.12
|
||||
CHANGES BETWEEN 2.4.11 and 2.4.12 (2013-May-08)
|
||||
|
||||
- We have another CFF parsing and hinting engine! Written by Dave
|
||||
Arnold <darnold@adobe.com>, this work has been contributed by
|
||||
|
|
@ -1308,7 +1901,7 @@ index ebcf189..3f2ce6b 100644
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.10 and 2.4.11
|
||||
CHANGES BETWEEN 2.4.10 and 2.4.11 (2012-Dec-20)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1325,7 +1918,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11
|
|||
|
||||
Originally, it was a separate patch available from
|
||||
|
||||
http://www.infinality.net/blog/
|
||||
https://web.archive.org/web/20150710073951/http://www.infinality.net:80/blog/
|
||||
|
||||
and which has been integrated.
|
||||
|
||||
|
|
@ -1368,7 +1961,7 @@ CHANGES BETWEEN 2.4.10 and 2.4.11
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.9 and 2.4.10
|
||||
CHANGES BETWEEN 2.4.9 and 2.4.10 (2012-Jun-15)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1393,7 +1986,7 @@ CHANGES BETWEEN 2.4.9 and 2.4.10
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.8 and 2.4.9
|
||||
CHANGES BETWEEN 2.4.8 and 2.4.9 (2012-Mar-08)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1421,7 +2014,7 @@ CHANGES BETWEEN 2.4.8 and 2.4.9
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.7 and 2.4.8
|
||||
CHANGES BETWEEN 2.4.7 and 2.4.8 (2011-Nov-14)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1437,7 +2030,7 @@ CHANGES BETWEEN 2.4.7 and 2.4.8
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.6 and 2.4.7
|
||||
CHANGES BETWEEN 2.4.6 and 2.4.7 (2011-Oct-18)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1454,7 +2047,7 @@ CHANGES BETWEEN 2.4.6 and 2.4.7
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.5 and 2.4.6
|
||||
CHANGES BETWEEN 2.4.5 and 2.4.6 (2011-Jul-29)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1493,7 +2086,7 @@ CHANGES BETWEEN 2.4.5 and 2.4.6
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.4 and 2.4.5
|
||||
CHANGES BETWEEN 2.4.4 and 2.4.5 (2011-Jun-25)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1540,7 +2133,7 @@ CHANGES BETWEEN 2.4.4 and 2.4.5
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.3 and 2.4.4
|
||||
CHANGES BETWEEN 2.4.3 and 2.4.4 (2010-Nov-28)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1565,7 +2158,7 @@ CHANGES BETWEEN 2.4.3 and 2.4.4
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.2 and 2.4.3
|
||||
CHANGES BETWEEN 2.4.2 and 2.4.3 (2010-Oct-03)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1584,7 +2177,7 @@ CHANGES BETWEEN 2.4.2 and 2.4.3
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.1 and 2.4.2
|
||||
CHANGES BETWEEN 2.4.1 and 2.4.2 (2010-Aug-06)
|
||||
|
||||
I. IMPORTANT BUG FIXES
|
||||
|
||||
|
|
@ -1608,7 +2201,7 @@ CHANGES BETWEEN 2.4.1 and 2.4.2
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.4.0 and 2.4.1
|
||||
CHANGES BETWEEN 2.4.0 and 2.4.1 (2010-Jul-18)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -1618,7 +2211,7 @@ CHANGES BETWEEN 2.4.0 and 2.4.1
|
|||
|
||||
======================================================================
|
||||
|
||||
CHANGES BETWEEN 2.3.12 and 2.4.0
|
||||
CHANGES BETWEEN 2.3.12 and 2.4.0 (2010-Jul-12)
|
||||
|
||||
I. IMPORTANT CHANGES
|
||||
|
||||
|
|
@ -4047,7 +4640,7 @@ CHANGES BETWEEN beta8 and 2.0
|
|||
untested for now.
|
||||
|
||||
- Updated `docs/docmaker.py', a draft API reference is available at
|
||||
http://www.freetype.org/ft2api.html.
|
||||
https://web.archive.org/web/20001215173400/http://www.freetype.org:80/ft2api.html.
|
||||
|
||||
- Changed `type1' to use `psaux'.
|
||||
|
||||
|
|
@ -5017,7 +5610,7 @@ Extensions support:
|
|||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2000-2018 by
|
||||
Copyright (C) 2000-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -139,7 +139,7 @@ IV. Overriding default configuration and module headers
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2003-2018 by
|
||||
Copyright (C) 2003-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -11,20 +11,20 @@ located in the file `ftoption.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 does
|
||||
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,
|
||||
FT_TRACE2, ..., FT_TRACE7.
|
||||
#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
|
||||
FT2_DEBUG environment variable (more on this later).
|
||||
`FT2_DEBUG' environment variable (more on this later).
|
||||
|
||||
FT_DEBUG_MEMORY
|
||||
|
||||
|
|
@ -32,18 +32,33 @@ located in the file `ftoption.h'. The macros are:
|
|||
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' dumps memory statistics,
|
||||
including the list of leaked memory blocks and optionally 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
|
||||
When `FT2_DEBUG_MEMORY' isn't defined at runtime, the debugging
|
||||
memory manager is ignored, and performance is unaffected.
|
||||
|
||||
FT_DEBUG_LOGGING
|
||||
|
||||
#define this macro for enhanced logging support; it automatically
|
||||
sets `FT_DEBUG_LEVEL_TRACE' and `FT_DEBUG_LEVEL_ERROR'.
|
||||
|
||||
If defined, `FT_TRACE' and `FT_ERROR' can send tracing and
|
||||
debugging messages to a file. The location of the log file has to
|
||||
be set with the `FT_LOGGING_FILE' environment variable (more on
|
||||
this later).
|
||||
|
||||
The main enhancements are the possibility of logging the time and
|
||||
the name of the `FT_COMPONENT' macro together with the affected
|
||||
`FT_TRACE' or `FT_ERROR' calls. See below how to activate this in
|
||||
the `FT2_DEBUG' environment variable.
|
||||
|
||||
|
||||
II. Debugging macros
|
||||
--------------------
|
||||
|
|
@ -55,10 +70,10 @@ 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
|
||||
serious errors (like broken font files) without stopping 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'.
|
||||
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
|
||||
parentheses, like in
|
||||
|
|
@ -69,54 +84,53 @@ debugging 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
|
||||
condition isn't TRUE, the program aborts 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. Example:
|
||||
|
||||
FT_ASSERT( ptr != NULL );
|
||||
|
||||
|
||||
3. FT_TRACE( level, (message...) )
|
||||
|
||||
The FT_TRACE macro is used to send general-purpose debugging
|
||||
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
|
||||
macro named `FT_COMPONENT', which names the current FreeType
|
||||
component being run.
|
||||
|
||||
The developer should always define FT_COMPONENT as appropriate,
|
||||
The developer should always define `FT_COMPONENT' as appropriate,
|
||||
for example as in
|
||||
|
||||
#undef FT_COMPONENT
|
||||
#define FT_COMPONENT trace_io
|
||||
#define FT_COMPONENT 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 `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 one of the component
|
||||
names defined in the internal file `internal/fttrace.h'. If you
|
||||
modify the FreeType source code and insert a new `FT_COMPONENT'
|
||||
macro, you must register it in `fttrace.h'. If you insert or
|
||||
remove many trace macros, you can test for undefined or unused
|
||||
trace macros with the script `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
|
||||
(described below) when a program linked with FreeType starts.
|
||||
Each such component is assigned a `debug level', ranging from
|
||||
value 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
|
||||
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.
|
||||
the corresponding component level are filtered out 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, etc.
|
||||
|
||||
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
|
||||
correspond to a printf-like call, as in
|
||||
The second parameter to `FT_TRACE' must contain parentheses and
|
||||
corresponds 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
|
||||
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" ));
|
||||
|
|
@ -132,66 +146,158 @@ 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
|
||||
`FT_DEBUG_LEVEL_TRACE' defined. It contains a list of component
|
||||
level definitions, following this format:
|
||||
|
||||
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
|
||||
corresponding level to use at runtime.
|
||||
in `fttrace.h'. `levelX' is the corresponding level to use at
|
||||
runtime.
|
||||
|
||||
`any' is a special component name that will be interpreted as
|
||||
`any/all components'. For example, the following definitions
|
||||
`any' is a special component name that is 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)
|
||||
|
||||
both stipulate that all components should have level 2, except for
|
||||
the memory and io components which will be set to trace levels 5
|
||||
the memory and io components, which are set to the trace levels 5
|
||||
and 4, respectively.
|
||||
|
||||
If `FT_DEBUG_LOGGING' is defined, two more options are available.
|
||||
|
||||
* -v: Print also the name of FreeType's component from which the
|
||||
current log is produced, together with the tracing level.
|
||||
|
||||
* -t: Print also the time.
|
||||
|
||||
Here are some examples how the output might look like.
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -vt"
|
||||
|
||||
=> [20:32:02:44969 ttload:2] table directory loaded
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -t"
|
||||
|
||||
=> [20:32:02:44969] table directory loaded
|
||||
|
||||
FT2_DEBUG="any:7 memory:5 -v"
|
||||
|
||||
=> [ttload:2] table directory loaded
|
||||
|
||||
|
||||
FT_LOGGING_FILE
|
||||
|
||||
This variable is only used if FreeType is built with the
|
||||
`FT_DEBUG_LOGGING' macro defined. It contains the path to the
|
||||
file where the user wants to put his log file. If it is not set,
|
||||
FreeType uses stderr.
|
||||
|
||||
Examples:
|
||||
|
||||
On UNIX-like systems with bash:
|
||||
export FT_LOGGING_FILE="/tmp/freetype2.log"
|
||||
|
||||
On Windows:
|
||||
set FT_LOGGING_FILE=C:\Users\AppData\Local\Temp\freetype2.log
|
||||
|
||||
|
||||
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
|
||||
debugging memory manager that tracks 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
|
||||
`FT_DEBUG_MEMORY' macro #defined in `ftoption.h' though, it is
|
||||
ignored in other builds.
|
||||
|
||||
|
||||
FT2_ALLOC_TOTAL_MAX
|
||||
|
||||
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
||||
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
|
||||
no allocation bounds are checked at runtime.
|
||||
If it is undefined, or if its value is not strictly positive, no
|
||||
allocation bounds are checked at runtime.
|
||||
|
||||
|
||||
FT2_ALLOC_COUNT_MAX
|
||||
|
||||
This variable is ignored if FT2_DEBUG_MEMORY is not defined. It
|
||||
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
|
||||
`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
|
||||
no allocation bounds are checked at runtime.
|
||||
If it is undefined, or if its value is not strictly positive, no
|
||||
allocation bounds are checked at runtime.
|
||||
|
||||
|
||||
FT2_KEEP_ALIVE
|
||||
|
||||
This variable is ignored if `FT2_DEBUG_MEMORY' is not defined.
|
||||
`Keep alive' means that freed blocks aren't released to the heap.
|
||||
This is useful to detect double-frees or weird heap corruption,
|
||||
reporting the source code location of the original allocation and
|
||||
deallocation in case of a problem. It uses large amounts of
|
||||
memory, however.
|
||||
|
||||
If it is undefined, or if its value is not strictly positive,
|
||||
freed blocks are released at runtime.
|
||||
|
||||
|
||||
IV. Additional Capabilities with `FT_DEBUG_LOGGING'
|
||||
---------------------------------------------------
|
||||
|
||||
If `FT_DEBUG_LOGGING' is defined, four APIs are available to provide
|
||||
additional debugging support. Use
|
||||
|
||||
#include <freetype/ftlogging.h>
|
||||
|
||||
to access them.
|
||||
|
||||
FT_Trace_Set_Level( const char* level )
|
||||
|
||||
By default, FreeType uses the tracing levels set in the
|
||||
`FT2_DEBUG' environment variable. Use this function to override
|
||||
the value with `level'. Use value `NULL' to disable tracing.
|
||||
|
||||
FT_Trace_Set_Default_Level():
|
||||
|
||||
Reset the tracing levels to the default value, i.e., the value of
|
||||
the `FT2_DEBUG' environment variable or no tracing if not set.
|
||||
|
||||
FT_Set_Log_Handler( ft_custom_log_handler handler ):
|
||||
|
||||
Use `handler' as a custom handler for formatting tracing and error
|
||||
messages. The `ft_custom_log_handler' typedef has the following
|
||||
prototype.
|
||||
|
||||
void
|
||||
(*ft_custom_log_handler)( const char* ft_component,
|
||||
const char* fmt,
|
||||
va_list args );
|
||||
|
||||
`ft_component' is the current component like `ttload', `fmt' is the
|
||||
first argument of `FT_TRACE' or `FT_ERROR', and `args' holds the
|
||||
remaining arguments.
|
||||
|
||||
FT_Set_Default_Log_Handler():
|
||||
|
||||
Reset the log handler to the default version.
|
||||
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2002-2018 by
|
||||
Copyright (C) 2002-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
298
modules/freetype2/docs/DOCGUIDE
Normal file
298
modules/freetype2/docs/DOCGUIDE
Normal file
|
|
@ -0,0 +1,298 @@
|
|||
Introduction
|
||||
------------
|
||||
|
||||
Documentation is an extremely important part of any project, and it
|
||||
helps a lot if it uses consistent syntax and layout.
|
||||
|
||||
The documentation for the FreeType library is maintained in header
|
||||
files in the `include/` directory in the form of code comments. These
|
||||
comments are extracted and organized by 'docwriter' (previously
|
||||
'docmaker'). The generated docs can be viewed in the
|
||||
`docs/reference/site/` directory after running `make refdoc`.
|
||||
|
||||
Documentation comments follow a specific structure and format as
|
||||
described below.
|
||||
|
||||
|
||||
Documentation Structure
|
||||
-----------------------
|
||||
|
||||
The documentation is divided into multiple chapters, which contain
|
||||
sections relevant to it. The chapter details and sections contained
|
||||
in them are listed in `include/freetype/ftchapters.h`. Any unlisted
|
||||
section is added to the 'Miscellaneous' chapter.
|
||||
|
||||
Sections may contain sub-sections which consist of properties,
|
||||
enumerations, and other data types.
|
||||
|
||||
|
||||
Comment Blocks
|
||||
--------------
|
||||
|
||||
Documentation blocks follow a specific format:
|
||||
|
||||
/***************************** (should end on column 77)
|
||||
*
|
||||
* (1 asterisk, 1 space, then content)
|
||||
*
|
||||
*/ (end of block)
|
||||
|
||||
To make 'docwriter' recognize a comment block, there must be at least
|
||||
two asterisks in the first line. As a consequence, you should change
|
||||
the second asterisk to something else if you want to prevent a comment
|
||||
block being handled by 'docwriter' (for example, change `/****/` to
|
||||
`/*#**/`).
|
||||
|
||||
|
||||
Markup Tags
|
||||
-----------
|
||||
|
||||
Markup tags are used to indicate what comes next. The syntax for a
|
||||
tag is:
|
||||
|
||||
@foo:
|
||||
|
||||
An `@`, followed by the tag, and then `:`.
|
||||
|
||||
|
||||
Reserved Tags
|
||||
-------------
|
||||
|
||||
There are some keywords that have a special meaning to docwriter.
|
||||
As a convention, all keywords are written in lowercase.
|
||||
|
||||
* `chapter`: Defines a chapter. Usually the title with underscores.
|
||||
* `sections`: List of sections in the chapter, in order.
|
||||
* `section`: Defines the start or continuation of a section.
|
||||
* `title`: Title for a chapter or section. May contain spaces.
|
||||
* `abstract`: The abstract for a section, visible in the Table of
|
||||
Contents (TOC).
|
||||
* `description`: Detailed description of a tag (except chapters),
|
||||
shown as synopsis.
|
||||
* `values`: A list of 'values' for the tag. These values are used for
|
||||
cross-referencing.
|
||||
|
||||
|
||||
Other Tags
|
||||
----------
|
||||
|
||||
Except the ones given above, any other tags will be added as a part of
|
||||
a subsection. All tags are lowercase by convention.
|
||||
|
||||
|
||||
Public Header Definitions
|
||||
-------------------------
|
||||
|
||||
The public headers for FreeType have their names defined in
|
||||
`include/freetype/config/ftheader.h`. Any new public header file must
|
||||
be defined in this file, in the following format:
|
||||
|
||||
#define FT_NEWNAME_H <freetype/newname.h>
|
||||
|
||||
Where `newname` is the name of the header file.
|
||||
|
||||
This macro is combined with the file location of a sub-section and
|
||||
printed with the object.
|
||||
|
||||
|
||||
Note on code blocks captured after comments
|
||||
-------------------------------------------
|
||||
|
||||
All non-documentation lines after a documentation comment block are
|
||||
captured to be displayed as the code for the sub-section. To stop
|
||||
collection, a line with `/* */` should be added.
|
||||
|
||||
|
||||
General Formatting Conventions
|
||||
------------------------------
|
||||
|
||||
* Use two spaces after a full stop ending a sentence.
|
||||
* Use appropriate uppercasing in titles. Refer
|
||||
|
||||
https://english.stackexchange.com/a/34
|
||||
|
||||
for more information.
|
||||
* Do not add trailing parentheses when citing a C function.
|
||||
|
||||
|
||||
Markdown Usage
|
||||
--------------
|
||||
|
||||
All tags, except the ones that define the name and title for a block
|
||||
support markdown in them. Docwriter uses a markdown parser that
|
||||
follows rules given in John Gruber's markdown guide:
|
||||
|
||||
https://daringfireball.net/projects/markdown/syntax
|
||||
|
||||
with a few exceptions and extensions, detailed below. This may also
|
||||
be referred to as the **FreeType Flavored Markdown**.
|
||||
|
||||
|
||||
Headers
|
||||
-------
|
||||
|
||||
Markdown headers should not be used directly, because these are added
|
||||
based on section titles, sub-section names, and tags. However, if a
|
||||
header needs to be added, note the following correspondence to HTML tags:
|
||||
|
||||
* Section title on top of the page is `H1`.
|
||||
* Sub-section titles are `H2`.
|
||||
* Parts of sub-sections are `H4`.
|
||||
* Any header added will be visible in the Table of Contents (TOC) of
|
||||
the page.
|
||||
|
||||
|
||||
Emphasis
|
||||
--------
|
||||
|
||||
* Use `_underscores_` for italics.
|
||||
* Use `**double asterisks**` for bold.
|
||||
|
||||
Although the other notations (double underscore for bold, single
|
||||
asterisk for italics) are supported, it is recommended to use the
|
||||
above for consistency.
|
||||
|
||||
Note that there may be cases where having two asterisks or underscores
|
||||
in a line may lead to text being picked up as italics or bold.
|
||||
Although unintentional, this is correct markdown behavior.
|
||||
|
||||
For inline code, wrap the sequence with backticks (see below). This
|
||||
renders symbols correctly without modifications. If a symbol is
|
||||
absolutely required outside of an inline code block or code sequence,
|
||||
escape it with a backslash (like `\*` or `\_`).
|
||||
|
||||
|
||||
Lists
|
||||
-----
|
||||
|
||||
Unordered lists can be created with asterisks:
|
||||
|
||||
* Unordered list items can use asterisks.
|
||||
* Another list item.
|
||||
|
||||
Ordered lists start with numbers:
|
||||
|
||||
1. This is an ordered list item.
|
||||
2. Brackets after numbers won't work.
|
||||
|
||||
To continue a list over multiple paragraphs, indent them with at least
|
||||
four spaces. For example:
|
||||
|
||||
1. Lorem ipsum dolor sit amet, consectetuer adipiscing elit.
|
||||
Aliquam hendrerit mi posuere lectus. Vestibulum enim wisi,
|
||||
viverra nec, fringilla in, laoreet vitae, risus.
|
||||
|
||||
Donec sit amet nisl. Aliquam semper ipsum sit amet velit.
|
||||
Suspendisse id sem consectetuer libero luctus adipiscing.
|
||||
|
||||
2. This is the second list item.
|
||||
|
||||
This paragraph is not a part of the list.
|
||||
|
||||
More information on lists in markdown is available at
|
||||
|
||||
https://daringfireball.net/projects/markdown/syntax#list
|
||||
|
||||
|
||||
Cross-references
|
||||
----------------
|
||||
|
||||
Other sub-sections can be linked with the `@` symbol:
|
||||
|
||||
@description:
|
||||
While FreeType's CFF driver doesn't expose API functions by
|
||||
itself, it is possible to control its behaviour with
|
||||
@FT_Property_Set and @FT_Property_Get.
|
||||
|
||||
If a field in the `values` table of another sub-section is linked, the
|
||||
link leads to its parent sub-section.
|
||||
|
||||
|
||||
Links and Images
|
||||
----------------
|
||||
|
||||
All URLs are converted to links in the HTML documentation.
|
||||
|
||||
Markdown syntax for links and images are fully supported.
|
||||
|
||||
|
||||
Inline Code
|
||||
-----------
|
||||
|
||||
To indicate a span of code, wrap it with backtick quotes (`` ` ``):
|
||||
|
||||
Use the `printf()` function.
|
||||
|
||||
Cross-references, markdown, and html styling do not work in inline code
|
||||
sequences.
|
||||
|
||||
|
||||
Code and Syntax Highlighting
|
||||
----------------------------
|
||||
|
||||
Blocks of code are fenced by lines with three back-ticks `` ``` ``
|
||||
followed by the language name, if any (used for syntax highlighting),
|
||||
as demonstrated in the following example.
|
||||
|
||||
```c
|
||||
x = y + z;
|
||||
if ( zookoo == 2 )
|
||||
{
|
||||
foobar();
|
||||
}
|
||||
```
|
||||
|
||||
Note that the indentation of the opening line and the closing line
|
||||
must be exactly the same. The code sequence itself should have a
|
||||
larger indentation than the surrounding back-ticks.
|
||||
|
||||
Like inline code, markdown and html styling is *not* supported inside
|
||||
code blocks.
|
||||
|
||||
|
||||
Tables
|
||||
------
|
||||
|
||||
Tables are used to list values, input, and other fields. The FreeType
|
||||
Flavored Markdown adopts a simple approach to tables with two columns,
|
||||
or field definition tables.
|
||||
|
||||
Field definition names may contain alphanumeric, underscore, and the
|
||||
`.` characters. This is followed by `::`. The following lines are
|
||||
the second column of the table. A field definition ends with the
|
||||
start of another field definition, or a markup tag.
|
||||
|
||||
@Input:
|
||||
pathname ::
|
||||
A path to the font file.
|
||||
|
||||
face_index ::
|
||||
See @FT_Open_Face for a detailed description of this
|
||||
parameter.
|
||||
|
||||
|
||||
Non-breaking Space
|
||||
------------------
|
||||
|
||||
A tilde can be used to create a non-breaking space. The example
|
||||
|
||||
The encoding value~0 is reserved.
|
||||
|
||||
is converted to
|
||||
|
||||
The encoding value 0 is reserved.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright (C) 2018-2023 by
|
||||
Nikhil Ramakrishnan, 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 DOCGUIDE ---
|
||||
|
|
@ -4,65 +4,89 @@ your system and the level of customization you need. Here is a short
|
|||
overview of the documentation available:
|
||||
|
||||
|
||||
I. Normal installation and upgrades
|
||||
===================================
|
||||
I. Prerequisites and dependencies
|
||||
=================================
|
||||
|
||||
1. Unix Systems (including Mac OS X, Cygwin, and MSys on Windows)
|
||||
FreeType is a low level C library that only depends on the standard
|
||||
C library with very few platform-dependent optimizations utilized at
|
||||
build time. Any C99-compliant compiler should be able to compile
|
||||
FreeType. System libraries, such as zlib, Gzip, bzip2, Brotli,
|
||||
and libpng, might be used to handle compressed fonts or decode
|
||||
embedded PNG glyphs.
|
||||
|
||||
Please read `INSTALL.UNIX' to install or upgrade FreeType 2 on a
|
||||
FreeType auto-configuration scripts should be able to detect the
|
||||
prerequisites if the necessary headers are available at the default
|
||||
locations. Otherwise, modify `include/freetype/config/ftoption.h`
|
||||
to control how the FreeType library gets built. Normally, you don't
|
||||
need to change anything.
|
||||
|
||||
Applications have very limited control over FreeType's behaviour at
|
||||
run-time; look at the documentation of function `FT_Property_Set`.
|
||||
|
||||
|
||||
II. Normal installation and upgrades
|
||||
====================================
|
||||
|
||||
1. Unix and Unix-like systems
|
||||
|
||||
This also includes MacOS, Cygwin, MinGW + MSYS, Mingw-w64 + MSYS2,
|
||||
and possibly other, similar environments.
|
||||
|
||||
Please read `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.81 OR NEWER IS NEEDED!
|
||||
|
||||
[For `cmake' see below.]
|
||||
|
||||
2. Other systems using GNU Make
|
||||
|
||||
On some non-Unix platforms, it is possible to build the library
|
||||
using only the GNU Make utility. Note that *NO OTHER MAKE TOOL
|
||||
WILL WORK*[1]! This methods supports several compilers on
|
||||
Windows, OS/2, and BeOS, including MinGW* (without MSYS*), Visual
|
||||
C++, Borland C++, and more.
|
||||
|
||||
Instructions are provided in the file `INSTALL.GNU`.
|
||||
|
||||
|
||||
2. On VMS with the `mms' build tool
|
||||
3. Other build tools and platforms.
|
||||
|
||||
See `INSTALL.VMS' for installation instructions on this platform.
|
||||
A few other tools can be used to build FreeType. You can find
|
||||
the corresponding instruction files in the FreeType root folder
|
||||
or the builds/ sub-folder.
|
||||
|
||||
|
||||
3. 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*[1]!
|
||||
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'.
|
||||
CMake :: see `CMakeLists.txt` for more information
|
||||
Meson :: see `meson.build` for more information
|
||||
MSBuild :: see `builds/windows/vc2010/freetype.vcxproj`
|
||||
MMS :: see `vms_make.com` and `docs/INSTALL.VMS`
|
||||
|
||||
|
||||
4. With an IDE Project File (e.g., for Visual Studio or CodeWarrior)
|
||||
|
||||
We provide a small number of `project files' for various IDEs to
|
||||
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.
|
||||
are not actively supported by FreeType developers, they can break
|
||||
or become obsolete.
|
||||
|
||||
To find them, have a look at the content of the `builds/<system>'
|
||||
To find them, have a look at the content of the `builds/<system>`
|
||||
directory, where <system> stands for your OS or environment.
|
||||
|
||||
|
||||
5. Using cmake
|
||||
|
||||
See the top-level `CMakeLists.txt' file for more information.
|
||||
|
||||
|
||||
6. From you own IDE, or own Makefiles
|
||||
5. 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
|
||||
instructions given in the `INSTALL.ANY` document of this
|
||||
directory.
|
||||
|
||||
|
||||
II. Custom builds of the library
|
||||
================================
|
||||
III. 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'.
|
||||
For more details read the file `CUSTOMIZE`.
|
||||
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
|
@ -70,14 +94,14 @@ II. Custom builds of the library
|
|||
[1] make++, a make tool written in Perl, has sufficient support of GNU
|
||||
make extensions to build FreeType. See
|
||||
|
||||
http://makepp.sourceforge.net
|
||||
https://makepp.sourceforge.net
|
||||
|
||||
for more information; you need version 2.0 or newer, and you must
|
||||
pass option `--norc-substitution'.
|
||||
pass option `--norc-substitution`.
|
||||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2000-2018 by
|
||||
Copyright (C) 2000-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -8,20 +8,22 @@ specific environments.
|
|||
I. Standard procedure
|
||||
---------------------
|
||||
|
||||
* DISABLE PRE-COMPILED HEADERS! This is very important for Visual
|
||||
C++, because FreeType uses lines like:
|
||||
* If you use macro names for FreeType header files (while mandatory
|
||||
in earlier versions, this is now optional since FreeType version
|
||||
2.6.1) it is necessary to disable pre-compiled headers. This is
|
||||
very important for Visual C++, because lines like
|
||||
|
||||
#include FT_FREETYPE_H
|
||||
|
||||
which are not correctly supported by this compiler while being ISO
|
||||
C compliant!
|
||||
are not correctly supported by this compiler while being ISO C
|
||||
compliant!
|
||||
|
||||
* You need to add the directory `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.
|
||||
* FreeType 2 is made of several components; each of them is located
|
||||
in a subdirectory of `freetype/src'. For example,
|
||||
`freetype/src/truetype/' contains the TrueType font driver.
|
||||
|
||||
* DO NOT COMPILE ALL C FILES! Rather, compile the following ones.
|
||||
|
||||
|
|
@ -71,6 +73,7 @@ I. Standard procedure
|
|||
formats)
|
||||
|
||||
src/raster/raster.c -- monochrome rasterizer
|
||||
src/sdf/sdf.c -- Signed Distance Field driver
|
||||
src/smooth/smooth.c -- anti-aliasing rasterizer
|
||||
|
||||
-- auxiliary modules (optional)
|
||||
|
|
@ -123,9 +126,9 @@ II. Support for flat-directory compilation
|
|||
|
||||
1. Copy all files in current directory
|
||||
|
||||
cp freetype2/src/base/*.[hc] .
|
||||
cp freetype2/src/raster1/*.[hc] .
|
||||
cp freetype2/src/smooth/*.[hc] .
|
||||
cp freetype/src/base/*.[hc] .
|
||||
cp freetype/src/raster1/*.[hc] .
|
||||
cp freetype/src/smooth/*.[hc] .
|
||||
etc.
|
||||
|
||||
2. Compile sources
|
||||
|
|
@ -141,7 +144,7 @@ II. Support for flat-directory compilation
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2003-2018 by
|
||||
Copyright (C) 2003-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -163,7 +163,7 @@ procedure.
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2006-2018 by
|
||||
Copyright (C) 2006-2023 by
|
||||
suzuki toshiya, David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,9 +11,6 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
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.
|
||||
|
||||
|
|
@ -23,7 +20,7 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
Note that make++, a make tool written in Perl, supports enough
|
||||
features of GNU make to compile FreeType. See
|
||||
|
||||
http://makepp.sourceforge.net
|
||||
https://makepp.sourceforge.net
|
||||
|
||||
for more information; you need version 2.0 or newer, and you must
|
||||
pass option `--norc-substitution'.
|
||||
|
|
@ -63,7 +60,7 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
|
||||
Otherwise, simply type 'make' again to build the library
|
||||
or 'make refdoc' to build the API reference (the latter needs
|
||||
python).
|
||||
Python >= 3.5).
|
||||
=============================================================
|
||||
|
||||
|
||||
|
|
@ -100,6 +97,28 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
step 5.
|
||||
|
||||
|
||||
3a. Use clang instead of gcc
|
||||
----------------------------
|
||||
|
||||
The `clang' compiler can use FreeType's setup for `gcc'; it is
|
||||
sufficient to set the `CC' variable, for example
|
||||
|
||||
make CC=clang
|
||||
|
||||
|
||||
3b. Compiling with a C++ compiler
|
||||
---------------------------------
|
||||
|
||||
FreeType can be built with a C++ compiler, for example
|
||||
|
||||
make CC="g++"
|
||||
|
||||
If `clang++' should be used it is necessary to also override the
|
||||
`ANSIFLAGS' variable:
|
||||
|
||||
make CC="clang++" ANSIFLAGS=""
|
||||
|
||||
|
||||
4. Configure the build system for an unknown platform/compiler
|
||||
--------------------------------------------------------------
|
||||
|
||||
|
|
@ -133,7 +152,8 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
|
||||
To launch the build, simply invoke GNU Make again: The top
|
||||
Makefile will detect the configuration file and run the build with
|
||||
it.
|
||||
it. If you have used variables in step 3, you must use the same
|
||||
variables here, too.
|
||||
|
||||
|
||||
Final note
|
||||
|
|
@ -148,7 +168,7 @@ instructions in the file `INSTALL.UNIX' instead.
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2003-2018 by
|
||||
Copyright (C) 2003-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -44,14 +44,23 @@ or MSys on Win32:
|
|||
|
||||
sh autogen.sh
|
||||
|
||||
In case of problems, you may need to install or upgrade Automake,
|
||||
Autoconf or Libtool. See README.git in the top-level directory
|
||||
In case of problems, you may need to install or upgrade Automake,
|
||||
Autoconf or Libtool. See `README.git' in the top-level directory
|
||||
for more information.
|
||||
|
||||
|
||||
3. Build and install the library
|
||||
--------------------------------
|
||||
|
||||
Say
|
||||
|
||||
./configure --help
|
||||
|
||||
to see the list of possible configuration options and important
|
||||
environment variables. The ./configure script will detect some
|
||||
prerequisite system libraries (libpng, brotli, etc.) if their
|
||||
headers are available at the default locations.
|
||||
|
||||
The following should work on all Unix systems where the `make'
|
||||
command invokes GNU Make:
|
||||
|
||||
|
|
@ -75,6 +84,18 @@ or MSys on Win32:
|
|||
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).
|
||||
|
||||
For library identification, FreeType's `configure' script uses the
|
||||
`pkg-config' interface: Assuming it needs library `foo', it calls
|
||||
the `pkg-config' program to find information on library `foo',
|
||||
which in turn looks for a `foo.pc' file installed at the system.
|
||||
Some platforms, however, don't come with `pkg-support'; you then
|
||||
have to use environment variables as described by `configure
|
||||
--help'. Example:
|
||||
|
||||
LIBPNG_CFLAGS="-I/path/to/libpng/include/directory" \
|
||||
LIBPNG_LIBS="-L/path/to/libpng/lib/directory" \
|
||||
configure ...
|
||||
|
||||
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:
|
||||
|
|
@ -105,7 +126,7 @@ or MSys on Win32:
|
|||
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2003-2018 by
|
||||
Copyright (C) 2003-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ V7.2-1.
|
|||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2000-2018 by
|
||||
Copyright (C) 2000-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -1,39 +0,0 @@
|
|||
|
||||
The FreeType 2 font engine is copyrighted work and cannot be used
|
||||
legally without a software license. In order to make this project
|
||||
usable to a vast majority of developers, we distribute it under two
|
||||
mutually exclusive open-source licenses.
|
||||
|
||||
This means that *you* must choose *one* of the two licenses described
|
||||
below, then obey all its terms and conditions when using FreeType 2 in
|
||||
any of your projects or products.
|
||||
|
||||
- The FreeType License, found in the file `FTL.TXT', which is similar
|
||||
to the original BSD license *with* an advertising clause that forces
|
||||
you to explicitly cite the FreeType project in your product's
|
||||
documentation. All details are in the license file. This license
|
||||
is suited to products which don't use the GNU General Public
|
||||
License.
|
||||
|
||||
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 GPLv2 due to its
|
||||
advertisement clause.
|
||||
|
||||
The contributed BDF and PCF drivers come with a license similar to that
|
||||
of the X Window System. It is compatible to the above two licenses (see
|
||||
file src/bdf/README and src/pcf/README). The same holds for the files
|
||||
`fthash.c' and `fthash.h'; their code was part of the BDF driver in
|
||||
earlier FreeType versions.
|
||||
|
||||
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 ---
|
||||
|
|
@ -1,5 +1,5 @@
|
|||
As a special exception, FreeType can also be built with the 'makepp'
|
||||
build tool, available from http://makepp.sourceforge.net.
|
||||
build tool, available from https://makepp.sourceforge.net.
|
||||
|
||||
Note, however, that you will need at least version 2.0 and pass the
|
||||
option --norc-substitution to have it work correctly.
|
||||
|
|
|
|||
35
modules/freetype2/docs/README
Normal file
35
modules/freetype2/docs/README
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
After saying `make refdoc' or `make refdoc-venv' the `reference/' directory
|
||||
contains the FreeType API reference. You need Python >= 3.5 and pip to make
|
||||
this target.
|
||||
|
||||
There are two ways to generate the documentation:
|
||||
|
||||
1. Using `make refdoc':
|
||||
|
||||
- Ensure `python' and `pip' are available.
|
||||
- Install pip package `docwriter' with `pip install --user docwriter'.
|
||||
- Make target with `make refdoc'.
|
||||
- This target can be run offline once required packages are installed.
|
||||
|
||||
2. Using `make refdoc-venv' (requires internet access):
|
||||
|
||||
- Ensure `python', `pip' and Python package `virtualenv' are available.
|
||||
- Make target with `make refdoc-venv'.
|
||||
- This may or may not require internet access every time depending on
|
||||
pip and system caching.
|
||||
|
||||
This also works with Jam: Just type `jam refdoc' in the main directory.
|
||||
|
||||
Some troubleshooting tips:
|
||||
|
||||
* Regularly run `pip install --upgrade docwriter' to check for updates which
|
||||
may include bug fixes.
|
||||
|
||||
* `Docwriter' does not support Python 2. Ensure that Python >= 3.5 is
|
||||
installed and available as `python3'/`python'.
|
||||
|
||||
* Ensure that `docwriter' is installed in the same Python target that
|
||||
`make refdoc' uses (python3/python).
|
||||
|
||||
* If none of this works, send a mail to `freetype-devel@nongnu.org' or file
|
||||
an issue at `https://github.com/freetype/docwriter/issues'.
|
||||
|
|
@ -27,7 +27,7 @@ Other bugs have been registered at the savannah bugzilla of FreeType.
|
|||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2001-2018 by
|
||||
Copyright (C) 2001-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -1,36 +1,44 @@
|
|||
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
|
||||
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
|
||||
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*
|
||||
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.3.1 or 2.4.10.
|
||||
* The official FreeType 2 release number, like 2.7.0 or 2.10.2.
|
||||
|
||||
* The libtool (and Unix) specific version number, like 13.0.7. This
|
||||
is what `freetype-config --version' returns.
|
||||
* The libtool (and Unix) specific version number, like 23.2.17.
|
||||
This is what
|
||||
|
||||
* The platform-specific shared object number, used for example when
|
||||
the library is installed as `/usr/lib/libfreetype.so.6.7.1'.
|
||||
pkg-config freetype2 --modversion
|
||||
|
||||
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
|
||||
or
|
||||
|
||||
freetype-config --version
|
||||
|
||||
returns.
|
||||
|
||||
* The platform-specific shared object number, used for example when
|
||||
the library is installed as `/usr/lib/libfreetype.so.6.17.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
|
||||
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:
|
||||
The release number is available at *compile* time through the
|
||||
following macros defined in `freetype.h':
|
||||
|
||||
- FREETYPE_MAJOR: major release number
|
||||
- FREETYPE_MINOR: minor release number
|
||||
|
|
@ -38,20 +46,30 @@ macros defined in FT_FREETYPE_H:
|
|||
|
||||
See below for a small autoconf fragment.
|
||||
|
||||
The release number is also available at *runtime* through the
|
||||
The release number is also available at *runtime* through the
|
||||
`FT_Library_Version' API.
|
||||
|
||||
|
||||
2. History
|
||||
----------
|
||||
|
||||
The following table gives, for all releases since 2.4.0, the
|
||||
corresponding libtool number, as well as the shared object number found
|
||||
on _most_ systems, but not all of them:
|
||||
The following table gives, for all releases since 2.5.0, the
|
||||
corresponding libtool number, as well as the shared object number
|
||||
found on _most_ systems, but not all of them:
|
||||
|
||||
|
||||
release libtool so
|
||||
-------------------------------
|
||||
2.13.0 25.0.19 6.19.0
|
||||
2.12.1 24.3.18 6.18.3
|
||||
2.12.0 24.2.18 6.18.2
|
||||
2.11.1 24.1.18 6.18.1
|
||||
2.11.0 24.0.18 6.18.0
|
||||
2.10.4 23.4.17 6.17.4
|
||||
2.10.3 23.3.17 6.17.3
|
||||
2.10.2 23.2.17 6.17.2
|
||||
2.10.1 23.1.17 6.17.1
|
||||
2.10.0 23.0.17 6.17.0
|
||||
2.9.1 22.1.16 6.16.1
|
||||
2.9.0 22.0.16 6.16.0
|
||||
2.8.1 21.0.15 6.15.0
|
||||
|
|
@ -70,58 +88,48 @@ on _most_ systems, but not all of them:
|
|||
2.5.2 17.1.11 6.11.1
|
||||
2.5.1 17.0.11 6.11.0
|
||||
2.5.0 16.2.10 6.10.2
|
||||
2.4.12 16.1.10 6.10.1
|
||||
2.4.11 16.0.10 6.10.0
|
||||
2.4.10 15.0.9 6.9.0
|
||||
2.4.9 14.1.8 6.8.1
|
||||
2.4.8 14.0.8 6.8.0
|
||||
2.4.7 13.2.7 6.7.2
|
||||
2.4.6 13.1.7 6.7.1
|
||||
2.4.5 13.0.7 6.7.0
|
||||
2.4.4 12.2.6 6.6.2
|
||||
2.4.3 12.1.6 6.6.1
|
||||
2.4.2 12.0.6 6.6.0
|
||||
2.4.1 11.1.5 6.5.1
|
||||
2.4.0 11.0.5 6.5.0
|
||||
|
||||
|
||||
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
|
||||
Lars Clausen contributed the following autoconf fragment to check
|
||||
which version of FreeType is installed on a system (now updated to use
|
||||
`pkg-config' instead of `freetype-config'). This one tests for a
|
||||
version that is at least 2.10.2; you should change it to check against
|
||||
other release numbers.
|
||||
|
||||
|
||||
AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
|
||||
AC_MSG_CHECKING([whether FreeType version is 2.10.2 or higher])
|
||||
old_CPPFLAGS="$CPPFLAGS"
|
||||
CPPFLAGS=`freetype-config --cflags`
|
||||
CPPFLAGS=`pkg-config freetype2 --cflags`
|
||||
AC_TRY_CPP([
|
||||
|
||||
#include <ft2build.h>
|
||||
#include FT_FREETYPE_H
|
||||
#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
|
||||
#error FreeType version too low.
|
||||
#include <freetype/freetype.h>
|
||||
|
||||
#if FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH < 21002
|
||||
# error FreeType version too low.
|
||||
#endif
|
||||
|
||||
],
|
||||
[AC_MSG_RESULT(yes)
|
||||
FREETYPE_LIBS=`freetype-config --libs`
|
||||
FREETYPE_LIBS=`pkg-config freetype2 --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])])
|
||||
[AC_MSG_ERROR([Need FreeType library version 2.10.2 or higher])])
|
||||
|
||||
------------------------------------------------------------------------
|
||||
----------------------------------------------------------------------
|
||||
|
||||
Copyright 2002-2018 by
|
||||
Copyright (C) 2002-2023 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.
|
||||
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 VERSIONS.TXT ---
|
||||
|
|
|
|||
|
|
@ -79,8 +79,7 @@ which isn't supported yet please send a mail too.
|
|||
|
||||
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]
|
||||
SFNT PS TYPE_1 CID cid 5180.sfnt.pdf (for the Mac) [3]
|
||||
SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
|
||||
(`OTTO' format)
|
||||
SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
|
||||
|
|
@ -97,6 +96,12 @@ which isn't supported yet please send a mail too.
|
|||
(`?var' + `?VAR' tables)
|
||||
|
||||
|
||||
WOFF --- --- --- cff, Compressed SFNT, ver. 1.0 [6]
|
||||
truetype
|
||||
WOFF2 --- --- --- cff, Compressed SFNT, ver. 2.0 [6]
|
||||
truetype
|
||||
|
||||
|
||||
--- PS TYPE_1 --- type1 T1_SPEC.pdf
|
||||
(PFA, Type 1 font resource)
|
||||
PFB PS TYPE_1 --- type1 T1_SPEC.pdf,
|
||||
|
|
@ -165,8 +170,8 @@ which isn't supported yet please send a mail too.
|
|||
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
|
||||
https://www.etsi.org/
|
||||
https://webapp.etsi.org/workprogram/Report_WorkItem.asp?WKI_ID=18799
|
||||
|
||||
[3] Support is rudimentary currently; some tables or data are not
|
||||
loaded yet.
|
||||
|
|
@ -185,13 +190,17 @@ which isn't supported yet please send a mail too.
|
|||
|
||||
https://fontforge.github.io/pcf-format.html
|
||||
|
||||
[5] This is from MS Windows 3; see Microsoft's Knowledge Base article at
|
||||
[5] This is from MS Windows 3; see Microsoft's Knowledge Base article
|
||||
at
|
||||
|
||||
https://support.microsoft.com/kb/65123
|
||||
|
||||
[6] Supported font formats are TrueType and OpenType fonts as
|
||||
defined in the OpenType specification 1.6 and newer.
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2004-2018 by
|
||||
Copyright (C) 2004-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
.TH FREETYPE-CONFIG 1 "May 2018" "FreeType 2.9.1"
|
||||
.TH FREETYPE-CONFIG 1 "February 2023" "FreeType 2.13.0"
|
||||
.
|
||||
.
|
||||
.SH NAME
|
||||
|
|
|
|||
2613
modules/freetype2/docs/oldlogs/ChangeLog.20
Normal file
2613
modules/freetype2/docs/oldlogs/ChangeLog.20
Normal file
File diff suppressed because it is too large
Load diff
9438
modules/freetype2/docs/oldlogs/ChangeLog.21
Normal file
9438
modules/freetype2/docs/oldlogs/ChangeLog.21
Normal file
File diff suppressed because it is too large
Load diff
7815
modules/freetype2/docs/oldlogs/ChangeLog.210
Normal file
7815
modules/freetype2/docs/oldlogs/ChangeLog.210
Normal file
File diff suppressed because it is too large
Load diff
2837
modules/freetype2/docs/oldlogs/ChangeLog.22
Normal file
2837
modules/freetype2/docs/oldlogs/ChangeLog.22
Normal file
File diff suppressed because it is too large
Load diff
7948
modules/freetype2/docs/oldlogs/ChangeLog.23
Normal file
7948
modules/freetype2/docs/oldlogs/ChangeLog.23
Normal file
File diff suppressed because it is too large
Load diff
6360
modules/freetype2/docs/oldlogs/ChangeLog.24
Normal file
6360
modules/freetype2/docs/oldlogs/ChangeLog.24
Normal file
File diff suppressed because it is too large
Load diff
5161
modules/freetype2/docs/oldlogs/ChangeLog.25
Normal file
5161
modules/freetype2/docs/oldlogs/ChangeLog.25
Normal file
File diff suppressed because it is too large
Load diff
5711
modules/freetype2/docs/oldlogs/ChangeLog.26
Normal file
5711
modules/freetype2/docs/oldlogs/ChangeLog.26
Normal file
File diff suppressed because it is too large
Load diff
2106
modules/freetype2/docs/oldlogs/ChangeLog.27
Normal file
2106
modules/freetype2/docs/oldlogs/ChangeLog.27
Normal file
File diff suppressed because it is too large
Load diff
3136
modules/freetype2/docs/oldlogs/ChangeLog.28
Normal file
3136
modules/freetype2/docs/oldlogs/ChangeLog.28
Normal file
File diff suppressed because it is too large
Load diff
2352
modules/freetype2/docs/oldlogs/ChangeLog.29
Normal file
2352
modules/freetype2/docs/oldlogs/ChangeLog.29
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -63,7 +63,7 @@ II. Rendering Technology
|
|||
`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).
|
||||
64 `units' (1 unit = 1/64 of a pixel).
|
||||
|
||||
Note that, for the rasterizer, pixel centers are located at
|
||||
integer coordinates. The TrueType bytecode interpreter,
|
||||
|
|
@ -618,7 +618,7 @@ II. Rendering Technology
|
|||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Copyright 2003-2018 by
|
||||
Copyright (C) 2003-2023 by
|
||||
David Turner, Robert Wilhelm, and Werner Lemberg.
|
||||
|
||||
This file is part of the FreeType project, and may only be used,
|
||||
|
|
|
|||
1130
modules/freetype2/docs/reference/404.html
Normal file
1130
modules/freetype2/docs/reference/404.html
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -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.
|
||||
|
||||
BIN
modules/freetype2/docs/reference/assets/images/favicon.png
Normal file
BIN
modules/freetype2/docs/reference/assets/images/favicon.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.8 KiB |
29
modules/freetype2/docs/reference/assets/javascripts/bundle.82b56eb2.min.js
vendored
Normal file
29
modules/freetype2/docs/reference/assets/javascripts/bundle.82b56eb2.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ar.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ar.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.da.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.da.min.js
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*!
|
||||
* Lunr languages, `Danish` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.da=function(){this.pipeline.reset(),this.pipeline.add(e.da.trimmer,e.da.stopWordFilter,e.da.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.da.stemmer))},e.da.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.da.trimmer=e.trimmerSupport.generateTrimmer(e.da.wordCharacters),e.Pipeline.registerFunction(e.da.trimmer,"trimmer-da"),e.da.stemmer=function(){var r=e.stemmerSupport.Among,i=e.stemmerSupport.SnowballProgram,n=new function(){function e(){var e,r=f.cursor+3;if(d=f.limit,0<=r&&r<=f.limit){for(a=r;;){if(e=f.cursor,f.in_grouping(w,97,248)){f.cursor=e;break}if(f.cursor=e,e>=f.limit)return;f.cursor++}for(;!f.out_grouping(w,97,248);){if(f.cursor>=f.limit)return;f.cursor++}d=f.cursor,d<a&&(d=a)}}function n(){var e,r;if(f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(c,32),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del();break;case 2:f.in_grouping_b(p,97,229)&&f.slice_del()}}function t(){var e,r=f.limit-f.cursor;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.find_among_b(l,4)?(f.bra=f.cursor,f.limit_backward=e,f.cursor=f.limit-r,f.cursor>f.limit_backward&&(f.cursor--,f.bra=f.cursor,f.slice_del())):f.limit_backward=e)}function s(){var e,r,i,n=f.limit-f.cursor;if(f.ket=f.cursor,f.eq_s_b(2,"st")&&(f.bra=f.cursor,f.eq_s_b(2,"ig")&&f.slice_del()),f.cursor=f.limit-n,f.cursor>=d&&(r=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,e=f.find_among_b(m,5),f.limit_backward=r,e))switch(f.bra=f.cursor,e){case 1:f.slice_del(),i=f.limit-f.cursor,t(),f.cursor=f.limit-i;break;case 2:f.slice_from("løs")}}function o(){var e;f.cursor>=d&&(e=f.limit_backward,f.limit_backward=d,f.ket=f.cursor,f.out_grouping_b(w,97,248)?(f.bra=f.cursor,u=f.slice_to(u),f.limit_backward=e,f.eq_v_b(u)&&f.slice_del()):f.limit_backward=e)}var a,d,u,c=[new r("hed",-1,1),new r("ethed",0,1),new r("ered",-1,1),new r("e",-1,1),new r("erede",3,1),new r("ende",3,1),new r("erende",5,1),new r("ene",3,1),new r("erne",3,1),new r("ere",3,1),new r("en",-1,1),new r("heden",10,1),new r("eren",10,1),new r("er",-1,1),new r("heder",13,1),new r("erer",13,1),new r("s",-1,2),new r("heds",16,1),new r("es",16,1),new r("endes",18,1),new r("erendes",19,1),new r("enes",18,1),new r("ernes",18,1),new r("eres",18,1),new r("ens",16,1),new r("hedens",24,1),new r("erens",24,1),new r("ers",16,1),new r("ets",16,1),new r("erets",28,1),new r("et",-1,1),new r("eret",30,1)],l=[new r("gd",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("elig",1,1),new r("els",-1,1),new r("løst",-1,2)],w=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],p=[239,254,42,3,0,0,0,0,0,0,0,0,0,0,0,0,16],f=new i;this.setCurrent=function(e){f.setCurrent(e)},this.getCurrent=function(){return f.getCurrent()},this.stem=function(){var r=f.cursor;return e(),f.limit_backward=r,f.cursor=f.limit,n(),f.cursor=f.limit,t(),f.cursor=f.limit,s(),f.cursor=f.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return n.setCurrent(e),n.stem(),n.getCurrent()}):(n.setCurrent(e),n.stem(),n.getCurrent())}}(),e.Pipeline.registerFunction(e.da.stemmer,"stemmer-da"),e.da.stopWordFilter=e.generateStopWordFilter("ad af alle alt anden at blev blive bliver da de dem den denne der deres det dette dig din disse dog du efter eller en end er et for fra ham han hans har havde have hende hendes her hos hun hvad hvis hvor i ikke ind jeg jer jo kunne man mange med meget men mig min mine mit mod ned noget nogle nu når og også om op os over på selv sig sin sine sit skal skulle som sådan thi til ud under var vi vil ville vor være været".split(" ")),e.Pipeline.registerFunction(e.da.stopWordFilter,"stopWordFilter-da")}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.de.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.de.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.du.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.du.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.es.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.es.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.fi.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.fi.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.fr.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.fr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.hi.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.hi.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.hi=function(){this.pipeline.reset(),this.pipeline.add(e.hi.trimmer,e.hi.stopWordFilter,e.hi.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.hi.stemmer))},e.hi.wordCharacters="ऀ-ःऄ-एऐ-टठ-यर-िी-ॏॐ-य़ॠ-९॰-ॿa-zA-Za-zA-Z0-90-9",e.hi.trimmer=e.trimmerSupport.generateTrimmer(e.hi.wordCharacters),e.Pipeline.registerFunction(e.hi.trimmer,"trimmer-hi"),e.hi.stopWordFilter=e.generateStopWordFilter("अत अपना अपनी अपने अभी अंदर आदि आप इत्यादि इन इनका इन्हीं इन्हें इन्हों इस इसका इसकी इसके इसमें इसी इसे उन उनका उनकी उनके उनको उन्हीं उन्हें उन्हों उस उसके उसी उसे एक एवं एस ऐसे और कई कर करता करते करना करने करें कहते कहा का काफ़ी कि कितना किन्हें किन्हों किया किर किस किसी किसे की कुछ कुल के को कोई कौन कौनसा गया घर जब जहाँ जा जितना जिन जिन्हें जिन्हों जिस जिसे जीधर जैसा जैसे जो तक तब तरह तिन तिन्हें तिन्हों तिस तिसे तो था थी थे दबारा दिया दुसरा दूसरे दो द्वारा न नके नहीं ना निहायत नीचे ने पर पहले पूरा पे फिर बनी बही बहुत बाद बाला बिलकुल भी भीतर मगर मानो मे में यदि यह यहाँ यही या यिह ये रखें रहा रहे ऱ्वासा लिए लिये लेकिन व वग़ैरह वर्ग वह वहाँ वहीं वाले वुह वे वो सकता सकते सबसे सभी साथ साबुत साभ सारा से सो संग ही हुआ हुई हुए है हैं हो होता होती होते होना होने".split(" ")),e.hi.stemmer=function(){return function(e){return"function"==typeof e.update?e.update(function(e){return e}):e}}();var r=e.wordcut;r.init(),e.hi.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(r){return isLunr2?new e.Token(r.toLowerCase()):r.toLowerCase()});var t=i.toString().toLowerCase().replace(/^\s+/,"");return r.cut(t).split("|")},e.Pipeline.registerFunction(e.hi.stemmer,"stemmer-hi"),e.Pipeline.registerFunction(e.hi.stopWordFilter,"stopWordFilter-hi")}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.hu.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.hu.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.it.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.it.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ja.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ja.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.ja=function(){this.pipeline.reset(),this.pipeline.add(e.ja.trimmer,e.ja.stopWordFilter,e.ja.stemmer),r?this.tokenizer=e.ja.tokenizer:(e.tokenizer&&(e.tokenizer=e.ja.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.ja.tokenizer))};var t=new e.TinySegmenter;e.ja.tokenizer=function(i){var n,o,s,p,a,u,m,l,c,f;if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t.toLowerCase()):t.toLowerCase()});for(o=i.toString().toLowerCase().replace(/^\s+/,""),n=o.length-1;n>=0;n--)if(/\S/.test(o.charAt(n))){o=o.substring(0,n+1);break}for(a=[],s=o.length,c=0,l=0;c<=s;c++)if(u=o.charAt(c),m=c-l,u.match(/\s/)||c==s){if(m>0)for(p=t.segment(o.slice(l,c)).filter(function(e){return!!e}),f=l,n=0;n<p.length;n++)r?a.push(new e.Token(p[n],{position:[f,p[n].length],index:a.length})):a.push(p[n]),f+=p[n].length;l=c+1}return a},e.ja.stemmer=function(){return function(e){return e}}(),e.Pipeline.registerFunction(e.ja.stemmer,"stemmer-ja"),e.ja.wordCharacters="一二三四五六七八九十百千万億兆一-龠々〆ヵヶぁ-んァ-ヴーア-ン゙a-zA-Za-zA-Z0-90-9",e.ja.trimmer=e.trimmerSupport.generateTrimmer(e.ja.wordCharacters),e.Pipeline.registerFunction(e.ja.trimmer,"trimmer-ja"),e.ja.stopWordFilter=e.generateStopWordFilter("これ それ あれ この その あの ここ そこ あそこ こちら どこ だれ なに なん 何 私 貴方 貴方方 我々 私達 あの人 あのかた 彼女 彼 です あります おります います は が の に を で え から まで より も どの と し それで しかし".split(" ")),e.Pipeline.registerFunction(e.ja.stopWordFilter,"stopWordFilter-ja"),e.jp=e.ja,e.Pipeline.registerFunction(e.jp.stemmer,"stemmer-jp"),e.Pipeline.registerFunction(e.jp.trimmer,"trimmer-jp"),e.Pipeline.registerFunction(e.jp.stopWordFilter,"stopWordFilter-jp")}});
|
||||
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.jp.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.jp.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
module.exports=require("./lunr.ja");
|
||||
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.multi.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.multi.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(e.lunr)}(this,function(){return function(e){e.multiLanguage=function(){for(var t=Array.prototype.slice.call(arguments),i=t.join("-"),r="",n=[],s=[],p=0;p<t.length;++p)"en"==t[p]?(r+="\\w",n.unshift(e.stopWordFilter),n.push(e.stemmer),s.push(e.stemmer)):(r+=e[t[p]].wordCharacters,e[t[p]].stopWordFilter&&n.unshift(e[t[p]].stopWordFilter),e[t[p]].stemmer&&(n.push(e[t[p]].stemmer),s.push(e[t[p]].stemmer)));var o=e.trimmerSupport.generateTrimmer(r);return e.Pipeline.registerFunction(o,"lunr-multi-trimmer-"+i),n.unshift(o),function(){this.pipeline.reset(),this.pipeline.add.apply(this.pipeline,n),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add.apply(this.searchPipeline,s))}}}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.nl.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.nl.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.no.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.no.min.js
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*!
|
||||
* Lunr languages, `Norwegian` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.no=function(){this.pipeline.reset(),this.pipeline.add(e.no.trimmer,e.no.stopWordFilter,e.no.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.no.stemmer))},e.no.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.no.trimmer=e.trimmerSupport.generateTrimmer(e.no.wordCharacters),e.Pipeline.registerFunction(e.no.trimmer,"trimmer-no"),e.no.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,i=new function(){function e(){var e,r=w.cursor+3;if(a=w.limit,0<=r||r<=w.limit){for(s=r;;){if(e=w.cursor,w.in_grouping(d,97,248)){w.cursor=e;break}if(e>=w.limit)return;w.cursor=e+1}for(;!w.out_grouping(d,97,248);){if(w.cursor>=w.limit)return;w.cursor++}a=w.cursor,a<s&&(a=s)}}function i(){var e,r,n;if(w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(m,29),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:n=w.limit-w.cursor,w.in_grouping_b(c,98,122)?w.slice_del():(w.cursor=w.limit-n,w.eq_s_b(1,"k")&&w.out_grouping_b(d,97,248)&&w.slice_del());break;case 3:w.slice_from("er")}}function t(){var e,r=w.limit-w.cursor;w.cursor>=a&&(e=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,w.find_among_b(u,2)?(w.bra=w.cursor,w.limit_backward=e,w.cursor=w.limit-r,w.cursor>w.limit_backward&&(w.cursor--,w.bra=w.cursor,w.slice_del())):w.limit_backward=e)}function o(){var e,r;w.cursor>=a&&(r=w.limit_backward,w.limit_backward=a,w.ket=w.cursor,e=w.find_among_b(l,11),e?(w.bra=w.cursor,w.limit_backward=r,1==e&&w.slice_del()):w.limit_backward=r)}var s,a,m=[new r("a",-1,1),new r("e",-1,1),new r("ede",1,1),new r("ande",1,1),new r("ende",1,1),new r("ane",1,1),new r("ene",1,1),new r("hetene",6,1),new r("erte",1,3),new r("en",-1,1),new r("heten",9,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",12,1),new r("s",-1,2),new r("as",14,1),new r("es",14,1),new r("edes",16,1),new r("endes",16,1),new r("enes",16,1),new r("hetenes",19,1),new r("ens",14,1),new r("hetens",21,1),new r("ers",14,1),new r("ets",14,1),new r("et",-1,1),new r("het",25,1),new r("ert",-1,3),new r("ast",-1,1)],u=[new r("dt",-1,-1),new r("vt",-1,-1)],l=[new r("leg",-1,1),new r("eleg",0,1),new r("ig",-1,1),new r("eig",2,1),new r("lig",2,1),new r("elig",4,1),new r("els",-1,1),new r("lov",-1,1),new r("elov",7,1),new r("slov",7,1),new r("hetslov",9,1)],d=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,48,0,128],c=[119,125,149,1],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,i(),w.cursor=w.limit,t(),w.cursor=w.limit,o(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return i.setCurrent(e),i.stem(),i.getCurrent()}):(i.setCurrent(e),i.stem(),i.getCurrent())}}(),e.Pipeline.registerFunction(e.no.stemmer,"stemmer-no"),e.no.stopWordFilter=e.generateStopWordFilter("alle at av bare begge ble blei bli blir blitt både båe da de deg dei deim deira deires dem den denne der dere deres det dette di din disse ditt du dykk dykkar då eg ein eit eitt eller elles en enn er et ett etter for fordi fra før ha hadde han hans har hennar henne hennes her hjå ho hoe honom hoss hossen hun hva hvem hver hvilke hvilken hvis hvor hvordan hvorfor i ikke ikkje ikkje ingen ingi inkje inn inni ja jeg kan kom korleis korso kun kunne kva kvar kvarhelst kven kvi kvifor man mange me med medan meg meget mellom men mi min mine mitt mot mykje ned no noe noen noka noko nokon nokor nokre nå når og også om opp oss over på samme seg selv si si sia sidan siden sin sine sitt sjøl skal skulle slik so som som somme somt så sånn til um upp ut uten var vart varte ved vere verte vi vil ville vore vors vort vår være være vært å".split(" ")),e.Pipeline.registerFunction(e.no.stopWordFilter,"stopWordFilter-no")}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.pt.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.pt.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ro.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ro.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ru.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.ru.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.stemmer.support.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(r,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():t()(r.lunr)}(this,function(){return function(r){r.stemmerSupport={Among:function(r,t,i,s){if(this.toCharArray=function(r){for(var t=r.length,i=new Array(t),s=0;s<t;s++)i[s]=r.charCodeAt(s);return i},!r&&""!=r||!t&&0!=t||!i)throw"Bad Among initialisation: s:"+r+", substring_i: "+t+", result: "+i;this.s_size=r.length,this.s=this.toCharArray(r),this.substring_i=t,this.result=i,this.method=s},SnowballProgram:function(){var r;return{bra:0,ket:0,limit:0,cursor:0,limit_backward:0,setCurrent:function(t){r=t,this.cursor=0,this.limit=t.length,this.limit_backward=0,this.bra=this.cursor,this.ket=this.limit},getCurrent:function(){var t=r;return r=null,t},in_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},in_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e<=s&&e>=i&&(e-=i,t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},out_grouping:function(t,i,s){if(this.cursor<this.limit){var e=r.charCodeAt(this.cursor);if(e>s||e<i)return this.cursor++,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor++,!0}return!1},out_grouping_b:function(t,i,s){if(this.cursor>this.limit_backward){var e=r.charCodeAt(this.cursor-1);if(e>s||e<i)return this.cursor--,!0;if(e-=i,!(t[e>>3]&1<<(7&e)))return this.cursor--,!0}return!1},eq_s:function(t,i){if(this.limit-this.cursor<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor+s)!=i.charCodeAt(s))return!1;return this.cursor+=t,!0},eq_s_b:function(t,i){if(this.cursor-this.limit_backward<t)return!1;for(var s=0;s<t;s++)if(r.charCodeAt(this.cursor-t+s)!=i.charCodeAt(s))return!1;return this.cursor-=t,!0},find_among:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=l;m<_.s_size;m++){if(n+l==u){f=-1;break}if(f=r.charCodeAt(n+l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n+_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n+_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},find_among_b:function(t,i){for(var s=0,e=i,n=this.cursor,u=this.limit_backward,o=0,h=0,c=!1;;){for(var a=s+(e-s>>1),f=0,l=o<h?o:h,_=t[a],m=_.s_size-1-l;m>=0;m--){if(n-l==u){f=-1;break}if(f=r.charCodeAt(n-1-l)-_.s[m])break;l++}if(f<0?(e=a,h=l):(s=a,o=l),e-s<=1){if(s>0||e==s||c)break;c=!0}}for(;;){var _=t[s];if(o>=_.s_size){if(this.cursor=n-_.s_size,!_.method)return _.result;var b=_.method();if(this.cursor=n-_.s_size,b)return _.result}if((s=_.substring_i)<0)return 0}},replace_s:function(t,i,s){var e=s.length-(i-t),n=r.substring(0,t),u=r.substring(i);return r=n+s+u,this.limit+=e,this.cursor>=i?this.cursor+=e:this.cursor>t&&(this.cursor=t),e},slice_check:function(){if(this.bra<0||this.bra>this.ket||this.ket>this.limit||this.limit>r.length)throw"faulty slice operation"},slice_from:function(r){this.slice_check(),this.replace_s(this.bra,this.ket,r)},slice_del:function(){this.slice_from("")},insert:function(r,t,i){var s=this.replace_s(r,t,i);r<=this.bra&&(this.bra+=s),r<=this.ket&&(this.ket+=s)},slice_to:function(){return this.slice_check(),r.substring(this.bra,this.ket)},eq_v_b:function(r){return this.eq_s_b(r.length,r)}}}},r.trimmerSupport={generateTrimmer:function(r){var t=new RegExp("^[^"+r+"]+"),i=new RegExp("[^"+r+"]+$");return function(r){return"function"==typeof r.update?r.update(function(r){return r.replace(t,"").replace(i,"")}):r.replace(t,"").replace(i,"")}}}}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.sv.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.sv.min.js
vendored
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
/*!
|
||||
* Lunr languages, `Swedish` language
|
||||
* https://github.com/MihaiValentin/lunr-languages
|
||||
*
|
||||
* Copyright 2014, Mihai Valentin
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
/*!
|
||||
* based on
|
||||
* Snowball JavaScript Library v0.3
|
||||
* http://code.google.com/p/urim/
|
||||
* http://snowball.tartarus.org/
|
||||
*
|
||||
* Copyright 2010, Oleg Mazko
|
||||
* http://www.mozilla.org/MPL/
|
||||
*/
|
||||
|
||||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.sv=function(){this.pipeline.reset(),this.pipeline.add(e.sv.trimmer,e.sv.stopWordFilter,e.sv.stemmer),this.searchPipeline&&(this.searchPipeline.reset(),this.searchPipeline.add(e.sv.stemmer))},e.sv.wordCharacters="A-Za-zªºÀ-ÖØ-öø-ʸˠ-ˤᴀ-ᴥᴬ-ᵜᵢ-ᵥᵫ-ᵷᵹ-ᶾḀ-ỿⁱⁿₐ-ₜKÅℲⅎⅠ-ↈⱠ-ⱿꜢ-ꞇꞋ-ꞭꞰ-ꞷꟷ-ꟿꬰ-ꭚꭜ-ꭤff-stA-Za-z",e.sv.trimmer=e.trimmerSupport.generateTrimmer(e.sv.wordCharacters),e.Pipeline.registerFunction(e.sv.trimmer,"trimmer-sv"),e.sv.stemmer=function(){var r=e.stemmerSupport.Among,n=e.stemmerSupport.SnowballProgram,t=new function(){function e(){var e,r=w.cursor+3;if(o=w.limit,0<=r||r<=w.limit){for(a=r;;){if(e=w.cursor,w.in_grouping(l,97,246)){w.cursor=e;break}if(w.cursor=e,w.cursor>=w.limit)return;w.cursor++}for(;!w.out_grouping(l,97,246);){if(w.cursor>=w.limit)return;w.cursor++}o=w.cursor,o<a&&(o=a)}}function t(){var e,r=w.limit_backward;if(w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(u,37),w.limit_backward=r,e))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.in_grouping_b(d,98,121)&&w.slice_del()}}function i(){var e=w.limit_backward;w.cursor>=o&&(w.limit_backward=o,w.cursor=w.limit,w.find_among_b(c,7)&&(w.cursor=w.limit,w.ket=w.cursor,w.cursor>w.limit_backward&&(w.bra=--w.cursor,w.slice_del())),w.limit_backward=e)}function s(){var e,r;if(w.cursor>=o){if(r=w.limit_backward,w.limit_backward=o,w.cursor=w.limit,w.ket=w.cursor,e=w.find_among_b(m,5))switch(w.bra=w.cursor,e){case 1:w.slice_del();break;case 2:w.slice_from("lös");break;case 3:w.slice_from("full")}w.limit_backward=r}}var a,o,u=[new r("a",-1,1),new r("arna",0,1),new r("erna",0,1),new r("heterna",2,1),new r("orna",0,1),new r("ad",-1,1),new r("e",-1,1),new r("ade",6,1),new r("ande",6,1),new r("arne",6,1),new r("are",6,1),new r("aste",6,1),new r("en",-1,1),new r("anden",12,1),new r("aren",12,1),new r("heten",12,1),new r("ern",-1,1),new r("ar",-1,1),new r("er",-1,1),new r("heter",18,1),new r("or",-1,1),new r("s",-1,2),new r("as",21,1),new r("arnas",22,1),new r("ernas",22,1),new r("ornas",22,1),new r("es",21,1),new r("ades",26,1),new r("andes",26,1),new r("ens",21,1),new r("arens",29,1),new r("hetens",29,1),new r("erns",21,1),new r("at",-1,1),new r("andet",-1,1),new r("het",-1,1),new r("ast",-1,1)],c=[new r("dd",-1,-1),new r("gd",-1,-1),new r("nn",-1,-1),new r("dt",-1,-1),new r("gt",-1,-1),new r("kt",-1,-1),new r("tt",-1,-1)],m=[new r("ig",-1,1),new r("lig",0,1),new r("els",-1,1),new r("fullt",-1,3),new r("löst",-1,2)],l=[17,65,16,1,0,0,0,0,0,0,0,0,0,0,0,0,24,0,32],d=[119,127,149],w=new n;this.setCurrent=function(e){w.setCurrent(e)},this.getCurrent=function(){return w.getCurrent()},this.stem=function(){var r=w.cursor;return e(),w.limit_backward=r,w.cursor=w.limit,t(),w.cursor=w.limit,i(),w.cursor=w.limit,s(),!0}};return function(e){return"function"==typeof e.update?e.update(function(e){return t.setCurrent(e),t.stem(),t.getCurrent()}):(t.setCurrent(e),t.stem(),t.getCurrent())}}(),e.Pipeline.registerFunction(e.sv.stemmer,"stemmer-sv"),e.sv.stopWordFilter=e.generateStopWordFilter("alla allt att av blev bli blir blivit de dem den denna deras dess dessa det detta dig din dina ditt du där då efter ej eller en er era ert ett från för ha hade han hans har henne hennes hon honom hur här i icke ingen inom inte jag ju kan kunde man med mellan men mig min mina mitt mot mycket ni nu när någon något några och om oss på samma sedan sig sin sina sitta själv skulle som så sådan sådana sådant till under upp ut utan vad var vara varför varit varje vars vart vem vi vid vilka vilkas vilken vilket vår våra vårt än är åt över".split(" ")),e.Pipeline.registerFunction(e.sv.stopWordFilter,"stopWordFilter-sv")}});
|
||||
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.th.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.th.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var r="2"==e.version[0];e.th=function(){this.pipeline.reset(),this.pipeline.add(e.th.trimmer),r?this.tokenizer=e.th.tokenizer:(e.tokenizer&&(e.tokenizer=e.th.tokenizer),this.tokenizerFn&&(this.tokenizerFn=e.th.tokenizer))},e.th.wordCharacters="[-]",e.th.trimmer=e.trimmerSupport.generateTrimmer(e.th.wordCharacters),e.Pipeline.registerFunction(e.th.trimmer,"trimmer-th");var t=e.wordcut;t.init(),e.th.tokenizer=function(i){if(!arguments.length||null==i||void 0==i)return[];if(Array.isArray(i))return i.map(function(t){return r?new e.Token(t):t});var n=i.toString().replace(/^\s+/,"");return t.cut(n).split("|")}}});
|
||||
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.tr.min.js
vendored
Normal file
18
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.tr.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.vi.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.vi.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r():r()(e.lunr)}(this,function(){return function(e){if(void 0===e)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===e.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");e.vi=function(){this.pipeline.reset(),this.pipeline.add(e.vi.stopWordFilter,e.vi.trimmer)},e.vi.wordCharacters="[A-Za-ẓ̀͐́͑̉̃̓ÂâÊêÔôĂ-ăĐ-đƠ-ơƯ-ư]",e.vi.trimmer=e.trimmerSupport.generateTrimmer(e.vi.wordCharacters),e.Pipeline.registerFunction(e.vi.trimmer,"trimmer-vi"),e.vi.stopWordFilter=e.generateStopWordFilter("là cái nhưng mà".split(" "))}});
|
||||
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.zh.min.js
vendored
Normal file
1
modules/freetype2/docs/reference/assets/javascripts/lunr/min/lunr.zh.min.js
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
!function(e,r){"function"==typeof define&&define.amd?define(r):"object"==typeof exports?module.exports=r(require("nodejieba")):r()(e.lunr)}(this,function(e){return function(r,t){if(void 0===r)throw new Error("Lunr is not present. Please include / require Lunr before this script.");if(void 0===r.stemmerSupport)throw new Error("Lunr stemmer support is not present. Please include / require Lunr stemmer support before this script.");var i="2"==r.version[0];r.zh=function(){this.pipeline.reset(),this.pipeline.add(r.zh.trimmer,r.zh.stopWordFilter,r.zh.stemmer),i?this.tokenizer=r.zh.tokenizer:(r.tokenizer&&(r.tokenizer=r.zh.tokenizer),this.tokenizerFn&&(this.tokenizerFn=r.zh.tokenizer))},r.zh.tokenizer=function(n){if(!arguments.length||null==n||void 0==n)return[];if(Array.isArray(n))return n.map(function(e){return i?new r.Token(e.toLowerCase()):e.toLowerCase()});t&&e.load(t);var o=n.toString().trim().toLowerCase(),s=[];e.cut(o,!0).forEach(function(e){s=s.concat(e.split(" "))}),s=s.filter(function(e){return!!e});var u=0;return s.map(function(e,t){if(i){var n=o.indexOf(e,u),s={};return s.position=[n,e.length],s.index=t,u=n,new r.Token(e,s)}return e})},r.zh.wordCharacters="\\w一-龥",r.zh.trimmer=r.trimmerSupport.generateTrimmer(r.zh.wordCharacters),r.Pipeline.registerFunction(r.zh.trimmer,"trimmer-zh"),r.zh.stemmer=function(){return function(e){return e}}(),r.Pipeline.registerFunction(r.zh.stemmer,"stemmer-zh"),r.zh.stopWordFilter=r.generateStopWordFilter("的 一 不 在 人 有 是 为 以 于 上 他 而 后 之 来 及 了 因 下 可 到 由 这 与 也 此 但 并 个 其 已 无 小 我 们 起 最 再 今 去 好 只 又 或 很 亦 某 把 那 你 乃 它 吧 被 比 别 趁 当 从 到 得 打 凡 儿 尔 该 各 给 跟 和 何 还 即 几 既 看 据 距 靠 啦 了 另 么 每 们 嘛 拿 哪 那 您 凭 且 却 让 仍 啥 如 若 使 谁 虽 随 同 所 她 哇 嗡 往 哪 些 向 沿 哟 用 于 咱 则 怎 曾 至 致 着 诸 自".split(" ")),r.Pipeline.registerFunction(r.zh.stopWordFilter,"stopWordFilter-zh")}});
|
||||
|
|
@ -0,0 +1,206 @@
|
|||
/**
|
||||
* export the module via AMD, CommonJS or as a browser global
|
||||
* Export code from https://github.com/umdjs/umd/blob/master/returnExports.js
|
||||
*/
|
||||
;(function (root, factory) {
|
||||
if (typeof define === 'function' && define.amd) {
|
||||
// AMD. Register as an anonymous module.
|
||||
define(factory)
|
||||
} else if (typeof exports === 'object') {
|
||||
/**
|
||||
* Node. Does not work with strict CommonJS, but
|
||||
* only CommonJS-like environments that support module.exports,
|
||||
* like Node.
|
||||
*/
|
||||
module.exports = factory()
|
||||
} else {
|
||||
// Browser globals (root is window)
|
||||
factory()(root.lunr);
|
||||
}
|
||||
}(this, function () {
|
||||
/**
|
||||
* Just return a value to define the module export.
|
||||
* This example returns an object, but the module
|
||||
* can return a function as the exported value.
|
||||
*/
|
||||
|
||||
return function(lunr) {
|
||||
// TinySegmenter 0.1 -- Super compact Japanese tokenizer in Javascript
|
||||
// (c) 2008 Taku Kudo <taku@chasen.org>
|
||||
// TinySegmenter is freely distributable under the terms of a new BSD licence.
|
||||
// For details, see http://chasen.org/~taku/software/TinySegmenter/LICENCE.txt
|
||||
|
||||
function TinySegmenter() {
|
||||
var patterns = {
|
||||
"[一二三四五六七八九十百千万億兆]":"M",
|
||||
"[一-龠々〆ヵヶ]":"H",
|
||||
"[ぁ-ん]":"I",
|
||||
"[ァ-ヴーア-ン゙ー]":"K",
|
||||
"[a-zA-Za-zA-Z]":"A",
|
||||
"[0-90-9]":"N"
|
||||
}
|
||||
this.chartype_ = [];
|
||||
for (var i in patterns) {
|
||||
var regexp = new RegExp(i);
|
||||
this.chartype_.push([regexp, patterns[i]]);
|
||||
}
|
||||
|
||||
this.BIAS__ = -332
|
||||
this.BC1__ = {"HH":6,"II":2461,"KH":406,"OH":-1378};
|
||||
this.BC2__ = {"AA":-3267,"AI":2744,"AN":-878,"HH":-4070,"HM":-1711,"HN":4012,"HO":3761,"IA":1327,"IH":-1184,"II":-1332,"IK":1721,"IO":5492,"KI":3831,"KK":-8741,"MH":-3132,"MK":3334,"OO":-2920};
|
||||
this.BC3__ = {"HH":996,"HI":626,"HK":-721,"HN":-1307,"HO":-836,"IH":-301,"KK":2762,"MK":1079,"MM":4034,"OA":-1652,"OH":266};
|
||||
this.BP1__ = {"BB":295,"OB":304,"OO":-125,"UB":352};
|
||||
this.BP2__ = {"BO":60,"OO":-1762};
|
||||
this.BQ1__ = {"BHH":1150,"BHM":1521,"BII":-1158,"BIM":886,"BMH":1208,"BNH":449,"BOH":-91,"BOO":-2597,"OHI":451,"OIH":-296,"OKA":1851,"OKH":-1020,"OKK":904,"OOO":2965};
|
||||
this.BQ2__ = {"BHH":118,"BHI":-1159,"BHM":466,"BIH":-919,"BKK":-1720,"BKO":864,"OHH":-1139,"OHM":-181,"OIH":153,"UHI":-1146};
|
||||
this.BQ3__ = {"BHH":-792,"BHI":2664,"BII":-299,"BKI":419,"BMH":937,"BMM":8335,"BNN":998,"BOH":775,"OHH":2174,"OHM":439,"OII":280,"OKH":1798,"OKI":-793,"OKO":-2242,"OMH":-2402,"OOO":11699};
|
||||
this.BQ4__ = {"BHH":-3895,"BIH":3761,"BII":-4654,"BIK":1348,"BKK":-1806,"BMI":-3385,"BOO":-12396,"OAH":926,"OHH":266,"OHK":-2036,"ONN":-973};
|
||||
this.BW1__ = {",と":660,",同":727,"B1あ":1404,"B1同":542,"、と":660,"、同":727,"」と":1682,"あっ":1505,"いう":1743,"いっ":-2055,"いる":672,"うし":-4817,"うん":665,"から":3472,"がら":600,"こう":-790,"こと":2083,"こん":-1262,"さら":-4143,"さん":4573,"した":2641,"して":1104,"すで":-3399,"そこ":1977,"それ":-871,"たち":1122,"ため":601,"った":3463,"つい":-802,"てい":805,"てき":1249,"でき":1127,"です":3445,"では":844,"とい":-4915,"とみ":1922,"どこ":3887,"ない":5713,"なっ":3015,"など":7379,"なん":-1113,"にし":2468,"には":1498,"にも":1671,"に対":-912,"の一":-501,"の中":741,"ませ":2448,"まで":1711,"まま":2600,"まる":-2155,"やむ":-1947,"よっ":-2565,"れた":2369,"れで":-913,"をし":1860,"を見":731,"亡く":-1886,"京都":2558,"取り":-2784,"大き":-2604,"大阪":1497,"平方":-2314,"引き":-1336,"日本":-195,"本当":-2423,"毎日":-2113,"目指":-724,"B1あ":1404,"B1同":542,"」と":1682};
|
||||
this.BW2__ = {"..":-11822,"11":-669,"――":-5730,"−−":-13175,"いう":-1609,"うか":2490,"かし":-1350,"かも":-602,"から":-7194,"かれ":4612,"がい":853,"がら":-3198,"きた":1941,"くな":-1597,"こと":-8392,"この":-4193,"させ":4533,"され":13168,"さん":-3977,"しい":-1819,"しか":-545,"した":5078,"して":972,"しな":939,"その":-3744,"たい":-1253,"たた":-662,"ただ":-3857,"たち":-786,"たと":1224,"たは":-939,"った":4589,"って":1647,"っと":-2094,"てい":6144,"てき":3640,"てく":2551,"ては":-3110,"ても":-3065,"でい":2666,"でき":-1528,"でし":-3828,"です":-4761,"でも":-4203,"とい":1890,"とこ":-1746,"とと":-2279,"との":720,"とみ":5168,"とも":-3941,"ない":-2488,"なが":-1313,"など":-6509,"なの":2614,"なん":3099,"にお":-1615,"にし":2748,"にな":2454,"によ":-7236,"に対":-14943,"に従":-4688,"に関":-11388,"のか":2093,"ので":-7059,"のに":-6041,"のの":-6125,"はい":1073,"はが":-1033,"はず":-2532,"ばれ":1813,"まし":-1316,"まで":-6621,"まれ":5409,"めて":-3153,"もい":2230,"もの":-10713,"らか":-944,"らし":-1611,"らに":-1897,"りし":651,"りま":1620,"れた":4270,"れて":849,"れば":4114,"ろう":6067,"われ":7901,"を通":-11877,"んだ":728,"んな":-4115,"一人":602,"一方":-1375,"一日":970,"一部":-1051,"上が":-4479,"会社":-1116,"出て":2163,"分の":-7758,"同党":970,"同日":-913,"大阪":-2471,"委員":-1250,"少な":-1050,"年度":-8669,"年間":-1626,"府県":-2363,"手権":-1982,"新聞":-4066,"日新":-722,"日本":-7068,"日米":3372,"曜日":-601,"朝鮮":-2355,"本人":-2697,"東京":-1543,"然と":-1384,"社会":-1276,"立て":-990,"第に":-1612,"米国":-4268,"11":-669};
|
||||
this.BW3__ = {"あた":-2194,"あり":719,"ある":3846,"い.":-1185,"い。":-1185,"いい":5308,"いえ":2079,"いく":3029,"いた":2056,"いっ":1883,"いる":5600,"いわ":1527,"うち":1117,"うと":4798,"えと":1454,"か.":2857,"か。":2857,"かけ":-743,"かっ":-4098,"かに":-669,"から":6520,"かり":-2670,"が,":1816,"が、":1816,"がき":-4855,"がけ":-1127,"がっ":-913,"がら":-4977,"がり":-2064,"きた":1645,"けど":1374,"こと":7397,"この":1542,"ころ":-2757,"さい":-714,"さを":976,"し,":1557,"し、":1557,"しい":-3714,"した":3562,"して":1449,"しな":2608,"しま":1200,"す.":-1310,"す。":-1310,"する":6521,"ず,":3426,"ず、":3426,"ずに":841,"そう":428,"た.":8875,"た。":8875,"たい":-594,"たの":812,"たり":-1183,"たる":-853,"だ.":4098,"だ。":4098,"だっ":1004,"った":-4748,"って":300,"てい":6240,"てお":855,"ても":302,"です":1437,"でに":-1482,"では":2295,"とう":-1387,"とし":2266,"との":541,"とも":-3543,"どう":4664,"ない":1796,"なく":-903,"など":2135,"に,":-1021,"に、":-1021,"にし":1771,"にな":1906,"には":2644,"の,":-724,"の、":-724,"の子":-1000,"は,":1337,"は、":1337,"べき":2181,"まし":1113,"ます":6943,"まっ":-1549,"まで":6154,"まれ":-793,"らし":1479,"られ":6820,"るる":3818,"れ,":854,"れ、":854,"れた":1850,"れて":1375,"れば":-3246,"れる":1091,"われ":-605,"んだ":606,"んで":798,"カ月":990,"会議":860,"入り":1232,"大会":2217,"始め":1681,"市":965,"新聞":-5055,"日,":974,"日、":974,"社会":2024,"カ月":990};
|
||||
this.TC1__ = {"AAA":1093,"HHH":1029,"HHM":580,"HII":998,"HOH":-390,"HOM":-331,"IHI":1169,"IOH":-142,"IOI":-1015,"IOM":467,"MMH":187,"OOI":-1832};
|
||||
this.TC2__ = {"HHO":2088,"HII":-1023,"HMM":-1154,"IHI":-1965,"KKH":703,"OII":-2649};
|
||||
this.TC3__ = {"AAA":-294,"HHH":346,"HHI":-341,"HII":-1088,"HIK":731,"HOH":-1486,"IHH":128,"IHI":-3041,"IHO":-1935,"IIH":-825,"IIM":-1035,"IOI":-542,"KHH":-1216,"KKA":491,"KKH":-1217,"KOK":-1009,"MHH":-2694,"MHM":-457,"MHO":123,"MMH":-471,"NNH":-1689,"NNO":662,"OHO":-3393};
|
||||
this.TC4__ = {"HHH":-203,"HHI":1344,"HHK":365,"HHM":-122,"HHN":182,"HHO":669,"HIH":804,"HII":679,"HOH":446,"IHH":695,"IHO":-2324,"IIH":321,"III":1497,"IIO":656,"IOO":54,"KAK":4845,"KKA":3386,"KKK":3065,"MHH":-405,"MHI":201,"MMH":-241,"MMM":661,"MOM":841};
|
||||
this.TQ1__ = {"BHHH":-227,"BHHI":316,"BHIH":-132,"BIHH":60,"BIII":1595,"BNHH":-744,"BOHH":225,"BOOO":-908,"OAKK":482,"OHHH":281,"OHIH":249,"OIHI":200,"OIIH":-68};
|
||||
this.TQ2__ = {"BIHH":-1401,"BIII":-1033,"BKAK":-543,"BOOO":-5591};
|
||||
this.TQ3__ = {"BHHH":478,"BHHM":-1073,"BHIH":222,"BHII":-504,"BIIH":-116,"BIII":-105,"BMHI":-863,"BMHM":-464,"BOMH":620,"OHHH":346,"OHHI":1729,"OHII":997,"OHMH":481,"OIHH":623,"OIIH":1344,"OKAK":2792,"OKHH":587,"OKKA":679,"OOHH":110,"OOII":-685};
|
||||
this.TQ4__ = {"BHHH":-721,"BHHM":-3604,"BHII":-966,"BIIH":-607,"BIII":-2181,"OAAA":-2763,"OAKK":180,"OHHH":-294,"OHHI":2446,"OHHO":480,"OHIH":-1573,"OIHH":1935,"OIHI":-493,"OIIH":626,"OIII":-4007,"OKAK":-8156};
|
||||
this.TW1__ = {"につい":-4681,"東京都":2026};
|
||||
this.TW2__ = {"ある程":-2049,"いった":-1256,"ころが":-2434,"しょう":3873,"その後":-4430,"だって":-1049,"ていた":1833,"として":-4657,"ともに":-4517,"もので":1882,"一気に":-792,"初めて":-1512,"同時に":-8097,"大きな":-1255,"対して":-2721,"社会党":-3216};
|
||||
this.TW3__ = {"いただ":-1734,"してい":1314,"として":-4314,"につい":-5483,"にとっ":-5989,"に当た":-6247,"ので,":-727,"ので、":-727,"のもの":-600,"れから":-3752,"十二月":-2287};
|
||||
this.TW4__ = {"いう.":8576,"いう。":8576,"からな":-2348,"してい":2958,"たが,":1516,"たが、":1516,"ている":1538,"という":1349,"ました":5543,"ません":1097,"ようと":-4258,"よると":5865};
|
||||
this.UC1__ = {"A":484,"K":93,"M":645,"O":-505};
|
||||
this.UC2__ = {"A":819,"H":1059,"I":409,"M":3987,"N":5775,"O":646};
|
||||
this.UC3__ = {"A":-1370,"I":2311};
|
||||
this.UC4__ = {"A":-2643,"H":1809,"I":-1032,"K":-3450,"M":3565,"N":3876,"O":6646};
|
||||
this.UC5__ = {"H":313,"I":-1238,"K":-799,"M":539,"O":-831};
|
||||
this.UC6__ = {"H":-506,"I":-253,"K":87,"M":247,"O":-387};
|
||||
this.UP1__ = {"O":-214};
|
||||
this.UP2__ = {"B":69,"O":935};
|
||||
this.UP3__ = {"B":189};
|
||||
this.UQ1__ = {"BH":21,"BI":-12,"BK":-99,"BN":142,"BO":-56,"OH":-95,"OI":477,"OK":410,"OO":-2422};
|
||||
this.UQ2__ = {"BH":216,"BI":113,"OK":1759};
|
||||
this.UQ3__ = {"BA":-479,"BH":42,"BI":1913,"BK":-7198,"BM":3160,"BN":6427,"BO":14761,"OI":-827,"ON":-3212};
|
||||
this.UW1__ = {",":156,"、":156,"「":-463,"あ":-941,"う":-127,"が":-553,"き":121,"こ":505,"で":-201,"と":-547,"ど":-123,"に":-789,"の":-185,"は":-847,"も":-466,"や":-470,"よ":182,"ら":-292,"り":208,"れ":169,"を":-446,"ん":-137,"・":-135,"主":-402,"京":-268,"区":-912,"午":871,"国":-460,"大":561,"委":729,"市":-411,"日":-141,"理":361,"生":-408,"県":-386,"都":-718,"「":-463,"・":-135};
|
||||
this.UW2__ = {",":-829,"、":-829,"〇":892,"「":-645,"」":3145,"あ":-538,"い":505,"う":134,"お":-502,"か":1454,"が":-856,"く":-412,"こ":1141,"さ":878,"ざ":540,"し":1529,"す":-675,"せ":300,"そ":-1011,"た":188,"だ":1837,"つ":-949,"て":-291,"で":-268,"と":-981,"ど":1273,"な":1063,"に":-1764,"の":130,"は":-409,"ひ":-1273,"べ":1261,"ま":600,"も":-1263,"や":-402,"よ":1639,"り":-579,"る":-694,"れ":571,"を":-2516,"ん":2095,"ア":-587,"カ":306,"キ":568,"ッ":831,"三":-758,"不":-2150,"世":-302,"中":-968,"主":-861,"事":492,"人":-123,"会":978,"保":362,"入":548,"初":-3025,"副":-1566,"北":-3414,"区":-422,"大":-1769,"天":-865,"太":-483,"子":-1519,"学":760,"実":1023,"小":-2009,"市":-813,"年":-1060,"強":1067,"手":-1519,"揺":-1033,"政":1522,"文":-1355,"新":-1682,"日":-1815,"明":-1462,"最":-630,"朝":-1843,"本":-1650,"東":-931,"果":-665,"次":-2378,"民":-180,"気":-1740,"理":752,"発":529,"目":-1584,"相":-242,"県":-1165,"立":-763,"第":810,"米":509,"自":-1353,"行":838,"西":-744,"見":-3874,"調":1010,"議":1198,"込":3041,"開":1758,"間":-1257,"「":-645,"」":3145,"ッ":831,"ア":-587,"カ":306,"キ":568};
|
||||
this.UW3__ = {",":4889,"1":-800,"−":-1723,"、":4889,"々":-2311,"〇":5827,"」":2670,"〓":-3573,"あ":-2696,"い":1006,"う":2342,"え":1983,"お":-4864,"か":-1163,"が":3271,"く":1004,"け":388,"げ":401,"こ":-3552,"ご":-3116,"さ":-1058,"し":-395,"す":584,"せ":3685,"そ":-5228,"た":842,"ち":-521,"っ":-1444,"つ":-1081,"て":6167,"で":2318,"と":1691,"ど":-899,"な":-2788,"に":2745,"の":4056,"は":4555,"ひ":-2171,"ふ":-1798,"へ":1199,"ほ":-5516,"ま":-4384,"み":-120,"め":1205,"も":2323,"や":-788,"よ":-202,"ら":727,"り":649,"る":5905,"れ":2773,"わ":-1207,"を":6620,"ん":-518,"ア":551,"グ":1319,"ス":874,"ッ":-1350,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278,"・":-3794,"一":-1619,"下":-1759,"世":-2087,"両":3815,"中":653,"主":-758,"予":-1193,"二":974,"人":2742,"今":792,"他":1889,"以":-1368,"低":811,"何":4265,"作":-361,"保":-2439,"元":4858,"党":3593,"全":1574,"公":-3030,"六":755,"共":-1880,"円":5807,"再":3095,"分":457,"初":2475,"別":1129,"前":2286,"副":4437,"力":365,"動":-949,"務":-1872,"化":1327,"北":-1038,"区":4646,"千":-2309,"午":-783,"協":-1006,"口":483,"右":1233,"各":3588,"合":-241,"同":3906,"和":-837,"員":4513,"国":642,"型":1389,"場":1219,"外":-241,"妻":2016,"学":-1356,"安":-423,"実":-1008,"家":1078,"小":-513,"少":-3102,"州":1155,"市":3197,"平":-1804,"年":2416,"広":-1030,"府":1605,"度":1452,"建":-2352,"当":-3885,"得":1905,"思":-1291,"性":1822,"戸":-488,"指":-3973,"政":-2013,"教":-1479,"数":3222,"文":-1489,"新":1764,"日":2099,"旧":5792,"昨":-661,"時":-1248,"曜":-951,"最":-937,"月":4125,"期":360,"李":3094,"村":364,"東":-805,"核":5156,"森":2438,"業":484,"氏":2613,"民":-1694,"決":-1073,"法":1868,"海":-495,"無":979,"物":461,"特":-3850,"生":-273,"用":914,"町":1215,"的":7313,"直":-1835,"省":792,"県":6293,"知":-1528,"私":4231,"税":401,"立":-960,"第":1201,"米":7767,"系":3066,"約":3663,"級":1384,"統":-4229,"総":1163,"線":1255,"者":6457,"能":725,"自":-2869,"英":785,"見":1044,"調":-562,"財":-733,"費":1777,"車":1835,"軍":1375,"込":-1504,"通":-1136,"選":-681,"郎":1026,"郡":4404,"部":1200,"金":2163,"長":421,"開":-1432,"間":1302,"関":-1282,"雨":2009,"電":-1045,"非":2066,"駅":1620,"1":-800,"」":2670,"・":-3794,"ッ":-1350,"ア":551,"グ":1319,"ス":874,"ト":521,"ム":1109,"ル":1591,"ロ":2201,"ン":278};
|
||||
this.UW4__ = {",":3930,".":3508,"―":-4841,"、":3930,"。":3508,"〇":4999,"「":1895,"」":3798,"〓":-5156,"あ":4752,"い":-3435,"う":-640,"え":-2514,"お":2405,"か":530,"が":6006,"き":-4482,"ぎ":-3821,"く":-3788,"け":-4376,"げ":-4734,"こ":2255,"ご":1979,"さ":2864,"し":-843,"じ":-2506,"す":-731,"ず":1251,"せ":181,"そ":4091,"た":5034,"だ":5408,"ち":-3654,"っ":-5882,"つ":-1659,"て":3994,"で":7410,"と":4547,"な":5433,"に":6499,"ぬ":1853,"ね":1413,"の":7396,"は":8578,"ば":1940,"ひ":4249,"び":-4134,"ふ":1345,"へ":6665,"べ":-744,"ほ":1464,"ま":1051,"み":-2082,"む":-882,"め":-5046,"も":4169,"ゃ":-2666,"や":2795,"ょ":-1544,"よ":3351,"ら":-2922,"り":-9726,"る":-14896,"れ":-2613,"ろ":-4570,"わ":-1783,"を":13150,"ん":-2352,"カ":2145,"コ":1789,"セ":1287,"ッ":-724,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637,"・":-4371,"ー":-11870,"一":-2069,"中":2210,"予":782,"事":-190,"井":-1768,"人":1036,"以":544,"会":950,"体":-1286,"作":530,"側":4292,"先":601,"党":-2006,"共":-1212,"内":584,"円":788,"初":1347,"前":1623,"副":3879,"力":-302,"動":-740,"務":-2715,"化":776,"区":4517,"協":1013,"参":1555,"合":-1834,"和":-681,"員":-910,"器":-851,"回":1500,"国":-619,"園":-1200,"地":866,"場":-1410,"塁":-2094,"士":-1413,"多":1067,"大":571,"子":-4802,"学":-1397,"定":-1057,"寺":-809,"小":1910,"屋":-1328,"山":-1500,"島":-2056,"川":-2667,"市":2771,"年":374,"庁":-4556,"後":456,"性":553,"感":916,"所":-1566,"支":856,"改":787,"政":2182,"教":704,"文":522,"方":-856,"日":1798,"時":1829,"最":845,"月":-9066,"木":-485,"来":-442,"校":-360,"業":-1043,"氏":5388,"民":-2716,"気":-910,"沢":-939,"済":-543,"物":-735,"率":672,"球":-1267,"生":-1286,"産":-1101,"田":-2900,"町":1826,"的":2586,"目":922,"省":-3485,"県":2997,"空":-867,"立":-2112,"第":788,"米":2937,"系":786,"約":2171,"経":1146,"統":-1169,"総":940,"線":-994,"署":749,"者":2145,"能":-730,"般":-852,"行":-792,"規":792,"警":-1184,"議":-244,"谷":-1000,"賞":730,"車":-1481,"軍":1158,"輪":-1433,"込":-3370,"近":929,"道":-1291,"選":2596,"郎":-4866,"都":1192,"野":-1100,"銀":-2213,"長":357,"間":-2344,"院":-2297,"際":-2604,"電":-878,"領":-1659,"題":-792,"館":-1984,"首":1749,"高":2120,"「":1895,"」":3798,"・":-4371,"ッ":-724,"ー":-11870,"カ":2145,"コ":1789,"セ":1287,"ト":-403,"メ":-1635,"ラ":-881,"リ":-541,"ル":-856,"ン":-3637};
|
||||
this.UW5__ = {",":465,".":-299,"1":-514,"E2":-32768,"]":-2762,"、":465,"。":-299,"「":363,"あ":1655,"い":331,"う":-503,"え":1199,"お":527,"か":647,"が":-421,"き":1624,"ぎ":1971,"く":312,"げ":-983,"さ":-1537,"し":-1371,"す":-852,"だ":-1186,"ち":1093,"っ":52,"つ":921,"て":-18,"で":-850,"と":-127,"ど":1682,"な":-787,"に":-1224,"の":-635,"は":-578,"べ":1001,"み":502,"め":865,"ゃ":3350,"ょ":854,"り":-208,"る":429,"れ":504,"わ":419,"を":-1264,"ん":327,"イ":241,"ル":451,"ン":-343,"中":-871,"京":722,"会":-1153,"党":-654,"務":3519,"区":-901,"告":848,"員":2104,"大":-1296,"学":-548,"定":1785,"嵐":-1304,"市":-2991,"席":921,"年":1763,"思":872,"所":-814,"挙":1618,"新":-1682,"日":218,"月":-4353,"査":932,"格":1356,"機":-1508,"氏":-1347,"田":240,"町":-3912,"的":-3149,"相":1319,"省":-1052,"県":-4003,"研":-997,"社":-278,"空":-813,"統":1955,"者":-2233,"表":663,"語":-1073,"議":1219,"選":-1018,"郎":-368,"長":786,"間":1191,"題":2368,"館":-689,"1":-514,"E2":-32768,"「":363,"イ":241,"ル":451,"ン":-343};
|
||||
this.UW6__ = {",":227,".":808,"1":-270,"E1":306,"、":227,"。":808,"あ":-307,"う":189,"か":241,"が":-73,"く":-121,"こ":-200,"じ":1782,"す":383,"た":-428,"っ":573,"て":-1014,"で":101,"と":-105,"な":-253,"に":-149,"の":-417,"は":-236,"も":-206,"り":187,"る":-135,"を":195,"ル":-673,"ン":-496,"一":-277,"中":201,"件":-800,"会":624,"前":302,"区":1792,"員":-1212,"委":798,"学":-960,"市":887,"広":-695,"後":535,"業":-697,"相":753,"社":-507,"福":974,"空":-822,"者":1811,"連":463,"郎":1082,"1":-270,"E1":306,"ル":-673,"ン":-496};
|
||||
|
||||
return this;
|
||||
}
|
||||
TinySegmenter.prototype.ctype_ = function(str) {
|
||||
for (var i in this.chartype_) {
|
||||
if (str.match(this.chartype_[i][0])) {
|
||||
return this.chartype_[i][1];
|
||||
}
|
||||
}
|
||||
return "O";
|
||||
}
|
||||
|
||||
TinySegmenter.prototype.ts_ = function(v) {
|
||||
if (v) { return v; }
|
||||
return 0;
|
||||
}
|
||||
|
||||
TinySegmenter.prototype.segment = function(input) {
|
||||
if (input == null || input == undefined || input == "") {
|
||||
return [];
|
||||
}
|
||||
var result = [];
|
||||
var seg = ["B3","B2","B1"];
|
||||
var ctype = ["O","O","O"];
|
||||
var o = input.split("");
|
||||
for (i = 0; i < o.length; ++i) {
|
||||
seg.push(o[i]);
|
||||
ctype.push(this.ctype_(o[i]))
|
||||
}
|
||||
seg.push("E1");
|
||||
seg.push("E2");
|
||||
seg.push("E3");
|
||||
ctype.push("O");
|
||||
ctype.push("O");
|
||||
ctype.push("O");
|
||||
var word = seg[3];
|
||||
var p1 = "U";
|
||||
var p2 = "U";
|
||||
var p3 = "U";
|
||||
for (var i = 4; i < seg.length - 3; ++i) {
|
||||
var score = this.BIAS__;
|
||||
var w1 = seg[i-3];
|
||||
var w2 = seg[i-2];
|
||||
var w3 = seg[i-1];
|
||||
var w4 = seg[i];
|
||||
var w5 = seg[i+1];
|
||||
var w6 = seg[i+2];
|
||||
var c1 = ctype[i-3];
|
||||
var c2 = ctype[i-2];
|
||||
var c3 = ctype[i-1];
|
||||
var c4 = ctype[i];
|
||||
var c5 = ctype[i+1];
|
||||
var c6 = ctype[i+2];
|
||||
score += this.ts_(this.UP1__[p1]);
|
||||
score += this.ts_(this.UP2__[p2]);
|
||||
score += this.ts_(this.UP3__[p3]);
|
||||
score += this.ts_(this.BP1__[p1 + p2]);
|
||||
score += this.ts_(this.BP2__[p2 + p3]);
|
||||
score += this.ts_(this.UW1__[w1]);
|
||||
score += this.ts_(this.UW2__[w2]);
|
||||
score += this.ts_(this.UW3__[w3]);
|
||||
score += this.ts_(this.UW4__[w4]);
|
||||
score += this.ts_(this.UW5__[w5]);
|
||||
score += this.ts_(this.UW6__[w6]);
|
||||
score += this.ts_(this.BW1__[w2 + w3]);
|
||||
score += this.ts_(this.BW2__[w3 + w4]);
|
||||
score += this.ts_(this.BW3__[w4 + w5]);
|
||||
score += this.ts_(this.TW1__[w1 + w2 + w3]);
|
||||
score += this.ts_(this.TW2__[w2 + w3 + w4]);
|
||||
score += this.ts_(this.TW3__[w3 + w4 + w5]);
|
||||
score += this.ts_(this.TW4__[w4 + w5 + w6]);
|
||||
score += this.ts_(this.UC1__[c1]);
|
||||
score += this.ts_(this.UC2__[c2]);
|
||||
score += this.ts_(this.UC3__[c3]);
|
||||
score += this.ts_(this.UC4__[c4]);
|
||||
score += this.ts_(this.UC5__[c5]);
|
||||
score += this.ts_(this.UC6__[c6]);
|
||||
score += this.ts_(this.BC1__[c2 + c3]);
|
||||
score += this.ts_(this.BC2__[c3 + c4]);
|
||||
score += this.ts_(this.BC3__[c4 + c5]);
|
||||
score += this.ts_(this.TC1__[c1 + c2 + c3]);
|
||||
score += this.ts_(this.TC2__[c2 + c3 + c4]);
|
||||
score += this.ts_(this.TC3__[c3 + c4 + c5]);
|
||||
score += this.ts_(this.TC4__[c4 + c5 + c6]);
|
||||
// score += this.ts_(this.TC5__[c4 + c5 + c6]);
|
||||
score += this.ts_(this.UQ1__[p1 + c1]);
|
||||
score += this.ts_(this.UQ2__[p2 + c2]);
|
||||
score += this.ts_(this.UQ3__[p3 + c3]);
|
||||
score += this.ts_(this.BQ1__[p2 + c2 + c3]);
|
||||
score += this.ts_(this.BQ2__[p2 + c3 + c4]);
|
||||
score += this.ts_(this.BQ3__[p3 + c2 + c3]);
|
||||
score += this.ts_(this.BQ4__[p3 + c3 + c4]);
|
||||
score += this.ts_(this.TQ1__[p2 + c1 + c2 + c3]);
|
||||
score += this.ts_(this.TQ2__[p2 + c2 + c3 + c4]);
|
||||
score += this.ts_(this.TQ3__[p3 + c1 + c2 + c3]);
|
||||
score += this.ts_(this.TQ4__[p3 + c2 + c3 + c4]);
|
||||
var p = "O";
|
||||
if (score > 0) {
|
||||
result.push(word);
|
||||
word = "";
|
||||
p = "B";
|
||||
}
|
||||
p1 = p2;
|
||||
p2 = p3;
|
||||
p3 = p;
|
||||
word += seg[i];
|
||||
}
|
||||
result.push(word);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
lunr.TinySegmenter = TinySegmenter;
|
||||
};
|
||||
|
||||
}));
|
||||
6708
modules/freetype2/docs/reference/assets/javascripts/lunr/wordcut.js
Normal file
6708
modules/freetype2/docs/reference/assets/javascripts/lunr/wordcut.js
Normal file
File diff suppressed because one or more lines are too long
48
modules/freetype2/docs/reference/assets/javascripts/workers/search.477d984a.min.js
vendored
Normal file
48
modules/freetype2/docs/reference/assets/javascripts/workers/search.477d984a.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
modules/freetype2/docs/reference/assets/stylesheets/main.ca7ac06f.min.css
vendored
Normal file
2
modules/freetype2/docs/reference/assets/stylesheets/main.ca7ac06f.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
2
modules/freetype2/docs/reference/assets/stylesheets/palette.f1a3b89f.min.css
vendored
Normal file
2
modules/freetype2/docs/reference/assets/stylesheets/palette.f1a3b89f.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1548
modules/freetype2/docs/reference/ft2-color_management.html
Normal file
1548
modules/freetype2/docs/reference/ft2-color_management.html
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1425
modules/freetype2/docs/reference/ft2-debugging_apis.html
Normal file
1425
modules/freetype2/docs/reference/ft2-debugging_apis.html
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
2803
modules/freetype2/docs/reference/ft2-layer_management.html
Normal file
2803
modules/freetype2/docs/reference/ft2-layer_management.html
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -1,265 +0,0 @@
|
|||
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"https://www.w3.org/TR/html4/loose.dtd">
|
||||
<html>
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
||||
<title>FreeType-2.9.1 API Reference</title>
|
||||
<style type="text/css">
|
||||
a:link { color: #0000EF; }
|
||||
a:visited { color: #51188E; }
|
||||
a:hover { color: #FF0000; }
|
||||
|
||||
body { font-family: Verdana, Geneva, Arial, Helvetica, serif;
|
||||
color: #000000;
|
||||
background: #FFFFFF;
|
||||
width: 87%;
|
||||
margin: auto; }
|
||||
|
||||
div.section { width: 75%;
|
||||
margin: auto; }
|
||||
div.section hr { margin: 4ex 0 1ex 0; }
|
||||
div.section h4 { background-color: #EEEEFF;
|
||||
font-size: medium;
|
||||
font-style: oblique;
|
||||
font-weight: bold;
|
||||
margin: 3ex 0 1.5ex 9%;
|
||||
padding: 0.3ex 0 0.3ex 1%; }
|
||||
div.section p { margin: 1.5ex 0 1.5ex 10%; }
|
||||
div.section pre { margin: 3ex 0 3ex 9%;
|
||||
background-color: #D6E8FF;
|
||||
padding: 2ex 0 2ex 1%; }
|
||||
div.section table.fields { width: 90%;
|
||||
margin: 1.5ex 0 1.5ex 10%; }
|
||||
div.section table.toc { width: 95%;
|
||||
margin: 1.5ex 0 1.5ex 5%; }
|
||||
div.timestamp { text-align: center;
|
||||
font-size: 69%;
|
||||
margin: 1.5ex 0 1.5ex 0; }
|
||||
|
||||
h1 { text-align: center; }
|
||||
h3 { font-size: medium;
|
||||
margin: 4ex 0 1.5ex 0; }
|
||||
|
||||
p { text-align: justify; }
|
||||
|
||||
pre.colored { color: blue; }
|
||||
|
||||
span.keyword { font-family: monospace;
|
||||
text-align: left;
|
||||
white-space: pre;
|
||||
color: darkblue; }
|
||||
|
||||
table.fields td.val { font-weight: bold;
|
||||
text-align: right;
|
||||
width: 30%;
|
||||
vertical-align: baseline;
|
||||
padding: 1ex 1em 1ex 0; }
|
||||
table.fields td.desc { vertical-align: baseline;
|
||||
padding: 1ex 0 1ex 1em; }
|
||||
table.fields td.desc p:first-child { margin: 0; }
|
||||
table.fields td.desc p { margin: 1.5ex 0 0 0; }
|
||||
table.index { margin: 6ex auto 6ex auto;
|
||||
border: 0;
|
||||
border-collapse: separate;
|
||||
border-spacing: 1em 0.3ex; }
|
||||
table.index tr { padding: 0; }
|
||||
table.index td { padding: 0; }
|
||||
table.index-toc-link { width: 100%;
|
||||
border: 0;
|
||||
border-spacing: 0;
|
||||
margin: 1ex 0 1ex 0; }
|
||||
table.index-toc-link td.left { padding: 0 0.5em 0 0.5em;
|
||||
font-size: 83%;
|
||||
text-align: left; }
|
||||
table.index-toc-link td.middle { padding: 0 0.5em 0 0.5em;
|
||||
font-size: 83%;
|
||||
text-align: center; }
|
||||
table.index-toc-link td.right { padding: 0 0.5em 0 0.5em;
|
||||
font-size: 83%;
|
||||
text-align: right; }
|
||||
table.synopsis { margin: 6ex auto 6ex auto;
|
||||
border: 0;
|
||||
border-collapse: separate;
|
||||
border-spacing: 2em 0.6ex; }
|
||||
table.synopsis tr { padding: 0; }
|
||||
table.synopsis td { padding: 0; }
|
||||
table.toc td.link { width: 30%;
|
||||
text-align: right;
|
||||
vertical-align: baseline;
|
||||
padding: 1ex 1em 1ex 0; }
|
||||
table.toc td.desc { vertical-align: baseline;
|
||||
padding: 1ex 0 1ex 1em;
|
||||
text-align: left; }
|
||||
table.toc td.desc p:first-child { margin: 0;
|
||||
text-align: left; }
|
||||
table.toc td.desc p { margin: 1.5ex 0 0 0;
|
||||
text-align: left; }
|
||||
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table>
|
||||
<h1>FreeType-2.9.1 API Reference</h1>
|
||||
|
||||
<h1 id="lcd_filtering">LCD Filtering</h1>
|
||||
<h2>Synopsis</h2>
|
||||
<table class="synopsis">
|
||||
<tr><td><a href="#FT_LcdFilter">FT_LcdFilter</a></td><td><a href="#FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</a></td></tr>
|
||||
<tr><td><a href="#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a></td><td></td></tr>
|
||||
</table>
|
||||
|
||||
|
||||
<p>Should you #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING in your ‘ftoption.h’, which enables patented ClearType-style rendering, the LCD-optimized glyph bitmaps should be filtered to reduce color fringes inherent to this technology. The default FreeType LCD rendering uses different technology, and API described below, although available, does nothing.</p>
|
||||
<p>ClearType-style LCD rendering exploits the color-striped structure of LCD pixels, increasing the available resolution in the direction of the stripe (usually horizontal RGB) by a factor of 3. Since these subpixels are color pixels, using them unfiltered creates severe color fringes. Use the <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a> API to specify a low-pass filter, which is then applied to subpixel-rendered bitmaps generated through <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>. The filter sacrifices some of the higher resolution to reduce color fringes, making the glyph image slightly blurrier. Positional improvements will remain.</p>
|
||||
<p>A filter should have two properties:</p>
|
||||
<p>1) It should be normalized, meaning the sum of the 5 components should be 256 (0x100). It is possible to go above or under this target sum, however: going under means tossing out contrast, going over means invoking clamping and thereby non-linearities that increase contrast somewhat at the expense of greater distortion and color-fringing. Contrast is better enhanced through stem darkening.</p>
|
||||
<p>2) It should be color-balanced, meaning a filter ‘{ a, b, c, b, a }’ where a + b = c. It distributes the computed coverage for one subpixel to all subpixels equally, sacrificing some won resolution but drastically reducing color-fringing. Positioning improvements remain! Note that color-fringing can only really be minimized when using a color-balanced filter and alpha-blending the glyph onto a surface in linear space; see <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>.</p>
|
||||
<p>Regarding the form, a filter can be a ‘boxy’ filter or a ‘beveled’ filter. Boxy filters are sharper but are less forgiving of non-ideal gamma curves of a screen (viewing angles!), beveled filters are fuzzier but more tolerant.</p>
|
||||
<p>Examples:</p>
|
||||
<p>- [0x10 0x40 0x70 0x40 0x10] is beveled and neither balanced nor normalized.</p>
|
||||
<p>- [0x1A 0x33 0x4D 0x33 0x1A] is beveled and balanced but not normalized.</p>
|
||||
<p>- [0x19 0x33 0x66 0x4c 0x19] is beveled and normalized but not balanced.</p>
|
||||
<p>- [0x00 0x4c 0x66 0x4c 0x00] is boxily beveled and normalized but not balanced.</p>
|
||||
<p>- [0x00 0x55 0x56 0x55 0x00] is boxy, normalized, and almost balanced.</p>
|
||||
<p>- [0x08 0x4D 0x56 0x4D 0x08] is beveled, normalized and, almost balanced.</p>
|
||||
<p>The filter affects glyph bitmaps rendered through <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a>, <a href="ft2-base_interface.html#FT_Load_Glyph">FT_Load_Glyph</a>, and <a href="ft2-base_interface.html#FT_Load_Char">FT_Load_Char</a>. It does <i>not</i> affect the output of <a href="ft2-outline_processing.html#FT_Outline_Render">FT_Outline_Render</a> and <a href="ft2-outline_processing.html#FT_Outline_Get_Bitmap">FT_Outline_Get_Bitmap</a>.</p>
|
||||
<p>If this feature is activated, the dimensions of LCD glyph bitmaps are either wider or taller than the dimensions of the corresponding outline with regard to the pixel grid. For example, for <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a>, the filter adds 3 subpixels to the left, and 3 subpixels to the right. The bitmap offset values are adjusted accordingly, so clients shouldn't need to modify their layout and glyph positioning code when enabling the filter.</p>
|
||||
<p>It is important to understand that linear alpha blending and gamma correction is critical for correctly rendering glyphs onto surfaces without artifacts and even more critical when subpixel rendering is involved.</p>
|
||||
<p>Each of the 3 alpha values (subpixels) is independently used to blend one color channel. That is, red alpha blends the red channel of the text color with the red channel of the background pixel. The distribution of density values by the color-balanced filter assumes alpha blending is done in linear space; only then color artifacts cancel out.</p>
|
||||
|
||||
<div class="section">
|
||||
<h3 id="FT_LcdFilter">FT_LcdFilter</h3>
|
||||
<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
|
||||
<pre>
|
||||
<span class="keyword">typedef</span> <span class="keyword">enum</span> FT_LcdFilter_
|
||||
{
|
||||
<a href="ft2-lcd_filtering.html#FT_LCD_FILTER_NONE">FT_LCD_FILTER_NONE</a> = 0,
|
||||
<a href="ft2-lcd_filtering.html#FT_LCD_FILTER_DEFAULT">FT_LCD_FILTER_DEFAULT</a> = 1,
|
||||
<a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LIGHT">FT_LCD_FILTER_LIGHT</a> = 2,
|
||||
<a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LEGACY1">FT_LCD_FILTER_LEGACY1</a> = 3,
|
||||
<a href="ft2-lcd_filtering.html#FT_LCD_FILTER_LEGACY">FT_LCD_FILTER_LEGACY</a> = 16,
|
||||
|
||||
FT_LCD_FILTER_MAX /* do not remove */
|
||||
|
||||
} <b>FT_LcdFilter</b>;
|
||||
</pre>
|
||||
|
||||
<p>A list of values to identify various types of LCD filters.</p>
|
||||
|
||||
<h4>values</h4>
|
||||
<table class="fields">
|
||||
<tr><td class="val" id="FT_LCD_FILTER_NONE">FT_LCD_FILTER_NONE</td><td class="desc">
|
||||
<p>Do not perform filtering. When used with subpixel rendering, this results in sometimes severe color fringes.</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="FT_LCD_FILTER_DEFAULT">FT_LCD_FILTER_DEFAULT</td><td class="desc">
|
||||
<p>The default filter reduces color fringes considerably, at the cost of a slight blurriness in the output.</p>
|
||||
<p>It is a beveled, normalized, and color-balanced five-tap filter that is more forgiving to screens with non-ideal gamma curves and viewing angles. Note that while color-fringing is reduced, it can only be minimized by using linear alpha blending and gamma correction to render glyphs onto surfaces. The default filter weights are [0x08 0x4D 0x56 0x4D 0x08].</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="FT_LCD_FILTER_LIGHT">FT_LCD_FILTER_LIGHT</td><td class="desc">
|
||||
<p>The light filter is a variant that is sharper at the cost of slightly more color fringes than the default one.</p>
|
||||
<p>It is a boxy, normalized, and color-balanced three-tap filter that is less forgiving to screens with non-ideal gamma curves and viewing angles. This filter works best when the rendering system uses linear alpha blending and gamma correction to render glyphs onto surfaces. The light filter weights are [0x00 0x55 0x56 0x55 0x00].</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="FT_LCD_FILTER_LEGACY">FT_LCD_FILTER_LEGACY</td><td class="desc">
|
||||
<p>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 <b>and</b> high-quality hinted fonts are used.</p>
|
||||
<p>This filter is only provided for comparison purposes, and might be disabled or stay unsupported in the future.</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="FT_LCD_FILTER_LEGACY1">FT_LCD_FILTER_LEGACY1</td><td class="desc">
|
||||
<p>For historical reasons, the FontConfig library returns a different enumeration value for legacy LCD filtering. To make code work that (incorrectly) forwards FontConfig's enumeration value to <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a> without proper mapping, it is thus easiest to have another enumeration value, which is completely equal to ‘FT_LCD_FILTER_LEGACY’.</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<h4>since</h4>
|
||||
<p>2.3.0 (‘FT_LCD_FILTER_LEGACY1’ since 2.6.2)</p>
|
||||
|
||||
<hr>
|
||||
<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
|
||||
|
||||
<div class="section">
|
||||
<h3 id="FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</h3>
|
||||
<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
|
||||
<pre>
|
||||
FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
|
||||
<b>FT_Library_SetLcdFilter</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a> library,
|
||||
<a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LcdFilter</a> filter );
|
||||
</pre>
|
||||
|
||||
<p>This function is used to apply color filtering to LCD decimated bitmaps, like the ones used when calling <a href="ft2-base_interface.html#FT_Render_Glyph">FT_Render_Glyph</a> with <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD</a> or <a href="ft2-base_interface.html#FT_Render_Mode">FT_RENDER_MODE_LCD_V</a>.</p>
|
||||
|
||||
<h4>input</h4>
|
||||
<table class="fields">
|
||||
<tr><td class="val" id="library">library</td><td class="desc">
|
||||
<p>A handle to the target library instance.</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="filter">filter</td><td class="desc">
|
||||
<p>The filter type.</p>
|
||||
<p>You can use <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a> here to disable this feature, or <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_DEFAULT</a> to use a default filter that should work well on most LCD screens.</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<h4>return</h4>
|
||||
<p>FreeType error code. 0 means success.</p>
|
||||
|
||||
<h4>note</h4>
|
||||
<p>This feature is always disabled by default. Clients must make an explicit call to this function with a ‘filter’ value other than <a href="ft2-lcd_filtering.html#FT_LcdFilter">FT_LCD_FILTER_NONE</a> in order to enable it.</p>
|
||||
<p>Due to <b>PATENTS</b> 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.</p>
|
||||
|
||||
<h4>since</h4>
|
||||
<p>2.3.0</p>
|
||||
|
||||
<hr>
|
||||
<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
|
||||
|
||||
<div class="section">
|
||||
<h3 id="FT_Library_SetLcdFilterWeights">FT_Library_SetLcdFilterWeights</h3>
|
||||
<p>Defined in FT_LCD_FILTER_H (freetype/ftlcdfil.h).</p>
|
||||
<pre>
|
||||
FT_EXPORT( <a href="ft2-basic_types.html#FT_Error">FT_Error</a> )
|
||||
<b>FT_Library_SetLcdFilterWeights</b>( <a href="ft2-base_interface.html#FT_Library">FT_Library</a> library,
|
||||
<span class="keyword">unsigned</span> <span class="keyword">char</span> *weights );
|
||||
|
||||
|
||||
/*
|
||||
* @type:
|
||||
* FT_LcdFiveTapFilter
|
||||
*
|
||||
* @description:
|
||||
* A <span class="keyword">typedef</span> for passing the five LCD filter weights to
|
||||
* @<a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> within an @<a href="ft2-base_interface.html#FT_Parameter">FT_Parameter</a> structure.
|
||||
*
|
||||
* @since:
|
||||
* 2.8
|
||||
*
|
||||
*/
|
||||
#define FT_LCD_FILTER_FIVE_TAPS 5
|
||||
|
||||
<span class="keyword">typedef</span> <a href="ft2-basic_types.html#FT_Byte">FT_Byte</a> FT_LcdFiveTapFilter[FT_LCD_FILTER_FIVE_TAPS];
|
||||
</pre>
|
||||
|
||||
<p>This function can be used to enable LCD filter with custom weights, instead of using presets in <a href="ft2-lcd_filtering.html#FT_Library_SetLcdFilter">FT_Library_SetLcdFilter</a>.</p>
|
||||
|
||||
<h4>input</h4>
|
||||
<table class="fields">
|
||||
<tr><td class="val" id="library">library</td><td class="desc">
|
||||
<p>A handle to the target library instance.</p>
|
||||
</td></tr>
|
||||
<tr><td class="val" id="weights">weights</td><td class="desc">
|
||||
<p>A pointer to an array; the function copies the first five bytes and uses them to specify the filter weights.</p>
|
||||
</td></tr>
|
||||
</table>
|
||||
|
||||
<h4>return</h4>
|
||||
<p>FreeType error code. 0 means success.</p>
|
||||
|
||||
<h4>note</h4>
|
||||
<p>Due to <b>PATENTS</b> 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.</p>
|
||||
<p>LCD filter weights can also be set per face using <a href="ft2-base_interface.html#FT_Face_Properties">FT_Face_Properties</a> with <a href="ft2-parameter_tags.html#FT_PARAM_TAG_LCD_FILTER_WEIGHTS">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a>.</p>
|
||||
|
||||
<h4>since</h4>
|
||||
<p>2.4.0</p>
|
||||
|
||||
<hr>
|
||||
<table class="index-toc-link"><tr><td class="left">[<a href="ft2-index.html">Index</a>]</td><td class="middle">[<a href="#">Top</a>]</td><td class="right">[<a href="ft2-toc.html">TOC</a>]</td></tr></table></div>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
1502
modules/freetype2/docs/reference/ft2-lcd_rendering.html
Normal file
1502
modules/freetype2/docs/reference/ft2-lcd_rendering.html
Normal file
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
1256
modules/freetype2/docs/reference/ft2-ot_svg_driver.html
Normal file
1256
modules/freetype2/docs/reference/ft2-ot_svg_driver.html
Normal file
File diff suppressed because it is too large
Load diff
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue