From 5edafed12a0b563e2446623a12a2b6fb1e4e6c5d Mon Sep 17 00:00:00 2001 From: Werner Lemberg Date: Wed, 22 Feb 2006 08:23:35 +0000 Subject: [PATCH] Clean-ups, copyright years, formatting. --- ChangeLog | 52 ++++++++---- include/freetype/config/ftoption.h | 2 +- include/freetype/ftmodapi.h | 93 +++++++++++---------- include/freetype/internal/ftserv.h | 6 +- include/freetype/internal/services/svsfnt.h | 6 +- modules.cfg | 2 +- src/base/ftobjs.c | 8 +- src/pfr/pfrsbit.c | 6 +- src/sfnt/ttmtx.c | 11 +-- src/sfnt/ttsbit0.c | 10 +-- src/truetype/ttdriver.c | 18 ++-- 11 files changed, 126 insertions(+), 88 deletions(-) diff --git a/ChangeLog b/ChangeLog index 27f2c3c2c..749ef1469 100644 --- a/ChangeLog +++ b/ChangeLog @@ -7,32 +7,52 @@ * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned, tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit - loading. (only tested with bit aligned sbit with x_pos == 0) + loading. (Only tested with bit aligned sbit with x_pos == 0.) * src/truetype/ttpload.c (tt_face_load_hdmx, - tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: hdmx is not actually - used. + tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not + actually used. 2006-02-21 David Turner - * include/freetype/ftmodapi.h, include/internal/ftserv.h, - include/internal/services/svtteng.h, src/base/ftobjs.c, - src/truetype/ttdriver.c: + Add a new API named FT_Get_TrueType_Engine_Type to determine whether + we have a patented, unpatented, or unimplemented TrueType bytecode + interpreter. - adding a new API named FT_Get_TrueType_Engine_Type to determine - wether we have a patented, unpatented or unimplemented TrueType - bytecode interpreter. + The FT_Get_Module_Flags API was removed consequently. - the FT_Get_Module_Flags API was removed consequently. + * include/freetype/ftmodapi.h (FT_Module_Get_Flags): Removed. + Replaced with... + (FT_Get_TrueType_Engine_Type): This. + (FT_TrueTypeEngineType): New enumeration. - * src/sfnt/sfobjs.c (sfnt_face_load): fixed silly bug that - prevented embedded bitmaps from being correctly listed and used + * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H): + New macro. - * src/sfnt/sfmtx.c: disabling memory optimization when - FT_CONFIG_OPTION_OLD_INTERNALS is used. This is because libXfont - is directly accessing the HMTX data. Grrrrr.... + * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. + (FT_Module_Get_Flags): Removed. Replaced with... + (FT_Get_TrueType_Engine_Type): This. - * src/pfr/pfrsbit.c: fixed handling of character advances + * src/truetype/ttdriver.c: Include FT_SERVICE_TRUETYPE_ENGINE_H. + (tt_service_truetype_engine): New service structure. + (tt_services): Register it. + + * include/freetype/internal/services/svtteng.h: New file. + + + * src/sfnt/sfobjs.c (sfnt_load_face): Fix silly bug that prevented + embedded bitmaps from being correctly listed and used. + + + * src/sfnt/ttmtx.c (tt_face_load_hmtx): Disable memory optimization + if FT_CONFIG_OPTION_OLD_INTERNALS is used. The is necessary because + libXfont is directly accessing the HMTX data, unfortunately. + Fix some compiler warnings. + (tt_face_get_metrics): Ditto. + + + * src/pfr/pfrsbit.c (pfr_slot_load_bitmap): Fix handling of + character advances. 2006-02-20 David Turner diff --git a/include/freetype/config/ftoption.h b/include/freetype/config/ftoption.h index 28e82e28a..bb1bbee6f 100644 --- a/include/freetype/config/ftoption.h +++ b/include/freetype/config/ftoption.h @@ -448,7 +448,7 @@ FT_BEGIN_HEADER /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */ /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated. */ /* */ -#define xxTT_CONFIG_OPTION_UNPATENTED_HINTING +#define TT_CONFIG_OPTION_UNPATENTED_HINTING /*************************************************************************/ diff --git a/include/freetype/ftmodapi.h b/include/freetype/ftmodapi.h index 6f4177918..6de338733 100644 --- a/include/freetype/ftmodapi.h +++ b/include/freetype/ftmodapi.h @@ -307,33 +307,36 @@ FT_BEGIN_HEADER FT_Add_Default_Modules( FT_Library library ); - /** - * @enum: FT_TrueTypeEngineType - * - * @description: - * a list of values describing which kind of truetype bytecode - * engine is implemented in a given FT_Library instance. It is used - * by the @FT_Get_TrueType_Engine_Type function - * - * @values: - * FT_TRUETYPE_ENGINE_TYPE_NONE :: - * the library doesn't implement any kind of bytecode interpreter - * - * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: - * the library implements a bytecode interpreter that doesn't - * support the patented operations of the TrueType virtual machine. - * - * this interpreter can only be used to load certain Asian fonts - * from Dynalabs. It will produce crap output for any other font. - * see @ - * - * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: - * the library implements a bytecode interpreter that covers - * the full instruction set of the TrueType virtual machine. - * Better check your legal department for license compliance !! - * - * @since: 2.2 - */ + /* + * @enum: + * FT_TrueTypeEngineType + * + * @description: + * A list of values describing which kind of truetype bytecode + * engine is implemented in a given FT_Library instance. It is used + * by the @FT_Get_TrueType_Engine_Type function. + * + * @values: + * FT_TRUETYPE_ENGINE_TYPE_NONE :: + * The library doesn't implement any kind of bytecode interpreter. + * + * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED :: + * The library implements a bytecode interpreter that doesn't + * support the patented operations of the TrueType virtual machine. + * + * Its main use is to load certain Asian fonts which position and + * scale glyph components with bytecode instructions. It produces + * bad output for most other fonts. + * + * FT_TRUETYPE_ENGINE_TYPE_PATENTED :: + * The library implements a bytecode interpreter that covers + * the full instruction set of the TrueType virtual machine. + * See the file `docs/PATENTS' for legal aspects. + * + * @since: + * 2.2 + * + */ typedef enum { FT_TRUETYPE_ENGINE_TYPE_NONE = 0, @@ -343,25 +346,29 @@ FT_BEGIN_HEADER } FT_TrueTypeEngineType; - /** - * @func: FT_Get_TrueType_Engine_Type - * - * @description: - * this function returns a @FT_TrueTypeEngineType value to indicates - * which level of the TrueType virtual machine a given library instance - * supports. - * - * @input: - * library :: a library instance - * - * @return: - * a value indicating which level is supported - * - * @since: 2.2 - */ + /* + * @func: + * FT_Get_TrueType_Engine_Type + * + * @description: + * Return a @FT_TrueTypeEngineType value to indicate which level of + * the TrueType virtual machine a given library instance supports. + * + * @input: + * library :: + * A library instance. + * + * @return: + * A value indicating which level is supported. + * + * @since: + * 2.2 + * + */ FT_EXPORT( FT_TrueTypeEngineType ) FT_Get_TrueType_Engine_Type( FT_Library library ); + /* */ diff --git a/include/freetype/internal/ftserv.h b/include/freetype/internal/ftserv.h index aaadf0159..2666a8746 100644 --- a/include/freetype/internal/ftserv.h +++ b/include/freetype/internal/ftserv.h @@ -302,6 +302,8 @@ FT_BEGIN_HEADER #define FT_SERVICE_BDF_H #define FT_SERVICE_GLYPH_DICT_H +#define FT_SERVICE_GX_VALIDATE_H +#define FT_SERVICE_KERNING_H #define FT_SERVICE_MULTIPLE_MASTERS_H #define FT_SERVICE_OPENTYPE_VALIDATE_H #define FT_SERVICE_PFR_H @@ -309,12 +311,10 @@ FT_BEGIN_HEADER #define FT_SERVICE_POSTSCRIPT_INFO_H #define FT_SERVICE_POSTSCRIPT_NAME_H #define FT_SERVICE_SFNT_H -#define FT_SERVICE_GX_VALIDATE_H +#define FT_SERVICE_TRUETYPE_ENGINE_H #define FT_SERVICE_TT_CMAP_H #define FT_SERVICE_WINFNT_H #define FT_SERVICE_XFREE86_NAME_H -#define FT_SERVICE_KERNING_H -#define FT_SERVICE_TRUETYPE_ENGINE_H /* */ diff --git a/include/freetype/internal/services/svsfnt.h b/include/freetype/internal/services/svsfnt.h index 123008ea1..b4a85d97e 100644 --- a/include/freetype/internal/services/svsfnt.h +++ b/include/freetype/internal/services/svsfnt.h @@ -63,9 +63,9 @@ FT_BEGIN_HEADER FT_DEFINE_SERVICE( SFNT_Table ) { - FT_SFNT_TableLoadFunc load_table; - FT_SFNT_TableGetFunc get_table; - FT_SFNT_TableInfoFunc table_info; + FT_SFNT_TableLoadFunc load_table; + FT_SFNT_TableGetFunc get_table; + FT_SFNT_TableInfoFunc table_info; }; /* */ diff --git a/modules.cfg b/modules.cfg index cf357cfe6..dd7ae1d6b 100644 --- a/modules.cfg +++ b/modules.cfg @@ -1,6 +1,6 @@ # modules.cfg # -# Copyright 2005 by +# Copyright 2005, 2006 by # David Turner, Robert Wilhelm, and Werner Lemberg. # # This file is part of the FreeType project, and may only be used, modified, diff --git a/src/base/ftobjs.c b/src/base/ftobjs.c index e2102e771..8f53eac61 100644 --- a/src/base/ftobjs.c +++ b/src/base/ftobjs.c @@ -3666,22 +3666,28 @@ { FT_TrueTypeEngineType result = FT_TRUETYPE_ENGINE_TYPE_NONE; + if ( library ) { FT_Module module = FT_Get_Module( library, "truetype" ); + if ( module ) { FT_Service_TrueTypeEngine service; - service = ft_module_get_service( module, FT_SERVICE_ID_TRUETYPE_ENGINE ); + + service = ft_module_get_service( module, + FT_SERVICE_ID_TRUETYPE_ENGINE ); if ( service ) result = service->engine_type; } } + return result; } + #ifdef FT_CONFIG_OPTION_OLD_INTERNALS FT_BASE_DEF( FT_Error ) diff --git a/src/pfr/pfrsbit.c b/src/pfr/pfrsbit.c index 9c42fcaa0..45ff6663b 100644 --- a/src/pfr/pfrsbit.c +++ b/src/pfr/pfrsbit.c @@ -4,7 +4,7 @@ /* */ /* FreeType PFR bitmap loader (body). */ /* */ -/* Copyright 2002, 2003 by */ +/* Copyright 2002, 2003, 2006 by */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* */ /* This file is part of the FreeType project, and may only be used, */ @@ -614,8 +614,8 @@ glyph->root.linearHoriAdvance = advance; - /* compute default advance, i.e. scaled advance. This can be overriden */ - /* in the bitmap header of certain glyphs... */ + /* compute default advance, i.e., scaled advance. This can be */ + /* overridden in the bitmap header of certain glyphs. */ advance = FT_MulDiv( (FT_Fixed)size->root.metrics.x_ppem << 8, character->advance, phys->metrics_resolution ); diff --git a/src/sfnt/ttmtx.c b/src/sfnt/ttmtx.c index bd6ce4440..50825cc9f 100644 --- a/src/sfnt/ttmtx.c +++ b/src/sfnt/ttmtx.c @@ -35,11 +35,12 @@ #define FT_COMPONENT trace_ttmtx -/* Unfortunately, we can't enable our memory optimizations when - * FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because some - * rogue clients (libXfont in the X.Org XServer) is directly accessing - * the metrics - */ + /* + * Unfortunately, we can't enable our memory optimizations if + * FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because at least + * one rogue client (libXfont in the X.Org XServer) is directly accessing + * the metrics. + */ /*************************************************************************/ /* */ diff --git a/src/sfnt/ttsbit0.c b/src/sfnt/ttsbit0.c index 1a5efc97e..56ab236c0 100644 --- a/src/sfnt/ttsbit0.c +++ b/src/sfnt/ttsbit0.c @@ -498,7 +498,7 @@ if ( x_pos + w > 8 ) { write++; - wval <<= 8; + wval <<= 8; write[0] = (FT_Byte)( write[0] | ( wval >> x_pos ) ); } } @@ -547,7 +547,7 @@ goto Exit; } - if ( p + ( ( width * height + 7 ) >> 3 ) > limit ) + if ( p + ( ( width * height + 7 ) >> 3 ) > limit ) { error = SFNT_Err_Invalid_File_Format; goto Exit; @@ -558,8 +558,8 @@ x_pos &= 7; /* the higher byte of `rval' is used as a buffer */ - rval = 0; - nbits = 0; + rval = 0; + nbits = 0; for ( h = height; h > 0; h--, line += pitch ) { @@ -583,7 +583,7 @@ } *write++ |= ( ( rval >> nbits ) & 0xFF ) & ~( 0xFF << w ); - rval <<= 8; + rval <<= 8; w = width - w; } diff --git a/src/truetype/ttdriver.c b/src/truetype/ttdriver.c index 4324d6f6e..a29c38ac9 100644 --- a/src/truetype/ttdriver.c +++ b/src/truetype/ttdriver.c @@ -295,21 +295,25 @@ static const FT_Service_TrueTypeEngineRec tt_service_truetype_engine = { #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER -# ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING + +#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING FT_TRUETYPE_ENGINE_TYPE_UNPATENTED -# else - FT_TRUETYPE_ENGINE_TYPE_PATENTED -# endif #else - FT_TRUETYPE_ENGINE_TYPE_NONE + FT_TRUETYPE_ENGINE_TYPE_PATENTED #endif + +#else /* !TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ + + FT_TRUETYPE_ENGINE_TYPE_NONE + +#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */ }; static const FT_ServiceDescRec tt_services[] = { - { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE }, + { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_TRUETYPE }, #ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT - { FT_SERVICE_ID_MULTI_MASTERS, &tt_service_gx_multi_masters }, + { FT_SERVICE_ID_MULTI_MASTERS, &tt_service_gx_multi_masters }, #endif { FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine }, { NULL, NULL }