23 червня 2006 о 00:11 +0300 eugen написав(-ла): > here is patch for the bug. It untouches points before executing > instructions on composite glyphs. Those points became touched while > executing instructions on glyph parts. Untouching points can be faster. It is enough to untouch points starting from start_point as in attached patch.
-- Eugeniy Meshcheryakov
Index: freetype-2.2.1/src/truetype/ttgload.c
===================================================================
--- freetype-2.2.1.orig/src/truetype/ttgload.c 2006-02-14 22:44:56.000000000
+0200
+++ freetype-2.2.1/src/truetype/ttgload.c 2006-06-22 20:44:52.000000000
+0300
@@ -932,7 +932,7 @@
{
FT_Error error;
FT_Outline* outline;
-
+ int i;
outline = &loader->gloader->base.outline;
@@ -989,6 +989,12 @@
tt_prepare_zone( &loader->zone, &loader->gloader->base,
start_point, start_contour );
+ /* Some points are likely touched during execution of
+ * instructions on components. So let's untouch them.
+ */
+ for (i = start_point; i < loader->zone.n_points; i++)
+ loader->zone.tags[i] &= ~(FT_CURVE_TAG_TOUCH_X |
FT_CURVE_TAG_TOUCH_Y);
+
loader->zone.n_points += 4;
return TT_Hint_Glyph( loader, 1 );
signature.asc
Description: Digital signature

