Bug 1672411 - Update freetype2 to 2.10.4. r=jfkthame

Differential Revision: https://phabricator.services.mozilla.com/D94321
This commit is contained in:
Ryan VanderMeulen 2020-10-28 09:39:35 +00:00
parent 938d2dffe9
commit 84e8249e0a
499 changed files with 6196 additions and 6081 deletions

View File

@ -0,0 +1,16 @@
BasedOnStyle: Chromium
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignConsecutiveMacros: true
AlignEscapedNewlines: true
# AlignOperands: Align
AlignTrailingComments: true
AlwaysBreakAfterReturnType: AllDefinitions
BreakBeforeBraces: Allman
ColumnLimit: 80
DerivePointerAlignment: false
IndentCaseLabels: false
PointerAlignment: Left
SpaceBeforeParens: ControlStatements
SpacesInParentheses: true

View File

@ -147,7 +147,7 @@ project(freetype C)
set(VERSION_MAJOR "2")
set(VERSION_MINOR "10")
set(VERSION_PATCH "2")
set(VERSION_PATCH "4")
# Generate LIBRARY_VERSION and LIBRARY_SOVERSION.
set(LIBTOOL_REGEX "version_info='([0-9]+):([0-9]+):([0-9]+)'")
@ -240,9 +240,8 @@ endif ()
if (UNIX)
check_include_file("unistd.h" HAVE_UNISTD_H)
check_include_file("fcntl.h" HAVE_FCNTL_H)
check_include_file("stdint.h" HAVE_STDINT_H)
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.in"
file(READ "${PROJECT_SOURCE_DIR}/builds/unix/ftconfig.h.in"
FTCONFIG_H)
if (HAVE_UNISTD_H)
string(REGEX REPLACE
@ -254,13 +253,6 @@ if (UNIX)
"#undef +(HAVE_FCNTL_H)" "#define \\1 1"
FTCONFIG_H "${FTCONFIG_H}")
endif ()
if (HAVE_STDINT_H)
string(REGEX REPLACE
"#undef +(HAVE_STDINT_H)" "#define \\1 1"
FTCONFIG_H "${FTCONFIG_H}")
endif ()
string(REPLACE "/undef " "#undef "
FTCONFIG_H "${FTCONFIG_H}")
else ()
file(READ "${PROJECT_SOURCE_DIR}/include/freetype/config/ftconfig.h"
FTCONFIG_H)
@ -535,6 +527,12 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
COMPONENT pkgconfig)
endif ()
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${PROJECT_BINARY_DIR}/freetype-config-version.cmake
VERSION ${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}
COMPATIBILITY SameMajorVersion)
install(
TARGETS freetype
EXPORT freetype-targets
@ -548,6 +546,10 @@ if (NOT SKIP_INSTALL_LIBRARIES AND NOT SKIP_INSTALL_ALL)
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
FILE freetype-config.cmake
COMPONENT headers)
install(
FILES ${PROJECT_BINARY_DIR}/freetype-config-version.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/freetype
COMPONENT headers)
endif ()

View File

@ -1,3 +1,782 @@
2020-10-20 Werner Lemberg <wl@gnu.org>
* Version 2.10.4 released.
==========================
Tag sources with `VER-2-10-4'.
* docs/VERSION.TXT: Add entry for version 2.10.4.
* docs/CHANGES: Updated.
* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
builds/windows/visualc/index.html,
builds/windows/visualce/index.html,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
s/2.10.3/2.10.4/, s/2103/2104/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 4.
* builds/unix/configure.raw (version_info): Set to 23:4:17.
* CMakeLists.txt (VERSION_PATCH): Set to 4.
2020-10-19 Werner Lemberg <wl@gnu.org>
[sfnt] Fix heap buffer overflow (#59308).
This is CVE-2020-15999.
* src/sfnt/pngshim.c (Load_SBit_Png): Test bitmap size earlier.
2020-10-17 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/sfnt/tt{colr,cpal}.c: Fix signedness warnings from VC++.
2020-10-17 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/sfnt/sfwoff2.c (Read255UShort): Tweak types to please VC++.
2020-10-10 Werner Lemberg <wl@gnu.org>
* Version 2.10.3 released.
==========================
Tag sources with `VER-2-10-3'.
* docs/VERSION.TXT: Add entry for version 2.10.3.
* README, src/base/ftver.rc, builds/windows/vc2010/index.html,
builds/windows/visualc/index.html,
builds/windows/visualce/index.html,
builds/wince/vc2005-ce/index.html,
builds/wince/vc2008-ce/index.html, docs/freetype-config.1:
s/2.10.2/2.10.3/, s/2102/2103/.
* include/freetype/freetype.h (FREETYPE_PATCH): Set to 3.
* builds/unix/configure.raw (version_info): Set to 23:3:17.
* CMakeLists.txt (VERSION_PATCH): Set to 3.
2020-09-25 Werner Lemberg <wl@gnu.org>
[autofit] Synchronize with ttfautohint.
This corresponds to the following commits in the ttfautohint git
repository:
bb6842bd3bd437b7b4a7921b0376c860f5e73d18 Typo, formatting.
d5c91ddb1cb310257a3dfe9a8e20e1fc51335faa Add Medefaidrin script.
* src/autofit/afblue.dat: Add blue zone data for Medefaidrin.
* src/autofit/afblue.c, src/autofit/afblue.h: Regenerated.
* src/autofit/afscript.h: Add Medefaidrin standard characters.
* src/autofit/afranges.c, src/autofit/afstyles.h: Add Medefaidrin
data.
2020-09-25 Werner Lemberg <wl@gnu.org>
Move `scripts/make_distribution_archives.py` to `src/tools`.
* scr/tools/scripts/make_distribution_archives.py: (_TOP_DIR,
_SCRIPT_DIR): Updated to new location.
(main): s/shutils.copyfile/shutils.copy/ to preserve file
permissions.
(main): Prefix source file paths with `git_dir` while copying files
to allow calls of the script from other places than the top-level
directory.
2020-09-24 Werner Lemberg <wl@gnu.org>
* src/cff/cffgload.c (cff_slot_load): Scale `vertBearingY`.
Towards the end of the the function there is a call to
`FT_Outline_Get_CBox` that retrieves the glyph bbox in scaled units.
That sets `horiBearing{X,Y}` and `vertBearingX` but `vertBearingY`
is left alone, and is not scaled.
Patch from Eric Muller <emuller@amazon.com>.
2020-09-24 Werner Lemberg <wl@gnu.org>
* src/base/ftobjs.c (FT_Load_Glyph): Trace glyph metrics.
2020-09-22 Werner Lemberg <wl@gnu.org>
[meson] Move auxiliary scripts to `builds/meson`.
Suggested by Alexei.
* scripts/*.py: Move meson scripts to...
* builds/meson/*.py: ... this new location.
* meson.build: Updated.
2020-09-21 David Turner <david@freetype.org>
Add python script for building tarballs.
* scripts/make_distribution_archives.py: New file.
This standalone Python script should be equivalent to running `make
dist` with the Make-based build system, with the following minor
differences:
- Since `make distclean` doesn't always clean up `objs/` properly,
`make dist` archives may contain some stale binaries like
`objs/.libs/libfreetype.so.6` or others.
- `config.guess` and `config.sub` are not updated unless option
`--gnu-config-dir=DIR` is used to specify the location of these
files.
- Some bits of the auto-generated reference documentation may
appear in slightly different order, probably due to issues related
to mkdocs and docwriter.
As an example, the call
scripts/make_distribution_archives.py /tmp/freetype2-dist
creates the following files under `/tmp/freetype2-dist`:
freetype-<version>.tar.gz
freetype-<version>.tar.xz
ft<winversion>.zip
2020-09-21 Werner Lemberg <wl@gnu.org>
* scripts/extract_freetype_version.py: Fix regex typos.
2020-09-21 David Turner <david@freetype.org>
Add Meson build project file.
Example usage:
# Configure Meson build in directory `build-meson` to generate
# release binaries comparable to to the ones from the
# autotools/make build system.
meson setup build-meson \
--prefix=/usr/local \
--buildtype=debugoptimized \
--strip \
-Db_ndebug=true
# After configuring the Meson build with the above command,
# compile and install to `/usr/local/`; this includes a pkg-config
# file.
ninja -C build-meson install
# Alternatively, compile and install to `/tmp/aa/usr/local/...`
# for packaging.
DESTDIR=/tmp/aa ninja -C build-meson install
# Generate documentation under `build-meson/docs`.
ninja -C build-meson docs
Library size comparison for stripped `libfreetype.so` generated by
all three build systems:
- Default build (autotools + libtool): 712 KiB
- CMake build (RelWithDebInfo): 712 KiB
- Meson build: 712 KiB
* meson.build: New top-level Meson build file for the library.
* meson_options.txt: New file. It holds user-selectable options for
the build, which can be printed with `meson configure`, and selected
at `meson setup` or `meson --reconfigure` time with
`-D<option>=<value>`.
* scripts/parse_modules_cfg.py: A script invoked by `meson.build` to
parse `modules.cfg` and extract important information out of it
(i.e., the list of modules).
* scripts/process_ftoption_h.py: New script invoked by `meson.build`
to process the original `ftoption.h` file. It enables or disables
configuration macro variables based on the available dependencies.
This is similar to what other build systems are using (i.e., Meson's
`configure_file()` command is not used here).
* scripts/extract_freetype_version.py: New script invoked by
`meson.build` to extract the FreeType version number from
`<freetype/freetype.h>`.
* scripts/extract_libtool_version.py: New script invoked by
`meson.build` to extract the libtool `revision_info` data from
`builds/unix/configure.raw`, and to generate the corresponding
shared library suffix.
* scripts/generate_reference_docs.py: New script invoked by
`meson.build` to generate the FreeType 2 reference documentation
(using the `docwriter` and `mkdocs` packages, which must be already
installed).
2020-09-11 Alexei Podtelezhnikov <apodtele@gmail.com>
[raster] Improve the second pass (#58373).
Besides dropout control the second horizontal sweep is supposed to
clean up straight horizontal edges that are mishandled by the first
vertical sweep when a line passes through pixel centers. This line
would present as perfectly aligned span edges in the second sweep.
* src/raster/ftraster.c (Horizontal_Sweep_Span): Replace the old
implementation with a better one focusing on aligned span edges only.
2020-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
[raster] Tune SMART macro (#58352).
Windows seems to perform smart dropout control at 26.6 precision.
To mimick Windows independent of increased precision, we need to tweak
the macro so that some close calls break down rather than up.
* src/raster/ftraster.c (SMART): Tweak the macro.
2020-09-08 Alexei Podtelezhnikov <apodtele@gmail.com>
[raster] Introduce SMART macro.
* src/raster/ftraster.c (SMART): New macro for smart dropout rounding.
(Verstical_Sweep_Drop, Horizontal_Sweep_Drop): Use it.
2020-09-03 Boris Dalstein <dalboris@gmail.com>
[build] Make CMake install basic version information.
* CMakeLists.txt: Do it.
2020-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Reduce Infinality footprint (cont'd).
* src/truetype/ttinterp.c (Ins_DELTAP): Shrink variable scope.
(Ins_SHPIX, Ins_MIRP): Revise if-logic.
2020-09-02 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Reduce Infinality footprint.
* src/truetype/ttinterp.c (Ins_SHPIX, Ins_MSIRP, Ins_MIAP, Ins_MDRP,
Ins_MIRP): Shrink variable scopes and consolidate ifdefs.
2020-09-01 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Refactor compensation color.
* src/truetype/ttinterp.h (TT_Round_Func): Change the last argument.
* src/truetype/ttinterp.c (Ins_ROUND, Ins_NROUND, Ins_MDAP, Ins_MIAP,
Ins_MDRP, Ins_MIRP): Move compensation retrieval from here...
(Round_*): ... to here.
* src/truetype/ttobjs.c (tt_size_init_bytecode): Reserve zero
compensation at color index 3.
2020-08-28 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Don't set target in direct mode.
* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Remove assignment.
(ft_smooth_raster_lcd) [!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Ditto.
2020-08-25 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/smooth/ftsmooth.c (ft_smooth_raster_overlap): Limit width.
Segmentation fault reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=24729
2020-08-22 Werner Lemberg <wl@gnu.org>
* src/truetype/ttgload.c (TT_Get_VMetrics): Add tracing message.
2020-08-05 Alexei Podtelezhnikov <apodtele@gmail.com>
[truetype] Retain OVERLAP_SIMPLE and OVERLAP_COMPOUND.
For glyphs with OVERLAP_SIMPLE or OVERLAP_COMPOUND, set
FT_OUTLINE_OVERLAP to render them with direct oversampling, which
mitigates artifacts (see 3bb512bc9f62).
* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): Redefine to rhyme
with OVERLAP_SIMPLE.
* src/base/ftgloadr.c (FT_GlyphLoader_Rewind): Reset outline flags.
* src/truetype/ttgload.c
(TT_Load_Simple_Glyph): Retain OVERLAP_SIMPLE.
(load_truetype_glyph): Retain OVERLAP_COMPOUND.
2020-08-04 Alexei Podtelezhnikov <apodtele@gmail.com>
* src/truetype/ttgload.c (TT_Load_Glyph): More tracing.
2020-07-28 Alexei Podtelezhnikov <apodtele@gmail.com>
Hide internal functions with SunPro.
* include/freetype/internal/compiler-macros.h
(FT_INTERNAL_FUNCTION_ATTRIBUTE) <__SUNPRO_C>: Define as __hidden.
2020-07-28 Anuj Verma <anujv@iitbhilai.ac.in>
Fix static compilation with Visual C.
* include/freetype/internal/compiler-macros.h
(FT_INTERNAL_FUNCTION_ATTRIBUTE) <_WIN32>: Define as empty.
2020-07-28 Priyesh Kumar <priyeshkkumar@gmail.com>
Fix `-Wformat' compiler warnings.
* src/*: Fix format specifiers.
* builds/unix/ftsystem.c (FT_Stream_Open): Ditto.
2020-07-25 Werner Lemberg <wl@gnu.org>
Fix `-Wformat' compiler warnings.
Problem reported by Priyesh kumar <priyeshkkumar@gmail.com>
* src/base/ftoutln.c (FT_Outline_Decompose): Fix number of arguments
to tracing macro.
* src/bdf/bdfdrivr.c (bdf_cmap_char_next, bdf_get_bdf_property):
Ditto.
* src/cache/ftcbasic.c (ftc_basic_family_get_count): Ditto.
Reformulate message.
* src/pcf/pcfdrivr.c (pcf_get_bdf_property): Ditto.
* src/sfnt/sfwoff2.c (woff2_open_font): Ditto.
Trace table offset, too.
* src/truetype/ttgxvar.c (ft_var_apply_tuple): Ditto.
2020-07-23 Werner Lemberg <wl@gnu.org>
* src/sfnt/sfwoff2.c (woff2_decompress): Fix compiler warning.
Reported by Hin-Tak.
2020-07-12 Werner Lemberg <wl@gnu.org>
* builds/unix/configure.raw: Fix inclusion of `ftoption.h'.
2020-07-07 Werner Lemberg <wl@gnu.org>
Fix clang warnings.
* include/freetype/internal/autohint.h
(FT_DECLARE_AUTOHINTER_INTERFACE): New macro.
* src/autofit/afmodule.h: Use it to declare
`af_autofitter_interface'.
* include/freetype/internal/ftobjs.h (FT_DECLARE_GLYPH): New macro.
* src/base/ftbase.h: Use it to declare `ft_bitmap_glyph_class' and
`ft_outline_glyph_class'.
* src/base/ftglyph.c: Include `ftbase.h'.
* src/cff/cffparse.c (cff_parser_run): Fix type of `t2_size'.
* src/pcf/pcfdrivr.c (pcf_cmap_char_next): Fix type of `result'.
* src/psaux/psauxmod.c (psaux_module_class): Use `FT_DEFINE_MODULE'.
* src/psaux/psauxmod.h: Declare `afm_parser_funcs',
`t1_cmap_classes', `cff_decoder_funcs', and `psaux_module_class'.
* src/pshinter/pshmod.c: Include `pshmod.h'.
* src/sfnt/sfwoff2.c (ROUND4, WRITE_SHORT): Fix implicit sign
conversion.
(compute_ULong_sum): Fix return type.
Fix implicit sign conversion.
(store_points): Fix type of `last_flag', `repeat_count', and `flag'.
Use casts to avoid warnings.
(reconstruct_glyf): Fix implicit sign conversion.
Use cast to avoid warning.
(get_x_mins): Fix implicit sign conversion.
* src/sfnt/ttcmap.c: Undef `TTCMAPCITEM'.
* src/sfnt/ttcmap.h: Define `TTCMAPCITEM' and include `ttcmapc.h' to
declare cmap classes.
* src/smooth/ftsmooth.c (ft_smooth_overlap_spans): Use cast.
* src/truetype/ttinterp.c (Ins_MIAP): Fix typo.
2020-07-07 David Turner <david@freetype.org>
[build] Really fix multi and C++ builds.
The following builds were still failing due to previous changes:
make multi
make multi CC="c++"
make CC="c++"
This patch fixes the issues, which were missing includes to get the
right macro definitions in multi-build mode.
Also, `FT_UNUSED' is actually used by third-party code, so move it
back to `public-macros.h' to avoid breaking it.
* include/freetype/config/public-macros.h (FT_EXPORT): Remove
special definition for C++.
(FT_UNUSED): Define here instead of...
* include/freetype/config/compiler-macros.h: ... here.
(FT_FUNCTION_DECLARATION): Remove special definition for C++.
(FT_LOCAL_ARRAY_DEF): Fix definition.
* src/cache/ftccback.h, src/lzw/ftzopen.h, src/gxvalid/gxvmort.h,
src/gxvalid/gxvmorx.h: Add `FT_BEGIN_HEADER' and `FT_END_HEADER'.
2020-07-06 David Turner <david@freetype.org>
[build] Fix multi and C++ builds.
The following builds were failing due to previous changes:
make multi
make multi CC="c++"
* include/freetype/config/ftconfig.h: Remove `FT_END_HEADER'.
* include/freetype/config/ftheader.h (FT_BEGIN_HEADER,
FT_END_HEADER): Protect against redefinition.
* src/cache/ftccache.h, src/cache/ftcmru.h, src/pcf/pcfutil.h,
src/psaux/pserror.h, src/psaux/psft.h, src/psaux/psstack.h,
src/sfnt/woff2tags.h: Include `compiler-macros.h'.
* src/sfnt/woff2tags.c: Include `woff2tags.h'.
2020-07-06 Werner Lemberg <wl@gnu.org>
[psaux] Improve `t1_decoder_parse_metrics' (#58646).
* src/psaux/t1decode.c (t1_decoder_parse_metrics): Copy
corresponding code from old engine's `t1_decoder_parse_charstrings'
function to handle `op_callsubr' and `op_return'.
2020-07-05 David Turner <david@freetype.org>
[build] Improve visibility support of library function names.
* include/freetype/config/public-macros.h
(FT_PUBLIC_FUNCTION_ATTRIBUTE): New macro to tag functions as
public (and thus exportable).
(FT_EXPORT): Use it.
* include/freetype/config/compiler-macros.h
(FT_INTERNAL_FUNCTION_ATTRIBUTE): New macro to tag functions as
internal to the library (and thus hidden). Note that on ELF
systems, all internal functions have hidden visibility, which avoids
the need to enforce this when invoking the compiler (e.g., with an
option like `-fvisibility=hidden').
(FT_FUNCTION_DECLARATION, FT_FUNCTION_DEFINITION): New base macros
to deal with C and C++ linkage issues at the same time.
(FT_LOCAL, FT_LOCAL_DEF, FT_LOCAL_ARRAY, FT_LOCAL_ARRAY_DEF,
FT_BASE, FT_BASE_DEF, FT_EXPORT_VAR, FT_BASE_CALLBACK,
FT_BASE_CALLBACK_DEF): Redefined using new macros.
2020-07-05 David Turner <david@freetype.org>
[build] Split off more stuff from `ftconfig.h'.
* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h: Split off macro definitions
required by the FreeType API headers to...
* include/freetype/config/public-macros.h: ...this new file.
* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h: Split off macro definitions used
by the library but not to be exposed to clients to...
* include/freetype/config/compiler-macros.h: ...this new file.
* include/freetype/internal/*.h, src/raster/ftraster.h: Include
`compiler-macros.h' where needed.
2020-07-05 David Turner <david@freetype.org>
[build] Move mac support code to `mac-support.h'.
* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h: Split off mac-specific stuff
to...
* include/freetype/config/mac-support.h: ...this new file.
* CMakeLists.txt, builds/unix/configure.raw: Remove `/undef ->
#undef' string replacement; the affected code is no longer part of
the `ftconfig.h' template.
2020-07-05 David Turner <david@freetype.org>
[build] Put integer type definitions into `integer-types.h'.
Refactor some of the `ftconfig.h' headers and template to move the
definition of the FreeType integer types (e.g., `FT_Int16') to a
common header file `freetype/config/integer-types.h'.
* builds/unix/ftconfig.h.in, builds/vms/ftconfig.h,
include/freetype/config/ftconfig.h: Split off integer type
definition stuff to...
* include/freetype/config/integer-types.h: ...this new file.
* builds/unix/ftconfig.h.in: Control the definition of
`FT_SIZEOF_INT' and `FT_SIZEOF_LONG' with macro
`FT_USE_AUTOCONF_SIZEOF_TYPES'. If these are not defined, auto
detection happens in `integer-types.h' as usual based on `INTXX_MAX'
values. Otherwise the autoconf-detected values are used.
* builds/unix/configure.raw (CPPFLAGS): Don't include path to
`config' directory. Instead, ...
(FT_CONFIG_STANDARD_LIBRARY_H): Use complete path.
2020-07-05 David Turner <david@freetype.org>
[build] Rename `build/unix/ftconfig.in' to `ftconfig.h.in'.
Since we are no longer limited to 8.3 file names, it is simpler to
follow the usual conventions for template files.
* builds/unix/ftconfig.in: Renamed to...
* builds/unix/ftconfig.h.in: ...this.
* CMakeLists.txt, builds/unix/configure.raw: Updated.
2020-07-03 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Introduce direct oversampling for overlaps.
This implements oversampling to mitigate artifacts in pixels partially
covered by overlapping contours. It turns out that the 4x4
oversampling is sufficient but, at least, quadruples the rendering
time. The outline has to set FT_OUTLINE_OVERLAP to use this method.
* include/freetype/ftimage.h (FT_OUTLINE_OVERLAP): New flag.
* src/smooth/ftsmooth.c (ft_smooth_render): Check it to...
(ft_smooth_raster_overlap): ... inflate outline and set up direct
rendering for oversampling with...
(ft_smooth_overlap_spans): ... new span function that integrates them.
2020-07-03 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Use direct rendering mode in Harmony.
Instead of rendering 3 bitmaps side by side and reshuffling, we use
direct rendering to deliver the bitmaps on each third byte.
* src/smooth/ftsmooth.c (ft_smooth_raster_lcd)
[!FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Set up direct mode with...
(ft_smooth_lcd_spans): ... new span function.
2020-07-03 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Separate LCD paths from gray rendering.
This makes `ft_smooth_render' a lot smaller and easier to follow. It
also cleanly separates Harmony and ClearType-style LCD rendering
algorithms. Now I only wish to move LCD filtering and geometry from
FT_Library to FT_Renderer.
* src/smooth/ftsmooth.c (ft_smooth_render): Move LCD code from here...
(ft_smooth_raster_lcd, ft_smooth_raster_lcdv): ... to here.
[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Reorganize #ifdef's.
2020-06-20 Sebastian Rasmussen <sebras@gmail.com>
[cff] Fix handling of `style_name == NULL' (#58630).
* src/cff/cffobjs.c (cff_face_init): If a call to `cff_strcpy' fails
by returning NULL in `cff_face_init', `remove_style' is still
called. This means that the NULL pointer is dereferenced, causing a
crash.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[cff] Fix another two memory leaks (#58629).
* src/cff/cffobjs.c (cff_size_init): If a call to `funcs->create'
fails to allocate one of the `internal->subfont' variables, make
sure to free `internal->topfont' and any successfully allocated
subfonts.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[psaux] Fix memory leak (#58626).
* src/psaux/psstack.c (cf2_stack_init): If `cf2_stack_init' fails to
allocate the stack, return error early.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[base] Fix memory leak (#58624).
* src/base/ftobjs.c (FT_New_Size): Avoid trying to free
`size->internal' unless `size' has been allocated. This mistake
appeared in the fix for issue #58611.
2020-06-19 Alexei Podtelezhnikov <apodtele@gmail.com>
[base] Rework d1180b5f9598 until further notice.
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Reject large
outlines.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[cff, cid] Fix segfaults in case of error (#58621).
* src/cff/cffobjs.c (cff_slot_done), src/cid/cidobjs.c
(cid_slot_done): If `ft_glyphslot_init' fails to allocate
`internal', then the class' `done_slot' callback (called by
`ft_glyphslot_done') must not dereference the pointer to `internal'.
2020-06-19 Werner Lemberg <wl@gnu.org>
[base] Fix UBSAN error.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23166
* src/base/ftoutln.c (FT_Outline_Get_Orientation): Avoid values
larger than 32 bits.
2020-06-19 Werner Lemberg <wl@gnu.org>
[woff2] Fix segfault.
Reported as
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=23402
* src/sfnt/sfwoff2.c (get_x_mins): Check whether `loca' table
exists.
2020-06-19 Stephen McDowell <svenevs.dev@gmail.com>
[sfnt] Support Intel compilers.
* src/sfnt/pngshim.c (premultiply_data): Intel compilers do not
currently support `__builtin_shuffle'.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[base] Fix memory leak (#58611).
* src/base/ftobjs.c (FT_New_Size): When the call to `clazz->init_size'
fails, make sure to free `size->internal'.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[cff] Fix memory leak (#58610).
* src/cff/cffobjs.c (cff_size_init): When the call to
`funcs->create' fails, make sure to free `internal'.
2020-06-19 Werner Lemberg <wl@gnu.org>
* src/cff/cffload.c (cff_index_get_pointers): Rename `t' to `tbl'.
2020-06-19 Sebastian Rasmussen <sebras@gmail.com>
[cff] Free table upon error allocating other data (#58609).
* src/cff/cffload.c (cff_index_get_pointers): When new_bytes fails
to allocate, make sure to free the table. Do the same for both
allocations if there is a later error.
2020-06-13 Werner Lemberg <wl@gnu.org>
Remove redundant inclusion of `ft2build.h'.
* */*: Remove `#include <ft2build.h>' where possible.
* include/freetype/freetype.h: Remove cpp error about missing
inclusion of `ft2build.h'.
2020-06-08 David Turner <david@freetype.org>
Make macros for header file names optional.
We no longer have to take care of the 8.3 file name limit; this
allows us (a) to introduce longer, meaningful file names, and (b) to
avoid macro names in `#include' lines altogether since some
compilers (most notably Visual C++) doesn't support this properly.
*/*: Replace
#include FOO_H
with
#include <freetype/foo.h>
or something similar. Also update the documentation.
2020-06-02 Werner Lemberg <wl@gnu.org>
* src/sfnt/ttcmap.c (tt_face_build_cmaps): Trace number of cmaps.
2020-05-18 David Turner <david@freetype.org>
Remove obsolete HAVE_STDINT_H probing macro.
This macro was updated by the unix configure script and the
`CMakeLists.txt' one, but is never used in the source tree (nor is
<stdint.h> included anywhere).
* CMakeLists.txt, builds/unix/ftconfig.in: Don't handle
`HAVE_STDINT_H'.
2020-05-18 David Turner <david@freetype.org>
Remove Jamfile files from the tree.
These have not been used in a very, very long time, so better remove
them. A corresponding patch will be submitted to the
`freetype2-demos' repository.
* src/Jamfile, src/*/Jamfile, Jamrules: Delete.
2020-05-12 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Turn on LCD filtering during FreeType initialization.
* src/smooth/ftsmooth.c (ft_smooth_init): Enable LCD filtering.
* include/freetype/ftlcdfil.h: Document it, remove patent warnings.
* include/freetype/freetype.h (FT_Render_Mode): Updated.
* include/freetype/config/ftoption.h, devel/ftoption.h
[FT_CONFIG_OPTION_SUBPIXEL_RENDERING]: Do not mention patents.
2020-05-11 Alexei Podtelezhnikov <apodtele@gmail.com>
[smooth] Stop using dedicated LCD modules and classes.
The LCD modules were never truly independent. They mostly served as
a way to disable patented LCD rendering, which is no longer necessary.
The `smooth' module now handles LCD modes as well.
* src/smooth/ftsmooth.c (ft_smooth_lcd_renderer_class.
ft_smooth_lcdv_renderer_class): Deleted.
(ft_render_smooth): Reworked from `ft_render_smooth_generic'.
* src/smooth/ftsmooth.h: Remove dedicated LCD classes.
* src/smooth/module.mk: Remove dedicated LCD modules.
* include/freetype/config/ftmodule.h: Ditto.
* builds/amiga/include/config/ftmodule.h: Ditto.
* include/freetype/ftmodapi.h: Do not mention LCD modules.
2020-05-09 Werner Lemberg <wl@gnu.org>
* Version 2.10.2 released.
@ -4079,7 +4858,7 @@
2018-05-13 Shao Yu Zhang <shaozhang@fb.com>
Werner Lemberg <wl@gnu.org>
[sfnt] Preliminary support of coloured layer outlines (#44689).
[sfnt] Preliminary support of colored layer outlines (#44689).
This commit enables OpenType's COLR/CPAL table handling; a typical
application are color emojis that can be scaled to any size.

View File

@ -4799,11 +4799,11 @@
(chapter_inter, chapter_footer): Add <li> and use special <ul>
class.
Use double quotes around table widths given in percent.
(keyword_prefix, keyword_suffix): Don't change font colour directly
(keyword_prefix, keyword_suffix): Don't change font color directly
but use a new <span> class.
(section_synopsis_header, section_synopsis_footer): Don't change
colour.
(code_header, code_footer): Don't change font colour directly but
color.
(code_header, code_footer): Don't change font color directly but
use a special <pre> class.
(print_html_field): <tr> gets the `valign' attribute, not <table>.
(print_html_field_list): Ditto.

View File

@ -1,224 +0,0 @@
# FreeType 2 top Jamfile.
#
# Copyright (C) 2001-2020 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.
# The HDRMACRO is already defined in FTJam and is used to add
# the content of certain macros to the list of included header
# files.
#
# We can compile FreeType 2 with classic Jam however thanks to
# the following code
#
if ! $(JAM_TOOLSET)
{
rule HDRMACRO
{
# nothing
}
}
# We need to invoke a SubDir rule if the FT2 source directory top is not the
# current directory. This allows us to build FreeType 2 as part of a larger
# project easily.
#
if $(FT2_TOP) != $(DOT)
{
SubDir FT2_TOP ;
}
# The following macros define the include directory, the source directory,
# and the final library name (without library extensions). They can be
# replaced by other definitions when the library is compiled as part of
# a larger project.
#
# Name of FreeType include directory during compilation.
# This is relative to FT2_TOP.
#
FT2_INCLUDE_DIR ?= include ;
# Name of FreeType source directory during compilation.
# This is relative to FT2_TOP.
#
FT2_SRC_DIR ?= src ;
# Name of final library, without extension.
#
FT2_LIB ?= $(LIBPREFIX)freetype ;
# Define FT2_BUILD_INCLUDE to point to your build-specific directory.
# This is prepended to FT2_INCLUDE_DIR. It can be used to specify
# the location of a custom <ft2build.h> which will point to custom
# versions of `ftmodule.h' and `ftoption.h', for example.
#
FT2_BUILD_INCLUDE ?= ;
# The list of modules to compile on any given build of the library.
# By default, this will contain _all_ modules defined in FT2_SRC_DIR.
#
# IMPORTANT: You'll need to change the content of `ftmodule.h' as well
# if you modify this list or provide your own.
#
FT2_COMPONENTS ?= autofit # auto-fitter
base # base component (public APIs)
bdf # BDF font driver
bzip2 # support for bzip2-compressed PCF font
cache # cache sub-system
cff # CFF/CEF font driver
cid # PostScript CID-keyed font driver
gzip # support for gzip-compressed PCF font
lzw # support for LZW-compressed PCF font
pcf # PCF font driver
pfr # PFR/TrueDoc font driver
psaux # common PostScript routines module
pshinter # PostScript hinter module
psnames # PostScript names handling
raster # monochrome rasterizer
sfnt # SFNT-based format support routines
smooth # anti-aliased rasterizer
truetype # TrueType font driver
type1 # PostScript Type 1 font driver
type42 # PostScript Type 42 (embedded TrueType) driver
winfonts # Windows FON/FNT font driver
;
# Don't touch.
#
FT2_INCLUDE = $(FT2_BUILD_INCLUDE)
[ FT2_SubDir $(FT2_INCLUDE_DIR) ] ;
FT2_SRC = [ FT2_SubDir $(FT2_SRC_DIR) ] ;
# Location of API Reference Documentation
#
if $(DOC_DIR)
{
DOC_DIR = $(DOCDIR:T) ;
}
else
{
DOC_DIR = docs/reference ;
}
# Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
CCFLAGS += -DDEBUG_HINTER ;
}
# We need `include' in the current include path in order to
# compile any part of FreeType 2.
#
HDRS += $(FT2_INCLUDE) ;
# We need to #define FT2_BUILD_LIBRARY so that our sources find the
# internal headers
#
CCFLAGS += -DFT2_BUILD_LIBRARY ;
# Uncomment the following line if you want to build individual source files
# for each FreeType 2 module. This is only useful during development, and
# is better defined as an environment variable anyway!
#
# FT2_MULTI = true ;
# The files `ftheader.h', `internal.h', and `ftserv.h' are used to define
# macros that are later used in #include statements. They need to be parsed
# in order to record these definitions.
#
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype config ftheader.h ] ;
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal internal.h ] ;
HDRMACRO [ FT2_SubDir $(FT2_INCLUDE_DIR) freetype internal ftserv.h ] ;
# Now include the Jamfile in `freetype2/src', used to drive the compilation
# of each FreeType 2 component and/or module.
#
SubInclude FT2_TOP $(FT2_SRC_DIR) ;
# Handle the generation of the `ftexport.sym' file, which contains the list
# of exported symbols. This can be used on Unix by libtool.
#
SubInclude FT2_TOP $(FT2_SRC_DIR) tools ;
rule GenExportSymbols
{
local apinames = apinames$(SUFEXE) ;
local aheader ;
local headers ;
for aheader in [ Glob $(2) : *.h ]
{
switch $(aheader)
{
case */ftmac.h :
if ( $(MAC) || $(OS) = MACOSX ) {
headers += $(aheader) ;
}
case *.h : headers += $(aheader) ;
}
}
LOCATE on $(1) = $(ALL_LOCATE_TARGET) ;
APINAMES on $(1) = apinames$(SUFEXE) ;
Depends $(1) : $(apinames) $(headers) ;
GenExportSymbols1 $(1) : $(headers) ;
Clean clean : $(1) ;
}
actions GenExportSymbols1 bind APINAMES
{
$(APINAMES) $(2) > $(1)
}
GenExportSymbols ftexport.sym : include/freetype ;
# Test files (hinter debugging). Only used by FreeType developers.
#
if $(DEBUG_HINTER)
{
SubInclude FT2_TOP tests ;
}
rule RefDoc
{
Depends $1 : all ;
NotFile $1 ;
Always $1 ;
}
actions RefDoc
{
python3 -m docwriter
--prefix=ft2
--title=FreeType-2.10.2
--site=reference
--output=$(DOC_DIR)
$(FT2_INCLUDE)/freetype/*.h
$(FT2_INCLUDE)/freetype/config/*.h
$(FT2_INCLUDE)/freetype/cache/*.h
}
RefDoc refdoc ;
# end of top Jamfile

View File

@ -1,71 +0,0 @@
# FreeType 2 JamRules.
#
# Copyright (C) 2001-2020 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 contains the Jam rules needed to build the FreeType 2 library.
# It is shared by all Jamfiles and is included only once in the build
# process.
#
# Call SubDirHdrs on a list of directories.
#
rule AddSubDirHdrs
{
local x ;
for x in $(<)
{
SubDirHdrs $(x) ;
}
}
# Determine prefix of library file. We must use "libxxxxx" on Unix systems,
# while all other simply use the real name.
#
if $(UNIX)
{
LIBPREFIX ?= lib ;
}
else
{
LIBPREFIX ?= "" ;
}
# FT2_TOP contains the location of the FreeType source directory. You can
# set it to a specific value if you want to compile the library as part of a
# larger project.
#
FT2_TOP ?= $(DOT) ;
# Define a new rule used to declare a sub directory of the Nirvana source
# tree.
#
rule FT2_SubDir
{
if $(FT2_TOP) = $(DOT)
{
return [ FDirName $(<) ] ;
}
else
{
return [ FDirName $(FT2_TOP) $(<) ] ;
}
}
# We also set ALL_LOCATE_TARGET in order to place all object and library
# files in "objs".
#
ALL_LOCATE_TARGET ?= [ FT2_SubDir objs ] ;
# end of Jamrules

View File

@ -1,4 +1,4 @@
FreeType 2.10.2
FreeType 2.10.4
===============
Homepage: https://www.freetype.org
@ -27,9 +27,9 @@
and download one of the following files.
freetype-doc-2.10.2.tar.xz
freetype-doc-2.10.2.tar.gz
ftdoc2102.zip
freetype-doc-2.10.4.tar.xz
freetype-doc-2.10.4.tar.gz
ftdoc2104.zip
To view the documentation online, go to
@ -67,6 +67,18 @@
a terse message that only says `it doesn't work'.
Patches
=======
Please submit patches to the `freetype-devel@nongnu.org' mailing
list -- and thank you in advance for your work on improving
FreeType!
Details on the process can be found here:
https://www.freetype.org/developer.html#patches
Enjoy!

View File

@ -1,5 +1,5 @@
This directory contains FreeType v2.10.1 downloaded from
This directory contains FreeType v2.10.4 downloaded from
https://download.savannah.gnu.org/releases/freetype/
No post-2.10.1 commits have been cherry-picked from the upstream FreeType
No post-2.10.4 commits have been cherry-picked from the upstream FreeType
repository at this time.

View File

@ -137,8 +137,6 @@ FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
#ifdef FT_USE_SMOOTH
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
#endif
#ifdef FT_USE_OTV

View File

@ -68,8 +68,8 @@
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_INTERNAL_DEBUG_H
#include <freetype/freetype.h>
#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
@ -152,7 +152,7 @@
static const char* ft_trace_toggles[trace_count + 1] =
{
#include FT_INTERNAL_TRACE_H
#include <freetype/internal/fttrace.h>
NULL
};

View File

@ -96,10 +96,10 @@ Free_VecPooled( APTR poolHeader,
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
#include FT_INTERNAL_DEBUG_H
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
#include <freetype/internal/ftdebug.h>
#include <freetype/ftsystem.h>
#include <freetype/fterrors.h>
#include <freetype/fttypes.h>
#include <stdio.h>
#include <stdlib.h>

View File

@ -93,7 +93,7 @@ cat >$tmpdir/main.c << END
#include <stdlib.h>
#include <ft2build.h>
#include FT_FREETYPE_H
#include <freetype/freetype.h>
FT_Library library;

View File

@ -62,10 +62,9 @@
*/
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_TRUETYPE_TAGS_H
#include FT_INTERNAL_STREAM_H
#include <freetype/freetype.h>
#include <freetype/tttags.h>
#include <freetype/internal/ftstream.h>
#include "ftbase.h"
#if defined( __GNUC__ ) || defined( __IBMC__ )

View File

@ -0,0 +1,107 @@
#!/usr/bin/env python
"""Extract the FreeType version numbers from `<freetype/freetype.h>`.
This script parses the header to extract the version number defined there.
By default, the full dotted version number is printed, but `--major`,
`--minor` or `--patch` can be used to only print one of these values
instead.
"""
from __future__ import print_function
import argparse
import os
import re
import sys
# Expected input:
#
# ...
# #define FREETYPE_MAJOR 2
# #define FREETYPE_MINOR 10
# #define FREETYPE_PATCH 2
# ...
RE_MAJOR = re.compile(r"^ \#define \s+ FREETYPE_MAJOR \s+ (.*) $", re.X)
RE_MINOR = re.compile(r"^ \#define \s+ FREETYPE_MINOR \s+ (.*) $", re.X)
RE_PATCH = re.compile(r"^ \#define \s+ FREETYPE_PATCH \s+ (.*) $", re.X)
def parse_freetype_header(header):
major = None
minor = None
patch = None
for line in header.splitlines():
line = line.rstrip()
m = RE_MAJOR.match(line)
if m:
assert major == None, "FREETYPE_MAJOR appears more than once!"
major = m.group(1)
continue
m = RE_MINOR.match(line)
if m:
assert minor == None, "FREETYPE_MINOR appears more than once!"
minor = m.group(1)
continue
m = RE_PATCH.match(line)
if m:
assert patch == None, "FREETYPE_PATCH appears more than once!"
patch = m.group(1)
continue
assert (
major and minor and patch
), "This header is missing one of FREETYPE_MAJOR, FREETYPE_MINOR or FREETYPE_PATCH!"
return (major, minor, patch)
def main():
parser = argparse.ArgumentParser(description=__doc__)
group = parser.add_mutually_exclusive_group()
group.add_argument(
"--major",
action="store_true",
help="Only print the major version number.",
)
group.add_argument(
"--minor",
action="store_true",
help="Only print the minor version number.",
)
group.add_argument(
"--patch",
action="store_true",
help="Only print the patch version number.",
)
parser.add_argument(
"input",
metavar="FREETYPE_H",
help="The input freetype.h header to parse.",
)
args = parser.parse_args()
with open(args.input) as f:
header = f.read()
version = parse_freetype_header(header)
if args.major:
print(version[0])
elif args.minor:
print(version[1])
elif args.patch:
print(version[2])
else:
print("%s.%s.%s" % version)
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -0,0 +1,105 @@
#!/usr/bin/env python
"""Extract the libtool version from `configure.raw`.
This script parses the `configure.raw` file to extract the libtool version
number. By default, the full dotted version number is printed, but
`--major`, `--minor` or `--patch` can be used to only print one of these
values instead.
"""
from __future__ import print_function
import argparse
import os
import re
import sys
# Expected input:
#
# ...
# version_info='23:2:17'
# ...
RE_VERSION_INFO = re.compile(r"^version_info='(\d+):(\d+):(\d+)'")
def parse_configure_raw(header):
major = None
minor = None
patch = None
for line in header.splitlines():
line = line.rstrip()
m = RE_VERSION_INFO.match(line)
if m:
assert major == None, "version_info appears more than once!"
major = m.group(1)
minor = m.group(2)
patch = m.group(3)
continue
assert (
major and minor and patch
), "This input file is missing a version_info definition!"
return (major, minor, patch)
def main():
parser = argparse.ArgumentParser(description=__doc__)
group = parser.add_mutually_exclusive_group()
group.add_argument(
"--major",
action="store_true",
help="Only print the major version number.",
)
group.add_argument(
"--minor",
action="store_true",
help="Only print the minor version number.",
)
group.add_argument(
"--patch",
action="store_true",
help="Only print the patch version number.",
)
group.add_argument(
"--soversion",
action="store_true",
help="Only print the libtool library suffix.",
)
parser.add_argument(
"input",
metavar="CONFIGURE_RAW",
help="The input configure.raw file to parse.",
)
args = parser.parse_args()
with open(args.input) as f:
raw_file = f.read()
version = parse_configure_raw(raw_file)
if args.major:
print(version[0])
elif args.minor:
print(version[1])
elif args.patch:
print(version[2])
elif args.soversion:
# Convert libtool version_info to the library suffix.
# (current,revision, age) -> (current - age, age, revision)
print(
"%d.%s.%s"
% (int(version[0]) - int(version[2]), version[2], version[1])
)
else:
print("%s.%s.%s" % version)
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -0,0 +1,79 @@
#!/usr/bin/env python
"""Generate FreeType reference documentation."""
from __future__ import print_function
import argparse
import glob
import os
import subprocess
import sys
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--input-dir",
required=True,
help="Top-level FreeType source directory.",
)
parser.add_argument(
"--version", required=True, help='FreeType version (e.g. "2.x.y").'
)
parser.add_argument(
"--output-dir", required=True, help="Output directory."
)
args = parser.parse_args()
# Get the list of input files of interest.
include_dir = os.path.join(args.input_dir, "include")
include_config_dir = os.path.join(include_dir, "config")
include_cache_dir = os.path.join(include_dir, "cache")
all_headers = (
glob.glob(os.path.join(args.input_dir, "include", "freetype", "*.h"))
+ glob.glob(
os.path.join(
args.input_dir, "include", "freetype", "config", "*.h"
)
)
+ glob.glob(
os.path.join(
args.input_dir, "include", "freetype", "cache", "*.h"
)
)
)
if not os.path.exists(args.output_dir):
os.makedirs(args.output_dir)
else:
assert os.path.isdir(args.output_dir), (
"Not a directory: " + args.output_dir
)
cmds = [
sys.executable,
"-m",
"docwriter",
"--prefix=ft2",
"--title=FreeType-" + args.version,
"--site=reference",
"--output=" + args.output_dir,
] + all_headers
print("Running docwriter...")
subprocess.check_call(cmds)
print("Building static site...")
subprocess.check_call(
[sys.executable, "-m", "mkdocs", "build"], cwd=args.output_dir
)
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -0,0 +1,160 @@
#!/usr/bin/env python
"""Parse modules.cfg and dump its output either as ftmodule.h or a list of
base extensions.
"""
from __future__ import print_function
import argparse
import os
import re
import sys
# Expected input:
#
# ...
# FONT_MODULES += <name>
# HINTING_MODULES += <name>
# RASTER_MODULES += <name>
# AUX_MODULES += <name>
# BASE_EXTENSIONS += <name>
# ...
def parse_modules_cfg(input_file):
lists = {
"FONT_MODULES": [],
"HINTING_MODULES": [],
"RASTER_MODULES": [],
"AUX_MODULES": [],
"BASE_EXTENSIONS": [],
}
for line in input_file.splitlines():
line = line.rstrip()
# Ignore empty lines and those that start with a comment.
if not line or line[0] == "#":
continue
items = line.split()
assert len(items) == 3 and items[1] == "+=", (
"Unexpected input line [%s]" % line
)
assert items[0] in lists, (
"Unexpected configuration variable name " + items[0]
)
lists[items[0]].append(items[2])
return lists
def generate_ftmodule(lists):
result = "/* This is a generated file. */\n"
for driver in lists["FONT_MODULES"]:
if driver == "sfnt": # Special case for the sfnt 'driver'.
result += "FT_USE_MODULE( FT_Module_Class, sfnt_module_class )\n"
continue
name = {
"truetype": "tt",
"type1": "t1",
"cid": "t1cid",
"type42": "t42",
"winfonts": "winfnt",
}.get(driver, driver)
result += (
"FT_USE_MODULE( FT_Driver_ClassRec, %s_driver_class )\n" % name
)
for module in lists["HINTING_MODULES"]:
result += (
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
)
for module in lists["RASTER_MODULES"]:
name = {
"raster": "ft_raster1",
"smooth": "ft_smooth",
}.get(module)
result += (
"FT_USE_MODULE( FT_Renderer_Class, %s_renderer_class )\n" % name
)
for module in lists["AUX_MODULES"]:
if module in ("psaux", "psnames", "otvalid", "gxvalid"):
result += (
"FT_USE_MODULE( FT_Module_Class, %s_module_class )\n" % module
)
result += "/* EOF */\n"
return result
def generate_main_modules(lists):
return "\n".join(
lists["FONT_MODULES"]
+ lists["HINTING_MODULES"]
+ lists["RASTER_MODULES"]
)
def generate_aux_modules(lists):
return "\n".join(lists["AUX_MODULES"])
def generate_base_extensions(lists):
return "\n".join(lists["BASE_EXTENSIONS"])
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"--format",
required=True,
choices=(
"ftmodule.h",
"main-modules",
"aux-modules",
"base-extensions-list",
),
help="Select output format.",
)
parser.add_argument(
"input",
metavar="CONFIGURE_RAW",
help="The input configure.raw file to parse.",
)
parser.add_argument("--output", help="Output file (default is stdout).")
args = parser.parse_args()
with open(args.input) as f:
input_data = f.read()
lists = parse_modules_cfg(input_data)
if args.format == "ftmodule.h":
result = generate_ftmodule(lists)
elif args.format == "main-modules":
result = generate_main_modules(lists)
elif args.format == "aux-modules":
result = generate_aux_modules(lists)
elif args.format == "base-extensions-list":
result = generate_base_extensions(lists)
else:
assert False, "Invalid output format!"
if args.output:
with open(args.output, "w") as f:
f.write(result)
else:
print(result)
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -0,0 +1,105 @@
#!/usr/bin/python
"""Toggle settings in `ftoption.h` file based on command-line arguments.
This script takes an `ftoption.h` file as input and rewrites
`#define`/`#undef` lines in it based on `--enable=CONFIG_VARNAME` or
`--disable=CONFIG_VARNAME` arguments passed to it, where `CONFIG_VARNAME` is
configuration variable name, such as `FT_CONFIG_OPTION_USE_LZW`, that may
appear in the file.
Note that if one of `CONFIG_VARNAME` is not found in the input file, this
script exits with an error message listing the missing variable names.
"""
import argparse
import os
import re
import sys
def main():
parser = argparse.ArgumentParser(description=__doc__)
parser.add_argument(
"input", metavar="FTOPTION_H", help="Path to input ftoption.h file."
)
parser.add_argument("--output", help="Output to file instead of stdout.")
parser.add_argument(
"--enable",
action="append",
default=[],
help="Enable a given build option (e.g. FT_CONFIG_OPTION_USE_LZW).",
)
parser.add_argument(
"--disable",
action="append",
default=[],
help="Disable a given build option.",
)
args = parser.parse_args()
common_options = set(args.enable) & set(args.disable)
if common_options:
parser.error(
"Options cannot be both enabled and disabled: %s"
% sorted(common_options)
)
return 1
with open(args.input) as f:
input_file = f.read()
options_seen = set()
new_lines = []
for line in input_file.splitlines():
# Expected formats:
# #define <CONFIG_VAR>
# /* #define <CONFIG_VAR> */
# #undef <CONFIG_VAR>
line = line.rstrip()
if line.startswith("/* #define ") and line.endswith(" */"):
option_name = line[11:-3].strip()
option_enabled = False
elif line.startswith("#define "):
option_name = line[8:].strip()
option_enabled = True
elif line.startswith("#undef "):
option_name = line[7:].strip()
option_enabled = False
else:
new_lines.append(line)
continue
options_seen.add(option_name)
if option_enabled and option_name in args.disable:
line = "#undef " + option_name
elif not option_enabled and option_name in args.enable:
line = "#define " + option_name
new_lines.append(line)
result = "\n".join(new_lines)
# Sanity check that all command-line options were actually processed.
cmdline_options = set(args.enable) | set(args.disable)
assert cmdline_options.issubset(
options_seen
), "Could not find options in input file: " + ", ".join(
sorted(cmdline_options - options_seen)
)
if args.output:
with open(args.output, "w") as f:
f.write(result)
else:
print(result)
return 0
if __name__ == "__main__":
sys.exit(main())

View File

@ -2,7 +2,7 @@
# Attempt to guess a canonical system name.
# Copyright 1992-2020 Free Software Foundation, Inc.
timestamp='2020-04-26'
timestamp='2020-09-19'
# This file is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by
@ -150,17 +150,15 @@ Linux|GNU|GNU/*)
#elif defined(__dietlibc__)
LIBC=dietlibc
#else
#include <stdarg.h>
#ifdef __DEFINED_va_list
LIBC=musl
#else
LIBC=gnu
#endif
#endif
EOF
eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`"
# If ldd exists, use it to detect musl libc.
if command -v ldd >/dev/null && \
ldd --version 2>&1 | grep -q ^musl
then
LIBC=musl
fi
;;
esac
@ -404,7 +402,7 @@ case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in
# If there is a compiler, see if it is configured for 64-bit objects.
# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
# This test works for both compilers.
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null
@ -544,10 +542,10 @@ EOF
AViiON:dgux:*:*)
# DG/UX returns AViiON for all architectures
UNAME_PROCESSOR=`/usr/bin/uname -p`
if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ]
if test "$UNAME_PROCESSOR" = mc88100 || test "$UNAME_PROCESSOR" = mc88110
then
if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \
[ "$TARGET_BINARY_INTERFACE"x = x ]
if test "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx || \
test "$TARGET_BINARY_INTERFACE"x = x
then
echo m88k-dg-dgux"$UNAME_RELEASE"
else
@ -580,7 +578,7 @@ EOF
echo i386-ibm-aix
exit ;;
ia64:AIX:*:*)
if [ -x /usr/bin/oslevel ] ; then
if test -x /usr/bin/oslevel ; then
IBM_REV=`/usr/bin/oslevel`
else
IBM_REV="$UNAME_VERSION.$UNAME_RELEASE"
@ -620,7 +618,7 @@ EOF
else
IBM_ARCH=powerpc
fi
if [ -x /usr/bin/lslpp ] ; then
if test -x /usr/bin/lslpp ; then
IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc |
awk -F: '{ print $3 }' | sed s/[0-9]*$/0/`
else
@ -655,7 +653,7 @@ EOF
9000/31?) HP_ARCH=m68000 ;;
9000/[34]??) HP_ARCH=m68k ;;
9000/[678][0-9][0-9])
if [ -x /usr/bin/getconf ]; then
if test -x /usr/bin/getconf; then
sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
case "$sc_cpu_version" in
@ -669,7 +667,7 @@ EOF
esac ;;
esac
fi
if [ "$HP_ARCH" = "" ]; then
if test "$HP_ARCH" = ""; then
set_cc_for_build
sed 's/^ //' << EOF > "$dummy.c"
@ -708,7 +706,7 @@ EOF
test -z "$HP_ARCH" && HP_ARCH=hppa
fi ;;
esac
if [ "$HP_ARCH" = hppa2.0w ]
if test "$HP_ARCH" = hppa2.0w
then
set_cc_for_build
@ -782,7 +780,7 @@ EOF
echo hppa1.0-hp-osf
exit ;;
i*86:OSF1:*:*)
if [ -x /usr/sbin/sysversion ] ; then
if test -x /usr/sbin/sysversion ; then
echo "$UNAME_MACHINE"-unknown-osf1mk
else
echo "$UNAME_MACHINE"-unknown-osf1
@ -1095,7 +1093,17 @@ EOF
echo "$UNAME_MACHINE"-dec-linux-"$LIBC"
exit ;;
x86_64:Linux:*:*)
echo "$UNAME_MACHINE"-pc-linux-"$LIBC"
set_cc_for_build
LIBCABI=$LIBC
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __ILP32__'; echo IS_X32; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_X32 >/dev/null
then
LIBCABI="$LIBC"x32
fi
fi
echo "$UNAME_MACHINE"-pc-linux-"$LIBCABI"
exit ;;
xtensa*:Linux:*:*)
echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"
@ -1284,7 +1292,7 @@ EOF
echo mips-sony-newsos6
exit ;;
R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
if [ -d /usr/nec ]; then
if test -d /usr/nec; then
echo mips-nec-sysv"$UNAME_RELEASE"
else
echo mips-unknown-sysv"$UNAME_RELEASE"
@ -1332,6 +1340,9 @@ EOF
*:Rhapsody:*:*)
echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE"
exit ;;
arm64:Darwin:*:*)
echo aarch64-apple-darwin"$UNAME_RELEASE"
exit ;;
*:Darwin:*:*)
UNAME_PROCESSOR=`uname -p`
case $UNAME_PROCESSOR in
@ -1346,7 +1357,7 @@ EOF
else
set_cc_for_build
fi
if [ "$CC_FOR_BUILD" != no_compiler_found ]; then
if test "$CC_FOR_BUILD" != no_compiler_found; then
if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
(CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \
grep IS_64BIT_ARCH >/dev/null

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.69 for FreeType 2.10.2.
# Generated by GNU Autoconf 2.69 for FreeType 2.10.4.
#
# Report bugs to <freetype@nongnu.org>.
#
@ -590,12 +590,12 @@ MAKEFLAGS=
# Identity of this package.
PACKAGE_NAME='FreeType'
PACKAGE_TARNAME='freetype'
PACKAGE_VERSION='2.10.2'
PACKAGE_STRING='FreeType 2.10.2'
PACKAGE_VERSION='2.10.4'
PACKAGE_STRING='FreeType 2.10.4'
PACKAGE_BUGREPORT='freetype@nongnu.org'
PACKAGE_URL=''
ac_unique_file="ftconfig.in"
ac_unique_file="ftconfig.h.in"
# Factoring default headers for most tests.
ac_includes_default="\
#include <stdio.h>
@ -1340,7 +1340,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures FreeType 2.10.2 to adapt to many kinds of systems.
\`configure' configures FreeType 2.10.4 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1405,7 +1405,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of FreeType 2.10.2:";;
short | recursive ) echo "Configuration of FreeType 2.10.4:";;
esac
cat <<\_ACEOF
@ -1560,7 +1560,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
FreeType configure 2.10.2
FreeType configure 2.10.4
generated by GNU Autoconf 2.69
Copyright (C) 2012 Free Software Foundation, Inc.
@ -2158,7 +2158,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by FreeType $as_me 2.10.2, which was
It was created by FreeType $as_me 2.10.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
$ $0 $@
@ -2514,7 +2514,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
# Don't forget to update `docs/VERSIONS.TXT'!
version_info='23:2:17'
version_info='23:4:17'
ft_version=`echo $version_info | tr : .`
@ -12754,12 +12754,12 @@ $as_echo "#define HAVE_LONG_LONG_INT 1" >>confdefs.h
# check whether cpp computation of size of int and long in ftconfig.in works
# check whether cpp computation of size of int and long in ftconfig.h.in works
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cpp computation of bit length in ftconfig.in works" >&5
$as_echo_n "checking whether cpp computation of bit length in ftconfig.in works... " >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cpp computation of bit length in ftconfig.h.in works" >&5
$as_echo_n "checking whether cpp computation of bit length in ftconfig.h.in works... " >&6; }
orig_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
ac_clean_files=
if test ! -f ft2build.h; then
@ -12769,11 +12769,11 @@ fi
cat > conftest.c <<\_ACEOF
#include <limits.h>
#define FT_CONFIG_OPTIONS_H "ftoption.h"
#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
#define FT_UINT_MAX UINT_MAX
#define FT_ULONG_MAX ULONG_MAX
#include "ftconfig.in"
#include "ftconfig.h.in"
_ACEOF
echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
@ -15130,12 +15130,7 @@ fi
ac_config_files="$ac_config_files ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h"
# configuration file -- stay in 8.3 limit
#
# since #undef doesn't survive in configuration header files we replace
# `/undef' with `#undef' after creating the output file
ac_config_headers="$ac_config_headers ftconfig.h:ftconfig.in"
ac_config_headers="$ac_config_headers ftconfig.h"
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
@ -15144,10 +15139,6 @@ ac_config_headers="$ac_config_headers ftconfig.h:ftconfig.in"
ac_config_files="$ac_config_files unix-cc.mk:unix-cc.in unix-def.mk:unix-def.in"
# re-generate the Jamfile to use libtool now
#
# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure
# tests run on this system so they can be shared between configure
@ -15654,7 +15645,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
This file was extended by FreeType $as_me 2.10.2, which was
This file was extended by FreeType $as_me 2.10.4, which was
generated by GNU Autoconf 2.69. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@ -15720,7 +15711,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
FreeType config.status 2.10.2
FreeType config.status 2.10.4
configured by $0, generated by GNU Autoconf 2.69,
with options \\"\$ac_cs_config\\"
@ -16210,7 +16201,7 @@ do
case $ac_config_target in
"libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
"ftoption.h") CONFIG_FILES="$CONFIG_FILES ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h" ;;
"ftconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h:ftconfig.in" ;;
"ftconfig.h") CONFIG_HEADERS="$CONFIG_HEADERS ftconfig.h" ;;
"unix-cc.mk") CONFIG_FILES="$CONFIG_FILES unix-cc.mk:unix-cc.in" ;;
"unix-def.mk") CONFIG_FILES="$CONFIG_FILES unix-def.mk:unix-def.in" ;;
@ -17461,9 +17452,6 @@ _LT_EOF
"ftoption.h":F) mv ftoption.h ftoption.tmp
eval "sed $FTOPTION_H_SED < ftoption.tmp > ftoption.h"
rm ftoption.tmp ;;
"ftconfig.h":H) mv ftconfig.h ftconfig.tmp
sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
rm ftconfig.tmp ;;
esac
done # for ac_tag
@ -17525,18 +17513,18 @@ Library configuration:
# Warn if docwriter is not installed
if test $have_docwriter = no; then
{ $as_echo "$as_me:${as_lineno-$LINENO}:
Warning: \`make refdoc' will fail since pip package \`docwriter' is not
installed. To install, run \`$PIP install docwriter', or to use a Python
{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:
\`make refdoc' will fail since pip package \`docwriter' is not installed.
To install, run \`$PIP install docwriter', or to use a Python
virtual environment, run \`make refdoc-venv' (requires pip package
\`virtualenv'). These operations require Python >= 3.5.
" >&5
$as_echo "$as_me:
Warning: \`make refdoc' will fail since pip package \`docwriter' is not
installed. To install, run \`$PIP install docwriter', or to use a Python
$as_echo "$as_me: WARNING:
\`make refdoc' will fail since pip package \`docwriter' is not installed.
To install, run \`$PIP install docwriter', or to use a Python
virtual environment, run \`make refdoc-venv' (requires pip package
\`virtualenv'). These operations require Python >= 3.5.
" >&6;}
" >&2;}
fi
# end of configure.raw

View File

@ -11,13 +11,13 @@
# indicate that you have read the license and understand and accept it
# fully.
AC_INIT([FreeType], [2.10.2], [freetype@nongnu.org], [freetype])
AC_CONFIG_SRCDIR([ftconfig.in])
AC_INIT([FreeType], [2.10.4], [freetype@nongnu.org], [freetype])
AC_CONFIG_SRCDIR([ftconfig.h.in])
# Don't forget to update `docs/VERSIONS.TXT'!
version_info='23:2:17'
version_info='23:4:17'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@ -109,11 +109,11 @@ AC_CHECK_SIZEOF([long])
AC_TYPE_LONG_LONG_INT
# check whether cpp computation of size of int and long in ftconfig.in works
# check whether cpp computation of size of int and long in ftconfig.h.in works
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works])
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.h.in works])
orig_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
ac_clean_files=
if test ! -f ft2build.h; then
@ -123,11 +123,11 @@ fi
cat > conftest.c <<\_ACEOF
#include <limits.h>
#define FT_CONFIG_OPTIONS_H "ftoption.h"
#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
#define FT_UINT_MAX UINT_MAX
#define FT_ULONG_MAX ULONG_MAX
#include "ftconfig.in"
#include "ftconfig.h.in"
_ACEOF
echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
@ -1158,15 +1158,7 @@ AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h],
rm ftoption.tmp],
[FTOPTION_H_SED="$FTOPTION_H_SED"])
# configuration file -- stay in 8.3 limit
#
# since #undef doesn't survive in configuration header files we replace
# `/undef' with `#undef' after creating the output file
AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
[mv ftconfig.h ftconfig.tmp
sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
rm ftconfig.tmp])
AC_CONFIG_HEADERS([ftconfig.h])
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
# and `builds/unix/unix-cc.mk' that will be used by the build system
@ -1174,10 +1166,6 @@ AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
unix-def.mk:unix-def.in])
# re-generate the Jamfile to use libtool now
#
# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
AC_OUTPUT
AC_MSG_NOTICE([
@ -1193,9 +1181,9 @@ Library configuration:
# Warn if docwriter is not installed
if test $have_docwriter = no; then
AC_MSG_NOTICE([
Warning: \`make refdoc' will fail since pip package \`docwriter' is not
installed. To install, run \`$PIP install docwriter', or to use a Python
AC_MSG_WARN([
\`make refdoc' will fail since pip package \`docwriter' is not installed.
To install, run \`$PIP install docwriter', or to use a Python
virtual environment, run \`make refdoc-venv' (requires pip package
\`virtualenv'). These operations require Python >= 3.5.
])

View File

@ -12,12 +12,12 @@
# fully.
AC_INIT([FreeType], [@VERSION@], [freetype@nongnu.org], [freetype])
AC_CONFIG_SRCDIR([ftconfig.in])
AC_CONFIG_SRCDIR([ftconfig.h.in])
# Don't forget to update `docs/VERSIONS.TXT'!
version_info='23:2:17'
version_info='23:4:17'
AC_SUBST([version_info])
ft_version=`echo $version_info | tr : .`
AC_SUBST([ft_version])
@ -109,11 +109,11 @@ AC_CHECK_SIZEOF([long])
AC_TYPE_LONG_LONG_INT
# check whether cpp computation of size of int and long in ftconfig.in works
# check whether cpp computation of size of int and long in ftconfig.h.in works
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.in works])
AC_MSG_CHECKING([whether cpp computation of bit length in ftconfig.h.in works])
orig_CPPFLAGS="${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include/freetype/config ${CPPFLAGS}"
CPPFLAGS="-I${srcdir} -I. -I${srcdir}/../../include ${CPPFLAGS}"
ac_clean_files=
if test ! -f ft2build.h; then
@ -123,11 +123,11 @@ fi
cat > conftest.c <<\_ACEOF
#include <limits.h>
#define FT_CONFIG_OPTIONS_H "ftoption.h"
#define FT_CONFIG_STANDARD_LIBRARY_H "ftstdlib.h"
#define FT_CONFIG_OPTIONS_H <freetype/config/ftoption.h>
#define FT_CONFIG_STANDARD_LIBRARY_H <freetype/config/ftstdlib.h>
#define FT_UINT_MAX UINT_MAX
#define FT_ULONG_MAX ULONG_MAX
#include "ftconfig.in"
#include "ftconfig.h.in"
_ACEOF
echo >> conftest.c "#if FT_SIZEOF_INT == "${ac_cv_sizeof_int}
echo >> conftest.c "ac_cpp_ft_sizeof_int="${ac_cv_sizeof_int}
@ -1158,15 +1158,7 @@ AC_CONFIG_FILES([ftoption.h:${srcdir}/../../include/freetype/config/ftoption.h],
rm ftoption.tmp],
[FTOPTION_H_SED="$FTOPTION_H_SED"])
# configuration file -- stay in 8.3 limit
#
# since #undef doesn't survive in configuration header files we replace
# `/undef' with `#undef' after creating the output file
AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
[mv ftconfig.h ftconfig.tmp
sed 's|/undef|#undef|' < ftconfig.tmp > ftconfig.h
rm ftconfig.tmp])
AC_CONFIG_HEADERS([ftconfig.h])
# create the Unix-specific sub-Makefiles `builds/unix/unix-def.mk'
# and `builds/unix/unix-cc.mk' that will be used by the build system
@ -1174,10 +1166,6 @@ AC_CONFIG_HEADERS([ftconfig.h:ftconfig.in],
AC_CONFIG_FILES([unix-cc.mk:unix-cc.in
unix-def.mk:unix-def.in])
# re-generate the Jamfile to use libtool now
#
# AC_CONFIG_FILES([../../Jamfile:../../Jamfile.in])
AC_OUTPUT
AC_MSG_NOTICE([
@ -1193,9 +1181,9 @@ Library configuration:
# Warn if docwriter is not installed
if test $have_docwriter = no; then
AC_MSG_NOTICE([
Warning: \`make refdoc' will fail since pip package \`docwriter' is not
installed. To install, run \`$PIP install docwriter', or to use a Python
AC_MSG_WARN([
\`make refdoc' will fail since pip package \`docwriter' is not installed.
To install, run \`$PIP install docwriter', or to use a Python
virtual environment, run \`make refdoc-venv' (requires pip package
\`virtualenv'). These operations require Python >= 3.5.
])

View File

@ -15,7 +15,7 @@
# generated by Autoconf, under the same distribution terms as the rest of
# that program.
#
# serial 4
# serial 5
# AC_CHECK_FT2([MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
# Test for FreeType 2, and define FT2_CFLAGS and FT2_LIBS.
@ -116,7 +116,7 @@ AC_DEFUN([AC_CHECK_FT2],
AC_LANG_SOURCE([[
#include <ft2build.h>
#include FT_FREETYPE_H
#include <freetype/freetype.h>
#include <stdio.h>
#include <stdlib.h>

View File

@ -0,0 +1,62 @@
/****************************************************************************
*
* ftconfig.h.in
*
* UNIX-specific configuration file (specification only).
*
* Copyright (C) 1996-2020 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 header file contains a number of macro definitions that are used by
* the rest of the engine. Most of the macros here are automatically
* determined at compile time, and you should not need to change it to port
* FreeType, except to compile the library with a non-ANSI compiler.
*
* Note however that if some specific modifications are needed, we advise
* you to place a modified copy in your build directory.
*
* The build directory is usually `builds/<system>`, and contains
* system-specific files that are always included first when building the
* library.
*
*/
#ifndef FTCONFIG_H_
#define FTCONFIG_H_
#include <ft2build.h>
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
#undef HAVE_UNISTD_H
#undef HAVE_FCNTL_H
#undef FT_USE_AUTOCONF_SIZEOF_TYPES
#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
#undef SIZEOF_INT
#undef SIZEOF_LONG
#define FT_SIZEOF_INT SIZEOF_INT
#define FT_SIZEOF_LONG SIZEOF_LONG
#endif /* FT_USE_AUTOCONF_SIZEOF_TYPES */
#include <freetype/config/integer-types.h>
#include <freetype/config/public-macros.h>
#include <freetype/config/mac-support.h>
#endif /* FTCONFIG_H_ */
/* END */

View File

@ -1,603 +0,0 @@
/****************************************************************************
*
* ftconfig.in
*
* UNIX-specific configuration file (specification only).
*
* Copyright (C) 1996-2020 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 header file contains a number of macro definitions that are used by
* the rest of the engine. Most of the macros here are automatically
* determined at compile time, and you should not need to change it to port
* FreeType, except to compile the library with a non-ANSI compiler.
*
* Note however that if some specific modifications are needed, we advise
* you to place a modified copy in your build directory.
*
* The build directory is usually `builds/<system>`, and contains
* system-specific files that are always included first when building the
* library.
*
*/
#ifndef FTCONFIG_H_
#define FTCONFIG_H_
#include <ft2build.h>
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
FT_BEGIN_HEADER
/**************************************************************************
*
* PLATFORM-SPECIFIC CONFIGURATION MACROS
*
* These macros can be toggled to suit a specific system. The current ones
* are defaults used to compile FreeType in an ANSI C environment (16bit
* compilers are also supported). Copy this file to your own
* `builds/<system>` directory, and edit it to port the engine.
*
*/
#undef HAVE_UNISTD_H
#undef HAVE_FCNTL_H
#undef HAVE_STDINT_H
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
/* is probably unexpected. */
/* */
/* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */
/* `char` type. */
#ifndef FT_CHAR_BIT
#define FT_CHAR_BIT CHAR_BIT
#endif
#undef FT_USE_AUTOCONF_SIZEOF_TYPES
#ifdef FT_USE_AUTOCONF_SIZEOF_TYPES
#undef SIZEOF_INT
#undef SIZEOF_LONG
#define FT_SIZEOF_INT SIZEOF_INT
#define FT_SIZEOF_LONG SIZEOF_LONG
#else /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
/* Following cpp computation of the bit length of `int` and `long` */
/* is copied from default `include/freetype/config/ftconfig.h`. */
/* If any improvement is required for this file, it should be */
/* applied to the original header file for the builders that do */
/* not use configure script. */
/* The size of an `int` type. */
#if FT_UINT_MAX == 0xFFFFUL
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
#elif FT_UINT_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `int' type!"
#endif
/* The size of a `long` type. A five-byte `long` (as used e.g. on the */
/* DM642) is recognized but avoided. */
#if FT_ULONG_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `long' type!"
#endif
#endif /* !FT_USE_AUTOCONF_SIZEOF_TYPES */
/* `FT_UNUSED` indicates that a given parameter is not used -- */
/* this is only used to get rid of unpleasant compiler warnings. */
#ifndef FT_UNUSED
#define FT_UNUSED( arg ) ( (arg) = (arg) )
#endif
/**************************************************************************
*
* AUTOMATIC CONFIGURATION MACROS
*
* These macros are computed from the ones defined above. Don't touch
* their definition, unless you know precisely what you are doing. No
* porter should need to mess with them.
*
*/
/**************************************************************************
*
* Mac support
*
* This is the only necessary change, so it is defined here instead
* providing a new configuration file.
*/
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
/* No Carbon frameworks for 64bit 10.4.x. */
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
/* so guess the system version by maximum errno before inclusion. */
#include <errno.h>
#ifdef ECANCELED /* defined since 10.2 */
#include "AvailabilityMacros.h"
#endif
#if defined( __LP64__ ) && \
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
/undef FT_MACINTOSH
#endif
#elif defined( __SC__ ) || defined( __MRC__ )
/* Classic MacOS compilers */
#include "ConditionalMacros.h"
#if TARGET_OS_MAC
#define FT_MACINTOSH 1
#endif
#endif
/* Fix compiler warning with sgi compiler. */
#if defined( __sgi ) && !defined( __GNUC__ )
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
#pragma set woff 3505
#endif
#endif
/**************************************************************************
*
* @section:
* basic_types
*
*/
/**************************************************************************
*
* @type:
* FT_Int16
*
* @description:
* A typedef for a 16bit signed integer type.
*/
typedef signed short FT_Int16;
/**************************************************************************
*
* @type:
* FT_UInt16
*
* @description:
* A typedef for a 16bit unsigned integer type.
*/
typedef unsigned short FT_UInt16;
/* */
/* this #if 0 ... #endif clause is for documentation purposes */
#if 0
/**************************************************************************
*
* @type:
* FT_Int32
*
* @description:
* A typedef for a 32bit signed integer type. The size depends on the
* configuration.
*/
typedef signed XXX FT_Int32;
/**************************************************************************
*
* @type:
* FT_UInt32
*
* A typedef for a 32bit unsigned integer type. The size depends on the
* configuration.
*/
typedef unsigned XXX FT_UInt32;
/**************************************************************************
*
* @type:
* FT_Int64
*
* A typedef for a 64bit signed integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef signed XXX FT_Int64;
/**************************************************************************
*
* @type:
* FT_UInt64
*
* A typedef for a 64bit unsigned integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef unsigned XXX FT_UInt64;
/* */
#endif
#if FT_SIZEOF_INT == 4
typedef signed int FT_Int32;
typedef unsigned int FT_UInt32;
#elif FT_SIZEOF_LONG == 4
typedef signed long FT_Int32;
typedef unsigned long FT_UInt32;
#else
#error "no 32bit type found -- please check your configuration files"
#endif
/* look up an integer type that is at least 32~bits */
#if FT_SIZEOF_INT >= 4
typedef int FT_Fast;
typedef unsigned int FT_UFast;
#elif FT_SIZEOF_LONG >= 4
typedef long FT_Fast;
typedef unsigned long FT_UFast;
#endif
/* determine whether we have a 64-bit `int` type for platforms without */
/* Autoconf */
#if FT_SIZEOF_LONG == 8
/* `FT_LONG64` must be defined if a 64-bit type is available */
#define FT_LONG64
#define FT_INT64 long
#define FT_UINT64 unsigned long
/* we handle the LLP64 scheme separately for GCC and clang, */
/* suppressing the `long long` warning */
#elif ( FT_SIZEOF_LONG == 4 ) && \
defined( HAVE_LONG_LONG_INT ) && \
defined( __GNUC__ )
#pragma GCC diagnostic ignored "-Wlong-long"
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
/**************************************************************************
*
* A 64-bit data type may create compilation problems if you compile in
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
* `__STDC__` is defined. You can however ignore this rule by defining the
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
*/
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __BORLANDC__ ) /* Borland C++ */
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
/* to test the compiler version. */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __WATCOMC__ ) /* Watcom C++ */
/* Watcom doesn't provide 64-bit data types */
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( __GNUC__ )
/* GCC provides the `long long` type */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#endif /* __STDC_VERSION__ >= 199901L */
#endif /* FT_SIZEOF_LONG == 8 */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
#ifdef _WIN64
/* only 64bit Windows uses the LLP64 data model, i.e., */
/* 32bit integers, 64bit pointers */
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
#else
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
#endif
/**************************************************************************
*
* miscellaneous
*
*/
#define FT_BEGIN_STMNT do {
#define FT_END_STMNT } while ( 0 )
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
/* `typeof` condition taken from gnulib's `intprops.h` header file */
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
defined( __IBM__TYPEOF__ ) ) || \
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
/* respectively, a function that gets used only within the scope of a */
/* module. Normally, both the header and source code files for such a */
/* function are within a single module directory. */
/* */
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
/* `FT_LOCAL_ARRAY_DEF`. */
/* */
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x
#define FT_LOCAL_DEF( x ) static x
#else
#ifdef __cplusplus
#define FT_LOCAL( x ) extern "C" x
#define FT_LOCAL_DEF( x ) extern "C" x
#else
#define FT_LOCAL( x ) extern x
#define FT_LOCAL_DEF( x ) x
#endif
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
#define FT_LOCAL_ARRAY( x ) extern const x
#define FT_LOCAL_ARRAY_DEF( x ) const x
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
/* functions that are used in more than a single module. In the */
/* current setup this implies that the declaration is in a header file */
/* in the `include/freetype/internal` directory, and the function body */
/* is in a file in `src/base`. */
/* */
#ifndef FT_BASE
#ifdef __cplusplus
#define FT_BASE( x ) extern "C" x
#else
#define FT_BASE( x ) extern x
#endif
#endif /* !FT_BASE */
#ifndef FT_BASE_DEF
#ifdef __cplusplus
#define FT_BASE_DEF( x ) x
#else
#define FT_BASE_DEF( x ) x
#endif
#endif /* !FT_BASE_DEF */
/* When compiling FreeType as a DLL or DSO with hidden visibility */
/* some systems/compilers need a special attribute in front OR after */
/* the return type of function declarations. */
/* */
/* Two macros are used within the FreeType source code to define */
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
/* */
/* - `FT_EXPORT( return_type )` */
/* */
/* is used in a function declaration, as in */
/* */
/* ``` */
/* FT_EXPORT( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ); */
/* ``` */
/* */
/* - `FT_EXPORT_DEF( return_type )` */
/* */
/* is used in a function definition, as in */
/* */
/* ``` */
/* FT_EXPORT_DEF( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ) */
/* { */
/* ... some code ... */
/* return FT_Err_Ok; */
/* } */
/* ``` */
/* */
/* You can provide your own implementation of `FT_EXPORT` and */
/* `FT_EXPORT_DEF` here if you want. */
/* */
/* To export a variable, use `FT_EXPORT_VAR`. */
/* */
#ifndef FT_EXPORT
#ifdef FT2_BUILD_LIBRARY
#if defined( _WIN32 ) && defined( DLL_EXPORT )
#define FT_EXPORT( x ) __declspec( dllexport ) x
#elif defined( __GNUC__ ) && __GNUC__ >= 4
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
#define FT_EXPORT( x ) __global x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#else
#if defined( _WIN32 ) && defined( DLL_IMPORT )
#define FT_EXPORT( x ) __declspec( dllimport ) x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#endif
#endif /* !FT_EXPORT */
#ifndef FT_EXPORT_DEF
#ifdef __cplusplus
#define FT_EXPORT_DEF( x ) extern "C" x
#else
#define FT_EXPORT_DEF( x ) extern x
#endif
#endif /* !FT_EXPORT_DEF */
#ifndef FT_EXPORT_VAR
#ifdef __cplusplus
#define FT_EXPORT_VAR( x ) extern "C" x
#else
#define FT_EXPORT_VAR( x ) extern x
#endif
#endif /* !FT_EXPORT_VAR */
/* The following macros are needed to compile the library with a */
/* C++ compiler and with 16bit compilers. */
/* */
/* This is special. Within C++, you must specify `extern "C"` for */
/* functions which are used via function pointers, and you also */
/* must do that for structures which contain function pointers to */
/* assure C linkage -- it's not possible to have (local) anonymous */
/* functions which are accessed by (global) function pointers. */
/* */
/* */
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
/* located in the same source code file as the structure that uses */
/* it. */
/* */
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
/* and define a callback function, respectively, in a similar way */
/* as FT_BASE and FT_BASE_DEF work. */
/* */
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
/* contains pointers to callback functions. */
/* */
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
/* that contains pointers to callback functions. */
/* */
/* */
/* Some 16bit compilers have to redefine these macros to insert */
/* the infamous `_cdecl` or `__fastcall` declarations. */
/* */
#ifndef FT_CALLBACK_DEF
#ifdef __cplusplus
#define FT_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_CALLBACK_DEF( x ) static x
#endif
#endif /* FT_CALLBACK_DEF */
#ifndef FT_BASE_CALLBACK
#ifdef __cplusplus
#define FT_BASE_CALLBACK( x ) extern "C" x
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_BASE_CALLBACK( x ) extern x
#define FT_BASE_CALLBACK_DEF( x ) x
#endif
#endif /* FT_BASE_CALLBACK */
#ifndef FT_CALLBACK_TABLE
#ifdef __cplusplus
#define FT_CALLBACK_TABLE extern "C"
#define FT_CALLBACK_TABLE_DEF extern "C"
#else
#define FT_CALLBACK_TABLE extern
#define FT_CALLBACK_TABLE_DEF /* nothing */
#endif
#endif /* FT_CALLBACK_TABLE */
FT_END_HEADER
#endif /* FTCONFIG_H_ */
/* END */

View File

@ -18,12 +18,12 @@
#include <ft2build.h>
/* we use our special ftconfig.h file, not the standard one */
#include <ftconfig.h>
#include FT_INTERNAL_DEBUG_H
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
#include FT_INTERNAL_STREAM_H
#include FT_CONFIG_CONFIG_H
#include <freetype/internal/ftdebug.h>
#include <freetype/ftsystem.h>
#include <freetype/fterrors.h>
#include <freetype/fttypes.h>
#include <freetype/internal/ftstream.h>
/* memory-mapping includes and definitions */
#ifdef HAVE_UNISTD_H
@ -351,7 +351,7 @@
stream->read = 0;
FT_TRACE1(( "FT_Stream_Open:" ));
FT_TRACE1(( " opened `%s' (%d bytes) successfully\n",
FT_TRACE1(( " opened `%s' (%ld bytes) successfully\n",
filepathname, stream->size ));
return FT_Err_Ok;

View File

@ -39,21 +39,6 @@
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
FT_BEGIN_HEADER
/**************************************************************************
*
* PLATFORM-SPECIFIC CONFIGURATION MACROS
*
* These macros can be toggled to suit a specific system. The current ones
* are defaults used to compile FreeType in an ANSI C environment (16bit
* compilers are also supported). Copy this file to your own
* `builds/<system>` directory, and edit it to port the engine.
*
*/
#define HAVE_UNISTD_H 1
#define HAVE_FCNTL_H 1
@ -63,491 +48,9 @@ FT_BEGIN_HEADER
#define FT_SIZEOF_INT 4
#define FT_SIZEOF_LONG 4
/* `FT_UNUSED` indicates that a given parameter is not used -- */
/* this is only used to get rid of unpleasant compiler warnings. */
#ifndef FT_UNUSED
#define FT_UNUSED( arg ) ( (arg) = (arg) )
#endif
/**************************************************************************
*
* AUTOMATIC CONFIGURATION MACROS
*
* These macros are computed from the ones defined above. Don't touch
* their definition, unless you know precisely what you are doing. No
* porter should need to mess with them.
*
*/
/**************************************************************************
*
* Mac support
*
* This is the only necessary change, so it is defined here instead
* providing a new configuration file.
*/
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
/* No Carbon frameworks for 64bit 10.4.x. */
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
/* so guess the system version by maximum errno before inclusion. */
#include <errno.h>
#ifdef ECANCELED /* defined since 10.2 */
#include "AvailabilityMacros.h"
#endif
#if defined( __LP64__ ) && \
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
#undef FT_MACINTOSH
#endif
#elif defined( __SC__ ) || defined( __MRC__ )
/* Classic MacOS compilers */
#include "ConditionalMacros.h"
#if TARGET_OS_MAC
#define FT_MACINTOSH 1
#endif
#endif
/* Fix compiler warning with sgi compiler. */
#if defined( __sgi ) && !defined( __GNUC__ )
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
#pragma set woff 3505
#endif
#endif
/**************************************************************************
*
* @section:
* basic_types
*
*/
/**************************************************************************
*
* @type:
* FT_Int16
*
* @description:
* A typedef for a 16bit signed integer type.
*/
typedef signed short FT_Int16;
/**************************************************************************
*
* @type:
* FT_UInt16
*
* @description:
* A typedef for a 16bit unsigned integer type.
*/
typedef unsigned short FT_UInt16;
/* */
/* this #if 0 ... #endif clause is for documentation purposes */
#if 0
/**************************************************************************
*
* @type:
* FT_Int32
*
* @description:
* A typedef for a 32bit signed integer type. The size depends on the
* configuration.
*/
typedef signed XXX FT_Int32;
/**************************************************************************
*
* @type:
* FT_UInt32
*
* A typedef for a 32bit unsigned integer type. The size depends on the
* configuration.
*/
typedef unsigned XXX FT_UInt32;
/**************************************************************************
*
* @type:
* FT_Int64
*
* A typedef for a 64bit signed integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef signed XXX FT_Int64;
/**************************************************************************
*
* @type:
* FT_UInt64
*
* A typedef for a 64bit unsigned integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef unsigned XXX FT_UInt64;
/* */
#endif
#if FT_SIZEOF_INT == 4
typedef signed int FT_Int32;
typedef unsigned int FT_UInt32;
#elif FT_SIZEOF_LONG == 4
typedef signed long FT_Int32;
typedef unsigned long FT_UInt32;
#else
#error "no 32bit type found -- please check your configuration files"
#endif
/* look up an integer type that is at least 32~bits */
#if FT_SIZEOF_INT >= 4
typedef int FT_Fast;
typedef unsigned int FT_UFast;
#elif FT_SIZEOF_LONG >= 4
typedef long FT_Fast;
typedef unsigned long FT_UFast;
#endif
/* determine whether we have a 64-bit `int` type for platforms without */
/* Autoconf */
#if FT_SIZEOF_LONG == 8
/* `FT_LONG64` must be defined if a 64-bit type is available */
#define FT_LONG64
#define FT_INT64 long
#define FT_UINT64 unsigned long
/* we handle the LLP64 scheme separately for GCC and clang, */
/* suppressing the `long long` warning */
#elif ( FT_SIZEOF_LONG == 4 ) && \
defined( HAVE_LONG_LONG_INT ) && \
defined( __GNUC__ )
#pragma GCC diagnostic ignored "-Wlong-long"
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
/**************************************************************************
*
* A 64-bit data type may create compilation problems if you compile in
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
* `__STDC__` is defined. You can however ignore this rule by defining the
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
*/
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __BORLANDC__ ) /* Borland C++ */
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
/* to test the compiler version. */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __WATCOMC__ ) /* Watcom C++ */
/* Watcom doesn't provide 64-bit data types */
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( __GNUC__ )
/* GCC provides the `long long` type */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#endif /* __STDC_VERSION__ >= 199901L */
#endif /* FT_SIZEOF_LONG == 8 */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
#ifdef _WIN64
/* only 64bit Windows uses the LLP64 data model, i.e., */
/* 32bit integers, 64bit pointers */
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
#else
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
#endif
/**************************************************************************
*
* miscellaneous
*
*/
#define FT_BEGIN_STMNT do {
#define FT_END_STMNT } while ( 0 )
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
/* `typeof` condition taken from gnulib's `intprops.h` header file */
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
defined( __IBM__TYPEOF__ ) ) || \
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
/* respectively, a function that gets used only within the scope of a */
/* module. Normally, both the header and source code files for such a */
/* function are within a single module directory. */
/* */
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
/* `FT_LOCAL_ARRAY_DEF`. */
/* */
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x
#define FT_LOCAL_DEF( x ) static x
#else
#ifdef __cplusplus
#define FT_LOCAL( x ) extern "C" x
#define FT_LOCAL_DEF( x ) extern "C" x
#else
#define FT_LOCAL( x ) extern x
#define FT_LOCAL_DEF( x ) x
#endif
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
#define FT_LOCAL_ARRAY( x ) extern const x
#define FT_LOCAL_ARRAY_DEF( x ) const x
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
/* functions that are used in more than a single module. In the */
/* current setup this implies that the declaration is in a header file */
/* in the `include/freetype/internal` directory, and the function body */
/* is in a file in `src/base`. */
/* */
#ifndef FT_BASE
#ifdef __cplusplus
#define FT_BASE( x ) extern "C" x
#else
#define FT_BASE( x ) extern x
#endif
#endif /* !FT_BASE */
#ifndef FT_BASE_DEF
#ifdef __cplusplus
#define FT_BASE_DEF( x ) x
#else
#define FT_BASE_DEF( x ) x
#endif
#endif /* !FT_BASE_DEF */
/* When compiling FreeType as a DLL or DSO with hidden visibility */
/* some systems/compilers need a special attribute in front OR after */
/* the return type of function declarations. */
/* */
/* Two macros are used within the FreeType source code to define */
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
/* */
/* - `FT_EXPORT( return_type )` */
/* */
/* is used in a function declaration, as in */
/* */
/* ``` */
/* FT_EXPORT( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ); */
/* ``` */
/* */
/* - `FT_EXPORT_DEF( return_type )` */
/* */
/* is used in a function definition, as in */
/* */
/* ``` */
/* FT_EXPORT_DEF( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ) */
/* { */
/* ... some code ... */
/* return FT_Err_Ok; */
/* } */
/* ``` */
/* */
/* You can provide your own implementation of `FT_EXPORT` and */
/* `FT_EXPORT_DEF` here if you want. */
/* */
/* To export a variable, use `FT_EXPORT_VAR`. */
/* */
#ifndef FT_EXPORT
#ifdef FT2_BUILD_LIBRARY
#if defined( _WIN32 ) && defined( DLL_EXPORT )
#define FT_EXPORT( x ) __declspec( dllexport ) x
#elif defined( __GNUC__ ) && __GNUC__ >= 4
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
#define FT_EXPORT( x ) __global x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#else
#if defined( _WIN32 ) && defined( DLL_IMPORT )
#define FT_EXPORT( x ) __declspec( dllimport ) x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#endif
#endif /* !FT_EXPORT */
#ifndef FT_EXPORT_DEF
#ifdef __cplusplus
#define FT_EXPORT_DEF( x ) extern "C" x
#else
#define FT_EXPORT_DEF( x ) extern x
#endif
#endif /* !FT_EXPORT_DEF */
#ifndef FT_EXPORT_VAR
#ifdef __cplusplus
#define FT_EXPORT_VAR( x ) extern "C" x
#else
#define FT_EXPORT_VAR( x ) extern x
#endif
#endif /* !FT_EXPORT_VAR */
/* The following macros are needed to compile the library with a */
/* C++ compiler and with 16bit compilers. */
/* */
/* This is special. Within C++, you must specify `extern "C"` for */
/* functions which are used via function pointers, and you also */
/* must do that for structures which contain function pointers to */
/* assure C linkage -- it's not possible to have (local) anonymous */
/* functions which are accessed by (global) function pointers. */
/* */
/* */
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
/* located in the same source code file as the structure that uses */
/* it. */
/* */
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
/* and define a callback function, respectively, in a similar way */
/* as FT_BASE and FT_BASE_DEF work. */
/* */
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
/* contains pointers to callback functions. */
/* */
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
/* that contains pointers to callback functions. */
/* */
/* */
/* Some 16bit compilers have to redefine these macros to insert */
/* the infamous `_cdecl` or `__fastcall` declarations. */
/* */
#ifndef FT_CALLBACK_DEF
#ifdef __cplusplus
#define FT_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_CALLBACK_DEF( x ) static x
#endif
#endif /* FT_CALLBACK_DEF */
#ifndef FT_BASE_CALLBACK
#ifdef __cplusplus
#define FT_BASE_CALLBACK( x ) extern "C" x
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_BASE_CALLBACK( x ) extern x
#define FT_BASE_CALLBACK_DEF( x ) x
#endif
#endif /* FT_BASE_CALLBACK */
#ifndef FT_CALLBACK_TABLE
#ifdef __cplusplus
#define FT_CALLBACK_TABLE extern "C"
#define FT_CALLBACK_TABLE_DEF extern "C"
#else
#define FT_CALLBACK_TABLE extern
#define FT_CALLBACK_TABLE_DEF /* nothing */
#endif
#endif /* FT_CALLBACK_TABLE */
FT_END_HEADER
#include <freetype/config/integer-types.h>
#include <freetype/config/public-macros.h>
#include <freetype/config/mac-support.h>
#endif /* FTCONFIG_H_ */

View File

@ -19,11 +19,11 @@
#include <ft2build.h>
/* we use our special ftconfig.h file, not the standard one */
#include <ftconfig.h>
#include FT_INTERNAL_DEBUG_H
#include FT_SYSTEM_H
#include FT_ERRORS_H
#include FT_TYPES_H
#include FT_INTERNAL_OBJECTS_H
#include <freetype/internal/ftdebug.h>
#include <freetype/ftsystem.h>
#include <freetype/fterrors.h>
#include <freetype/fttypes.h>
#include <freetype/internal/ftobjs.h>
/* memory-mapping includes and definitions */
#ifdef HAVE_UNISTD_H

View File

@ -41,9 +41,8 @@
*/
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_INTERNAL_DEBUG_H
#include <freetype/freetype.h>
#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
@ -154,7 +153,7 @@
static const char* ft_trace_toggles[trace_count + 1] =
{
#include FT_INTERNAL_TRACE_H
#include <freetype/internal/fttrace.h>
NULL
};

View File

@ -21,7 +21,7 @@ the following targets:
<li>PPC/SP WM6 (Windows Mobile 6)</li>
</ul>
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
It compiles the following libraries from the FreeType 2.10.4 sources:</p>
<ul>
<pre>

View File

@ -21,7 +21,7 @@ the following targets:
<li>PPC/SP WM6 (Windows Mobile 6)</li>
</ul>
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
It compiles the following libraries from the FreeType 2.10.4 sources:</p>
<ul>
<pre>

View File

@ -41,9 +41,8 @@
*/
#include <ft2build.h>
#include FT_FREETYPE_H
#include FT_INTERNAL_DEBUG_H
#include <freetype/freetype.h>
#include <freetype/internal/ftdebug.h>
#ifdef FT_DEBUG_LEVEL_ERROR
@ -138,7 +137,7 @@
static const char* ft_trace_toggles[trace_count + 1] =
{
#include FT_INTERNAL_TRACE_H
#include <freetype/internal/fttrace.h>
NULL
};

View File

@ -12,7 +12,7 @@
<p>This directory contains solution and project files for
Visual&nbsp;C++&nbsp;2010 or newer, named <tt>freetype.sln</tt>,
and <tt>freetype.vcxproj</tt>. It compiles the following libraries
from the FreeType 2.10.2 sources:</p>
from the FreeType 2.10.4 sources:</p>
<ul>
<li>freetype.dll using 'Release' or 'Debug' configurations</li>

View File

@ -12,7 +12,7 @@
<p>This directory contains project files <tt>freetype.dsp</tt> for
Visual C++ 6.0, and <tt>freetype.vcproj</tt> for Visual C++ 2002
through 2008, which you might need to upgrade automatically.
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
It compiles the following libraries from the FreeType 2.10.4 sources:</p>
<ul>
<li>freetype.dll using 'Release' or 'Debug' configurations</li>

View File

@ -21,7 +21,7 @@ the following targets:
<li>PPC/SP WM6 (Windows Mobile 6)</li>
</ul>
It compiles the following libraries from the FreeType 2.10.2 sources:</p>
It compiles the following libraries from the FreeType 2.10.4 sources:</p>
<ul>
<pre>

View File

@ -42,7 +42,7 @@ FT_BEGIN_HEADER
* the name of a directory that is included _before_ the FreeType include
* path during compilation.
*
* The default FreeType Makefiles and Jamfiles use the build directory
* The default FreeType Makefiles use the build directory
* `builds/<system>` by default, but you can easily change that for your
* own projects.
*
@ -121,10 +121,8 @@ FT_BEGIN_HEADER
* mitigate color fringes inherent to this technology, you also need to
* explicitly set up LCD filtering.
*
* Note that this feature is covered by several Microsoft patents and
* should not be activated in any default build of the library. When this
* macro is not defined, FreeType offers alternative LCD rendering
* technology that produces excellent output without LCD filtering.
* When this macro is not defined, FreeType offers alternative LCD
* rendering technology that produces excellent output.
*/
/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
@ -542,7 +540,7 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support coloured
* Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support colored
* outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt'
* module (namely TrueType~& OpenType).
*/

View File

@ -1,3 +1,67 @@
CHANGES BETWEEN 2.10.3 and 2.10.4
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
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
@ -246,7 +310,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.

View File

@ -8,13 +8,15 @@ 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.10.3) 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.

View File

@ -38,7 +38,7 @@ 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:
following macros defined in `freetype.h':
- FREETYPE_MAJOR: major release number
- FREETYPE_MINOR: minor release number
@ -60,6 +60,8 @@ found on _most_ systems, but not all of them:
release libtool so
-------------------------------
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
@ -99,7 +101,7 @@ other release numbers.
AC_TRY_CPP([
#include <ft2build.h>
#include FT_FREETYPE_H
#include <freetype/freetype.h>
#if FREETYPE_MAJOR*10000 + FREETYPE_MINOR*100 + FREETYPE_PATCH < 21002
# error FreeType version too low.

View File

@ -1,4 +1,4 @@
.TH FREETYPE-CONFIG 1 "May 2020" "FreeType 2.10.2"
.TH FREETYPE-CONFIG 1 "October 2020" "FreeType 2.10.4"
.
.
.SH NAME

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>FreeType-2.10.2 API Reference</title>
<title>FreeType-2.10.4 API Reference</title>
@ -94,7 +94,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="/." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="/." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="/images/favico.ico" width="24" height="24">
@ -107,7 +107,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -164,12 +164,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="/." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="/." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="/images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The auto-hinter - FreeType-2.10.2 API Reference</title>
<title>The auto-hinter - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Base Interface - FreeType-2.10.2 API Reference</title>
<title>Base Interface - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -2518,6 +2518,7 @@
<tr><td class="val" id="bbox">bbox</td><td class="desc">
<p>The font bounding box. Coordinates are expressed in font units (see <code>units_per_EM</code>). The box is large enough to contain any glyph from the font. Thus, <code>bbox.yMax</code> can be seen as the &lsquo;maximum ascender&rsquo;, and <code>bbox.yMin</code> as the &lsquo;minimum descender&rsquo;. Only relevant for scalable formats.</p>
<p>Note that the bounding box might be off by (at least) one pixel for hinted fonts. See <code><a href="ft2-base_interface.html#ft_size_metrics">FT_Size_Metrics</a></code> for further discussion.</p>
<p>Note that the bounding box does not vary in OpenType variable fonts and should only be used in relation to the default instance.</p>
</td></tr>
<tr><td class="val" id="units_per_em">units_per_EM</td><td class="desc">
<p>The number of font units per EM square for this face. This is typically 2048 for TrueType fonts, and 1000 for Type&nbsp;1 fonts. Only relevant for scalable formats.</p>
@ -3884,6 +3885,7 @@
<h4>note</h4>
<p>This function is provided as a convenience, but keep in mind that <code><a href="ft2-basic_types.html#ft_matrix">FT_Matrix</a></code> coefficients are only 16.16 fixed point values, which can limit the accuracy of the results. Using floating-point computations to perform the transform directly in client code instead will always yield better numbers.</p>
<p>The transformation is only applied to scalable image formats after the glyph has been loaded. It means that hinting is unaltered by the transformation and is performed on the character size given in the last call to <code><a href="ft2-base_interface.html#ft_set_char_size">FT_Set_Char_Size</a></code> or <code><a href="ft2-base_interface.html#ft_set_pixel_sizes">FT_Set_Pixel_Sizes</a></code>.</p>
<p>Note that this also transforms the <code>face.glyph.advance</code> field, but <strong>not</strong> the values in <code>face.glyph.metrics</code>.</p>
<hr>
@ -4207,7 +4209,6 @@
<h4>note</h4>
<p>Should you define <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> in your <code>ftoption.h</code>, which enables patented ClearType-style rendering, the LCD-optimized glyph bitmaps should be filtered to reduce color fringes inherent to this technology. You can either set up LCD filtering with <code><a href="ft2-lcd_rendering.html#ft_library_setlcdfilter">FT_Library_SetLcdFilter</a></code> or <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code>, or do the filtering yourself. The default FreeType LCD rendering technology does not require filtering.</p>
<p>The selected render mode only affects vector glyphs of a font. Embedded bitmaps often have a different pixel mode like <code><a href="ft2-basic_types.html#ft_pixel_mode">FT_PIXEL_MODE_MONO</a></code>. You can use <code><a href="ft2-bitmap_handling.html#ft_bitmap_convert">FT_Bitmap_Convert</a></code> to transform them into 8-bit pixmaps.</p>
<hr>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Basic Data Types - FreeType-2.10.2 API Reference</title>
<title>Basic Data Types - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1672,7 +1672,6 @@
<hr>
<h2 id="ft_int16">FT_Int16<a class="headerlink" href="#ft_int16" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> <span class="keyword">short</span> <b>FT_Int16</b>;
</code></pre></div>
@ -1680,7 +1679,6 @@
<hr>
<h2 id="ft_uint16">FT_UInt16<a class="headerlink" href="#ft_uint16" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> <span class="keyword">short</span> <b>FT_UInt16</b>;
</code></pre></div>
@ -1688,7 +1686,6 @@
<hr>
<h2 id="ft_int32">FT_Int32<a class="headerlink" href="#ft_int32" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX <b>FT_Int32</b>;
</code></pre></div>
@ -1696,21 +1693,18 @@
<hr>
<h2 id="ft_uint32">FT_UInt32<a class="headerlink" href="#ft_uint32" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX <b>FT_UInt32</b>;
</code></pre></div>
<hr>
<h2 id="ft_int64">FT_Int64<a class="headerlink" href="#ft_int64" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">signed</span> XXX <b>FT_Int64</b>;
</code></pre></div>
<hr>
<h2 id="ft_uint64">FT_UInt64<a class="headerlink" href="#ft_uint64" title="Permanent link">&para;</a></h2>
<p>Defined in FT_CONFIG_CONFIG_H (freetype/config/ftconfig.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">unsigned</span> XXX <b>FT_UInt64</b>;
</code></pre></div>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>BDF and PCF Files - FreeType-2.10.2 API Reference</title>
<title>BDF and PCF Files - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Bitmap Handling - FreeType-2.10.2 API Reference</title>
<title>Bitmap Handling - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>BZIP2 Streams - FreeType-2.10.2 API Reference</title>
<title>BZIP2 Streams - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1084,6 +1084,8 @@
<hr />
<h1 id="bzip2-streams">BZIP2 Streams<a class="headerlink" href="#bzip2-streams" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>In certain builds of the library, bzip2 compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a bzip2 compressed stream from it and re-open the face with it.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance.</p>
<p>This section contains the declaration of Bzip2-specific functions.</p>
<h2 id="ft_stream_openbzip2">FT_Stream_OpenBzip2<a class="headerlink" href="#ft_stream_openbzip2" title="Permanent link">&para;</a></h2>
<p>Defined in FT_BZIP2_H (freetype/ftbzip2.h).</p>
@ -1111,8 +1113,6 @@
<p>The source stream must be opened <em>before</em> calling this function.</p>
<p>Calling the internal function <code>FT_Stream_Close</code> on the new stream will <strong>not</strong> call <code>FT_Stream_Close</code> on the source stream. None of the stream objects will be released to the heap.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.</p>
<p>In certain builds of the library, bzip2 compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a bzip2 compressed stream from it and re-open the face with it.</p>
<p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with bzip2 support.</p>
<hr>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Cache Sub-System - FreeType-2.10.2 API Reference</title>
<title>Cache Sub-System - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The CFF driver - FreeType-2.10.2 API Reference</title>
<title>The CFF driver - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>CID Fonts - FreeType-2.10.2 API Reference</title>
<title>CID Fonts - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Glyph Color Management - FreeType-2.10.2 API Reference</title>
<title>Glyph Color Management - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Computations - FreeType-2.10.2 API Reference</title>
<title>Computations - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Error Code Values - FreeType-2.10.2 API Reference</title>
<title>Error Code Values - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Error Enumerations - FreeType-2.10.2 API Reference</title>
<title>Error Enumerations - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1112,7 +1112,7 @@
const char* err_msg;
} ft_errors[] =
#include FT_ERRORS_H
#include &lt;freetype/fterrors.h&gt;
</code></pre></div></p>
<p>An alternative to using an array is a switch statement.
<div class="highlight"><pre><span></span><code> #undef FTERRORS_H_

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Font Formats - FreeType-2.10.2 API Reference</title>
<title>Font Formats - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Gasp Table - FreeType-2.10.2 API Reference</title>
<title>Gasp Table - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Glyph Management - FreeType-2.10.2 API Reference</title>
<title>Glyph Management - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Glyph Stroker - FreeType-2.10.2 API Reference</title>
<title>Glyph Stroker - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1379,7 +1379,7 @@
<h1 id="glyph-stroker">Glyph Stroker<a class="headerlink" href="#glyph-stroker" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>This component generates stroked outlines of a given vectorial glyph. It also allows you to retrieve the &lsquo;outside&rsquo; and/or the &lsquo;inside&rsquo; borders of the stroke.</p>
<p>This can be useful to generate &lsquo;bordered&rsquo; glyph, i.e., glyphs displayed with a coloured (and anti-aliased) border around their shape.</p>
<p>This can be useful to generate &lsquo;bordered&rsquo; glyph, i.e., glyphs displayed with a colored (and anti-aliased) border around their shape.</p>
<h2 id="ft_stroker">FT_Stroker<a class="headerlink" href="#ft_stroker" title="Permanent link">&para;</a></h2>
<p>Defined in FT_STROKER_H (freetype/ftstroke.h).</p>
<div class = "codehilite"><pre><code> <span class="keyword">typedef</span> <span class="keyword">struct</span> FT_StrokerRec_* <b>FT_Stroker</b>;

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Unicode Variation Sequences - FreeType-2.10.2 API Reference</title>
<title>Unicode Variation Sequences - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>TrueTypeGX/AAT Validation - FreeType-2.10.2 API Reference</title>
<title>TrueTypeGX/AAT Validation - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>GZIP Streams - FreeType-2.10.2 API Reference</title>
<title>GZIP Streams - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1098,6 +1098,8 @@
<hr />
<h1 id="gzip-streams">GZIP Streams<a class="headerlink" href="#gzip-streams" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>In certain builds of the library, gzip compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance.</p>
<p>This section contains the declaration of Gzip-specific functions.</p>
<h2 id="ft_stream_opengzip">FT_Stream_OpenGzip<a class="headerlink" href="#ft_stream_opengzip" title="Permanent link">&para;</a></h2>
<p>Defined in FT_GZIP_H (freetype/ftgzip.h).</p>
@ -1125,8 +1127,6 @@
<p>The source stream must be opened <em>before</em> calling this function.</p>
<p>Calling the internal function <code>FT_Stream_Close</code> on the new stream will <strong>not</strong> call <code>FT_Stream_Close</code> on the source stream. None of the stream objects will be released to the heap.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream.</p>
<p>In certain builds of the library, gzip compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a gzipped stream from it and re-open the face with it.</p>
<p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with zlib support.</p>
<hr>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Header File Macros - FreeType-2.10.2 API Reference</title>
<title>Header File Macros - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1756,13 +1756,17 @@
<hr />
<h1 id="header-file-macros">Header File Macros<a class="headerlink" href="#header-file-macros" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>The following macros are defined to the name of specific FreeType&nbsp;2 header files. They can be used directly in <code>#include</code> statements as in:
<p>In addition to the normal scheme of including header files like
<div class="highlight"><pre><span></span><code> #include &lt;freetype/freetype.h&gt;
#include &lt;freetype/ftmm.h&gt;
#include &lt;freetype/ftglyph.h&gt;
</code></pre></div></p>
<p>it is possible to used named macros instead. They can be used directly in <code>#include</code> statements as in
<div class="highlight"><pre><span></span><code> #include FT_FREETYPE_H
#include FT_MULTIPLE_MASTERS_H
#include FT_GLYPH_H
</code></pre></div></p>
<p>There are several reasons why we are now using macros to name public header files. The first one is that such macros are not limited to the infamous 8.3&nbsp;naming rule required by DOS (and <code>FT_MULTIPLE_MASTERS_H</code> is a lot more meaningful than <code>ftmm.h</code>).</p>
<p>The second reason is that it allows for more flexibility in the way FreeType&nbsp;2 is installed on a given system.</p>
<p>These macros were introduced to overcome the infamous 8.3&nbsp;naming rule required by DOS (and <code>FT_MULTIPLE_MASTERS_H</code> is a lot more meaningful than <code>ftmm.h</code>).</p>
<h2 id="ft_config_config_h">FT_CONFIG_CONFIG_H<a class="headerlink" href="#ft_config_config_h" title="Permanent link">&para;</a></h2>
<div class = "codehilite"><pre><code>#<span class="keyword">ifndef</span> <b>FT_CONFIG_CONFIG_H</b>
#<span class="keyword">define</span> <b>FT_CONFIG_CONFIG_H</b> &lt;freetype/config/ftconfig.h&gt;

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>FreeType's header inclusion scheme - FreeType-2.10.2 API Reference</title>
<title>FreeType's header inclusion scheme - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1070,13 +1070,12 @@
<hr />
<h1 id="freetypes-header-inclusion-scheme">FreeType's header inclusion scheme<a class="headerlink" href="#freetypes-header-inclusion-scheme" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>To be as flexible as possible (and for historical reasons), FreeType uses a very special inclusion scheme to load header files, for example
<p>To be as flexible as possible (and for historical reasons), you must load file <code>ft2build.h</code> first before other header files, for example
<div class="highlight"><pre><span></span><code> #include &lt;ft2build.h&gt;
#include FT_FREETYPE_H
#include FT_OUTLINE_H
#include &lt;freetype/freetype.h&gt;
#include &lt;freetype/ftoutln.h&gt;
</code></pre></div></p>
<p>A compiler and its preprocessor only needs an include path to find the file <code>ft2build.h</code>; the exact locations and names of the other FreeType header files are hidden by &lsquo;<a href="ft2-header_file_macros.html#header_file_macros">Header File Macros</a>&rsquo;, loaded by <code>ft2build.h</code>. The API documentation always gives the header macro name needed for a particular function.</p>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Incremental Loading - FreeType-2.10.2 API Reference</title>
<title>Incremental Loading - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Index - FreeType-2.10.2 API Reference</title>
<title>Index - FreeType-2.10.4 API Reference</title>
@ -89,7 +89,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#freetype-2102-api-reference" tabindex="0" class="md-skip">
<a href="#freetype-2104-api-reference" tabindex="0" class="md-skip">
Skip to content
</a>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1220,7 +1220,7 @@
<p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; Global Index</p>
<hr />
<h1 id="freetype-2102-api-reference">FreeType-2.10.2 API Reference<a class="headerlink" href="#freetype-2102-api-reference" title="Permanent link">&para;</a></h1>
<h1 id="freetype-2104-api-reference">FreeType-2.10.4 API Reference<a class="headerlink" href="#freetype-2104-api-reference" title="Permanent link">&para;</a></h1>
<h3 id="b">B<a class="headerlink" href="#b" title="Permanent link">&para;</a></h3>
<p><a href="ft2-bdf_fonts.html#bdf_property">BDF_Property</a><br />
<a href="ft2-bdf_fonts.html#bdf_propertytype">BDF_PROPERTY_TYPE_ATOM</a><br />
@ -1636,6 +1636,7 @@
<a href="ft2-outline_processing.html#ft_outline_movetofunc">FT_Outline_MoveToFunc</a><br />
<a href="ft2-outline_processing.html#ft_outline_new">FT_Outline_New</a><br />
<a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_NONE</a><br />
<a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_OVERLAP</a><br />
<a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_OWNER</a><br />
<a href="ft2-outline_processing.html#ft_outline_render">FT_Outline_Render</a><br />
<a href="ft2-outline_processing.html#ft_outline_reverse">FT_Outline_Reverse</a><br />
@ -2058,7 +2059,7 @@
<h3 id="w">W<a class="headerlink" href="#w" title="Permanent link">&para;</a></h3>
<p><a href="ft2-properties.html#warping">warping</a> </p>
<hr />
<div class="timestamp">generated on Sat May 9 05:14:28 2020 UTC</div>
<div class="timestamp">generated on Tue Oct 20 05:14:52 2020 UTC</div>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Glyph Layer Management - FreeType-2.10.2 API Reference</title>
<title>Glyph Layer Management - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1139,7 +1139,7 @@
<p>This is an interface to the &lsquo;COLR&rsquo; table in OpenType fonts to iteratively retrieve the colored glyph layers associated with the current glyph slot.</p>
<p><a href="https://docs.microsoft.com/en-us/typography/opentype/spec/colr">https://docs.microsoft.com/en-us/typography/opentype/spec/colr</a></p>
<p>The glyph layer data for a given glyph index, if present, provides an alternative, multi-colour glyph representation: Instead of rendering the outline or bitmap with the given glyph index, glyphs with the indices and colors returned by this function are rendered layer by layer.</p>
<p>The glyph layer data for a given glyph index, if present, provides an alternative, multi-color glyph representation: Instead of rendering the outline or bitmap with the given glyph index, glyphs with the indices and colors returned by this function are rendered layer by layer.</p>
<p>The returned elements are ordered in the z&nbsp;direction from bottom to top; the 'n'th element should be rendered with the associated palette color and blended on top of the already rendered layers (elements 0, 1, ..., n-1).</p>
<h4>input</h4>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Subpixel Rendering - FreeType-2.10.2 API Reference</title>
<title>Subpixel Rendering - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1140,7 +1140,7 @@
<hr />
<h1 id="subpixel-rendering">Subpixel Rendering<a class="headerlink" href="#subpixel-rendering" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>FreeType provides two alternative subpixel rendering technologies. Should you define <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> in your <code>ftoption.h</code> file, this enables patented ClearType-style rendering. Otherwise, Harmony LCD rendering is enabled. These technologies are controlled differently and API described below, although always available, performs its function when appropriate method is enabled and does nothing otherwise.</p>
<p>FreeType provides two alternative subpixel rendering technologies. Should you define <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> in your <code>ftoption.h</code> file, this enables ClearType-style rendering. Otherwise, Harmony LCD rendering is enabled. These technologies are controlled differently and API described below, although always available, performs its function when appropriate method is enabled and does nothing otherwise.</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&nbsp;3. Using the subpixels coverages unfiltered can create severe color fringes especially when rendering thin features. Indeed, to produce black-on-white text, the nearby color subpixels must be dimmed equally.</p>
<p>A good 5-tap FIR filter should be applied to subpixel coverages regardless of pixel boundaries and should have these properties:</p>
<ol>
@ -1210,7 +1210,7 @@
<a href="ft2-lcd_rendering.html#ft_lcdfilter">FT_LcdFilter</a> filter );
</code></pre></div>
<p>This function is used to apply color filtering to LCD decimated bitmaps, like the ones used when calling <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code> with <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD</a></code> or <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD_V</a></code>.</p>
<p>This function is used to change filter applied to LCD decimated bitmaps, like the ones used when calling <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code> with <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD</a></code> or <code><a href="ft2-base_interface.html#ft_render_mode">FT_RENDER_MODE_LCD_V</a></code>.</p>
<h4>input</h4>
<table class="fields">
@ -1228,8 +1228,8 @@
<p>FreeType error code. 0&nbsp;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 <code>filter</code> value other than <code><a href="ft2-lcd_rendering.html#ft_lcdfilter">FT_LCD_FILTER_NONE</a></code> in order to enable it.</p>
<p>Due to <strong>PATENTS</strong> covering subpixel rendering, this function doesn't do anything except returning <code>FT_Err_Unimplemented_Feature</code> if the configuration macro <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> is not defined in your build of the library, which should correspond to all default builds of FreeType.</p>
<p>Since 2.10.3 the LCD filtering is enabled with <code><a href="ft2-lcd_rendering.html#ft_lcdfilter">FT_LCD_FILTER_DEFAULT</a></code>. It is no longer necessary to call this function explicitly except to choose a different filter or disable filtering altogether with <code><a href="ft2-lcd_rendering.html#ft_lcdfilter">FT_LCD_FILTER_NONE</a></code>.</p>
<p>This function does nothing but returns <code>FT_Err_Unimplemented_Feature</code> if the configuration macro <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> is not defined in your build of the library.</p>
<h4>since</h4>
<p>2.3.0</p>
@ -1259,7 +1259,7 @@
<p>FreeType error code. 0&nbsp;means success.</p>
<h4>note</h4>
<p>Due to <strong>PATENTS</strong> covering subpixel rendering, this function doesn't do anything except returning <code>FT_Err_Unimplemented_Feature</code> if the configuration macro <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> is not defined in your build of the library, which should correspond to all default builds of FreeType.</p>
<p>This function does nothing but returns <code>FT_Err_Unimplemented_Feature</code> if the configuration macro <code>FT_CONFIG_OPTION_SUBPIXEL_RENDERING</code> is not defined in your build of the library.</p>
<p>LCD filter weights can also be set per face using <code><a href="ft2-base_interface.html#ft_face_properties">FT_Face_Properties</a></code> with <code><a href="ft2-parameter_tags.html#ft_param_tag_lcd_filter_weights">FT_PARAM_TAG_LCD_FILTER_WEIGHTS</a></code>.</p>
<h4>since</h4>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>List Processing - FreeType-2.10.2 API Reference</title>
<title>List Processing - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>LZW Streams - FreeType-2.10.2 API Reference</title>
<title>LZW Streams - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1084,6 +1084,8 @@
<hr />
<h1 id="lzw-streams">LZW Streams<a class="headerlink" href="#lzw-streams" title="Permanent link">&para;</a></h1>
<h2 id="synopsis">Synopsis<a class="headerlink" href="#synopsis" title="Permanent link">&para;</a></h2>
<p>In certain builds of the library, LZW compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a LZW stream from it and re-open the face with it.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream, which significantly undermines the performance.</p>
<p>This section contains the declaration of LZW-specific functions.</p>
<h2 id="ft_stream_openlzw">FT_Stream_OpenLZW<a class="headerlink" href="#ft_stream_openlzw" title="Permanent link">&para;</a></h2>
<p>Defined in FT_LZW_H (freetype/ftlzw.h).</p>
@ -1111,8 +1113,6 @@
<p>The source stream must be opened <em>before</em> calling this function.</p>
<p>Calling the internal function <code>FT_Stream_Close</code> on the new stream will <strong>not</strong> call <code>FT_Stream_Close</code> on the source stream. None of the stream objects will be released to the heap.</p>
<p>The stream implementation is very basic and resets the decompression process each time seeking backwards is needed within the stream</p>
<p>In certain builds of the library, LZW compression recognition is automatically handled when calling <code><a href="ft2-base_interface.html#ft_new_face">FT_New_Face</a></code> or <code><a href="ft2-base_interface.html#ft_open_face">FT_Open_Face</a></code>. This means that if no font driver is capable of handling the raw compressed file, the library will try to open a LZW stream from it and re-open the face with it.</p>
<p>This function may return <code>FT_Err_Unimplemented_Feature</code> if your build of FreeType was not compiled with LZW support.</p>
<hr>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Mac Specific Interface - FreeType-2.10.2 API Reference</title>
<title>Mac Specific Interface - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Module Management - FreeType-2.10.2 API Reference</title>
<title>Module Management - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1406,7 +1406,7 @@
psnames
raster1
sfnt
smooth, smooth-lcd, smooth-lcdv
smooth
truetype
type1
type42
@ -1763,7 +1763,7 @@
</code></pre></div></p>
<p>Example:
<div class="highlight"><pre><span></span><code> FREETYPE_PROPERTIES=truetype:interpreter-version=35 \
cff:no-stem-darkening=1 \
cff:no-stem-darkening=0 \
autofitter:warping=1
</code></pre></div></p>
<h4>inout</h4>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Multiple Masters - FreeType-2.10.2 API Reference</title>
<title>Multiple Masters - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>OpenType Validation - FreeType-2.10.2 API Reference</title>
<title>OpenType Validation - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Outline Processing - FreeType-2.10.2 API Reference</title>
<title>Outline Processing - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1831,9 +1831,7 @@
<p>FreeType error code. 0&nbsp;means success.</p>
<h4>note</h4>
<p>This advanced function uses <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> as an argument, allowing FreeType rasterizer to be used for direct composition, translucency, etc. You should know how to set up <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> for this function to work.</p>
<p>The field <code>params.source</code> will be set to <code>outline</code> before the scan converter is called, which means that the value you give to it is actually ignored.</p>
<p>The gray-level rasterizer always uses 256 gray levels. If you want less gray levels, you have to provide your own span callback. See the <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> value of the <code>flags</code> field in the <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> structure for more details.</p>
<p>This advanced function uses <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> as an argument. The field <code>params.source</code> will be set to <code>outline</code> before the scan converter is called, which means that the value you give to it is actually ignored. Either <code>params.target</code> must point to preallocated bitmap, or <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> must be set in <code>params.flags</code> allowing FreeType rasterizer to be used for direct composition, translucency, etc. See <code><a href="ft2-raster.html#ft_raster_params">FT_Raster_Params</a></code> for more details.</p>
<hr>
<h2 id="ft_outline_decompose">FT_Outline_Decompose<a class="headerlink" href="#ft_outline_decompose" title="Permanent link">&para;</a></h2>
@ -2108,6 +2106,7 @@
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_ignore_dropouts">FT_OUTLINE_IGNORE_DROPOUTS</a> 0x8
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_smart_dropouts">FT_OUTLINE_SMART_DROPOUTS</a> 0x10
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_include_stubs">FT_OUTLINE_INCLUDE_STUBS</a> 0x20
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_overlap">FT_OUTLINE_OVERLAP</a> 0x40
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_high_precision">FT_OUTLINE_HIGH_PRECISION</a> 0x100
#<span class="keyword">define</span> <a href="ft2-outline_processing.html#ft_outline_single_pass">FT_OUTLINE_SINGLE_PASS</a> 0x200
@ -2149,6 +2148,9 @@
<tr><td class="val" id="ft_outline_include_stubs">FT_OUTLINE_INCLUDE_STUBS</td><td class="desc">
<p>If set, turn pixels on for &lsquo;stubs&rsquo;, otherwise exclude them. Ignored if <code><a href="ft2-outline_processing.html#ft_outline_xxx">FT_OUTLINE_IGNORE_DROPOUTS</a></code> is set. See below for more information.</p>
</td></tr>
<tr><td class="val" id="ft_outline_overlap">FT_OUTLINE_OVERLAP</td><td class="desc">
<p>This flag indicates that this outline contains overlapping contrours and the anti-aliased renderer should perform oversampling to mitigate possible artifacts. This flag should <em>not</em> be set for well designed glyphs without overlaps because it quadruples the rendering time.</p>
</td></tr>
<tr><td class="val" id="ft_outline_high_precision">FT_OUTLINE_HIGH_PRECISION</td><td class="desc">
<p>This flag indicates that the scan-line converter should try to convert this outline to bitmaps with the highest possible quality. It is typically set for small character sizes. Note that this is only a hint that might be completely ignored by a given scan-converter.</p>
</td></tr>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Parameter Tags - FreeType-2.10.2 API Reference</title>
<title>Parameter Tags - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The PCF driver - FreeType-2.10.2 API Reference</title>
<title>The PCF driver - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>PFR Fonts - FreeType-2.10.2 API Reference</title>
<title>PFR Fonts - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Driver properties - FreeType-2.10.2 API Reference</title>
<title>Driver properties - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1353,7 +1353,6 @@
<p>All glyphs that pass through the auto-hinter will be emboldened unless this property is set to TRUE. The same is true for the CFF, Type&nbsp;1, and CID font modules if the &lsquo;Adobe&rsquo; engine is selected (which is the default).</p>
<p>Stem darkening emboldens glyphs at smaller sizes to make them more readable on common low-DPI screens when using linear alpha blending and gamma correction, see <code><a href="ft2-base_interface.html#ft_render_glyph">FT_Render_Glyph</a></code>. When not using linear alpha blending and gamma correction, glyphs will appear heavy and fuzzy!</p>
<p>Gamma correction essentially lightens fonts since shades of grey are shifted to higher pixel values (=&nbsp;higher brightness) to match the original intention to the reality of our screens. The side-effect is that glyphs &lsquo;thin out&rsquo;. Mac OS&nbsp;X and Adobe's proprietary font rendering library implement a counter-measure: stem darkening at smaller sizes where shades of gray dominate. By emboldening a glyph slightly in relation to its pixel size, individual pixels get higher coverage of filled-in outlines and are therefore &lsquo;blacker&rsquo;. This counteracts the &lsquo;thinning out&rsquo; of glyphs, making text remain readable at smaller sizes.</p>
<p>By default, the Adobe engines for CFF, Type&nbsp;1, and CID fonts darken stems at smaller sizes, regardless of hinting, to enhance contrast. Setting this property, stem darkening gets switched off.</p>
<p>For the auto-hinter, stem-darkening is experimental currently and thus switched off by default (this is, <code>no-stem-darkening</code> is set to TRUE by default). Total consistency with the CFF driver is not achieved right now because the emboldening method differs and glyphs must be scaled down on the Y-axis to keep outline points inside their precomputed blue zones. The smaller the size (especially 9ppem and down), the higher the loss of emboldening versus the CFF driver.</p>
<p>Note that stem darkening is never applied if <code><a href="ft2-base_interface.html#ft_load_xxx">FT_LOAD_NO_SCALE</a></code> is set.</p>
<h4>note</h4>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Quick retrieval of advance values - FreeType-2.10.2 API Reference</title>
<title>Quick retrieval of advance values - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Scanline Converter - FreeType-2.10.2 API Reference</title>
<title>Scanline Converter - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1374,14 +1374,15 @@
<p>User-supplied data that is passed to each drawing callback.</p>
</td></tr>
<tr><td class="val" id="clip_box">clip_box</td><td class="desc">
<p>An optional clipping box. It is only used in direct rendering mode. Note that coordinates here should be expressed in <em>integer</em> pixels (and not in 26.6 fixed-point units).</p>
<p>An optional span clipping box expressed in <em>integer</em> pixels (not in 26.6 fixed-point units).</p>
</td></tr>
</table>
<h4>note</h4>
<p>An anti-aliased glyph bitmap is drawn if the <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_AA</a></code> bit flag is set in the <code>flags</code> field, otherwise a monochrome bitmap is generated.</p>
<p>If the <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> bit flag is set in <code>flags</code>, the raster will call the <code>gray_spans</code> callback to draw gray pixel spans. This allows direct composition over a pre-existing bitmap through user-provided callbacks to perform the span drawing and composition. Not supported by the monochrome rasterizer.</p>
<p>The <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_AA</a></code> bit flag must be set in the <code>flags</code> to generate an anti-aliased glyph bitmap, otherwise a monochrome bitmap is generated. The <code>target</code> should have appropriate pixel mode and its dimensions define the clipping region.</p>
<p>If both <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_AA</a></code> and <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> bit flags are set in <code>flags</code>, the raster calls an <code><a href="ft2-raster.html#ft_spanfunc">FT_SpanFunc</a></code> callback <code>gray_spans</code> with <code>user</code> data as an argument ignoring <code>target</code>. This allows direct composition over a pre-existing user surface to perform the span drawing and composition. To optionally clip the spans, set the <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_CLIP</a></code> flag and <code>clip_box</code>. The monochrome raster does not support the direct mode.</p>
<p>The gray-level rasterizer always uses 256 gray levels. If you want fewer gray levels, you have to use <code><a href="ft2-raster.html#ft_raster_flag_xxx">FT_RASTER_FLAG_DIRECT</a></code> and reduce the levels in the callback function.</p>
<hr>
<h2 id="ft_raster_flag_xxx">FT_RASTER_FLAG_XXX<a class="headerlink" href="#ft_raster_flag_xxx" title="Permanent link">&para;</a></h2>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>SFNT Names - FreeType-2.10.2 API Reference</title>
<title>SFNT Names - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Size Management - FreeType-2.10.2 API Reference</title>
<title>Size Management - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>System Interface - FreeType-2.10.2 API Reference</title>
<title>System Interface - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The Type 1 and CID drivers - FreeType-2.10.2 API Reference</title>
<title>The Type 1 and CID drivers - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The TrueType Engine - FreeType-2.10.2 API Reference</title>
<title>The TrueType Engine - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>TrueType Tables - FreeType-2.10.2 API Reference</title>
<title>TrueType Tables - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>The TrueType driver - FreeType-2.10.2 API Reference</title>
<title>The TrueType driver - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Type 1 Tables - FreeType-2.10.2 API Reference</title>
<title>Type 1 Tables - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>User allocation - FreeType-2.10.2 API Reference</title>
<title>User allocation - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>FreeType Version - FreeType-2.10.2 API Reference</title>
<title>FreeType Version - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1225,7 +1225,7 @@
<p>Defined in FT_FREETYPE_H (freetype/freetype.h).</p>
<div class = "codehilite"><pre><code>#<span class="keyword">define</span> <a href="ft2-version.html#freetype_major">FREETYPE_MAJOR</a> 2
#<span class="keyword">define</span> <a href="ft2-version.html#freetype_minor">FREETYPE_MINOR</a> 10
#<span class="keyword">define</span> <a href="ft2-version.html#freetype_patch">FREETYPE_PATCH</a> 2
#<span class="keyword">define</span> <a href="ft2-version.html#freetype_patch">FREETYPE_PATCH</a> 4
</code></pre></div>
<p>These three macros identify the FreeType source code version. Use <code><a href="ft2-version.html#ft_library_version">FT_Library_Version</a></code> to access them at runtime.</p>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>Window FNT Files - FreeType-2.10.2 API Reference</title>
<title>Window FNT Files - FreeType-2.10.4 API Reference</title>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>

View File

@ -10,7 +10,7 @@
<meta name="viewport" content="width=device-width,initial-scale=1">
<meta http-equiv="x-ua-compatible" content="ie=edge">
<meta name="description" content="API Reference Documentation for FreeType-2.10.2">
<meta name="description" content="API Reference Documentation for FreeType-2.10.4">
@ -40,7 +40,7 @@
<title>TOC - FreeType-2.10.2 API Reference</title>
<title>TOC - FreeType-2.10.4 API Reference</title>
@ -89,7 +89,7 @@
<input class="md-toggle" data-md-toggle="search" type="checkbox" id="__search" autocomplete="off">
<label class="md-overlay" data-md-component="overlay" for="__drawer"></label>
<a href="#freetype-2102-api-reference" tabindex="0" class="md-skip">
<a href="#freetype-2104-api-reference" tabindex="0" class="md-skip">
Skip to content
</a>
@ -98,7 +98,7 @@
<nav class="md-header-nav md-grid">
<div class="md-flex">
<div class="md-flex__cell md-flex__cell--shrink">
<a href="." title="FreeType-2.10.2 API Reference" aria-label="FreeType-2.10.2 API Reference" class="md-header-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" aria-label="FreeType-2.10.4 API Reference" class="md-header-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="24" height="24">
@ -111,7 +111,7 @@
<div class="md-flex__ellipsis md-header-nav__title" data-md-component="title">
<span class="md-header-nav__topic">
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</span>
<span class="md-header-nav__topic">
@ -168,12 +168,12 @@
<div class="md-sidebar__inner">
<nav class="md-nav md-nav--primary" data-md-level="0">
<label class="md-nav__title md-nav__title--site" for="__drawer">
<a href="." title="FreeType-2.10.2 API Reference" class="md-nav__button md-logo">
<a href="." title="FreeType-2.10.4 API Reference" class="md-nav__button md-logo">
<img alt="logo" src="images/favico.ico" width="48" height="48">
</a>
FreeType-2.10.2 API Reference
FreeType-2.10.4 API Reference
</label>
<ul class="md-nav__list" data-md-scrollfix>
@ -1021,7 +1021,7 @@
<p><a href="https://www.freetype.org">FreeType</a> &raquo; <a href="../">Docs</a> &raquo; Table of Contents</p>
<hr />
<h1 id="freetype-2102-api-reference">FreeType-2.10.2 API Reference<a class="headerlink" href="#freetype-2102-api-reference" title="Permanent link">&para;</a></h1>
<h1 id="freetype-2104-api-reference">FreeType-2.10.4 API Reference<a class="headerlink" href="#freetype-2104-api-reference" title="Permanent link">&para;</a></h1>
<h1 id="table-of-contents">Table of Contents<a class="headerlink" href="#table-of-contents" title="Permanent link">&para;</a></h1>
<h2 id="general-remarks">General Remarks<a class="headerlink" href="#general-remarks" title="Permanent link">&para;</a></h2>
<table class="toc">
@ -1204,7 +1204,7 @@
<h2 id="global-index"><a href="ft2-index.html">Global Index</a><a class="headerlink" href="#global-index" title="Permanent link">&para;</a></h2>
<hr />
<div class="timestamp">generated on Sat May 9 05:14:28 2020 UTC</div>
<div class="timestamp">generated on Tue Oct 20 05:14:52 2020 UTC</div>

File diff suppressed because one or more lines are too long

View File

@ -1,207 +1,207 @@
<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url><url>
<loc>None</loc>
<lastmod>2020-05-09</lastmod>
<lastmod>2020-10-20</lastmod>
<changefreq>daily</changefreq>
</url>
</urlset>

View File

@ -41,533 +41,9 @@
#include FT_CONFIG_OPTIONS_H
#include FT_CONFIG_STANDARD_LIBRARY_H
FT_BEGIN_HEADER
/**************************************************************************
*
* PLATFORM-SPECIFIC CONFIGURATION MACROS
*
* These macros can be toggled to suit a specific system. The current ones
* are defaults used to compile FreeType in an ANSI C environment (16bit
* compilers are also supported). Copy this file to your own
* `builds/<system>` directory, and edit it to port the engine.
*
*/
/* There are systems (like the Texas Instruments 'C54x) where a `char` */
/* has 16~bits. ANSI~C says that `sizeof(char)` is always~1. Since an */
/* `int` has 16~bits also for this system, `sizeof(int)` gives~1 which */
/* is probably unexpected. */
/* */
/* `CHAR_BIT` (defined in `limits.h`) gives the number of bits in a */
/* `char` type. */
#ifndef FT_CHAR_BIT
#define FT_CHAR_BIT CHAR_BIT
#endif
/* The size of an `int` type. */
#if FT_UINT_MAX == 0xFFFFUL
#define FT_SIZEOF_INT ( 16 / FT_CHAR_BIT )
#elif FT_UINT_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_INT ( 32 / FT_CHAR_BIT )
#elif FT_UINT_MAX > 0xFFFFFFFFUL && FT_UINT_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_INT ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `int' type!"
#endif
/* The size of a `long` type. A five-byte `long` (as used e.g. on the */
/* DM642) is recognized but avoided. */
#if FT_ULONG_MAX == 0xFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 32 / FT_CHAR_BIT )
#elif FT_ULONG_MAX > 0xFFFFFFFFUL && FT_ULONG_MAX == 0xFFFFFFFFFFFFFFFFUL
#define FT_SIZEOF_LONG ( 64 / FT_CHAR_BIT )
#else
#error "Unsupported size of `long' type!"
#endif
/* `FT_UNUSED` indicates that a given parameter is not used -- */
/* this is only used to get rid of unpleasant compiler warnings. */
#ifndef FT_UNUSED
#define FT_UNUSED( arg ) ( (arg) = (arg) )
#endif
/**************************************************************************
*
* AUTOMATIC CONFIGURATION MACROS
*
* These macros are computed from the ones defined above. Don't touch
* their definition, unless you know precisely what you are doing. No
* porter should need to mess with them.
*
*/
/**************************************************************************
*
* Mac support
*
* This is the only necessary change, so it is defined here instead
* providing a new configuration file.
*/
#if defined( __APPLE__ ) || ( defined( __MWERKS__ ) && defined( macintosh ) )
/* No Carbon frameworks for 64bit 10.4.x. */
/* `AvailabilityMacros.h` is available since Mac OS X 10.2, */
/* so guess the system version by maximum errno before inclusion. */
#include <errno.h>
#ifdef ECANCELED /* defined since 10.2 */
#include "AvailabilityMacros.h"
#endif
#if defined( __LP64__ ) && \
( MAC_OS_X_VERSION_MIN_REQUIRED <= MAC_OS_X_VERSION_10_4 )
#undef FT_MACINTOSH
#endif
#elif defined( __SC__ ) || defined( __MRC__ )
/* Classic MacOS compilers */
#include "ConditionalMacros.h"
#if TARGET_OS_MAC
#define FT_MACINTOSH 1
#endif
#endif
/* Fix compiler warning with sgi compiler. */
#if defined( __sgi ) && !defined( __GNUC__ )
#if defined( _COMPILER_VERSION ) && ( _COMPILER_VERSION >= 730 )
#pragma set woff 3505
#endif
#endif
/**************************************************************************
*
* @section:
* basic_types
*
*/
/**************************************************************************
*
* @type:
* FT_Int16
*
* @description:
* A typedef for a 16bit signed integer type.
*/
typedef signed short FT_Int16;
/**************************************************************************
*
* @type:
* FT_UInt16
*
* @description:
* A typedef for a 16bit unsigned integer type.
*/
typedef unsigned short FT_UInt16;
/* */
/* this #if 0 ... #endif clause is for documentation purposes */
#if 0
/**************************************************************************
*
* @type:
* FT_Int32
*
* @description:
* A typedef for a 32bit signed integer type. The size depends on the
* configuration.
*/
typedef signed XXX FT_Int32;
/**************************************************************************
*
* @type:
* FT_UInt32
*
* A typedef for a 32bit unsigned integer type. The size depends on the
* configuration.
*/
typedef unsigned XXX FT_UInt32;
/**************************************************************************
*
* @type:
* FT_Int64
*
* A typedef for a 64bit signed integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef signed XXX FT_Int64;
/**************************************************************************
*
* @type:
* FT_UInt64
*
* A typedef for a 64bit unsigned integer type. The size depends on the
* configuration. Only defined if there is real 64bit support;
* otherwise, it gets emulated with a structure (if necessary).
*/
typedef unsigned XXX FT_UInt64;
/* */
#endif
#if FT_SIZEOF_INT == ( 32 / FT_CHAR_BIT )
typedef signed int FT_Int32;
typedef unsigned int FT_UInt32;
#elif FT_SIZEOF_LONG == ( 32 / FT_CHAR_BIT )
typedef signed long FT_Int32;
typedef unsigned long FT_UInt32;
#else
#error "no 32bit type found -- please check your configuration files"
#endif
/* look up an integer type that is at least 32~bits */
#if FT_SIZEOF_INT >= ( 32 / FT_CHAR_BIT )
typedef int FT_Fast;
typedef unsigned int FT_UFast;
#elif FT_SIZEOF_LONG >= ( 32 / FT_CHAR_BIT )
typedef long FT_Fast;
typedef unsigned long FT_UFast;
#endif
/* determine whether we have a 64-bit `int` type for platforms without */
/* Autoconf */
#if FT_SIZEOF_LONG == ( 64 / FT_CHAR_BIT )
/* `FT_LONG64` must be defined if a 64-bit type is available */
#define FT_LONG64
#define FT_INT64 long
#define FT_UINT64 unsigned long
/**************************************************************************
*
* A 64-bit data type may create compilation problems if you compile in
* strict ANSI mode. To avoid them, we disable other 64-bit data types if
* `__STDC__` is defined. You can however ignore this rule by defining the
* `FT_CONFIG_OPTION_FORCE_INT64` configuration macro.
*/
#elif !defined( __STDC__ ) || defined( FT_CONFIG_OPTION_FORCE_INT64 )
#if defined( __STDC_VERSION__ ) && __STDC_VERSION__ >= 199901L
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( _MSC_VER ) && _MSC_VER >= 900 /* Visual C++ (and Intel C++) */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __BORLANDC__ ) /* Borland C++ */
/* XXXX: We should probably check the value of `__BORLANDC__` in order */
/* to test the compiler version. */
/* this compiler provides the `__int64` type */
#define FT_LONG64
#define FT_INT64 __int64
#define FT_UINT64 unsigned __int64
#elif defined( __WATCOMC__ ) /* Watcom C++ */
/* Watcom doesn't provide 64-bit data types */
#elif defined( __MWERKS__ ) /* Metrowerks CodeWarrior */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#elif defined( __GNUC__ )
/* GCC provides the `long long` type */
#define FT_LONG64
#define FT_INT64 long long int
#define FT_UINT64 unsigned long long int
#endif /* __STDC_VERSION__ >= 199901L */
#endif /* FT_SIZEOF_LONG == (64 / FT_CHAR_BIT) */
#ifdef FT_LONG64
typedef FT_INT64 FT_Int64;
typedef FT_UINT64 FT_UInt64;
#endif
#ifdef _WIN64
/* only 64bit Windows uses the LLP64 data model, i.e., */
/* 32bit integers, 64bit pointers */
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned __int64)(x)
#else
#define FT_UINT_TO_POINTER( x ) (void*)(unsigned long)(x)
#endif
/**************************************************************************
*
* miscellaneous
*
*/
#define FT_BEGIN_STMNT do {
#define FT_END_STMNT } while ( 0 )
#define FT_DUMMY_STMNT FT_BEGIN_STMNT FT_END_STMNT
/* `typeof` condition taken from gnulib's `intprops.h` header file */
#if ( ( defined( __GNUC__ ) && __GNUC__ >= 2 ) || \
( defined( __IBMC__ ) && __IBMC__ >= 1210 && \
defined( __IBM__TYPEOF__ ) ) || \
( defined( __SUNPRO_C ) && __SUNPRO_C >= 0x5110 && !__STDC__ ) )
#define FT_TYPEOF( type ) ( __typeof__ ( type ) )
#else
#define FT_TYPEOF( type ) /* empty */
#endif
/* Use `FT_LOCAL` and `FT_LOCAL_DEF` to declare and define, */
/* respectively, a function that gets used only within the scope of a */
/* module. Normally, both the header and source code files for such a */
/* function are within a single module directory. */
/* */
/* Intra-module arrays should be tagged with `FT_LOCAL_ARRAY` and */
/* `FT_LOCAL_ARRAY_DEF`. */
/* */
#ifdef FT_MAKE_OPTION_SINGLE_OBJECT
#define FT_LOCAL( x ) static x
#define FT_LOCAL_DEF( x ) static x
#else
#ifdef __cplusplus
#define FT_LOCAL( x ) extern "C" x
#define FT_LOCAL_DEF( x ) extern "C" x
#else
#define FT_LOCAL( x ) extern x
#define FT_LOCAL_DEF( x ) x
#endif
#endif /* FT_MAKE_OPTION_SINGLE_OBJECT */
#define FT_LOCAL_ARRAY( x ) extern const x
#define FT_LOCAL_ARRAY_DEF( x ) const x
/* Use `FT_BASE` and `FT_BASE_DEF` to declare and define, respectively, */
/* functions that are used in more than a single module. In the */
/* current setup this implies that the declaration is in a header file */
/* in the `include/freetype/internal` directory, and the function body */
/* is in a file in `src/base`. */
/* */
#ifndef FT_BASE
#ifdef __cplusplus
#define FT_BASE( x ) extern "C" x
#else
#define FT_BASE( x ) extern x
#endif
#endif /* !FT_BASE */
#ifndef FT_BASE_DEF
#ifdef __cplusplus
#define FT_BASE_DEF( x ) x
#else
#define FT_BASE_DEF( x ) x
#endif
#endif /* !FT_BASE_DEF */
/* When compiling FreeType as a DLL or DSO with hidden visibility */
/* some systems/compilers need a special attribute in front OR after */
/* the return type of function declarations. */
/* */
/* Two macros are used within the FreeType source code to define */
/* exported library functions: `FT_EXPORT` and `FT_EXPORT_DEF`. */
/* */
/* - `FT_EXPORT( return_type )` */
/* */
/* is used in a function declaration, as in */
/* */
/* ``` */
/* FT_EXPORT( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ); */
/* ``` */
/* */
/* - `FT_EXPORT_DEF( return_type )` */
/* */
/* is used in a function definition, as in */
/* */
/* ``` */
/* FT_EXPORT_DEF( FT_Error ) */
/* FT_Init_FreeType( FT_Library* alibrary ) */
/* { */
/* ... some code ... */
/* return FT_Err_Ok; */
/* } */
/* ``` */
/* */
/* You can provide your own implementation of `FT_EXPORT` and */
/* `FT_EXPORT_DEF` here if you want. */
/* */
/* To export a variable, use `FT_EXPORT_VAR`. */
/* */
#ifndef FT_EXPORT
#ifdef FT2_BUILD_LIBRARY
#if defined( _WIN32 ) && defined( DLL_EXPORT )
#define FT_EXPORT( x ) __declspec( dllexport ) x
#elif defined( __GNUC__ ) && __GNUC__ >= 4
#define FT_EXPORT( x ) __attribute__(( visibility( "default" ) )) x
#elif defined( __SUNPRO_C ) && __SUNPRO_C >= 0x550
#define FT_EXPORT( x ) __global x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#else
#if defined( _WIN32 ) && defined( DLL_IMPORT )
#define FT_EXPORT( x ) __declspec( dllimport ) x
#elif defined( __cplusplus )
#define FT_EXPORT( x ) extern "C" x
#else
#define FT_EXPORT( x ) extern x
#endif
#endif
#endif /* !FT_EXPORT */
#ifndef FT_EXPORT_DEF
#ifdef __cplusplus
#define FT_EXPORT_DEF( x ) extern "C" x
#else
#define FT_EXPORT_DEF( x ) extern x
#endif
#endif /* !FT_EXPORT_DEF */
#ifndef FT_EXPORT_VAR
#ifdef __cplusplus
#define FT_EXPORT_VAR( x ) extern "C" x
#else
#define FT_EXPORT_VAR( x ) extern x
#endif
#endif /* !FT_EXPORT_VAR */
/* The following macros are needed to compile the library with a */
/* C++ compiler and with 16bit compilers. */
/* */
/* This is special. Within C++, you must specify `extern "C"` for */
/* functions which are used via function pointers, and you also */
/* must do that for structures which contain function pointers to */
/* assure C linkage -- it's not possible to have (local) anonymous */
/* functions which are accessed by (global) function pointers. */
/* */
/* */
/* FT_CALLBACK_DEF is used to _define_ a callback function, */
/* located in the same source code file as the structure that uses */
/* it. */
/* */
/* FT_BASE_CALLBACK and FT_BASE_CALLBACK_DEF are used to declare */
/* and define a callback function, respectively, in a similar way */
/* as FT_BASE and FT_BASE_DEF work. */
/* */
/* FT_CALLBACK_TABLE is used to _declare_ a constant variable that */
/* contains pointers to callback functions. */
/* */
/* FT_CALLBACK_TABLE_DEF is used to _define_ a constant variable */
/* that contains pointers to callback functions. */
/* */
/* */
/* Some 16bit compilers have to redefine these macros to insert */
/* the infamous `_cdecl` or `__fastcall` declarations. */
/* */
#ifndef FT_CALLBACK_DEF
#ifdef __cplusplus
#define FT_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_CALLBACK_DEF( x ) static x
#endif
#endif /* FT_CALLBACK_DEF */
#ifndef FT_BASE_CALLBACK
#ifdef __cplusplus
#define FT_BASE_CALLBACK( x ) extern "C" x
#define FT_BASE_CALLBACK_DEF( x ) extern "C" x
#else
#define FT_BASE_CALLBACK( x ) extern x
#define FT_BASE_CALLBACK_DEF( x ) x
#endif
#endif /* FT_BASE_CALLBACK */
#ifndef FT_CALLBACK_TABLE
#ifdef __cplusplus
#define FT_CALLBACK_TABLE extern "C"
#define FT_CALLBACK_TABLE_DEF extern "C"
#else
#define FT_CALLBACK_TABLE extern
#define FT_CALLBACK_TABLE_DEF /* nothing */
#endif
#endif /* FT_CALLBACK_TABLE */
FT_END_HEADER
#include <freetype/config/integer-types.h>
#include <freetype/config/public-macros.h>
#include <freetype/config/mac-support.h>
#endif /* FTCONFIG_H_ */

View File

@ -30,10 +30,12 @@
/* encapsulated in an `extern "C" { .. }` block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_BEGIN_HEADER extern "C" {
#else
#define FT_BEGIN_HEADER /* nothing */
#ifndef FT_BEGIN_HEADER
# ifdef __cplusplus
# define FT_BEGIN_HEADER extern "C" {
# else
# define FT_BEGIN_HEADER /* nothing */
# endif
#endif
@ -48,10 +50,12 @@
/* encapsulated in an `extern "C" { .. }` block when included from a */
/* C++ compiler. */
/* */
#ifdef __cplusplus
#define FT_END_HEADER }
#else
#define FT_END_HEADER /* nothing */
#ifndef FT_END_HEADER
# ifdef __cplusplus
# define FT_END_HEADER }
# else
# define FT_END_HEADER /* nothing */
# endif
#endif
@ -73,9 +77,16 @@
* Macro definitions used to `#include` specific header files.
*
* @description:
* The following macros are defined to the name of specific FreeType~2
* header files. They can be used directly in `#include` statements as
* in:
* In addition to the normal scheme of including header files like
*
* ```
* #include <freetype/freetype.h>
* #include <freetype/ftmm.h>
* #include <freetype/ftglyph.h>
* ```
*
* it is possible to used named macros instead. They can be used
* directly in `#include` statements as in
*
* ```
* #include FT_FREETYPE_H
@ -83,13 +94,9 @@
* #include FT_GLYPH_H
* ```
*
* There are several reasons why we are now using macros to name public
* header files. The first one is that such macros are not limited to
* the infamous 8.3~naming rule required by DOS (and
* `FT_MULTIPLE_MASTERS_H` is a lot more meaningful than `ftmm.h`).
*
* The second reason is that it allows for more flexibility in the way
* FreeType~2 is installed on a given system.
* These macros were introduced to overcome the infamous 8.3~naming rule
* required by DOS (and `FT_MULTIPLE_MASTERS_H` is a lot more meaningful
* than `ftmm.h`).
*
*/
@ -797,16 +804,19 @@
#define FT_CACHE_INTERNAL_IMAGE_H FT_CACHE_H
#define FT_CACHE_INTERNAL_SBITS_H FT_CACHE_H
/*
* Include internal headers definitions from `<internal/...>` only when
* building the library.
*/
/* TODO(david): Move this section below to a different header */
#ifdef FT2_BUILD_LIBRARY
#define FT_INTERNAL_INTERNAL_H <freetype/internal/internal.h>
#include FT_INTERNAL_INTERNAL_H
#endif /* FT2_BUILD_LIBRARY */
#if defined( _MSC_VER ) /* Visual C++ (and Intel C++) */
/* We disable the warning `conditional expression is constant' here */
/* in order to compile cleanly with the maximum level of warnings. */
/* In particular, the warning complains about stuff like `while(0)' */
/* which is very useful in macro definitions. There is no benefit */
/* in having it enabled. */
#pragma warning( disable : 4127 )
#endif /* _MSC_VER */
#endif /* FT2_BUILD_LIBRARY */
#endif /* FTHEADER_H_ */

View File

@ -25,8 +25,6 @@ FT_USE_MODULE( FT_Module_Class, pshinter_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_raster1_renderer_class )
FT_USE_MODULE( FT_Module_Class, sfnt_module_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcd_renderer_class )
FT_USE_MODULE( FT_Renderer_Class, ft_smooth_lcdv_renderer_class )
FT_USE_MODULE( FT_Driver_ClassRec, bdf_driver_class )
/* EOF */

View File

@ -42,7 +42,7 @@ FT_BEGIN_HEADER
* the name of a directory that is included _before_ the FreeType include
* path during compilation.
*
* The default FreeType Makefiles and Jamfiles use the build directory
* The default FreeType Makefiles use the build directory
* `builds/<system>` by default, but you can easily change that for your
* own projects.
*
@ -121,10 +121,8 @@ FT_BEGIN_HEADER
* mitigate color fringes inherent to this technology, you also need to
* explicitly set up LCD filtering.
*
* Note that this feature is covered by several Microsoft patents and
* should not be activated in any default build of the library. When this
* macro is not defined, FreeType offers alternative LCD rendering
* technology that produces excellent output without LCD filtering.
* When this macro is not defined, FreeType offers alternative LCD
* rendering technology that produces excellent output.
*/
/* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
@ -542,7 +540,7 @@ FT_BEGIN_HEADER
/**************************************************************************
*
* Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support coloured
* Define `TT_CONFIG_OPTION_COLOR_LAYERS` if you want to support colored
* outlines (from the 'COLR'/'CPAL' tables) in all formats using the 'sfnt'
* module (namely TrueType~& OpenType).
*/

Some files were not shown because too many files have changed in this diff Show More