From 29b86f9852b2b7ecc31cdfee56679537e40bc6e2 Mon Sep 17 00:00:00 2001 From: marha Date: Mon, 12 Apr 2010 09:53:17 +0000 Subject: svn merge -r524:HEAD "^/branches/released" . --- freetype/src/cid/cidgload.c | 19 ++++++++++++------- freetype/src/cid/cidobjs.c | 9 +++++---- freetype/src/cid/cidtoken.h | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) (limited to 'freetype/src/cid') diff --git a/freetype/src/cid/cidgload.c b/freetype/src/cid/cidgload.c index e71206506..313ab9ecd 100644 --- a/freetype/src/cid/cidgload.c +++ b/freetype/src/cid/cidgload.c @@ -4,7 +4,7 @@ /* */ /* CID-keyed Type1 Glyph Loader (body). */ /* */ -/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009 by */ +/* Copyright 1996-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2009, 2010 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -58,6 +58,8 @@ #endif + FT_TRACE4(( "cid_load_glyph: glyph index %d\n", glyph_index )); + #ifdef FT_CONFIG_OPTION_INCREMENTAL /* For incremental fonts get the character data using */ @@ -171,16 +173,16 @@ metrics.bearing_x = FIXED_TO_INT( decoder->builder.left_bearing.x ); - metrics.bearing_y = FIXED_TO_INT( decoder->builder.left_bearing.y ); + metrics.bearing_y = 0; metrics.advance = FIXED_TO_INT( decoder->builder.advance.x ); + metrics.advance_v = FIXED_TO_INT( decoder->builder.advance.y ); error = inc->funcs->get_glyph_metrics( inc->object, glyph_index, FALSE, &metrics ); decoder->builder.left_bearing.x = INT_TO_FIXED( metrics.bearing_x ); - decoder->builder.left_bearing.y = INT_TO_FIXED( metrics.bearing_y ); decoder->builder.advance.x = INT_TO_FIXED( metrics.advance ); - decoder->builder.advance.y = 0; + decoder->builder.advance.y = INT_TO_FIXED( metrics.advance_v ); } #endif /* FT_CONFIG_OPTION_INCREMENTAL */ @@ -425,9 +427,12 @@ metrics->horiBearingX = cbox.xMin; metrics->horiBearingY = cbox.yMax; - /* make up vertical ones */ - ft_synthesize_vertical_metrics( metrics, - metrics->vertAdvance ); + if ( load_flags & FT_LOAD_VERTICAL_LAYOUT ) + { + /* make up vertical ones */ + ft_synthesize_vertical_metrics( metrics, + metrics->vertAdvance ); + } } Exit: diff --git a/freetype/src/cid/cidobjs.c b/freetype/src/cid/cidobjs.c index dc18431f5..15ba96769 100644 --- a/freetype/src/cid/cidobjs.c +++ b/freetype/src/cid/cidobjs.c @@ -413,10 +413,11 @@ cidface->num_fixed_sizes = 0; cidface->available_sizes = 0; - cidface->bbox.xMin = cid->font_bbox.xMin >> 16; - cidface->bbox.yMin = cid->font_bbox.yMin >> 16; - cidface->bbox.xMax = ( cid->font_bbox.xMax + 0xFFFFU ) >> 16; - cidface->bbox.yMax = ( cid->font_bbox.yMax + 0xFFFFU ) >> 16; + cidface->bbox.xMin = cid->font_bbox.xMin >> 16; + cidface->bbox.yMin = cid->font_bbox.yMin >> 16; + /* no `U' suffix here to 0xFFFF! */ + cidface->bbox.xMax = ( cid->font_bbox.xMax + 0xFFFF ) >> 16; + cidface->bbox.yMax = ( cid->font_bbox.yMax + 0xFFFF ) >> 16; if ( !cidface->units_per_EM ) cidface->units_per_EM = 1000; diff --git a/freetype/src/cid/cidtoken.h b/freetype/src/cid/cidtoken.h index 94a3657b0..904cb09cf 100644 --- a/freetype/src/cid/cidtoken.h +++ b/freetype/src/cid/cidtoken.h @@ -22,7 +22,7 @@ #define T1CODE T1_FIELD_LOCATION_CID_INFO T1_FIELD_KEY ( "CIDFontName", cid_font_name, 0 ) - T1_FIELD_NUM ( "CIDFontVersion", cid_version, 0 ) + T1_FIELD_FIXED ( "CIDFontVersion", cid_version, 0 ) T1_FIELD_NUM ( "CIDFontType", cid_font_type, 0 ) T1_FIELD_STRING( "Registry", registry, 0 ) T1_FIELD_STRING( "Ordering", ordering, 0 ) -- cgit v1.2.3