Some formatting.

* src/cff/cffcmap.c: Remove compiler warnings.
* src/cache/ftccache.c, src/cache/ftccache.i,
src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
* src/cff/cffload.c: s/select/fdselect/.
* src/raster/ftraster.c: s/wait/waiting/.
This commit is contained in:
Werner Lemberg 2002-08-06 21:47:40 +00:00
parent ef8bd8336a
commit cbfc97910e
15 changed files with 313 additions and 210 deletions

View File

@ -1,36 +1,63 @@
2002-08-01 Graham Asher <graham.asher@btinternet.com>
* src/type1/t1load.c:
T1_Open_Face now tolerates a face with no charstrings if there
is an incremental loading interface. Type 1 faces supplied by
PostScript interpreters like GhostScript will typically not
provide any charstrings at load time, so this is essential
if they are to work.
2002-08-06 Werner Lemberg <wl@gnu.org>
* src/cff/cffcmap.c: Remove compiler warnings.
* src/cache/ftccache.c, src/cache/ftccache.i,
src/pfr/pfrload.c, src/pfr/pfrgload.c: s/index/idx/.
* src/cff/cffload.c: s/select/fdselect/.
* src/raster/ftraster.c: s/wait/waiting/.
2002-08-01 Graham Asher <graham.asher@btinternet.com>
* include/freetype/config/ftheader.h,
include/freetype/freetype.h,
include/freetype/ftincrem.h,
include/freetype/internal/ftobjs.h,
src/base/ftobjs.c,
src/cid/cidgload.c,
src/sfnt/sfobjs.c,
src/truetype/ttgload.c,
src/truetype/ttobjs.c,
src/type1/t1gload.c:
Modified incremental loading interface to be closer to David's
preferences. The header freetype.h is not now affected,
the interface is specified via an FT_Parameter, the pointer to
the interface is hidden in an internal part of the face record,
and all the definitions are in ftincrem.h.
* src/type1/t1load.c (T1_Open_Face): Tolerate a face with no
charstrings if there is an incremental loading interface. Type 1
faces supplied by PostScript interpreters like GhostScript will
typically not provide any charstrings at load time, so this is
essential if they are to work.
2002-08-01 Graham Asher <graham.asher@btinternet.com>
Modified incremental loading interface to be closer to David's
preferences. The header freetype.h is not now affected, the
interface is specified via an FT_Parameter, the pointer to the
interface is hidden in an internal part of the face record, and all
the definitions are in ftincrem.h.
* include/freetype/freeetype.h [FT_CONFIG_OPTION_INCREMENTAL]:
Removed.
* include/freetype/internal/ftobjs.h [FT_CONFIG_OPTION_INCREMENTAL]:
Include FT_INCREMENTAL_H.
(FT_Face_InternalRec) [FT_CONFIG_OPTION_INCREMENTAL]: Add
`incremental_interface'.
* src/base/ftobjs.c (open_face, FT_Open_Face)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/sfnt/sfobjs.c (SFNT_Load_Face) [FT_CONFIG_OPTION_INCREMENTAL]:
Updated.
* src/truetype/ttgload.c (load_truetype_glyph)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
Free loaded glyph data properly.
(compute_glyph_metrics, TT_Load_Glyph)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/truetype/ttobjs.c (TT_Face_Init)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
* src/type1/t1gload.c (T1_Parse_Glyph_And_Get_Char_String)
[FT_CONFIG_OPTION_INCREMENTAL]: Updated.
(T1_Parse_Glyph) [FT_CONFIG_OPTION_INCREMENTAL]: Updated.
Free loaded glyph data properly.
(T1_Load_Glyph): Updated.
[FT_CONFIG_OPTION_INCREMENTAL]: Free loaded glyph data properly.
2002-07-30 David Turner <david@freetype.org>
* include/freetype/ftincrem.h: adding new experimental header file
to demonstrate a "cleaner" API to support incremental font loading.
comments appreciated...
* include/freetype/ftincrem.h: Adding new experimental header file
to demonstrate a "cleaner" API to support incremental font loading.
* src/tools/docmaker/*: adding new (more advanced) version of
the DocMaker tool. Python with regular expressions rocks..
* include/freetype/config/ftheader.h (FT_INCREMENTAL_H): New macro.
* src/tools/docmaker/*: Adding new (more advanced) version of
the DocMaker tool, using Python's sophisticated regexps.
2002-07-28 Werner Lemberg <wl@gnu.org>

View File

@ -1,18 +1,39 @@
#ifndef __FT_INCREMENTAL_H__
#define __FT_INCREMENTAL_H__
/***************************************************************************/
/* */
/* ftincrem.h */
/* */
/* FreeType incremental loading (specification). */
/* */
/* Copyright 2002 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
/* modified, and distributed under the terms of the FreeType project */
/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
/* this file you indicate that you have read the license and */
/* understand and accept it fully. */
/* */
/***************************************************************************/
#ifndef __FTINCREM_H__
#define __FTINCREM_H__
#include <ft2build.h>
#include FT_FREETYPE_H
FT_BEGIN_HEADER
/*************************************************************************
/***************************************************************************
*
* @type: FT_Incremental
* @type:
* FT_Incremental
*
* @description:
* An opaque type describing a user-provided object used to implement
* "incremental" glyph loading within FreeType. This is used to support
* "incremental" glyph loading within FreeType. This is used to support
* embedded fonts in certain environments (e.g. Postscript interpreters),
* where the glyph data isn't in the font file, or must be overridden by
* different values.
@ -21,33 +42,39 @@ FT_BEGIN_HEADER
* It is up to client applications to create and implement @FT_Incremental
* objects, as long as they provide implementations for the methods
* @FT_Incremental_GetGlyphDataFunc, @FT_Incremental_FreeGlyphDataFunc
* and @FT_Incremental_GetGlyphMetricsFunc
* and @FT_Incremental_GetGlyphMetricsFunc.
*
* see the description of @FT_Incremental_InterfaceRec to understand how
* See the description of @FT_Incremental_InterfaceRec to understand how
* to use incremental objects with FreeType.
*/
typedef struct FT_IncrementalRec_* FT_Incremental;
typedef struct FT_IncrementalRec_* FT_Incremental;
/*************************************************************************
/***************************************************************************
*
* @struct: FT_Incremental_Metrics
* @struct:
* FT_Incremental_Metrics
*
* @description:
* A small structure used to contain the basic glyph metrics returned
* by the @FT_Incremental_GetGlyphMetricsFunc method
* by the @FT_Incremental_GetGlyphMetricsFunc method.
*
* @fields:
* bearing_x :: left bearing, in font units.
* bearing_y :: top bearing, in font units.
* advance :: glyph advance, in font units
* bearing_x ::
* Left bearing, in font units.
*
* bearing_y ::
* Top bearing, in font units.
*
* advance ::
* Glyph advance, in font units.
*
* @note:
* These correspond to horizontal or vertical metrics depending on the
* value of the 'vertical' argument to the function
* @FT_Incremental_GetGlyphMetricsFunc
* @FT_Incremental_GetGlyphMetricsFunc.
*/
typedef struct FT_Incremental_MetricsRec_
typedef struct FT_Incremental_MetricsRec_
{
FT_Long bearing_x;
FT_Long bearing_y;
@ -56,9 +83,10 @@ FT_BEGIN_HEADER
} FT_Incremental_MetricsRec, *FT_Incremental_Metrics;
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_GetGlyphDataFunc
* @type:
* FT_Incremental_GetGlyphDataFunc
*
* @description:
* A function called by FreeType to access a given glyph's data bytes
@ -66,23 +94,26 @@ FT_BEGIN_HEADER
* enabled.
*
* Note that the format of the glyph's data bytes depends on the font
* file format. For TrueType, it must correspond to the raw bytes within
* the 'glyf' table. For Postscript formats, it must correspond to the
* *unencrypted* charstring bytes, without any 'lenIV' header. It is
* file format. For TrueType, it must correspond to the raw bytes within
* the 'glyf' table. For Postscript formats, it must correspond to the
* *unencrypted* charstring bytes, without any 'lenIV' header. It is
* undefined for any other format.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* Handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* glyph_index :: index of relevant glyph
* glyph_index ::
* Index of relevant glyph.
*
* @output:
* adata :: a structure describing the returned glyph data bytes
* (which will be accessed as a read-only byte block)
* adata ::
* A structure describing the returned glyph data bytes (which will be
* accessed as a read-only byte block).
*
* @return:
* FreeType error code. 0 means success
* FreeType error code. 0 means success.
*
* @note:
* If this function returns succesfully the method
@ -92,46 +123,67 @@ FT_BEGIN_HEADER
* Nested calls to @FT_Incremental_GetGlyphDataFunc can happen for
* compound glyphs.
*/
typedef FT_Error (*FT_Incremental_GetGlyphDataFunc)
( FT_Incremental incremental,
FT_UInt glyph_index,
FT_Data* adata );
typedef FT_Error
(*FT_Incremental_GetGlyphDataFunc)( FT_Incremental incremental,
FT_UInt glyph_index,
FT_Data* adata );
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_FreeGlyphDataFunc
* @type:
* FT_Incremental_FreeGlyphDataFunc
*
* @description:
* A function used to release the glyph data bytes returned by a
* successful call to @FT_Incremental_GetGlyphDataFunc.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* A handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* data :: glyph_index :: index of relevant glyph
* data ::
* A structure describing the glyph data bytes (which will be accessed
* as a read-only byte block).
*/
typedef void (*FT_Incremental_FreeGlyphDataFunc)
( FT_Incremental incremental,
FT_Data* data );
typedef void
(*FT_Incremental_FreeGlyphDataFunc)( FT_Incremental incremental,
FT_Data* data );
/**************************************************************************
/***************************************************************************
*
* @type: FT_Incremental_GetGlyphMetricsFunc
* @type:
* FT_Incremental_GetGlyphMetricsFunc
*
* @description:
* A function used to retrieve the basic metrics of a given glyph index
* before accessing its data. This is necessary because, in certain formats
* like TrueType, the metrics are stored in a different place from the
* glyph images proper.
* before accessing its data. This is necessary because, in certain
* formats like TrueType, the metrics are stored in a different place from
* the glyph images proper.
*
* @input:
* incremental :: handle to an opaque @FT_Incremental handle provided
* by the client application
* incremental ::
* A handle to an opaque @FT_Incremental handle provided by the client
* application.
*
* glyph_index ::
* Index of relevant glyph.
*
* vertical ::
* If true, return vertical metrics.
*
* @output:
* ametrics ::
* The glyph metrics in font units.
*
* afound ::
* True if there are metrics at all.
*
*/
typedef FT_Error (*FT_Incremental_GetGlyphMetricsFunc)
typedef FT_Error
(*FT_Incremental_GetGlyphMetricsFunc)
( FT_Incremental incremental,
FT_UInt glyph_index,
FT_Bool vertical,
@ -139,24 +191,25 @@ FT_BEGIN_HEADER
FT_Bool *afound );
/*************************************************************************
/**************************************************************************
*
* @struct: FT_Incremental_FuncsRec
* @struct:
* FT_Incremental_FuncsRec
*
* @description:
* A table of functions for accessing fonts that load data
* incrementally. Used in @FT_Incremental_Interface.
* A table of functions for accessing fonts that load data
* incrementally. Used in @FT_Incremental_Interface.
*
* @fields:
* get_glyph_data :: The function to get glyph data. Must not be
* null.
* get_glyph_data ::
* The function to get glyph data. Must not be null.
*
* free_glyph_data :: The function to release glyph data. Must not
* be null.
* free_glyph_data ::
* The function to release glyph data. Must not be null.
*
* get_glyph_metrics :: The function to get glyph metrics. May be
* null if the font does not provide
* overriding glyph metrics.
* get_glyph_metrics ::
* The function to get glyph metrics. May be null if the font does
* not provide overriding glyph metrics.
*/
typedef struct FT_Incremental_FuncsRec_
{
@ -167,59 +220,67 @@ FT_BEGIN_HEADER
} FT_Incremental_FuncsRec;
/**************************************************************************
/***************************************************************************
*
* @struct: FT_Incremental_InterfaceRec
* @struct:
* FT_Incremental_InterfaceRec
*
* @description:
* A structure to be used with @FT_Open_Face to indicate that the user
* wants to support incremental glyph loading. You should use it with
* wants to support incremental glyph loading. You should use it with
* @FT_PARAM_TAG_INCREMENTAL as in the following example:
*
* {
* FT_Incremental_InterfaceRec inc_int;
* FT_Parameter parameter;
* FT_Open_Args open_args;
* {
* FT_Incremental_InterfaceRec inc_int;
* FT_Parameter parameter;
* FT_Open_Args open_args;
*
* // set up incremental descriptor
* inc_int.funcs = my_funcs;
* inc_int.object = my_object;
*
* // set up optional parameter
* parameter.tag = FT_PARAM_TAG_INCREMENTAL;
* parameter.data = &inc_int;
* // set up incremental descriptor
* inc_int.funcs = my_funcs;
* inc_int.object = my_object;
*
* // set up FT_Open_Args structure
* open_args.flags = (FT_Open_Flags)(ft_open_pathname | ft_open_params);
* open_args.pathname = my_font_pathname;
* open_args.num_params = 1;
* open_args.params = &parameter; // we use one optional argument
* // set up optional parameter
* parameter.tag = FT_PARAM_TAG_INCREMENTAL;
* parameter.data = &inc_int;
*
* // open the
* error = FT_Open_Face( library, &open_args, index, &face );
* ....
* }
* // set up FT_Open_Args structure
* open_args.flags = (FT_Open_Flags)( ft_open_pathname |
* ft_open_params );
* open_args.pathname = my_font_pathname;
* open_args.num_params = 1;
* open_args.params = &parameter; // we use one optional argument
*
* // open the font
* error = FT_Open_Face( library, &open_args, index, &face );
* ...
* }
*/
typedef struct FT_Incremental_InterfaceRec_
typedef struct FT_Incremental_InterfaceRec_
{
const FT_Incremental_FuncsRec* funcs;
FT_Incremental object;
} FT_Incremental_InterfaceRec;
/**************************************************************************
/***************************************************************************
*
* @constant: FT_PARAM_TAG_INCREMENTAL
* @constant:
* FT_PARAM_TAG_INCREMENTAL
*
* @description:
* A constant used as the tag of @FT_Parameter structures to indicate
* an incremental loading object to be used by FreeType.
*
*/
#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG('i','n','c','r')
#define FT_PARAM_TAG_INCREMENTAL FT_MAKE_TAG( 'i', 'n', 'c', 'r' )
/* */
FT_END_HEADER
#endif /* __FT_INCREMENTAL_H__ */
#endif /* __FTINCREM_H__ */
/* END */

View File

@ -40,6 +40,7 @@
#include FT_INCREMENTAL_H
#endif
FT_BEGIN_HEADER
@ -300,11 +301,12 @@ FT_BEGIN_HEADER
/* */
/* postscript_name :: Postscript font name for this face. */
/* */
/* incremental_interface :: If non-null, the interface through */
/* incremental_interface :: */
/* If non-null, the interface through */
/* which glyph data and metrics are loaded */
/* incrementally for faces that do not provide */
/* all of this data when first opened. */
/* This field exists only if */
/* This field exists only if */
/* @FT_CONFIG_OPTION_INCREMENTAL is defined. */
/* */
typedef struct FT_Face_InternalRec_

View File

@ -25,6 +25,7 @@
#include FT_TRUETYPE_TABLES_H
#include FT_OUTLINE_H
FT_BASE_DEF( void )
ft_validator_init( FT_Validator valid,
const FT_Byte* base,
@ -707,6 +708,7 @@
FT_Error error;
FT_Face_Internal internal;
clazz = driver->clazz;
memory = driver->root.memory;
@ -724,12 +726,15 @@
face->stream = stream;
#ifdef FT_CONFIG_OPTION_INCREMENTAL
{
int i;
face->internal->incremental_interface = 0;
for (i = 0; i < num_params && !face->internal->incremental_interface; i++)
if (params[i].tag == FT_PARAM_TAG_INCREMENTAL)
face->internal->incremental_interface = params[i].data;
{
int i;
face->internal->incremental_interface = 0;
for ( i = 0; i < num_params && !face->internal->incremental_interface;
i++ )
if ( params[i].tag == FT_PARAM_TAG_INCREMENTAL )
face->internal->incremental_interface = params[i].data;
}
#endif
@ -874,8 +879,9 @@
/* not all modules are drivers, so check... */
if ( FT_MODULE_IS_DRIVER( driver ) )
{
FT_Int num_params = 0;
FT_Parameter* params = 0;
FT_Int num_params = 0;
FT_Parameter* params = 0;
if ( args->flags & ft_open_params )
{
@ -909,6 +915,7 @@
FT_Int num_params = 0;
FT_Parameter* params = 0;
driver = FT_DRIVER( cur[0] );
if ( args->flags & ft_open_params )

30
src/cache/ftccache.c vendored
View File

@ -159,14 +159,14 @@
{
FT_Error error = 0;
FTC_Node *pnode;
FT_UInt index, num_buckets;
FT_UInt idx, num_buckets;
index = (FT_UInt)( node->hash & cache->mask );
if ( index < cache->p )
index = (FT_UInt)( node->hash & ( 2 * cache->mask + 1 ) );
idx = (FT_UInt)( node->hash & cache->mask );
if ( idx < cache->p )
idx = (FT_UInt)( node->hash & ( 2 * cache->mask + 1 ) );
pnode = cache->buckets + index;
pnode = cache->buckets + idx;
for (;;)
{
@ -239,15 +239,15 @@
FTC_Cache cache )
{
FTC_Node *pnode;
FT_UInt index;
FT_UInt idx;
FT_Error error = 0;
index = (FT_UInt)( node->hash & cache->mask );
if ( index < cache->p )
index = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
idx = (FT_UInt)( node->hash & cache->mask );
if ( idx < cache->p )
idx = (FT_UInt)( node->hash & (2 * cache->mask + 1 ) );
pnode = cache->buckets + index;
pnode = cache->buckets + idx;
node->link = *pnode;
*pnode = node;
@ -603,14 +603,14 @@
FTC_Family family = (FTC_Family) lru;
FT_UFast hash = query->hash;
FTC_Node* bucket;
FT_UInt index;
FT_UInt idx;
index = hash & cache->mask;
if ( index < cache->p )
index = hash & ( cache->mask * 2 + 1 );
idx = hash & cache->mask;
if ( idx < cache->p )
idx = hash & ( cache->mask * 2 + 1 );
bucket = cache->buckets + index;
bucket = cache->buckets + idx;
if ( query->family != family ||

10
src/cache/ftccache.i vendored
View File

@ -79,14 +79,14 @@
hash = query->hash;
{
FT_UInt index;
FT_UInt idx;
index = hash & cache->mask;
if ( index < cache->p )
index = hash & ( cache->mask * 2 + 1 );
idx = hash & cache->mask;
if ( idx < cache->p )
idx = hash & ( cache->mask * 2 + 1 );
bucket = cache->buckets + index;
bucket = cache->buckets + idx;
}
#ifdef FT_DEBUG_LEVEL_ERROR

View File

@ -32,7 +32,7 @@
cff_cmap_encoding_init( CFF_CMapStd cmap )
{
TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
CFF_Font cff = face->extra.data;
CFF_Font cff = (CFF_Font)face->extra.data;
CFF_Encoding encoding = &cff->encoding;
@ -144,9 +144,9 @@
FT_UInt count;
TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
FT_Memory memory = FT_FACE_MEMORY( face );
CFF_Font cff = face->extra.data;
CFF_Font cff = (CFF_Font)face->extra.data;
CFF_Charset charset = &cff->charset;
PSNames_Service psnames = cff->psnames;
PSNames_Service psnames = (PSNames_Service)cff->psnames;
cmap->num_pairs = 0;

View File

@ -1358,20 +1358,20 @@
static void
CFF_Done_FD_Select( CFF_FDSelect select,
CFF_Done_FD_Select( CFF_FDSelect fdselect,
FT_Stream stream )
{
if ( select->data )
FT_FRAME_RELEASE( select->data );
if ( fdselect->data )
FT_FRAME_RELEASE( fdselect->data );
select->data_size = 0;
select->format = 0;
select->range_count = 0;
fdselect->data_size = 0;
fdselect->format = 0;
fdselect->range_count = 0;
}
static FT_Error
CFF_Load_FD_Select( CFF_FDSelect select,
CFF_Load_FD_Select( CFF_FDSelect fdselect,
FT_UInt num_glyphs,
FT_Stream stream,
FT_ULong offset )
@ -1385,23 +1385,23 @@
if ( FT_STREAM_SEEK( offset ) || FT_READ_BYTE( format ) )
goto Exit;
select->format = format;
select->cache_count = 0; /* clear cache */
fdselect->format = format;
fdselect->cache_count = 0; /* clear cache */
switch ( format )
{
case 0: /* format 0, that's simple */
select->data_size = num_glyphs;
fdselect->data_size = num_glyphs;
goto Load_Data;
case 3: /* format 3, a tad more complex */
if ( FT_READ_USHORT( num_ranges ) )
goto Exit;
select->data_size = num_ranges * 3 + 2;
fdselect->data_size = num_ranges * 3 + 2;
Load_Data:
if ( FT_FRAME_EXTRACT( select->data_size, select->data ) )
if ( FT_FRAME_EXTRACT( fdselect->data_size, fdselect->data ) )
goto Exit;
break;
@ -1415,30 +1415,31 @@
FT_LOCAL_DEF( FT_Byte )
cff_fd_select_get( CFF_FDSelect select,
cff_fd_select_get( CFF_FDSelect fdselect,
FT_UInt glyph_index )
{
FT_Byte fd = 0;
switch ( select->format )
switch ( fdselect->format )
{
case 0:
fd = select->data[glyph_index];
fd = fdselect->data[glyph_index];
break;
case 3:
/* first, compare to cache */
if ( (FT_UInt)(glyph_index-select->cache_first) < select->cache_count )
if ( (FT_UInt)( glyph_index - fdselect->cache_first ) <
fdselect->cache_count )
{
fd = select->cache_fd;
fd = fdselect->cache_fd;
break;
}
/* then, lookup the ranges array */
{
FT_Byte* p = select->data;
FT_Byte* p_limit = p + select->data_size;
FT_Byte* p = fdselect->data;
FT_Byte* p_limit = p + fdselect->data_size;
FT_Byte fd2;
FT_UInt first, limit;
@ -1457,9 +1458,9 @@
fd = fd2;
/* update cache */
select->cache_first = first;
select->cache_count = limit-first;
select->cache_fd = fd2;
fdselect->cache_first = first;
fdselect->cache_count = limit-first;
fdselect->cache_fd = fd2;
break;
}
first = limit;

View File

@ -409,7 +409,7 @@
cur = pos;
for ( n = 0; n < args_count; n++ )
{
FT_Int index, delta;
FT_Int idx, delta;
/* read the X argument */
@ -417,9 +417,9 @@
{
case 0: /* 8-bit index */
PFR_CHECK( 1 );
index = PFR_NEXT_BYTE( p );
cur->x = glyph->x_control[index];
FT_TRACE7(( " cx#%d", index ));
idx = PFR_NEXT_BYTE( p );
cur->x = glyph->x_control[idx];
FT_TRACE7(( " cx#%d", idx ));
break;
case 1: /* 16-bit value */
@ -445,9 +445,9 @@
{
case 0: /* 8-bit index */
PFR_CHECK( 1 );
index = PFR_NEXT_BYTE( p );
cur->y = glyph->y_control[index];
FT_TRACE7(( " cy#%d", index ));
idx = PFR_NEXT_BYTE( p );
cur->y = glyph->y_control[idx];
FT_TRACE7(( " cy#%d", idx ));
break;
case 1: /* 16-bit absolute value */

View File

@ -220,7 +220,7 @@
FT_LOCAL_DEF( FT_Error )
pfr_log_font_load( PFR_LogFont log_font,
FT_Stream stream,
FT_UInt index,
FT_UInt idx,
FT_UInt32 section_offset,
FT_Bool size_increment )
{
@ -235,10 +235,10 @@
FT_READ_USHORT( num_log_fonts ) )
goto Exit;
if ( index >= num_log_fonts )
if ( idx >= num_log_fonts )
return PFR_Err_Invalid_Argument;
if ( FT_STREAM_SKIP( index * 5 ) ||
if ( FT_STREAM_SKIP( idx * 5 ) ||
FT_READ_USHORT( size ) ||
FT_READ_UOFF3 ( offset ) )
goto Exit;

View File

@ -2652,13 +2652,13 @@
Long x1, x2, xs, e1, e2;
TProfileList wait;
TProfileList waiting;
TProfileList draw_left, draw_right;
/* Init empty linked lists */
Init_Linked( &wait );
Init_Linked( &waiting );
Init_Linked( &draw_left );
Init_Linked( &draw_right );
@ -2680,7 +2680,7 @@
if ( max_Y < top ) max_Y = top;
P->X = 0;
InsNew( &wait, P );
InsNew( &waiting, P );
P = Q;
}
@ -2698,7 +2698,7 @@
/* Then compute the distance of each profile from min_Y */
P = wait;
P = waiting;
while ( P )
{
@ -2717,9 +2717,9 @@
while ( ras.numTurns > 0 )
{
/* look in the wait list for new activations */
/* look in the waiting list for new activations */
P = wait;
P = waiting;
while ( P )
{
@ -2727,7 +2727,7 @@
P->countL -= y_height;
if ( P->countL == 0 )
{
DelOld( &wait, P );
DelOld( &waiting, P );
switch ( P->flow )
{

View File

@ -434,8 +434,8 @@
/* do we have outlines in there? */
#ifdef FT_CONFIG_OPTION_INCREMENTAL
has_outline = FT_BOOL( face->root.internal->incremental_interface != 0 ||
TT_LookUp_Table( face, TTAG_glyf ) != 0 ||
TT_LookUp_Table( face, TTAG_CFF ) != 0 );
TT_LookUp_Table( face, TTAG_glyf ) != 0 ||
TT_LookUp_Table( face, TTAG_CFF ) != 0 );
#else
has_outline = FT_BOOL( TT_LookUp_Table( face, TTAG_glyf ) != 0 ||
TT_LookUp_Table( face, TTAG_CFF ) != 0 );

View File

@ -756,9 +756,9 @@
FT_Bool opened_frame = 0;
#ifdef FT_CONFIG_OPTION_INCREMENTAL
struct FT_StreamRec_ inc_stream;
FT_Data glyph_data;
FT_Bool glyph_data_loaded = 0;
struct FT_StreamRec_ inc_stream;
FT_Data glyph_data;
FT_Bool glyph_data_loaded = 0;
#endif
@ -852,13 +852,15 @@
goto Exit;
glyph_data_loaded = 1;
offset = 0;
count = glyph_data.length;
offset = 0;
count = glyph_data.length;
FT_MEM_ZERO( &inc_stream, sizeof ( inc_stream ) );
FT_Stream_OpenMemory( &inc_stream, glyph_data.pointer, glyph_data.length );
FT_Stream_OpenMemory( &inc_stream,
glyph_data.pointer, glyph_data.length );
loader->stream = &inc_stream;
}
else
#endif /* FT_CONFIG_OPTION_INCREMENTAL */
@ -1266,10 +1268,10 @@
Exit:
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if (glyph_data_loaded)
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );
if ( glyph_data_loaded )
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );
#endif
return error;

View File

@ -121,19 +121,21 @@
T1_Parse_Glyph( T1_Decoder decoder,
FT_UInt glyph_index )
{
FT_Data glyph_data;
FT_Error error = T1_Parse_Glyph_And_Get_Char_String( decoder, glyph_index, &glyph_data );
FT_Data glyph_data;
FT_Error error = T1_Parse_Glyph_And_Get_Char_String(
decoder, glyph_index, &glyph_data );
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if ( !error)
if ( !error )
{
T1_Face face = (T1_Face)decoder->builder.face;
T1_Face face = (T1_Face)decoder->builder.face;
if ( face->root.internal->incremental_interface )
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );
}
#endif
@ -225,7 +227,8 @@
FT_Matrix font_matrix;
FT_Vector font_offset;
FT_Data glyph_data;
FT_Bool glyph_data_loaded = 0;
FT_Bool glyph_data_loaded = 0;
if ( load_flags & FT_LOAD_NO_RECURSE )
load_flags |= FT_LOAD_NO_SCALE | FT_LOAD_NO_HINTING;
@ -264,7 +267,7 @@
&glyph_data );
if ( error )
goto Exit;
glyph_data_loaded = 1;
glyph_data_loaded = 1;
font_matrix = decoder.font_matrix;
font_offset = decoder.font_offset;
@ -394,11 +397,11 @@
if ( glyph_data_loaded && face->root.internal->incremental_interface )
{
face->root.internal->incremental_interface->funcs->free_glyph_data(
face->root.internal->incremental_interface->object,
&glyph_data );
face->root.internal->incremental_interface->object,
&glyph_data );
/* Set the control data to null - it is no longer available if */
/* loaded incrementally. */
/* loaded incrementally. */
glyph->root.control_data = 0;
glyph->root.control_len = 0;
}

View File

@ -1712,7 +1712,7 @@
}
#ifdef FT_CONFIG_OPTION_INCREMENTAL
if (!face->root.internal->incremental_interface)
if ( !face->root.internal->incremental_interface )
#endif
if ( !loader.charstrings.init )
{