ref: 098121dbb98e5f37ce79c6daeeb82b3277a5891a
parent: ffee64afb83f66b9cd599d61f1e49c8100010a9e
author: Werner Lemberg <[email protected]>
date: Mon Aug 26 14:54:05 EDT 2013
[autofit] Improve tracing messages. * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script ID in tracing message. (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner loop. Improve tracing messages. (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable `num_actions' to count hinting actions. Improve tracing messages. * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention script ID in tracing message. (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing messages.
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,23 @@
2013-08-26 Werner Lemberg <[email protected]>
+ [autofit] Improve tracing messages.
+
+ * src/autofit/afcjk.c (af_cjk_metrics_init_widths): Mention script
+ ID in tracing message.
+ (af_cjk_metrics_init_blues): Initialize `axis' outside of the inner
+ loop.
+ Improve tracing messages.
+ (af_cjk_hint_edges) [FT_DEBUG_LEVEL_TRACE]: New variable
+ `num_actions' to count hinting actions.
+ Improve tracing messages.
+
+ * src/autofit/aflatin.c (af_latin_metrics_init_widths): Mention
+ script ID in tracing message.
+ (af_latin_metrics_init_blues, af_latin_hint_edges): Improve tracing
+ messages.
+
+2013-08-26 Werner Lemberg <[email protected]>
+
Better tracing of loaded glyphs.
Previously, the loading of a glyph was traced at level 4, if at all.
--- a/src/autofit/afcjk.c
+++ b/src/autofit/afcjk.c
@@ -73,9 +73,11 @@
AF_GlyphHintsRec hints[1];
- FT_TRACE5(( "cjk standard widths computation\n"
- "===============================\n"
- "\n" ));
+ FT_TRACE5(( "\n"
+ "cjk standard widths computation (script %d)\n"
+ "===========================================\n"
+ "\n",
+ metrics->root.script_class->script ));
af_glyph_hints_init( hints, face->memory );
@@ -259,6 +261,11 @@
FT_Pos* blue_shoot;
+ if ( AF_CJK_IS_HORIZ_BLUE( bs ) )
+ axis = &metrics->axis[AF_DIMENSION_HORZ];
+ else
+ axis = &metrics->axis[AF_DIMENSION_VERT];
+
FT_TRACE5(( "blue zone %d:\n", axis->blue_count ));
num_fills = 0;
@@ -280,13 +287,11 @@
GET_UTF8_CHAR( ch, p );
- FT_TRACE5(( " U+%lX... ", ch ));
-
/* load the character in the face -- skip unknown or empty ones */
glyph_index = FT_Get_Char_Index( face, ch );
if ( glyph_index == 0 )
{
- FT_TRACE5(( "unavailable\n" ));
+ FT_TRACE5(( " U+%04lX unavailable\n", ch ));
continue;
}
@@ -294,7 +299,7 @@
outline = face->glyph->outline;
if ( error || outline.n_points <= 0 )
{
- FT_TRACE5(( "no outline\n" ));
+ FT_TRACE5(( " U+%04lX contains no outlines\n", ch ));
continue;
}
@@ -366,7 +371,7 @@
}
}
- FT_TRACE5(( "best_pos = %5ld\n", best_pos ));
+ FT_TRACE5(( " U+%04lX: best_pos = %5ld\n", ch, best_pos ));
}
if ( AF_CJK_IS_FILLED_BLUE( bs ) )
@@ -391,11 +396,6 @@
af_sort_pos( num_flats, flats );
af_sort_pos( num_fills, fills );
- if ( AF_CJK_IS_HORIZ_BLUE( bs ) )
- axis = &metrics->axis[AF_DIMENSION_HORZ];
- else
- axis = &metrics->axis[AF_DIMENSION_VERT];
-
blue = &axis->blues[axis->blue_count];
blue_ref = &blue->ref.org;
blue_shoot = &blue->shoot.org;
@@ -1660,9 +1660,13 @@
FT_Bool has_last_stem = FALSE;
FT_Pos last_stem_pos = 0;
+#ifdef FT_DEBUG_LEVEL_TRACE
+ FT_UInt num_actions = 0;
+#endif
+
/* we begin by aligning all stems relative to the blue zone */
- FT_TRACE5(( "==== cjk hinting %s edges =====\n",
+ FT_TRACE5(( "cjk %s edge hinting\n",
dim == AF_DIMENSION_HORZ ? "vertical" : "horizontal" ));
if ( AF_HINTS_DO_BLUES( hints ) )
@@ -1694,11 +1698,15 @@
if ( !edge1 )
continue;
- FT_TRACE5(( "CJKBLUE: edge %d @%d (opos=%.2f) snapped to (%.2f), "
- "was (%.2f)\n",
- edge1-edges, edge1->fpos, edge1->opos / 64.0, blue->fit / 64.0,
- edge1->pos / 64.0 ));
+#ifdef FT_DEBUG_LEVEL_TRACE
+ FT_TRACE5(( " CJKBLUE: edge %d @%d (opos=%.2f) snapped to %.2f,"
+ " was %.2f\n",
+ edge1 - edges, edge1->fpos, edge1->opos / 64.0,
+ blue->fit / 64.0, edge1->pos / 64.0 ));
+ num_actions++;
+#endif
+
edge1->pos = blue->fit;
edge1->flags |= AF_EDGE_DONE;
@@ -1706,6 +1714,10 @@
{
af_cjk_align_linked_edge( hints, dim, edge1, edge2 );
edge2->flags |= AF_EDGE_DONE;
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+ num_actions++;
+#endif
}
if ( !anchor )
@@ -1747,6 +1759,7 @@
}
/* now align the stem */
+
/* this should not happen, but it's better to be safe */
if ( edge2->blue_edge )
{
@@ -1754,6 +1767,11 @@
af_cjk_align_linked_edge( hints, dim, edge2, edge );
edge->flags |= AF_EDGE_DONE;
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+ num_actions++;
+#endif
+
continue;
}
@@ -1761,6 +1779,11 @@
{
af_cjk_align_linked_edge( hints, dim, edge2, edge );
edge->flags |= AF_EDGE_DONE;
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+ num_actions++;
+#endif
+
/* We rarely reaches here it seems;
* usually the two edges belonging
* to one stem are marked as DONE together
@@ -1928,7 +1951,7 @@
}
if ( !skipped )
- return;
+ goto Exit;
/*
* now hint the remaining edges (serifs and single) in order
@@ -1948,7 +1971,7 @@
}
if ( !skipped )
- return;
+ goto Exit;
for ( edge = edges; edge < edge_limit; edge++ )
{
@@ -1986,6 +2009,16 @@
}
}
}
+
+ Exit:
+
+#ifdef FT_DEBUG_LEVEL_TRACE
+ if ( !num_actions )
+ FT_TRACE5(( " (none)\n" ));
+ FT_TRACE5(( "\n" ));
+#endif
+
+ return;
}
--- a/src/autofit/aflatin.c
+++ b/src/autofit/aflatin.c
@@ -60,9 +60,11 @@
AF_GlyphHintsRec hints[1];
- FT_TRACE5(( "latin standard widths computation\n"
- "=================================\n"
- "\n" ));
+ FT_TRACE5(( "\n"
+ "latin standard widths computation (script %d)\n"
+ "=============================================\n"
+ "\n",
+ metrics->root.script_class->script ));
af_glyph_hints_init( hints, face->memory );
@@ -249,13 +251,11 @@
GET_UTF8_CHAR( ch, p );
- FT_TRACE5(( " U+%lX... ", ch ));
-
/* load the character in the face -- skip unknown or empty ones */
glyph_index = FT_Get_Char_Index( face, ch );
if ( glyph_index == 0 )
{
- FT_TRACE5(( "unavailable\n" ));
+ FT_TRACE5(( " U+%04lX unavailable\n", ch ));
continue;
}
@@ -263,7 +263,7 @@
outline = face->glyph->outline;
if ( error || outline.n_points <= 0 )
{
- FT_TRACE5(( "no outline\n" ));
+ FT_TRACE5(( " U+%04lX contains no outlines\n", ch ));
continue;
}
@@ -320,7 +320,7 @@
}
}
- FT_TRACE5(( "best_y = %5ld\n", best_y ));
+ FT_TRACE5(( " U+%04lX: best_y = %5ld", ch, best_y ));
}
/* now check whether the point belongs to a straight or round */
@@ -1897,7 +1897,7 @@
#endif
- FT_TRACE5(( "%s edge hinting\n",
+ FT_TRACE5(( "latin %s edge hinting\n",
dim == AF_DIMENSION_VERT ? "horizontal" : "vertical" ));
/* we begin by aligning all stems relative to the blue zone */