shithub: freetype+ttf2subf

Download patch

ref: e161ee449c8dffabbcee211f10509f6309f89886
parent: 93ac3e398587c1a1e728e960588bce4378833835
author: David Turner <[email protected]>
date: Mon Jul 10 18:03:10 EDT 2000

fixed a bug that caused invalid clipping of monochrome bitmaps
when they were blitted on the left edge of an 8-bit pixmap..

git/fs: mount .git/fs: mount/attach disallowed
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -246,7 +246,7 @@
   /*                                                                       */
   /*    This must be greater than 4 Kb                                     */
   /*                                                                       */
-#define FT_RENDER_POOL_SIZE   8192
+#define FT_RENDER_POOL_SIZE   16384
 
 
   /*************************************************************************/
--- a/src/cid/cidgload.c
+++ b/src/cid/cidgload.c
@@ -461,7 +461,6 @@
   {
     FT_Error     error;
     FT_Int       bchar_index, achar_index, n_base_points;
-    FT_Outline*  cur  = decoder->builder.current;
     FT_Outline*  base = decoder->builder.base;
     FT_Vector    left_bearing, advance;
 
@@ -523,7 +522,7 @@
     if ( error )
       goto Exit;
 
-    n_base_points = cur->n_points;
+    n_base_points = base->n_points;
 
     {
       /* save the left bearing and width of the base character */
--- a/src/truetype/ttgload.c
+++ b/src/truetype/ttgload.c
@@ -1368,13 +1368,13 @@
         glyph->format = ft_glyph_format_bitmap;
         if ( load_flags & FT_LOAD_VERTICAL_LAYOUT )
         {
-          glyph->bitmap_left = metrics.horiBearingX;
-          glyph->bitmap_top  = metrics.horiBearingY;
+          glyph->bitmap_left = metrics.vertBearingX;
+          glyph->bitmap_top  = metrics.vertBearingY;
         }
         else
         {
-          glyph->bitmap_left = metrics.vertBearingX;
-          glyph->bitmap_top  = metrics.vertBearingY;
+          glyph->bitmap_left = metrics.horiBearingX;
+          glyph->bitmap_top  = metrics.horiBearingY;
         }
         return error;
       }
--- a/src/type1/t1gload.c
+++ b/src/type1/t1gload.c
@@ -281,7 +281,6 @@
   {
     FT_Error     error;
     FT_Int       bchar_index, achar_index, n_base_points;
-    FT_Outline*  cur  = decoder->builder.current;
     FT_Outline*  base = decoder->builder.base;
     FT_Vector    left_bearing, advance;
     T1_Face      face  = decoder->builder.face;
@@ -352,7 +351,7 @@
     if ( error )
       goto Exit;
 
-    n_base_points = cur->n_points;
+    n_base_points = base->n_points;
 
     /* save the left bearing and width of the base character */
     /* as they will be erased by the next load.              */
--- a/src/type1z/z1gload.c
+++ b/src/type1z/z1gload.c
@@ -444,7 +444,6 @@
   {
     FT_Error     error;
     FT_Int       bchar_index, achar_index, n_base_points;
-    FT_Outline*  cur  = decoder->builder.current;
     FT_Outline*  base = decoder->builder.base;
     FT_Vector    left_bearing, advance;
     T1_Face      face  = decoder->builder.face;
@@ -513,7 +512,7 @@
     if ( error )
       goto Exit;
 
-    n_base_points = cur->n_points;
+    n_base_points = base->n_points;
 
     /* save the left bearing and width of the base character */
     /* as they will be erased by the next load.              */