shithub: freetype+ttf2subf

Download patch

ref: 481b25f00969549816b94e5d2d1f7d75d1cd930f
parent: 0ba89912928144811c0294ae5903658c0a33e387
author: David Turner <[email protected]>
date: Sun Jul 1 05:51:15 EDT 2007

* include/freetype/freetype.h, src/base/ftpatent.c: adding
	FT_Face_SetUnpatentedHinting to dynamically change the setting
	after a face is created.

git/fs: mount .git/fs: mount/attach disallowed
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,9 @@
 2007-07-01  David Turner  <[email protected]>
 
+	* include/freetype/freetype.h, src/base/ftpatent.c: adding
+	FT_Face_SetUnpatentedHinting to dynamically change the setting
+	after a face is created.
+
 	* src/truetype/ttgload.c: fix a small bug that created distortions
 	in the bytecode interpreter results
 
--- a/include/freetype/freetype.h
+++ b/include/freetype/freetype.h
@@ -3389,8 +3389,36 @@
   /*    1 if this is a TrueType font that uses one of the patented         */
   /*    opcodes, 0 otherwise.                                              */
   /*                                                                       */
+  /* <Since> 2.3.5                                                         */
+  /*                                                                       */
   FT_EXPORT( FT_Bool )
   FT_Face_CheckTrueTypePatents( FT_Face  face );
+
+
+  /*************************************************************************/
+  /*                                                                       */
+  /* <Function>                                                            */
+  /*    FT_Face_SetUnpatentedHinting                                       */
+  /*                                                                       */
+  /* <Description>                                                         */
+  /*    Enable or disable the unpatented hinter for a given face.          */
+  /*    Only enable it if you have determined that the face doesn't        */
+  /*    use any patented opcodes (see @FT_Face_CheckTrueTypePatents).      */
+  /*                                                                       */
+  /* <Input>                                                               */
+  /*    face  :: A face handle.                                            */
+  /*    value :: new boolean setting                                       */
+  /*                                                                       */
+  /* <Return>                                                              */
+  /*    the old setting value. this will always be false if this is not    */
+  /*    a SFNT font, or if the unpatented hinter is not compiled in the    */
+  /*    this instance of the library.                                      */
+  /*                                                                       */
+  /* <Since> 2.3.5                                                         */
+  /*                                                                       */
+  FT_EXPORT( FT_Bool )
+  FT_Face_SetUnpatentedHinting( FT_Face   face,
+                                FT_Bool   value );
 
   /* */
 
--- a/src/base/ftpatent.c
+++ b/src/base/ftpatent.c
@@ -246,7 +246,7 @@
   {
     FT_Bool  result = FALSE;
 
-  
+
     if ( face && FT_IS_SFNT( face ) )
       result = _tt_face_check_patents( face );
 
@@ -253,5 +253,26 @@
     return result;
   }
 
+
+  FT_EXPORT_DEF( FT_Bool )
+  FT_Face_SetUnpatentedHinting( FT_Face   face,
+                                FT_Bool   value )
+  {
+    FT_Bool  result = 0;
+
+#if defined(TT_CONFIG_OPTION_UNPATENTED_HINTING) && \
+   !defined(TT_CONFIG_OPTION_BYTECODE_INTEPRETER)
+    if ( face && FT_IS_SFNT(face) )
+    {
+      result = !face->internal->ignore_unpatented_hinter;
+      face->internal->ignore_unpatented_hinter = !value;
+    }
+#else
+    FT_UNUSED(face);
+    FT_UNUSED(value);
+#endif
+
+    return  result;
+  }
 
 /* END */