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.
--- 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 */