* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
Due to our use of `libtool' to generate and install the FreeType 2
|
2003-04-21 17:30:27 +04:00
|
|
|
libraries on Unix systems, as well as other historical events, it is
|
|
|
|
generally very difficult to know precisely which release of the font
|
|
|
|
engine is installed on a given system.
|
2002-09-10 19:17:32 +04:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
This file tries to explain why and to document ways to properly detect
|
2002-12-17 00:51:24 +03:00
|
|
|
FreeType on Unix.
|
2002-09-10 19:17:32 +04:00
|
|
|
|
2002-08-27 20:51:02 +04:00
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
1. Version and Release numbers
|
|
|
|
------------------------------
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
For each new public release of FreeType 2, there are generally *three*
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
distinct `version' numbers to consider:
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2006-05-06 20:44:58 +04:00
|
|
|
* The official FreeType 2 release number, like 2.0.9 or 2.1.3.
|
2002-12-26 23:51:04 +03:00
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
* The libtool (and Unix) specific version number, like 9.2.3. This is
|
|
|
|
what `freetype-config --version' returns.
|
2002-12-26 23:51:04 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
* The platform-specific shared object number, used for example when
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
the library is installed as `/usr/lib/libfreetype.so.6.3.2'.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The platform-specific number is, unsurprisingly, platform-specific and
|
|
|
|
varies with the operating system you are using (several variants of
|
|
|
|
Linux, FreeBSD, Solaris, etc.). You should thus _never_ use it, even
|
|
|
|
for simple tests.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The libtool-specific number does not equal the release number but is
|
|
|
|
tied to it.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The release number is available at *compile* time through the following
|
2002-12-17 00:51:24 +03:00
|
|
|
macros defined in FT_FREETYPE_H:
|
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
- FREETYPE_MAJOR: major release number
|
|
|
|
- FREETYPE_MINOR: minor release number
|
|
|
|
- FREETYPE_PATCH: patch release number
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
See below for a small autoconf fragment.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The release number is also available at *runtime* through the
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
`FT_Library_Version' API. Unfortunately, this one wasn't available or
|
2003-04-21 17:30:27 +04:00
|
|
|
working correctly before the 2.1.3 official release.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
2. History
|
|
|
|
----------
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The following table gives, for each official release, the corresponding
|
|
|
|
libtool number, as well as the shared object number found on _most_
|
|
|
|
systems, but not all of them:
|
2002-12-17 00:51:24 +03:00
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
|
2003-07-25 09:57:21 +04:00
|
|
|
release libtool so
|
2003-11-09 11:37:14 +03:00
|
|
|
-------------------------------
|
2006-05-06 20:44:58 +04:00
|
|
|
2.2.1 9.10.3 6.3.10
|
* src/base/ftoutln.c (FT_Outline_Embolden): Strength should be
halved.
* src/base/ftsynth.c (FT_GlyphSlot_Embolden): Change the default
strength.
Don't increase slot->advance.y.
* include/freetype/freetype.h (FREETYPE_MINOR): Set to 2.
(FREETYPE_PATCH): Set to 0.
* builds/unix/configure.ac (version_info): Set to 9:9:3.
Currently, we are still binary compatible.
* builds/win32/visualc/index.html,
builds/win32/visualc/freetype.dsp,
builds/win32/visualc/freetype.vcproj: s/219/2110/, s/2.1.9/2.1.10/.
* builds/freetype.mk (refdoc), README, Jamfile (RefDoc):
s/2.1.9/2.1.10/.
* docs/CHANGES, docs/VERSION.DLL: Updated.
* ChangeLog: Split off older entries into...
* ChangeLog.20, ChangeLog.21: These new files.
The next release will be 2.2.0, so don't worry about source code
backwards compatibility.
* include/freetype/ftimage.h (FT_Outline_MoveToFunc,
FT_Outline_LineToFunc, FT_Outline_ConicToFunc,
FT_Outline_CubicToFunc, FT_SpanFunc, FT_Raster_RenderFunc),
include/freetype/ftrender.h (FT_Glyph_TransformFunc,
FT_Renderer_RenderFunc, FT_Renderer_TransformFunc): Decorate
parameters with `const' where appropriate.
* src/sfnt/ttsbit.c (tt_face_load_sbit_image): Compute vertBearingY
to make glyphs centered vertically.
* src/truetype/ttgload.c (compute_glyph_metrics): Compute
vertBearingY to make glyphs centered vertically.
Fix some bugs in vertical metrics:
. loader->pp3.y and loader->pp4.y are in 26.6 format, not in font
units.
. As we use the glyph's cbox to calculate the top bearing now
there iss no need to adjust `top'.
* src/otvalid/otvcommn.h (OTV_OPTIONAL_TABLE): Use FT_UShort to be
in sync with OTV_OPTIONAL_OFFSET. Reported by YAMATO Masatake.
* docs/release: Update.
2005-06-16 23:07:08 +04:00
|
|
|
2.2.0 9.9.3 6.3.9
|
2004-08-11 09:25:37 +04:00
|
|
|
2.1.10 9.8.3 6.3.8
|
2004-04-24 18:43:37 +04:00
|
|
|
2.1.9 9.7.3 6.3.7
|
2003-11-24 00:39:51 +03:00
|
|
|
2.1.8 9.6.3 6.3.6
|
2003-11-09 11:37:14 +03:00
|
|
|
2.1.7 9.5.3 6.3.5
|
2003-11-08 13:15:51 +03:00
|
|
|
2.1.6 9.5.3 6.3.5
|
2003-07-26 10:08:14 +04:00
|
|
|
2.1.5 9.4.3 6.3.4
|
2003-07-25 09:57:21 +04:00
|
|
|
2.1.4 9.3.3 6.3.3
|
|
|
|
2.1.3 9.2.3 6.3.2
|
|
|
|
2.1.2 9.1.3 6.3.1
|
|
|
|
2.1.1 9.0.3 ?
|
|
|
|
2.1.0 8.0.2 ?
|
|
|
|
2.0.9 9.0.3 ?
|
|
|
|
2.0.8 8.0.2 ?
|
2003-11-09 11:37:14 +03:00
|
|
|
2.0.4 7.0.1 ?
|
|
|
|
2.0.1 6.1.0 ?
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
The libtool numbers are a bit inconsistent due to the library's history:
|
2003-01-31 13:12:40 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
- 2.1.0 was created as a development branch from 2.0.8 (hence the same
|
|
|
|
libtool numbers).
|
2003-01-31 13:12:40 +03:00
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
- 2.0.9 was a bug-fix release of the `stable' branch, and we
|
2003-04-21 17:30:27 +04:00
|
|
|
incorrectly increased its libtool number.
|
2003-01-31 13:12:40 +03:00
|
|
|
|
2006-05-06 20:44:58 +04:00
|
|
|
- 2.1.4 was a development version, however it was stable enough to be
|
|
|
|
the basis of the 2.2.0 release.
|
2002-12-17 00:51:24 +03:00
|
|
|
|
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
3. Autoconf Code Fragment
|
|
|
|
-------------------------
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
Lars Clausen contributed the following autoconf fragment to detect which
|
|
|
|
version of FreeType is installed on a system. This one tests for a
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
version that is at least 2.0.9; you should change it to check against
|
2003-05-21 02:06:38 +04:00
|
|
|
other release numbers.
|
|
|
|
|
|
|
|
|
|
|
|
AC_MSG_CHECKING([whether FreeType version is 2.0.9 or higher])
|
|
|
|
old_CPPFLAGS="$CPPFLAGS"
|
|
|
|
CPPFLAGS=`freetype-config --cflags`
|
|
|
|
AC_TRY_CPP([
|
* src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
(Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
functions. Similar to Direct_Move, Direct_Move_X, and
Direct_Move_Y but without touching.
(Compute_Funcs): Use new functions.
(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
Round_Super_45): Fix rounding of value zero.
(DO_DIV): Don't use TT_MULDIV.
(Ins_SHC): This instruction actually touches the points.
(Ins_MSIRP): Fix undocumented behaviour.
* src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
* docs/VERSION.DLL: Updated.
* src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
metrics->y_scale really precise.
(FT_Load_Glyph): Update computation of linearHoriAdvance and
linearVertAdvance.
* src/true/type/ttinterp.c (Update_Max): Use FT_REALLOC.
2003-11-25 01:54:58 +03:00
|
|
|
|
2003-11-09 11:37:14 +03:00
|
|
|
#include <ft2build.h>
|
|
|
|
#include FT_FREETYPE_H
|
2003-05-21 02:06:38 +04:00
|
|
|
#if (FREETYPE_MAJOR*1000 + FREETYPE_MINOR)*1000 + FREETYPE_PATCH < 2000009
|
|
|
|
#error Freetype version too low.
|
|
|
|
#endif
|
* src/truetype/ttinterp.c (CUR_Func_move_orig): New macro.
(Direct_Move_Orig, Direct_Move_Orig_X, Direct_Move_Orig_Y): New
functions. Similar to Direct_Move, Direct_Move_X, and
Direct_Move_Y but without touching.
(Compute_Funcs): Use new functions.
(Round_None, Round_To_Grid, Round_To_Half_Grid, Round_Down_To_Grid,
Round_Up_To_Grid, Round_To_Double_Grid, Round_Super,
Round_Super_45): Fix rounding of value zero.
(DO_DIV): Don't use TT_MULDIV.
(Ins_SHC): This instruction actually touches the points.
(Ins_MSIRP): Fix undocumented behaviour.
* src/truetype/ttinterp.h (TT_ExecContextRec): Updated.
* docs/VERSION.DLL: Updated.
* src/base/ftobjs.c (FT_Set_Char_Size): Make metrics->x_scale and
metrics->y_scale really precise.
(FT_Load_Glyph): Update computation of linearHoriAdvance and
linearVertAdvance.
* src/true/type/ttinterp.c (Update_Max): Use FT_REALLOC.
2003-11-25 01:54:58 +03:00
|
|
|
],
|
|
|
|
[AC_MSG_RESULT(yes)
|
|
|
|
FREETYPE_LIBS=`freetype-config --libs`
|
|
|
|
AC_SUBST(FREETYPE_LIBS)
|
|
|
|
AC_DEFINE(HAVE_FREETYPE,1,[Define if you have the FreeType2 library])
|
|
|
|
CPPFLAGS="$old_CPPFLAGS"],
|
|
|
|
[AC_MSG_ERROR([Need FreeType library version 2.0.9 or higher])])
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2005-06-05 03:00:25 +04:00
|
|
|
------------------------------------------------------------------------
|
|
|
|
|
2006-05-06 20:44:58 +04:00
|
|
|
Copyright 2002, 2003, 2004, 2005, 2006 by
|
2005-06-05 03:00:25 +04:00
|
|
|
David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
|
|
|
* include/freetype/freetype.h, include/freetype/ftchapters.h: Add
a preliminary section with some explanations about user allocation.
* src/tools/docmaker/tohtml.py (HtmlFormatter.section_enter):
Don't abort if there are no data types, functions, etc., in a
section.
Print synopsis only if we have a data type, function, etc.
* docs/INSTALL.ANY, docs/INSTALL, docs/INSTALL.UNX, docs/CUSTOMIZE,
docs/INSTALL.GNU, docs/TRUETYPE, docs/DEBUG, docs/UPGRADE.UNX,
docs/VERSION.DLL, docs/formats.txt: Revised, formatted.
2005-08-30 04:22:46 +04:00
|
|
|
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
|
2005-06-05 03:00:25 +04:00
|
|
|
accept it fully.
|
|
|
|
|
2002-12-17 00:51:24 +03:00
|
|
|
|
2003-04-21 17:30:27 +04:00
|
|
|
--- end of VERSION.DLL ---
|