shithub: freetype+ttf2subf

Download patch

ref: 43a2f656a71aea4d735dcdff201fed120479f707
parent: bd5ae40006959667299f09f13defa6f025caa744
author: David Turner <[email protected]>
date: Wed Jul 5 14:23:38 EDT 2000

fixed a few bugs, cleaned up some code

git/fs: mount .git/fs: mount/attach disallowed
--- a/demos/src/ttdebug.c
+++ b/demos/src/ttdebug.c
@@ -807,6 +807,18 @@
 
 
   static
+  int  old_tag_to_new( int  tag )
+  {
+    int  result = tag & 1;
+    if (tag & FT_Curve_Tag_Touch_X)
+      result |= 2;
+    if (tag & FT_Curve_Tag_Touch_Y)
+      result |= 4;
+      
+    return result;
+  }
+
+  static
   FT_Error  RunIns( TT_ExecContext  exc )
   {
     FT_Int    A, diff, key;
@@ -1059,7 +1071,7 @@
           printf( "%02hx  ", A );
 
           if ( diff & 16 ) temp = "(%01hx)"; else temp = " %01hx ";
-          printf( temp, save.tags[A] & 7 );
+          printf( temp, old_tag_to_new(save.tags[A]) );
 
           if ( diff & 1 ) temp = "(%08lx)"; else temp = " %08lx ";
           printf( temp, save.org[A].x );
@@ -1078,7 +1090,7 @@
           printf( "%02hx  ", A );
 
           if ( diff & 16 ) temp = "[%01hx]"; else temp = " %01hx ";
-          printf( temp, pts.tags[A] & 7 );
+          printf( temp, old_tag_to_new(pts.tags[A]) );
 
           if ( diff & 1 ) temp = "[%08lx]"; else temp = " %08lx ";
           printf( temp, pts.org[A].x );
@@ -1239,7 +1251,7 @@
       glyph = (TT_GlyphSlot)face->root.glyph;
 
       /* Now load glyph */
-      error = FT_Load_Glyph( (FT_Face)face, glyph_index, FT_LOAD_DEFAULT );
+      error = FT_Load_Glyph( (FT_Face)face, glyph_index, FT_LOAD_NO_BITMAP );
       if (error) Panic( "could not load glyph" );
     }
 
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -980,7 +980,6 @@
         {
           FT_UShort       n_ins;
           TT_ExecContext  exec = loader->exec;
-          FT_UInt         n_points = loader->base.n_points;
           TT_GlyphZone*   pts;
           FT_Vector*      pp1;
 
@@ -1023,7 +1022,7 @@
           pts = &exec->pts;
 
           pts->n_points   = num_points + 2;
-          pts->n_contours = num_contours;
+          pts->n_contours = gloader->base.outline.n_contours;
 
           /* add phantom points */
           pp1    = pts->cur + num_points;
@@ -1044,11 +1043,11 @@
             FT_UInt  k;
 
 
-            for ( k = 0; k < n_points; k++ )
+            for ( k = 0; k < num_points; k++ )
               pts->tags[k] &= FT_Curve_Tag_On;
           }
 
-          cur_to_org( n_points, pts );
+          cur_to_org( num_points+2, pts );
 
           /* now consider hinting */
           if ( IS_HINTED( loader->load_flags ) && n_ins > 0 )
--- a/src/truetype/ttinterp.c
+++ b/src/truetype/ttinterp.c
@@ -6176,8 +6176,8 @@
     else
     {
       mask   = FT_Curve_Tag_Touch_Y;
-      V.orgs = (FT_Vector*)( (FT_F26Dot6*)CUR.pts.org + 1 );
-      V.curs = (FT_Vector*)( (FT_F26Dot6*)CUR.pts.cur + 1 );
+      V.orgs = (FT_Vector*)( (FT_Pos*)CUR.pts.org + 1 );
+      V.curs = (FT_Vector*)( (FT_Pos*)CUR.pts.cur + 1 );
     }
 
     contour = 0;