forked from minhngoc25a/freetype2
* src/cff/cffobjs.c (cff_face_init): Set default upem value in top
font dict also. Handle font matrix settings in subfonts. * src/cff/cffgload.c (cff_slot_load): Use the correct font matrix for CID-keyed fonts with subfonts. * docs/formats.txt: Updated.
This commit is contained in:
parent
c01c904249
commit
b01676b223
11
ChangeLog
11
ChangeLog
|
@ -1,3 +1,14 @@
|
||||||
|
2005-04-16 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
* src/cff/cffobjs.c (cff_face_init): Set default upem value in top
|
||||||
|
font dict also.
|
||||||
|
Handle font matrix settings in subfonts.
|
||||||
|
|
||||||
|
* src/cff/cffgload.c (cff_slot_load): Use the correct font matrix
|
||||||
|
for CID-keyed fonts with subfonts.
|
||||||
|
|
||||||
|
* docs/formats.txt: Updated.
|
||||||
|
|
||||||
2005-04-14 Kirill Smelkov <kirr@mns.spb.ru>
|
2005-04-14 Kirill Smelkov <kirr@mns.spb.ru>
|
||||||
|
|
||||||
* include/freetype/freetype.h (FT_Vector_Transform),
|
* include/freetype/freetype.h (FT_Vector_Transform),
|
||||||
|
|
|
@ -39,9 +39,9 @@ reference document and whether it is supported in FreeType 2.
|
||||||
|
|
||||||
|
|
||||||
Please send additions and/or corrections to wl@gnu.org or to the
|
Please send additions and/or corrections to wl@gnu.org or to the
|
||||||
FreeType developer's list at devel@freetype (for subscribers only). If
|
FreeType developer's list at freetype-devel@nongnu.org (for subscribers
|
||||||
you can provide a font example for a format which isn't supported yet
|
only). If you can provide a font example for a format which isn't
|
||||||
please send a mail too.
|
supported yet please send a mail too.
|
||||||
|
|
||||||
|
|
||||||
file wrapper font font glyph FreeType reference
|
file wrapper font font glyph FreeType reference
|
||||||
|
@ -65,8 +65,8 @@ MAC SFNT PS CFF --- cff OT spec, 5176.CFF.pdf
|
||||||
MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
|
MAC SFNT PS CFF CID cff OT spec, 5176.CFF.pdf
|
||||||
--- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
|
--- SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
|
||||||
MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
|
MAC SFNT PS CFF SYNTHETIC --- OT spec, 5176.CFF.pdf
|
||||||
--- SFNT TT SBIT --- --- XFree86? (bitmaps only;
|
--- SFNT TT SBIT --- sfnt XFree86 (bitmaps only;
|
||||||
`head' table)
|
with `head' table)
|
||||||
--- SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
|
--- SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
|
||||||
bitmaps only; `bhed' table)
|
bitmaps only; `bhed' table)
|
||||||
MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
|
MAC SFNT TT MACSBIT --- sfnt OT spec (for the Mac;
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
/* */
|
/* */
|
||||||
/* OpenType Glyph Loader (body). */
|
/* OpenType Glyph Loader (body). */
|
||||||
/* */
|
/* */
|
||||||
/* Copyright 1996-2001, 2002, 2003, 2004 by */
|
/* Copyright 1996-2001, 2002, 2003, 2004, 2005 by */
|
||||||
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
|
||||||
/* */
|
/* */
|
||||||
/* This file is part of the FreeType project, and may only be used, */
|
/* This file is part of the FreeType project, and may only be used, */
|
||||||
|
@ -2466,8 +2466,19 @@
|
||||||
|
|
||||||
#endif /* FT_CONFIG_OPTION_INCREMENTAL */
|
#endif /* FT_CONFIG_OPTION_INCREMENTAL */
|
||||||
|
|
||||||
font_matrix = cff->top_font.font_dict.font_matrix;
|
if ( cff->num_subfonts >= 1 )
|
||||||
font_offset = cff->top_font.font_dict.font_offset;
|
{
|
||||||
|
FT_Byte fd_index = cff_fd_select_get( &cff->fd_select, glyph_index );
|
||||||
|
|
||||||
|
|
||||||
|
font_matrix = cff->subfonts[fd_index]->font_dict.font_matrix;
|
||||||
|
font_offset = cff->subfonts[fd_index]->font_dict.font_offset;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
font_matrix = cff->top_font.font_dict.font_matrix;
|
||||||
|
font_offset = cff->top_font.font_dict.font_offset;
|
||||||
|
}
|
||||||
|
|
||||||
/* Now, set the metrics -- this is rather simple, as */
|
/* Now, set the metrics -- this is rather simple, as */
|
||||||
/* the left side bearing is the xMin, and the top side */
|
/* the left side bearing is the xMin, and the top side */
|
||||||
|
|
|
@ -478,6 +478,7 @@
|
||||||
CFF_FontRecDict dict;
|
CFF_FontRecDict dict;
|
||||||
FT_Memory memory = cffface->memory;
|
FT_Memory memory = cffface->memory;
|
||||||
FT_Int32 flags;
|
FT_Int32 flags;
|
||||||
|
FT_UInt i;
|
||||||
|
|
||||||
|
|
||||||
if ( FT_NEW( cff ) )
|
if ( FT_NEW( cff ) )
|
||||||
|
@ -535,10 +536,10 @@
|
||||||
cffface->height = (FT_Short)(
|
cffface->height = (FT_Short)(
|
||||||
( ( cffface->ascender - cffface->descender ) * 12 ) / 10 );
|
( ( cffface->ascender - cffface->descender ) * 12 ) / 10 );
|
||||||
|
|
||||||
if ( dict->units_per_em )
|
if ( !dict->units_per_em )
|
||||||
cffface->units_per_EM = dict->units_per_em;
|
dict->units_per_em = 1000;
|
||||||
else
|
|
||||||
cffface->units_per_EM = 1000;
|
cffface->units_per_EM = dict->units_per_em;
|
||||||
|
|
||||||
cffface->underline_position =
|
cffface->underline_position =
|
||||||
(FT_Short)( dict->underline_position >> 16 );
|
(FT_Short)( dict->underline_position >> 16 );
|
||||||
|
@ -685,6 +686,32 @@
|
||||||
cffface->style_flags = flags;
|
cffface->style_flags = flags;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* handle font matrix settings in subfonts (if any) */
|
||||||
|
for ( i = cff->num_subfonts; i > 0; i-- )
|
||||||
|
{
|
||||||
|
CFF_FontRecDict sub = &cff->subfonts[i - 1]->font_dict;
|
||||||
|
CFF_FontRecDict top = &cff->top_font.font_dict;
|
||||||
|
|
||||||
|
|
||||||
|
if ( sub->units_per_em )
|
||||||
|
{
|
||||||
|
FT_Matrix scale;
|
||||||
|
|
||||||
|
|
||||||
|
scale.xx = scale.yy = (FT_Fixed)FT_DivFix( top->units_per_em,
|
||||||
|
sub->units_per_em );
|
||||||
|
scale.xy = scale.yx = 0;
|
||||||
|
|
||||||
|
FT_Matrix_Multiply( &scale, &sub->font_matrix );
|
||||||
|
FT_Vector_Transform( &sub->font_offset, &scale );
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
sub->font_matrix = top->font_matrix;
|
||||||
|
sub->font_offset = top->font_offset;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
|
#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
|
||||||
/* CID-keyed CFF fonts don't have glyph names -- the SFNT loader */
|
/* CID-keyed CFF fonts don't have glyph names -- the SFNT loader */
|
||||||
/* has unset this flag because of the 3.0 `post' table */
|
/* has unset this flag because of the 3.0 `post' table */
|
||||||
|
|
Loading…
Reference in New Issue