Clean-ups, copyright years, formatting.

This commit is contained in:
Werner Lemberg 2006-02-22 08:23:35 +00:00
parent facd9af542
commit 5edafed12a
11 changed files with 126 additions and 88 deletions

View File

@ -7,32 +7,52 @@
* src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned, * src/sfnt/ttsbit0.c (tt_sbit_decoder_load_bit_aligned,
tt_sbit_decoder_load_byte_aligned) [FT_OPTIMIZE_MEMORY]: Fix sbit 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, * src/truetype/ttpload.c (tt_face_load_hdmx,
tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: hdmx is not actually tt_face_get_device_metrics) [FT_OPTIMIZE_MEMORY]: `hdmx' is not
used. actually used.
2006-02-21 David Turner <david@freetype.org> 2006-02-21 David Turner <david@freetype.org>
* include/freetype/ftmodapi.h, include/internal/ftserv.h, Add a new API named FT_Get_TrueType_Engine_Type to determine whether
include/internal/services/svtteng.h, src/base/ftobjs.c, we have a patented, unpatented, or unimplemented TrueType bytecode
src/truetype/ttdriver.c: interpreter.
adding a new API named FT_Get_TrueType_Engine_Type to determine The FT_Get_Module_Flags API was removed consequently.
wether we have a patented, unpatented or unimplemented TrueType
bytecode interpreter.
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 * include/freetype/internal/ftserv.h (FT_SERVICE_TRUETYPE_ENGINE_H):
prevented embedded bitmaps from being correctly listed and used New macro.
* src/sfnt/sfmtx.c: disabling memory optimization when * src/base/ftobjs.c: Include FT_SERVICE_TRUETYPE_ENGINE_H.
FT_CONFIG_OPTION_OLD_INTERNALS is used. This is because libXfont (FT_Module_Get_Flags): Removed. Replaced with...
is directly accessing the HMTX data. Grrrrr.... (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 <david@freetype.org> 2006-02-20 David Turner <david@freetype.org>

View File

@ -448,7 +448,7 @@ FT_BEGIN_HEADER
/* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */ /* FT_PARAM_TAG_UNPATENTED_HINTING; or when the debug hook */
/* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated. */ /* FT_DEBUG_HOOK_UNPATENTED_HINTING is globally activated. */
/* */ /* */
#define xxTT_CONFIG_OPTION_UNPATENTED_HINTING #define TT_CONFIG_OPTION_UNPATENTED_HINTING
/*************************************************************************/ /*************************************************************************/

View File

@ -307,33 +307,36 @@ FT_BEGIN_HEADER
FT_Add_Default_Modules( FT_Library library ); FT_Add_Default_Modules( FT_Library library );
/** /*
* @enum: FT_TrueTypeEngineType * @enum:
* * FT_TrueTypeEngineType
* @description: *
* a list of values describing which kind of truetype bytecode * @description:
* engine is implemented in a given FT_Library instance. It is used * A list of values describing which kind of truetype bytecode
* by the @FT_Get_TrueType_Engine_Type function * 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 :: * @values:
* the library doesn't implement any kind of bytecode interpreter * 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 * FT_TRUETYPE_ENGINE_TYPE_UNPATENTED ::
* support the patented operations of the TrueType virtual machine. * 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. * Its main use is to load certain Asian fonts which position and
* see @ * 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 * FT_TRUETYPE_ENGINE_TYPE_PATENTED ::
* the full instruction set of the TrueType virtual machine. * The library implements a bytecode interpreter that covers
* Better check your legal department for license compliance !! * the full instruction set of the TrueType virtual machine.
* * See the file `docs/PATENTS' for legal aspects.
* @since: 2.2 *
*/ * @since:
* 2.2
*
*/
typedef enum typedef enum
{ {
FT_TRUETYPE_ENGINE_TYPE_NONE = 0, FT_TRUETYPE_ENGINE_TYPE_NONE = 0,
@ -343,25 +346,29 @@ FT_BEGIN_HEADER
} FT_TrueTypeEngineType; } FT_TrueTypeEngineType;
/** /*
* @func: FT_Get_TrueType_Engine_Type * @func:
* * FT_Get_TrueType_Engine_Type
* @description: *
* this function returns a @FT_TrueTypeEngineType value to indicates * @description:
* which level of the TrueType virtual machine a given library instance * Return a @FT_TrueTypeEngineType value to indicate which level of
* supports. * the TrueType virtual machine a given library instance supports.
* *
* @input: * @input:
* library :: a library instance * library ::
* * A library instance.
* @return: *
* a value indicating which level is supported * @return:
* * A value indicating which level is supported.
* @since: 2.2 *
*/ * @since:
* 2.2
*
*/
FT_EXPORT( FT_TrueTypeEngineType ) FT_EXPORT( FT_TrueTypeEngineType )
FT_Get_TrueType_Engine_Type( FT_Library library ); FT_Get_TrueType_Engine_Type( FT_Library library );
/* */ /* */

View File

@ -302,6 +302,8 @@ FT_BEGIN_HEADER
#define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h> #define FT_SERVICE_BDF_H <freetype/internal/services/svbdf.h>
#define FT_SERVICE_GLYPH_DICT_H <freetype/internal/services/svgldict.h> #define FT_SERVICE_GLYPH_DICT_H <freetype/internal/services/svgldict.h>
#define FT_SERVICE_GX_VALIDATE_H <freetype/internal/services/svgxval.h>
#define FT_SERVICE_KERNING_H <freetype/internal/services/svkern.h>
#define FT_SERVICE_MULTIPLE_MASTERS_H <freetype/internal/services/svmm.h> #define FT_SERVICE_MULTIPLE_MASTERS_H <freetype/internal/services/svmm.h>
#define FT_SERVICE_OPENTYPE_VALIDATE_H <freetype/internal/services/svotval.h> #define FT_SERVICE_OPENTYPE_VALIDATE_H <freetype/internal/services/svotval.h>
#define FT_SERVICE_PFR_H <freetype/internal/services/svpfr.h> #define FT_SERVICE_PFR_H <freetype/internal/services/svpfr.h>
@ -309,12 +311,10 @@ FT_BEGIN_HEADER
#define FT_SERVICE_POSTSCRIPT_INFO_H <freetype/internal/services/svpsinfo.h> #define FT_SERVICE_POSTSCRIPT_INFO_H <freetype/internal/services/svpsinfo.h>
#define FT_SERVICE_POSTSCRIPT_NAME_H <freetype/internal/services/svpostnm.h> #define FT_SERVICE_POSTSCRIPT_NAME_H <freetype/internal/services/svpostnm.h>
#define FT_SERVICE_SFNT_H <freetype/internal/services/svsfnt.h> #define FT_SERVICE_SFNT_H <freetype/internal/services/svsfnt.h>
#define FT_SERVICE_GX_VALIDATE_H <freetype/internal/services/svgxval.h> #define FT_SERVICE_TRUETYPE_ENGINE_H <freetype/internal/services/svtteng.h>
#define FT_SERVICE_TT_CMAP_H <freetype/internal/services/svttcmap.h> #define FT_SERVICE_TT_CMAP_H <freetype/internal/services/svttcmap.h>
#define FT_SERVICE_WINFNT_H <freetype/internal/services/svwinfnt.h> #define FT_SERVICE_WINFNT_H <freetype/internal/services/svwinfnt.h>
#define FT_SERVICE_XFREE86_NAME_H <freetype/internal/services/svxf86nm.h> #define FT_SERVICE_XFREE86_NAME_H <freetype/internal/services/svxf86nm.h>
#define FT_SERVICE_KERNING_H <freetype/internal/services/svkern.h>
#define FT_SERVICE_TRUETYPE_ENGINE_H <freetype/internal/services/svtteng.h>
/* */ /* */

View File

@ -63,9 +63,9 @@ FT_BEGIN_HEADER
FT_DEFINE_SERVICE( SFNT_Table ) FT_DEFINE_SERVICE( SFNT_Table )
{ {
FT_SFNT_TableLoadFunc load_table; FT_SFNT_TableLoadFunc load_table;
FT_SFNT_TableGetFunc get_table; FT_SFNT_TableGetFunc get_table;
FT_SFNT_TableInfoFunc table_info; FT_SFNT_TableInfoFunc table_info;
}; };
/* */ /* */

View File

@ -1,6 +1,6 @@
# modules.cfg # modules.cfg
# #
# Copyright 2005 by # Copyright 2005, 2006 by
# David Turner, Robert Wilhelm, and Werner Lemberg. # David Turner, Robert Wilhelm, and Werner Lemberg.
# #
# This file is part of the FreeType project, and may only be used, modified, # This file is part of the FreeType project, and may only be used, modified,

View File

@ -3666,22 +3666,28 @@
{ {
FT_TrueTypeEngineType result = FT_TRUETYPE_ENGINE_TYPE_NONE; FT_TrueTypeEngineType result = FT_TRUETYPE_ENGINE_TYPE_NONE;
if ( library ) if ( library )
{ {
FT_Module module = FT_Get_Module( library, "truetype" ); FT_Module module = FT_Get_Module( library, "truetype" );
if ( module ) if ( module )
{ {
FT_Service_TrueTypeEngine service; 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 ) if ( service )
result = service->engine_type; result = service->engine_type;
} }
} }
return result; return result;
} }
#ifdef FT_CONFIG_OPTION_OLD_INTERNALS #ifdef FT_CONFIG_OPTION_OLD_INTERNALS
FT_BASE_DEF( FT_Error ) FT_BASE_DEF( FT_Error )

View File

@ -4,7 +4,7 @@
/* */ /* */
/* FreeType PFR bitmap loader (body). */ /* FreeType PFR bitmap loader (body). */
/* */ /* */
/* Copyright 2002, 2003 by */ /* Copyright 2002, 2003, 2006 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */ /* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */ /* */
/* This file is part of the FreeType project, and may only be used, */ /* This file is part of the FreeType project, and may only be used, */
@ -614,8 +614,8 @@
glyph->root.linearHoriAdvance = advance; glyph->root.linearHoriAdvance = advance;
/* compute default advance, i.e. scaled advance. This can be overriden */ /* compute default advance, i.e., scaled advance. This can be */
/* in the bitmap header of certain glyphs... */ /* overridden in the bitmap header of certain glyphs. */
advance = FT_MulDiv( (FT_Fixed)size->root.metrics.x_ppem << 8, advance = FT_MulDiv( (FT_Fixed)size->root.metrics.x_ppem << 8,
character->advance, character->advance,
phys->metrics_resolution ); phys->metrics_resolution );

View File

@ -35,11 +35,12 @@
#define FT_COMPONENT trace_ttmtx #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 * Unfortunately, we can't enable our memory optimizations if
* rogue clients (libXfont in the X.Org XServer) is directly accessing * FT_CONFIG_OPTION_OLD_INTERNALS is defined. This is because at least
* the metrics * one rogue client (libXfont in the X.Org XServer) is directly accessing
*/ * the metrics.
*/
/*************************************************************************/ /*************************************************************************/
/* */ /* */

View File

@ -498,7 +498,7 @@
if ( x_pos + w > 8 ) if ( x_pos + w > 8 )
{ {
write++; write++;
wval <<= 8; wval <<= 8;
write[0] = (FT_Byte)( write[0] | ( wval >> x_pos ) ); write[0] = (FT_Byte)( write[0] | ( wval >> x_pos ) );
} }
} }
@ -547,7 +547,7 @@
goto Exit; goto Exit;
} }
if ( p + ( ( width * height + 7 ) >> 3 ) > limit ) if ( p + ( ( width * height + 7 ) >> 3 ) > limit )
{ {
error = SFNT_Err_Invalid_File_Format; error = SFNT_Err_Invalid_File_Format;
goto Exit; goto Exit;
@ -558,8 +558,8 @@
x_pos &= 7; x_pos &= 7;
/* the higher byte of `rval' is used as a buffer */ /* the higher byte of `rval' is used as a buffer */
rval = 0; rval = 0;
nbits = 0; nbits = 0;
for ( h = height; h > 0; h--, line += pitch ) for ( h = height; h > 0; h--, line += pitch )
{ {
@ -583,7 +583,7 @@
} }
*write++ |= ( ( rval >> nbits ) & 0xFF ) & ~( 0xFF << w ); *write++ |= ( ( rval >> nbits ) & 0xFF ) & ~( 0xFF << w );
rval <<= 8; rval <<= 8;
w = width - w; w = width - w;
} }

View File

@ -295,21 +295,25 @@
static const FT_Service_TrueTypeEngineRec tt_service_truetype_engine = static const FT_Service_TrueTypeEngineRec tt_service_truetype_engine =
{ {
#ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER #ifdef TT_CONFIG_OPTION_BYTECODE_INTERPRETER
# ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
#ifdef TT_CONFIG_OPTION_UNPATENTED_HINTING
FT_TRUETYPE_ENGINE_TYPE_UNPATENTED FT_TRUETYPE_ENGINE_TYPE_UNPATENTED
# else
FT_TRUETYPE_ENGINE_TYPE_PATENTED
# endif
#else #else
FT_TRUETYPE_ENGINE_TYPE_NONE FT_TRUETYPE_ENGINE_TYPE_PATENTED
#endif #endif
#else /* !TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
FT_TRUETYPE_ENGINE_TYPE_NONE
#endif /* TT_CONFIG_OPTION_BYTECODE_INTERPRETER */
}; };
static const FT_ServiceDescRec tt_services[] = 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 #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 #endif
{ FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine }, { FT_SERVICE_ID_TRUETYPE_ENGINE, &tt_service_truetype_engine },
{ NULL, NULL } { NULL, NULL }