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 );

Attachment: signature.asc
Description: Digital signature

Reply via email to