* README: udpated
* README.UNX: removed (now replaced by docs/INSTALL.UNX) * src/pshinter/pshalgo3.c: the hinter now performs as in 2.1.3 and will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is used * src/base/ftobjs.c: changed the default computations to include rounding in all cases, this is required to provide accurate kerning data when native TrueType hinting is enabled. * src/type1/t1load.c: the Type 1 loader now accepts more general names according to the Postscript spec (the previous one was too restrictive)
This commit is contained in:
parent
389a365b09
commit
520f7b3d06
16
ChangeLog
16
ChangeLog
@ -1,3 +1,19 @@
|
||||
2003-03-27 David Turner <david@freetype.org>
|
||||
|
||||
* README: udpated
|
||||
|
||||
* README.UNX: removed (now replaced by docs/INSTALL.UNX)
|
||||
|
||||
* src/pshinter/pshalgo3.c: the hinter now performs as in 2.1.3 and
|
||||
will ignore stem quantization only when FT_LOAD_TARGET_SMOOTH is used
|
||||
|
||||
* src/base/ftobjs.c: changed the default computations to include rounding
|
||||
in all cases, this is required to provide accurate kerning data when
|
||||
native TrueType hinting is enabled.
|
||||
|
||||
* src/type1/t1load.c: the Type 1 loader now accepts more general names
|
||||
according to the Postscript spec (the previous one was too restrictive)
|
||||
|
||||
2003-03-20 David Turner <david@freetype.org>
|
||||
|
||||
* docs/*: serious rewriting of the documentation
|
||||
|
9
README
9
README
@ -2,9 +2,9 @@
|
||||
Special notes to Unix users
|
||||
===========================
|
||||
|
||||
Please read the file "README.UNX", it contains important
|
||||
information regarding the installation of FreeType on Unix
|
||||
systems, especially GNU based operating systems like GNU/Linux.
|
||||
Please read the file "docs/UPGRADE.UNX", it contains important
|
||||
information regarding the installation of FreeType on Unix systems,
|
||||
especially GNU based operating systems like GNU/Linux.
|
||||
|
||||
FreeType 2's library is called `libfreetype', FreeType 1's library
|
||||
is called `libttf'. They are *not* compatible!
|
||||
@ -16,8 +16,7 @@
|
||||
Please read the docs/CHANGES file, it contains IMPORTANT
|
||||
INFORMATION.
|
||||
|
||||
Read the files "docs/INSTALL" or "docs/BUILD" for installation
|
||||
instructions.
|
||||
Read the files "docs/INSTALL" for installation instructions.
|
||||
|
||||
Note that the FreeType 2 documentation is now available as a
|
||||
separate package from our sites. See:
|
||||
|
141
README.UNX
141
README.UNX
@ -1,141 +0,0 @@
|
||||
|
||||
SPECIAL NOTE FOR UNIX USERS
|
||||
===========================
|
||||
|
||||
If you are installing this release of FreeType on a system that
|
||||
already uses release 2.0.5 (or even an older version), you have to
|
||||
perform a few special steps to ensure that everything goes well.
|
||||
|
||||
|
||||
|
||||
I. Enable the TrueType bytecode hinter if you need it
|
||||
-----------------------------------------------------
|
||||
|
||||
The TrueType bytecode interpreter is disabled in all public
|
||||
releases of the FreeType packages for patents reasons (see
|
||||
http://www.freetype.org/patents.html for more details).
|
||||
|
||||
However, many Linux distributions do enable the interpreter in the
|
||||
FreeType packages (DEB/RPM/etc.) they produce for their platforms.
|
||||
If you are using TrueType fonts on your system, you most probably
|
||||
want to enable it manually by doing the following:
|
||||
|
||||
- open the file "include/freetype/config/ftoption.h"
|
||||
|
||||
- locate a line that says:
|
||||
|
||||
#undef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||
|
||||
- change it to:
|
||||
|
||||
#define TT_CONFIG_OPTION_BYTECODE_INTERPRETER
|
||||
|
||||
of course, this must be done _before_ compiling the library
|
||||
|
||||
|
||||
|
||||
II. Determine the correct installation path
|
||||
--------------------------------------------
|
||||
|
||||
By default, the source package will install the library in
|
||||
"/usr/local". However, many Unix distributions now install the
|
||||
library in "/usr", since FreeType is becoming a critical system
|
||||
component.
|
||||
|
||||
If FreeType is already installed on your system, type
|
||||
|
||||
freetype-config --prefix
|
||||
|
||||
on the command line. This should return the installation path to
|
||||
use below (e.g. "/usr" or "/usr/local"). Otherwise, simply use
|
||||
"/usr" (or what you think is adequate for your installation).
|
||||
|
||||
|
||||
|
||||
III. Ensure that you are using GNU Make
|
||||
---------------------------------------
|
||||
|
||||
The FreeType build system _exclusively_ works with GNU Make. You
|
||||
will not be able to compile the library with the instructions
|
||||
below using any other alternative (including BSD Make).
|
||||
|
||||
Trying to compile the library with a different Make tool will
|
||||
print a message like:
|
||||
|
||||
Sorry, GNU make is required to build FreeType2.
|
||||
|
||||
and the build process will be aborted. If this happens, install
|
||||
GNU Make on your system, and use the GNUMAKE environment variable
|
||||
to name it.
|
||||
|
||||
|
||||
|
||||
IV. Build and install the library
|
||||
---------------------------------
|
||||
|
||||
The following should work on all Unix systems where the `make'
|
||||
command invokes GNU Make:
|
||||
|
||||
./configure --prefix=<yourprefix>
|
||||
make
|
||||
make install (as root)
|
||||
|
||||
where "<yourprefix>" must be replaced by the prefix returned by
|
||||
the "freetype-config" command.
|
||||
|
||||
When using a different command to invoke GNU Make, use the GNUMAKE
|
||||
variable. For example, if `gmake' is the command to use on your
|
||||
system, do something like:
|
||||
|
||||
GNUMAKE=gmake ./configure --prefix=<yourprefix>
|
||||
gmake
|
||||
gmake install (as root)
|
||||
|
||||
If this still doesn't work, read the detailed compilation
|
||||
procedure available in the file "docs/BUILD" for troubleshooting.
|
||||
|
||||
|
||||
V. Take care of XFree86 version 4
|
||||
---------------------------------
|
||||
|
||||
Certain recent Linux distributions will install _several_ versions
|
||||
of FreeType on your system. For example, on a fresh Mandrake 8.1
|
||||
system, you can find the following files:
|
||||
|
||||
/usr/lib/libfreetype.so which links to
|
||||
/usr/lib/libfreetype.6.1.0.so
|
||||
|
||||
and
|
||||
|
||||
/usr/X11R6/lib/libfreetype.so which links to
|
||||
/usr/X11R6/lib/libfreetype.6.0.so
|
||||
|
||||
Note that these files correspond to two distinct versions of the
|
||||
library! It seems that this surprising issue is due to the
|
||||
install scripts of recent XFree86 servers (from 4.1.0) which
|
||||
irremediably install their own (dated) version of the library in
|
||||
"/usr/X11R6/lib".
|
||||
|
||||
In certain _rare_ cases you may experience minor problems if you
|
||||
install this release of the library in "/usr" only, namely, that
|
||||
certain applications will not benefit from the bug fixes and
|
||||
rendering improvements you'd expect.
|
||||
|
||||
There are two good ways to deal with this situation:
|
||||
|
||||
- Install the library _twice_, in "/usr" and in "/usr/X11R6"
|
||||
(you have to do that each time you install a new FreeType
|
||||
release though).
|
||||
|
||||
- Change the link in /usr/X11R6/lib/libfreetype.so to point to
|
||||
|
||||
/usr/lib/libfreetype.so,
|
||||
|
||||
and get rid of
|
||||
|
||||
/usr/X11R6/lib/libfreetype.6.0.so
|
||||
|
||||
The FreeType Team is not responsible for this problem, so please
|
||||
contact either the XFree86 development team or your Linux
|
||||
distributor to help clear this issue in case the information given
|
||||
here doesn't help.
|
@ -1425,20 +1425,13 @@
|
||||
if ( char_height < 1 * 64 )
|
||||
char_height = 1 * 64;
|
||||
|
||||
/* Compute pixel sizes in 26.6 units */
|
||||
#ifdef FT_CONFIG_CHESTER_BLUE_SCALE
|
||||
dim_x = ( char_width * horz_resolution ) / 72;
|
||||
dim_y = ( char_height * vert_resolution ) / 72;
|
||||
|
||||
metrics->x_ppem = (FT_UShort)( (dim_x+32) >> 6 );
|
||||
metrics->y_ppem = (FT_UShort)( (dim_y+32) >> 6 );
|
||||
#else
|
||||
dim_x = ( ( ( char_width * horz_resolution ) / 72 ) + 32 ) & -64;
|
||||
dim_y = ( ( ( char_height * vert_resolution ) / 72 ) + 32 ) & -64;
|
||||
/* Compute pixel sizes in 26.6 units. we use rounding
|
||||
*/
|
||||
dim_x = ( ( char_width * horz_resolution + (36+32*72) ) / 72 ) & -64;
|
||||
dim_y = ( ( char_height * vert_resolution + (36+32*72) ) / 72 ) & -64;
|
||||
|
||||
metrics->x_ppem = (FT_UShort)( dim_x >> 6 );
|
||||
metrics->y_ppem = (FT_UShort)( dim_y >> 6 );
|
||||
#endif
|
||||
|
||||
metrics->x_scale = 0x10000L;
|
||||
metrics->y_scale = 0x10000L;
|
||||
|
@ -332,7 +332,7 @@
|
||||
/*************************************************************************/
|
||||
/*************************************************************************/
|
||||
|
||||
#if 0
|
||||
#if 1
|
||||
static FT_Pos
|
||||
psh3_dimension_quantize_len( PSH_Dimension dim,
|
||||
FT_Pos len,
|
||||
@ -520,7 +520,6 @@
|
||||
hint->cur_pos = pos;
|
||||
hint->cur_len = fit_len;
|
||||
|
||||
#if 0
|
||||
/* stem adjustment tries to snap stem widths to standard
|
||||
* ones. this is important to prevent unpleasant rounding
|
||||
* artefacts...
|
||||
@ -545,7 +544,6 @@
|
||||
len = psh3_dimension_quantize_len( dim, len, 0 );
|
||||
}
|
||||
}
|
||||
#endif /* 0 */
|
||||
|
||||
/* now that we have a good hinted stem width, try to position */
|
||||
/* the stem along a pixel grid integer coordinate */
|
||||
@ -602,6 +600,8 @@
|
||||
}
|
||||
|
||||
|
||||
#if 0 /* not used for now, experimental */
|
||||
|
||||
/*
|
||||
* A variant to perform "light" hinting (i.e. FT_RENDER_MODE_LIGHT)
|
||||
* of stems
|
||||
@ -780,6 +780,8 @@
|
||||
}
|
||||
}
|
||||
|
||||
#endif /* 0 */
|
||||
|
||||
|
||||
static void
|
||||
psh3_hint_table_align_hints( PSH3_Hint_Table table,
|
||||
|
@ -779,17 +779,25 @@
|
||||
|
||||
|
||||
static int
|
||||
is_alpha( FT_Byte c )
|
||||
is_name_char( FT_Byte c )
|
||||
{
|
||||
/* Note: we must accept "+" as a valid character, as it is used in */
|
||||
/* embedded type1 fonts in PDF documents. */
|
||||
/* */
|
||||
return ( ft_isalnum( c ) ||
|
||||
c == '.' ||
|
||||
c == '_' ||
|
||||
c == '-' ||
|
||||
c == '+' );
|
||||
}
|
||||
/* Note: PostScript allows any non-delimiting, non-whitespace */
|
||||
/* in a name (PS Ref Manual, 3rd Ed, p31) */
|
||||
/* PostScript delimiters include (,),<,>,[,],{,},/ and % */
|
||||
|
||||
return ( c != '(' &&
|
||||
c != ')' &&
|
||||
c != '<' &&
|
||||
c != '>' &&
|
||||
c != '[' &&
|
||||
c != ']' &&
|
||||
c != '{' &&
|
||||
c != '}' &&
|
||||
c != '/' &&
|
||||
c != '%' &&
|
||||
! is_space( c )
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
@ -861,7 +869,7 @@
|
||||
|
||||
cur++;
|
||||
cur2 = cur;
|
||||
while ( cur2 < limit && is_alpha( *cur2 ) )
|
||||
while ( cur2 < limit && is_name_char( *cur2 ) )
|
||||
cur2++;
|
||||
|
||||
len = cur2 - cur;
|
||||
@ -1070,7 +1078,7 @@
|
||||
FT_PtrDist len;
|
||||
|
||||
|
||||
while ( cur2 < limit && is_alpha( *cur2 ) )
|
||||
while ( cur2 < limit && is_name_char( *cur2 ) )
|
||||
cur2++;
|
||||
|
||||
len = cur2 - cur - 1;
|
||||
@ -1312,7 +1320,7 @@
|
||||
FT_PtrDist len;
|
||||
|
||||
|
||||
while ( cur2 < limit && is_alpha( *cur2 ) )
|
||||
while ( cur2 < limit && is_name_char( *cur2 ) )
|
||||
cur2++;
|
||||
len = cur2 - cur - 1;
|
||||
|
||||
@ -1572,7 +1580,7 @@
|
||||
|
||||
cur++;
|
||||
cur2 = cur;
|
||||
while ( cur2 < limit && is_alpha( *cur2 ) )
|
||||
while ( cur2 < limit && is_name_char( *cur2 ) )
|
||||
cur2++;
|
||||
|
||||
len = cur2 - cur;
|
||||
|
Loading…
Reference in New Issue
Block a user