* include/freetype/config/ftoption.h, devel/ftoption.h,

include/freetype/internal/ftobjs.h, include/freetype/internal/tttypes.h,
        src/truetype/ttinterp.c, src/truetype/ttobjs.c, src/truetype/ttobjs.h:

        changed the name of TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING to
        the simpler TT_CONFIG_OPTION_UNPATENTED_HINTING

        removed the macro TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. Instead,
        the same effect can be used by setting a debug-hook with
        FT_DEBUG_HOOK_UNPATENTED_HINTING globally with FT_Set_Debug_Hook()
This commit is contained in:
David Turner 2003-08-17 22:09:14 +00:00
parent 0f4eb3d03d
commit 8b6db86b05
8 changed files with 64 additions and 70 deletions

View File

@ -1,3 +1,16 @@
2003-08-18 David Turner <david@freetype.org>
* include/freetype/config/ftoption.h, devel/ftoption.h,
include/freetype/internal/ftobjs.h, include/freetype/internal/tttypes.h,
src/truetype/ttinterp.c, src/truetype/ttobjs.c, src/truetype/ttobjs.h:
changed the name of TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING to
the simpler TT_CONFIG_OPTION_UNPATENTED_HINTING
removed the macro TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING. Instead,
the same effect can be used by setting a debug-hook with
FT_DEBUG_HOOK_UNPATENTED_HINTING globally with FT_Set_Debug_Hook()
2003-08-06 Werner Lemberg <wl@gnu.org>
* src/type1/t1gload.c (T1_Load_Glyph), src/cff/cffgload.c

View File

@ -404,27 +404,14 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING (in addition to */
/* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */
/* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */
/* work-around hinting system. You must define this if you want either */
/* to force the use of the unpatented hinting system by also defining */
/* TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING, or if you want to select */
/* it at run time using the FT_PARAM_TAG_UNPATENTED_HINTING tag. */
/* work-around hinting system. Note that for the moment, the algorithm */
/* is only used when selected at runtime through the parameter tag */
/* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */
/* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */
/* */
#define TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to restrict the */
/* TrueType bytecode interpreter to actions not protected by patents. */
/* This enables some fonts, for example mingliu.ttc from Dynalab, to */
/* work properly. They use hinting to make large changes to the glyph */
/* shape, without which the glyph is unrecognisable. */
/* For this to work you must also define */
/* TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING. */
/* */
#undef TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING
#define TT_CONFIG_OPTION_UNPATENTED_HINTING
/*************************************************************************/

View File

@ -404,27 +404,14 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING (in addition to */
/* Define TT_CONFIG_OPTION_UNPATENTED_HINTING (in addition to */
/* TT_CONFIG_OPTION_BYTECODE_INTERPRETER) to compile the unpatented */
/* work-around hinting system. You must define this if you want either */
/* to force the use of the unpatented hinting system by also defining */
/* TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING, or if you want to select */
/* it at run time using the FT_PARAM_TAG_UNPATENTED_HINTING tag. */
/* work-around hinting system. Note that for the moment, the algorithm */
/* is only used when selected at runtime through the parameter tag */
/* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */
/* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally actived */
/* */
#define TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
/*************************************************************************/
/* */
/* Define TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING to restrict the */
/* TrueType bytecode interpreter to actions not protected by patents. */
/* This enables some fonts, for example mingliu.ttc from Dynalab, to */
/* work properly. They use hinting to make large changes to the glyph */
/* shape, without which the glyph is unrecognisable. */
/* For this to work you must also define */
/* TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING. */
/* */
#undef TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING
#define TT_CONFIG_OPTION_UNPATENTED_HINTING
/*************************************************************************/

View File

@ -673,8 +673,18 @@ FT_BEGIN_HEADER
/*************************************************************************/
/* this hook is used by the TrueType debugger. It must be set to an alternate
* truetype bytecode interpreter function
*/
#define FT_DEBUG_HOOK_TRUETYPE 0
#define FT_DEBUG_HOOK_TYPE1 1
/* set this debug hook to a non-null pointer to force unpatented hinting
* for all faces when both TT_CONFIG_OPTION_BYTECODE_INTERPRETER and
* TT_CONFIG_OPTION_UNPATENTED_HINTING are defined. this is only used
* during debugging
*/
#define FT_DEBUG_HOOK_UNPATENTED_HINTING 1
/*************************************************************************/

View File

@ -1562,7 +1562,7 @@ FT_BEGIN_HEADER
/* used to hook the debugger for the `ttdebug' utility. */
TT_Interpreter interpreter;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
/* Use unpatented hinting only. */
FT_Bool unpatented_hinting;
#endif

View File

@ -221,7 +221,7 @@
#undef FAILURE
#define FAILURE 1
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
#define GUESS_VECTOR( V ) \
if ( CUR.face->unpatented_hinting ) \
{ \
@ -722,7 +722,7 @@
exec->GS.freeVector = exec->GS.projVector;
exec->GS.dualVector = exec->GS.projVector;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
exec->GS.both_x_axis = TRUE;
#endif
@ -754,7 +754,7 @@
{ 0x4000, 0 },
{ 0x4000, 0 },
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
TRUE,
#endif
@ -1358,7 +1358,7 @@
{
if ( !CUR.tt_metrics.ratio )
{
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
if ( CUR.face->unpatented_hinting )
{
if ( CUR.GS.both_x_axis )
@ -1558,7 +1558,7 @@
FT_F26Dot6 v;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
FT_ASSERT( !CUR.face->unpatented_hinting );
#endif
@ -2122,7 +2122,7 @@
Project( EXEC_OP_ FT_Vector* v1,
FT_Vector* v2 )
{
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
FT_ASSERT( !CUR.face->unpatented_hinting );
#endif
@ -2223,7 +2223,7 @@
static void
Compute_Funcs( EXEC_OP )
{
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
if ( CUR.face->unpatented_hinting )
{
/* If both vectors point rightwards along the x axis, set */
@ -2267,7 +2267,7 @@
return;
}
#endif /* TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING */
#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
if ( CUR.GS.freeVector.x == 0x4000 )
CUR.F_dot_P = CUR.GS.projVector.x * 0x10000L;
@ -2618,7 +2618,7 @@
}
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
#define DO_GPV \
if ( CUR.face->unpatented_hinting ) \
{ \
@ -2637,7 +2637,7 @@
#endif
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
#define DO_GFV \
if ( CUR.face->unpatented_hinting ) \
{ \
@ -5189,7 +5189,7 @@
d = CUR_Func_project( zp.cur + p, zp.org + p );
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
if ( CUR.face->unpatented_hinting )
{
if ( CUR.GS.both_x_axis )
@ -5224,7 +5224,7 @@
FT_F26Dot6 dy,
FT_Bool touch )
{
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
if ( CUR.face->unpatented_hinting )
{
if ( CUR.GS.both_x_axis )
@ -5428,7 +5428,7 @@
return;
}
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
if ( CUR.face->unpatented_hinting )
{
if ( CUR.GS.both_x_axis )
@ -6345,7 +6345,7 @@
FT_ULong C;
FT_Long B;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
/* Delta hinting is covered by US Patent 5159668. */
if ( CUR.face->unpatented_hinting )
{
@ -6437,7 +6437,7 @@
FT_Long B;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
/* Delta hinting is covered by US Patent 5159668. */
if ( CUR.face->unpatented_hinting )
{

View File

@ -34,7 +34,7 @@
#include "ttinterp.h"
#endif
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
#include FT_TRUETYPE_UNPATENTED_H
#endif
@ -225,14 +225,12 @@
}
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
/* Determine whether unpatented hinting is to be used for this face. */
face->unpatented_hinting =
( library->debug_hooks[ FT_DEBUG_HOOK_UNPATENTED_HINTING ] != NULL );
#ifdef TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING
face->unpatented_hinting = TRUE;
#else
face->unpatented_hinting = FALSE;
{
int i;
@ -241,9 +239,8 @@
if ( params[i].tag == FT_PARAM_TAG_UNPATENTED_HINTING )
face->unpatented_hinting = TRUE;
}
#endif /* TT_CONFIG_OPTION_FORCE_UNPATENTED_HINTING */
#endif /* TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING */
#endif /* TT_CONFIG_OPTION_UNPATENTED_HINTING */
/* initialize standard glyph loading routines */
TT_Init_Glyph_Loading( face );

View File

@ -83,7 +83,7 @@ FT_BEGIN_HEADER
FT_UnitVector projVector;
FT_UnitVector freeVector;
#ifdef TT_CONFIG_OPTION_COMPILE_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
FT_Bool both_x_axis;
#endif