* include/freetype/freetype.h, src/base/ftpatent.c: adding

FT_Face_SetUnpatentedHinting to dynamically change the setting
	after a face is created.
This commit is contained in:
David Turner 2007-07-01 09:51:15 +00:00
parent 0ba8991292
commit 481b25f009
3 changed files with 54 additions and 1 deletions

View File

@ -1,5 +1,9 @@
2007-07-01 David Turner <david@freetype.org>
* 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

View File

@ -3389,9 +3389,37 @@ FT_BEGIN_HEADER
/* 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 );
/* */

View File

@ -246,7 +246,7 @@
{
FT_Bool result = FALSE;
if ( face && FT_IS_SFNT( face ) )
result = _tt_face_check_patents( face );
@ -254,4 +254,25 @@
}
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 */