* docs/CHANGES: Updated.

* include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.


Provide a simple API to control FreeType's tracing levels.

* include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
FT_Trace_Get_Name): New declarations.

* src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
functions.
This commit is contained in:
Werner Lemberg 2004-02-24 07:52:45 +00:00
parent 9bfbf79c9f
commit 460355a5ea
4 changed files with 131 additions and 18 deletions

View File

@ -1,9 +1,25 @@
2004-02-23 Werner Lemberg <wl@gnu.org>
* docs/CHANGES: Updated.
* include/freetype/internal/ftdebug.h: Include FT_FREETYPE_H.
2004-02-23 Masatake YAMATO <jet@gyve.org>
Provide a simple API to control FreeType's tracing levels.
* include/freetype/internal/ftdebug.h (FT_Trace_Get_Count,
FT_Trace_Get_Name): New declarations.
* src/base/ftdebug.c (FT_Trace_Get_Count, FT_Trace_Get_Name): New
functions.
2004-02-23 David Turner <david@freetype.org>
* src/autofit/afhints.c, src/autofit/afhints.h, src/autofit/aflatin.c,
src/autofit/afloader.c, src/types.h: grave bugs were fixed. The
auto-fitter works, doesn't crashes, but still produces unexpected
results !!
* src/autofit/afhints.c, src/autofit/afhints.h,
src/autofit/aflatin.c, src/autofit/afloader.c, src/types.h: Grave
bugs have been fixed. The auto-fitter works, doesn't crash, but
still produces unexpected results...
2004-02-21 Werner Lemberg <wl@gnu.org>

View File

@ -6,13 +6,15 @@ LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
- The native TrueType hinter contained some bugs which prevented
some fonts to be rendered correctly, most notably Legendum.otf.
- The PostScript hinter now produces much improved results.
- The linear advance width and height values were incorrectly
rounded, making them virtually unusable if not loaded with
FT_LOAD_LINEAR_DESIGN.
- Indexing CID-keyed CFF fonts is now working: The glyph index is
correctly treated as a CID, similar to FreeType's CID driver
module. Note that CID CMaps support is still missing.
module. Note that CID CMap support is still missing.
- The FT_FACE_FLAGS_GLYPH_NAMES is now set correctly for all font
formats.
@ -32,8 +34,8 @@ LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
- The flex operator didn't work for CFF fonts.
- PS glyphs which use the `hintmask' operator haven't been rendered
correctly in some cases.
- PS glyphs which use the `hintmask' operator haven't been
rendered correctly in some cases.
- Metrics for BDF and PCF bitmap font formats have been fixed.
@ -57,6 +59,10 @@ LATEST CHANGES BETWEEN 2.1.8 and 2.1.7
in file-based fonts, it can happen in document-embedded
resources of PostScript documents.
- A simple API is now available to control FreeType's tracing
mechanism if compiled with FT_DEBUG_LEVEL_TRACE. See the file
`ftdebug.h' for more details.
- The cache sub-system has been rewritten.
- There is now support for deinstallation of faces.

View File

@ -4,7 +4,7 @@
/* */
/* Debugging and logging component (specification). */
/* */
/* Copyright 1996-2001, 2002 by */
/* Copyright 1996-2001, 2002, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -27,6 +27,7 @@
#include <ft2build.h>
#include FT_CONFIG_CONFIG_H
#include FT_FREETYPE_H
FT_BEGIN_HEADER
@ -96,6 +97,53 @@ FT_BEGIN_HEADER
#endif /* !FT_DEBUG_LEVEL_TRACE */
/*************************************************************************/
/* */
/* <Function> */
/* FT_Trace_Get_Count */
/* */
/* <Description> */
/* Return the number of available trace components. */
/* */
/* <Return> */
/* The number of trace components. 0 if FreeType 2 is not built with */
/* FT_DEBUG_LEVEL_TRACE definition. */
/* */
/* <Note> */
/* This function may be useful if you want to access elements of */
/* the internal `ft_trace_levels' array by an index. */
/* */
FT_EXPORT( FT_Int )
FT_Trace_Get_Count( void );
/*************************************************************************/
/* */
/* <Function> */
/* FT_Trace_Get_Name */
/* */
/* <Description> */
/* Return the name of a trace component. */
/* */
/* <Input> */
/* The index of the trace component. */
/* */
/* <Return> */
/* The name of the trace component. This is a statically allocated */
/* C string, so do not free it after use. NULL if FreeType 2 is not */
/* built with FT_DEBUG_LEVEL_TRACE definition. */
/* */
/* <Note> */
/* Use @FT_Trace_Get_Count to get the number of available trace */
/* components. */
/* */
/* This function may be useful if you want to control FreeType 2's */
/* debug level in your appliaciton. */
/* */
FT_EXPORT( const char * )
FT_Trace_Get_Name( FT_Int index );
/*************************************************************************/
/* */
/* You need two opening resp. closing parentheses! */

View File

@ -4,7 +4,7 @@
/* */
/* Debugging and logging component (body). */
/* */
/* Copyright 1996-2001 by */
/* Copyright 1996-2001, 2002, 2004 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@ -82,8 +82,9 @@
/* array of trace levels, initialized to 0 */
int ft_trace_levels[trace_count];
/* define array of trace toggle names */
#define FT_TRACE_DEF(x) #x ,
#define FT_TRACE_DEF( x ) #x ,
static const char* ft_trace_toggles[trace_count + 1] =
{
@ -94,19 +95,43 @@
#undef FT_TRACE_DEF
/* documentation is in ftdebug.h */
FT_EXPORT_DEF( FT_Int )
FT_Trace_Get_Count( void )
{
return trace_count;
}
/* documentation is in ftdebug.h */
FT_EXPORT_DEF( const char * )
FT_Trace_Get_Name( FT_Int index )
{
int max = FT_Trace_Get_Count();
if ( index < max )
return ft_trace_toggles[index];
else
return NULL;
}
/*************************************************************************/
/* */
/* Initialize the tracing sub-system. This is done by retrieving the */
/* value of the "FT2_DEBUG" environment variable. It must be a list of */
/* toggles, separated by spaces, `;' or `,'. Example: */
/* value of the `FT2_DEBUG' environment variable. It must be a list of */
/* toggles, separated by spaces, `;', or `,'. Example: */
/* */
/* "any:3 memory:6 stream:5" */
/* export FT2_DEBUG="any:3 memory:6 stream:5" */
/* */
/* This will request that all levels be set to 3, except the trace level */
/* for the memory and stream components which are set to 6 and 5, */
/* This requests that all levels be set to 3, except the trace level for */
/* the memory and stream components which are set to 6 and 5, */
/* respectively. */
/* */
/* See the file <freetype/internal/fttrace.h> for details of the */
/* See the file <include/freetype/internal/fttrace.h> for details of the */
/* available toggle names. */
/* */
/* The level must be between 0 and 6; 0 means quiet (except for serious */
@ -117,6 +142,7 @@
{
const char* ft2_debug = getenv( "FT2_DEBUG" );
if ( ft2_debug )
{
const char* p = ft2_debug;
@ -136,7 +162,7 @@
if ( *p == ':' && p > q )
{
FT_Int n, i, len = (FT_Int)(p - q);
FT_Int n, i, len = (FT_Int)( p - q );
FT_Int level = -1, found = -1;
@ -171,7 +197,7 @@
{
if ( found == trace_any )
{
/* special case for "any" */
/* special case for `any' */
for ( n = 0; n < trace_count; n++ )
ft_trace_levels[n] = level;
}
@ -183,14 +209,31 @@
}
}
#else /* !FT_DEBUG_LEVEL_TRACE */
FT_BASE_DEF( void )
ft_debug_init( void )
{
/* nothing */
}
FT_EXPORT_DEF( FT_Int )
FT_Trace_Get_Count( void )
{
return 0;
}
FT_EXPORT_DEF( const char * )
FT_Trace_Get_Name( FT_Int index )
{
return NULL;
}
#endif /* !FT_DEBUG_LEVEL_TRACE */