forked from minhngoc25a/freetype2
[autofit] Improve tracing of `latin' hinter.
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue zone types. (af_latin_metrics_scale_dim): Report scaling changes due to x height alignment. Report scaled stroke width and blue zone values.
This commit is contained in:
parent
2c56f2ab90
commit
b6695243b7
10
ChangeLog
10
ChangeLog
|
@ -1,3 +1,13 @@
|
||||||
|
2013-10-12 Werner Lemberg <wl@gnu.org>
|
||||||
|
|
||||||
|
[autofit] Improve tracing of `latin' hinter.
|
||||||
|
|
||||||
|
* src/autofit/aflatin.c (af_latin_metrics_init_blues): Report blue
|
||||||
|
zone types.
|
||||||
|
(af_latin_metrics_scale_dim): Report scaling changes due to x height
|
||||||
|
alignment.
|
||||||
|
Report scaled stroke width and blue zone values.
|
||||||
|
|
||||||
2013-10-03 Dave Arnold <darnold@adobe.com>
|
2013-10-03 Dave Arnold <darnold@adobe.com>
|
||||||
|
|
||||||
* src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
|
* src/cff/cf2font.c (cf2_computeDarkening): Avoid division by zero.
|
||||||
|
|
|
@ -232,7 +232,44 @@
|
||||||
FT_Pos* blue_shoot;
|
FT_Pos* blue_shoot;
|
||||||
|
|
||||||
|
|
||||||
FT_TRACE5(( "blue zone %d:\n", axis->blue_count ));
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
|
{
|
||||||
|
FT_Bool have_flag = 0;
|
||||||
|
|
||||||
|
|
||||||
|
FT_TRACE5(( "blue zone %d", axis->blue_count ));
|
||||||
|
|
||||||
|
if ( bs->properties )
|
||||||
|
{
|
||||||
|
FT_TRACE5(( " (" ));
|
||||||
|
|
||||||
|
if ( AF_LATIN_IS_TOP_BLUE( bs ) )
|
||||||
|
{
|
||||||
|
FT_TRACE5(( "top" ));
|
||||||
|
have_flag = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( AF_LATIN_IS_SMALL_TOP_BLUE( bs ) )
|
||||||
|
{
|
||||||
|
if ( have_flag )
|
||||||
|
FT_TRACE5(( ", " ));
|
||||||
|
FT_TRACE5(( "small top" ));
|
||||||
|
have_flag = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ( AF_LATIN_IS_LONG_BLUE( bs ) )
|
||||||
|
{
|
||||||
|
if ( have_flag )
|
||||||
|
FT_TRACE5(( ", " ));
|
||||||
|
FT_TRACE5(( "long" ));
|
||||||
|
}
|
||||||
|
|
||||||
|
FT_TRACE5(( ")" ));
|
||||||
|
}
|
||||||
|
|
||||||
|
FT_TRACE5(( ":\n" ));
|
||||||
|
}
|
||||||
|
#endif /* FT_DEBUG_LEVEL_TRACE */
|
||||||
|
|
||||||
num_flats = 0;
|
num_flats = 0;
|
||||||
num_rounds = 0;
|
num_rounds = 0;
|
||||||
|
@ -837,7 +874,20 @@
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
if ( dim == AF_DIMENSION_VERT )
|
if ( dim == AF_DIMENSION_VERT )
|
||||||
|
{
|
||||||
scale = FT_MulDiv( scale, fitted, scaled );
|
scale = FT_MulDiv( scale, fitted, scaled );
|
||||||
|
|
||||||
|
FT_TRACE5((
|
||||||
|
"af_latin_metrics_scale_dim:"
|
||||||
|
" x height alignment (script `%s'):\n"
|
||||||
|
" "
|
||||||
|
" vertical scaling changed from %.4f to %.4f (by %d%%)\n"
|
||||||
|
"\n",
|
||||||
|
af_script_names[metrics->root.script_class->script],
|
||||||
|
axis->org_scale / 65536.0,
|
||||||
|
scale / 65536.0,
|
||||||
|
( fitted - scaled ) * 100 / scaled ));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -856,6 +906,10 @@
|
||||||
metrics->root.scaler.y_delta = delta;
|
metrics->root.scaler.y_delta = delta;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FT_TRACE5(( "%s widths (script `%s')\n",
|
||||||
|
dim == AF_DIMENSION_HORZ ? "horizontal" : "vertical",
|
||||||
|
af_script_names[metrics->root.script_class->script] ));
|
||||||
|
|
||||||
/* scale the widths */
|
/* scale the widths */
|
||||||
for ( nn = 0; nn < axis->width_count; nn++ )
|
for ( nn = 0; nn < axis->width_count; nn++ )
|
||||||
{
|
{
|
||||||
|
@ -864,15 +918,30 @@
|
||||||
|
|
||||||
width->cur = FT_MulFix( width->org, scale );
|
width->cur = FT_MulFix( width->org, scale );
|
||||||
width->fit = width->cur;
|
width->fit = width->cur;
|
||||||
|
|
||||||
|
FT_TRACE5(( " %d scaled to %.2f\n",
|
||||||
|
width->org,
|
||||||
|
width->cur / 64.0 ));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
FT_TRACE5(( "\n" ));
|
||||||
|
|
||||||
/* an extra-light axis corresponds to a standard width that is */
|
/* an extra-light axis corresponds to a standard width that is */
|
||||||
/* smaller than 5/8 pixels */
|
/* smaller than 5/8 pixels */
|
||||||
axis->extra_light =
|
axis->extra_light =
|
||||||
(FT_Bool)( FT_MulFix( axis->standard_width, scale ) < 32 + 8 );
|
(FT_Bool)( FT_MulFix( axis->standard_width, scale ) < 32 + 8 );
|
||||||
|
|
||||||
|
#ifdef FT_DEBUG_LEVEL_TRACE
|
||||||
|
if ( axis->extra_light )
|
||||||
|
FT_TRACE5(( "this font is extra light\n"
|
||||||
|
"\n" ));
|
||||||
|
#endif
|
||||||
|
|
||||||
if ( dim == AF_DIMENSION_VERT )
|
if ( dim == AF_DIMENSION_VERT )
|
||||||
{
|
{
|
||||||
|
FT_TRACE5(( "blue zones (script `%s')\n",
|
||||||
|
af_script_names[metrics->root.script_class->script] ));
|
||||||
|
|
||||||
/* scale the blue zones */
|
/* scale the blue zones */
|
||||||
for ( nn = 0; nn < axis->blue_count; nn++ )
|
for ( nn = 0; nn < axis->blue_count; nn++ )
|
||||||
{
|
{
|
||||||
|
@ -944,6 +1013,19 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
blue->flags |= AF_LATIN_BLUE_ACTIVE;
|
blue->flags |= AF_LATIN_BLUE_ACTIVE;
|
||||||
|
|
||||||
|
FT_TRACE5(( " reference %d: %d scaled to %.2f%s\n"
|
||||||
|
" overshoot %d: %d scaled to %.2f%s\n",
|
||||||
|
nn,
|
||||||
|
blue->ref.org,
|
||||||
|
blue->ref.fit / 64.0,
|
||||||
|
blue->flags & AF_LATIN_BLUE_ACTIVE ? ""
|
||||||
|
: " (inactive)",
|
||||||
|
nn,
|
||||||
|
blue->shoot.org,
|
||||||
|
blue->shoot.fit / 64.0,
|
||||||
|
blue->flags & AF_LATIN_BLUE_ACTIVE ? ""
|
||||||
|
: " (inactive)" ));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue