shithub: freetype+ttf2subf

Download patch

ref: 110246c64149e8df09b0101c5b0a2d61117a5b18
parent: e3d6e94853c8ffddb9b0c0e21395cd11568d6704
author: Werner Lemberg <[email protected]>
date: Tue Sep 26 17:55:44 EDT 2006

formatting

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,21 +1,28 @@
 2006-09-26  David Turner  <[email protected]>
 
-        * src/autofit/aftypes.h, src/autofit/afhints.h,
-        src/autofit/afmodule.c: adding support for disabling
-        horizontal and vertical hinting for the purpose of debugging
-        the auto-fitter
+	* src/autofit/afhints.h (AF_HINTS_DO_HORIZONTAL,
+	AF_HINTS_DO_VERTICAL, AF_HINTS_DO_ADVANCE): New macros to disable
+	horizontal and vertical hinting for the purpose of debugging the
+	auto-fitter.
 
-        * include/freetype/config/ftoption.h, devel/ftoption.h:
-        introducing the new FT_CONFIG_OPTION_SUBPIXEL_RENDERING to
-        control wether we want to compile LCD-optimized rendering code
-        (à la ClearType) or not. The macro *must* be disabled in default
-        builds of the library for patent reasons.
+	* src/autofit/afmodule.c (_af_debug_disable_horz_hints,
+	_af_debug_disable_vert_hints) [AF_DEBUG]: New global variables.
 
-        * src/smooth/ftsmooth.c: disabling LCD-specific rendering when
-        FT_CONFIG_OPTION_SUBPIXEL_RENDERING isn't defined at compile
-        time. This only changes the content of the rendered glyph to
-        match the one of normal gray-level rendering, hence clients
-        should not need to be modified.
+	* src/autofit/aftypes.h [AF_DEBUG]: Declare above variables.
+
+	* include/freetype/config/ftoption.h, devel/ftoption.h
+	(FT_CONFIG_OPTION_SUBPIXEL_RENDERING): New macro to control whether
+	we want to compile LCD-optimized rendering code (à la ClearType) or
+	not.  The macro *must* be disabled in default builds of the library
+	for patent reasons.
+
+	* src/smooth/ftsmooth.c (ft_smooth_render_generic): Disable
+	LCD-specific rendering when FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+	isn't defined at compile time.  This only changes the content of the
+	rendered glyph to match the one of normal gray-level rendering,
+	hence clients should not need to be modified.
+
+	* docs/CHANGES: Updated.
 
 2006-09-18  Garrick Meeker  <[email protected]>
 
--- a/devel/ftoption.h
+++ b/devel/ftoption.h
@@ -77,7 +77,7 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /* uncomment the line below if you want to active sub-pixel rendering    */
+  /* Uncomment the line below if you want to active sub-pixel rendering    */
   /* (a.k.a. LCD rendering, or ClearType) in this build of the library.    */
   /*                                                                       */
   /* Note that this feature is covered by several Microsoft patents        */
@@ -84,12 +84,12 @@
   /* and should not be activated in any default build of the library.      */
   /*                                                                       */
   /* This macro has no impact on the FreeType API, only on its             */
-  /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling  */
-  /* FT_Render_Glyph will still generate a bitmap that is 3 times          */
-  /* larger than the original size, The difference will be that each       */
-  /* triplet of subpixels will have R=G=B.                                 */
+  /* _implementation_.  For example, using FT_RENDER_MODE_LCD when calling */
+  /* FT_Render_Glyph still generates a bitmap that is 3 times larger than  */
+  /* the original size; the difference will be that each triplet of        */
+  /* subpixels has R=G=B.                                                  */
   /*                                                                       */
-  /* This is done to allow FreeType clients to run unmodified, forcing    */
+  /* This is done to allow FreeType clients to run unmodified, forcing     */
   /* them to display normal gray-level anti-aliased glyphs.                */
   /*                                                                       */
 /* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
--- a/docs/CHANGES
+++ b/docs/CHANGES
@@ -2,66 +2,72 @@
 
   I. IMPORTANT BUG FIXES
 
-    - The PCF font loarder has been seriously hardened against malformed
-      font files.
+    - The  PCF font  loader  is  now much  more  robust while  loading
+      malformed font files.
 
-    - various memory leaks have been found and squashed
+    - Various memory leaks have been found and fixed.
 
+
   II. IMPORTANT CHANGES
 
-    - the unpatented hinter is now part of the default build of the
-      library, and we added code to automatically support "tricky"
+    - The unpatented  hinter is now part  of the default  build of the
+      library; we  have added  code to automatically  support `tricky'
       fonts that need it.
 
-      what this means is that FreeType should "just work" with certain
-      Asian fonts, like MingLiU, which cannot properly load without a
-      bytecode interpreter, but fortunately do not use any of the
-      patented bytecode opcodes. We detect these fonts by name, so
-      report any font file that doesn't seem to work with this,
-      and we'll do what we can to support it in a next release.
+      This means  that FreeType should `just work'  with certain Asian
+      fonts, like  MingLiU, which cannot properly be  loaded without a
+      bytecode interpreter,  but which fortunately  do not use  any of
+      the patented  bytecode opcodes.  We detect these  fonts by name,
+      so please  report any font file  that doesn't seem  to work with
+      FreeType, and  we shall do what we  can to support it  in a next
+      release.
 
-      Note that the API didn't change, so you can still force
-      unpatented hinting with a special parameter to FT_Open_Face
-      as well. This might be useful, for example, a PDF reader
-      might present a user option to activate it to deal with certain
-      "tricky" embedded fonts which cannot be clearly identified.
+      Note  that  the API  hasn't  changed,  so  you can  still  force
+      unpatented hinting  with a special parameter  to FT_Open_Face as
+      well.  This  might be useful in  same cases; for  example, a PDF
+      reader might present  a user option to activate  it to deal with
+      certain  `tricky'   embedded  fonts  which   cannot  be  clearly
+      identified.
 
-      if you're an embedded systems developer, you might want to
-      *disable* the feature to save code space by undefining
+      If you are  a developer for embedded systems,  you might want to
+      *disable*  the   feature  to  save  code   space  by  undefining
       TT_CONFIG_OPTION_UNPATENTED_HINTING in ftoption.h.
 
-    - LCD-optimized rendering is now DISABLED in all default builds
-      of the library, mainly due to PATENTS. For more information
+    - LCD-optimized rendering is now DISABLED in all default builds of
+      the library, mainly due  to PATENT issues.  For more information
       see:
 
       http://lists.gnu.org/archive/html/freetype/2006-09/msg00064.html
 
-      a new configuration macro FT_CONFIG_OPTION_SUBPIXEL_RENDERING has
-      been introduced in ftoption.h; manually define it in this file
-      if you want to re-enable the feature.
+      A  new  configuration macro  FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+      has been  introduced in ftoption.h;  manually define it  in this
+      file if you want to re-enable the feature.
 
-      the change only affects the implementation, not the FreeType API.
-      This means that clients don't need to be modified, because the
-      library still generates LCD decimated bitmaps, but with the added
-      constraint that R=G=B on each triplet.
+      The  change only  affects the  implementation, not  the FreeType
+      API.  This means that clients don't need to be modified, because
+      the library still generates  LCD decimated bitmaps, but with the
+      added constraint that R=G=B on each triplet.
 
-      the displayed result should be equal to normal anti-aliased
+      The  displayed result  should  be equal  to normal  anti-aliased
       rendering.
 
-   - Some computation bugs in the TrueType bytecode interpreter were found,
-     which allow us to get rid of very subtle and rare differences we had
-     with the Windows renderer.
+    - Some computation bugs in  the TrueType bytecode interpreter were
+      found,  which  allow us  to  get rid  of  very  subtle and  rare
+      differences we had experienced with the Windows renderer.
 
+
   III. MISCELLANEOUS
 
     - TrueType glyph loading is now about 25% faster.
 
-    - the anti-aliased rasterizer has been optimized and is now 15% to 25%
-      percent faster than the previous one, depending on content
+    - The anti-aliased rasterizer has been optimized and is now 15% to
+      25%  percent  faster than  in  previous  versions, depending  on
+      content.
 
-    - the Type 1 loader has been improved; as an example, it now skips
-      over top-level dictionaries properly
+    - The Type 1 loader has been improved; as an example, it now skips
+      top-level dictionaries properly.
 
+
 ======================================================================
 
 CHANGES BETWEEN 2.2.1 and 2.2
@@ -557,7 +563,7 @@
 
   III. MISCELLANEOUS
 
-    - Wolfgang Domr�e contributed support files for building FreeType
+    - Wolfgang Domröse contributed support files for building FreeType
       on the Atari using the PureC compiler.  Note that the Atari is a
       16bit platform.
 
@@ -1141,7 +1147,7 @@
       to use the following text in your documentation:
 
       """
-        Portions of this software are copyright  1996-2002 The
+        Portions of this software are copyright © 1996-2002 The
         FreeType Project (www.freetype.org).  All rights reserved.
       """
 
@@ -2843,5 +2849,10 @@
 file you  indicate that  you have  read the  license and understand  and
 accept it fully.
 
+
+Local Variables:
+version-control: never
+coding: utf-8
+End:
 
 --- end of CHANGES ---
--- a/include/freetype/config/ftoption.h
+++ b/include/freetype/config/ftoption.h
@@ -77,7 +77,7 @@
 
   /*************************************************************************/
   /*                                                                       */
-  /* uncomment the line below if you want to active sub-pixel rendering    */
+  /* Uncomment the line below if you want to active sub-pixel rendering    */
   /* (a.k.a. LCD rendering, or ClearType) in this build of the library.    */
   /*                                                                       */
   /* Note that this feature is covered by several Microsoft patents        */
@@ -84,15 +84,16 @@
   /* and should not be activated in any default build of the library.      */
   /*                                                                       */
   /* This macro has no impact on the FreeType API, only on its             */
-  /* _implementation_. For example, using FT_RENDER_MODE_LCD when calling  */
-  /* FT_Render_Glyph will still generate a bitmap that is 3 times          */
-  /* larger than the original size, The difference will be that each       */
-  /* triplet of subpixels will have R=G=B.                                 */
+  /* _implementation_.  For example, using FT_RENDER_MODE_LCD when calling */
+  /* FT_Render_Glyph still generates a bitmap that is 3 times larger than  */
+  /* the original size; the difference will be that each triplet of        */
+  /* subpixels has R=G=B.                                                  */
   /*                                                                       */
-  /* This is done to allow FreeType clients to run unmodified, forcing    */
+  /* This is done to allow FreeType clients to run unmodified, forcing     */
   /* them to display normal gray-level anti-aliased glyphs.                */
   /*                                                                       */
 /* #define FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+
 
   /*************************************************************************/
   /*                                                                       */
--- a/src/autofit/afhints.h
+++ b/src/autofit/afhints.h
@@ -213,17 +213,22 @@
 #define AF_HINTS_TEST_SCALER( h, f )  ( (h)->scaler_flags & (f) )
 #define AF_HINTS_TEST_OTHER( h, f )   ( (h)->other_flags  & (f) )
 
+
 #ifdef AF_DEBUG
-#define AF_HINTS_DO_HORIZONTAL( h )                                \
-          ( !_af_debug_disable_horz_hints && !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_HORIZONTAL ) )
 
-#define AF_HINTS_DO_VERTICAL( h )                                \
-          ( !_af_debug_disable_vert_hints && !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_VERTICAL ) )
+#define AF_HINTS_DO_HORIZONTAL( h )                                     \
+          ( !_af_debug_disable_horz_hints                            && \
+            !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_HORIZONTAL ) )
 
+#define AF_HINTS_DO_VERTICAL( h )                                     \
+          ( !_af_debug_disable_vert_hints                          && \
+            !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_VERTICAL ) )
+
 #define AF_HINTS_DO_ADVANCE( h )                                \
           !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_ADVANCE )
 
 #else /* !AF_DEBUG */
+
 #define AF_HINTS_DO_HORIZONTAL( h )                                \
           !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_HORIZONTAL )
 
@@ -234,6 +239,7 @@
           !AF_HINTS_TEST_SCALER( h, AF_SCALER_FLAG_NO_ADVANCE )
 
 #endif /* !AF_DEBUG */
+
 
   FT_LOCAL( AF_Direction )
   af_direction_compute( FT_Pos  dx,
--- a/src/smooth/ftsmooth.c
+++ b/src/smooth/ftsmooth.c
@@ -4,7 +4,7 @@
 /*                                                                         */
 /*    Anti-aliasing renderer interface (body).                             */
 /*                                                                         */
-/*  Copyright 2000-2001, 2002, 2003, 2004, 2005 by                         */
+/*  Copyright 2000-2001, 2002, 2003, 2004, 2005, 2006 by                   */
 /*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
 /*                                                                         */
 /*  This file is part of the FreeType project, and may only be used,       */
@@ -183,6 +183,7 @@
     params.flags  = FT_RASTER_FLAG_AA;
 
 #ifdef FT_CONFIG_OPTION_SUBPIXEL_RENDERING
+
     /* implode outline if needed */
     {
       FT_Int      n;
@@ -190,11 +191,15 @@
 
 
       if ( hmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
+        for ( vec = outline->points, n = 0;
+              n < outline->n_points;
+              n++, vec++ )
           vec->x *= hmul;
 
       if ( vmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
+        for ( vec = outline->points, n = 0;
+              n < outline->n_points;
+              n++, vec++ )
           vec->y *= vmul;
     }
 
@@ -208,14 +213,20 @@
 
 
       if ( hmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
+        for ( vec = outline->points, n = 0;
+              n < outline->n_points;
+              n++, vec++ )
           vec->x /= hmul;
 
       if ( vmul )
-        for ( vec = outline->points, n = 0; n < outline->n_points; n++, vec++ )
+        for ( vec = outline->points, n = 0;
+              n < outline->n_points;
+              n++, vec++ )
           vec->y /= vmul;
     }
+
 #else /* !FT_CONFIG_OPTION_SUBPIXEL_RENDERING */
+
     /* render outline into bitmap */
     error = render->raster_render( render->raster, &params );
 
@@ -222,19 +233,22 @@
     /* expand it horizontally */
     if ( hmul > 1 )
     {
-      FT_Byte*  line = bitmap->buffer + (height - height_org)*pitch;
+      FT_Byte*  line = bitmap->buffer + ( height - height_org ) * pitch;
       FT_UInt   hh;
 
+
       for ( hh = height_org; hh > 0; hh--, line += pitch )
       {
         FT_UInt   xx;
         FT_Byte*  end = line + width;
 
+
         for ( xx = width_org; xx > 0; xx-- )
         {
           FT_UInt  pixel = line[xx-1];
           FT_UInt  count = hmul;
 
+
           for ( count = hmul; count > 0; count-- )
             end[-count] = (FT_Byte)pixel;
 
@@ -246,13 +260,15 @@
     /* expand it vertically */
     if ( vmul > 1 )
     {
-      FT_Byte*    read  = bitmap->buffer + (height-height_org)*pitch;
-      FT_Byte*    write = bitmap->buffer;
-      FT_UInt     hh;
+      FT_Byte*  read  = bitmap->buffer + ( height - height_org ) * pitch;
+      FT_Byte*  write = bitmap->buffer;
+      FT_UInt   hh;
 
+
       for ( hh = height_org; hh > 0; hh-- )
       {
         FT_UInt  count = vmul;
+
 
         for ( count = vmul; count > 0; count-- )
         {