[xorg-commit-diffs] xc/extras/freetype2/src/cff cfftypes.h, NONE,
1.1.6.1 cffcmap.c, 1.1, 1.1.4.1 cffcmap.h, 1.1,
1.1.4.1 cffdrivr.c, 1.1.4.1, 1.1.4.2 cffgload.c, 1.1.4.2,
1.1.4.3 cffgload.h, 1.1.4.1, 1.1.4.2 cffload.c, 1.1.4.1,
1.1.4.2 cffload.h, 1.1.4.1, 1.1.4.2 cffobjs.c, 1.1.4.1,
1.1.4.2 cffobjs.h, 1.1.4.1, 1.1.4.2 cffparse.c, 1.1.4.1,
1.1.4.2 cffparse.h, 1.1.4.1, 1.1.4.2 cfftoken.h, 1.1,
1.1.4.1 rules.mk, 1.1.4.1, 1.1.4.2
Egbert Eich
xorg-commit at pdx.freedesktop.org
Thu Apr 15 03:14:39 PDT 2004
- Previous message: [xorg-commit-diffs] xc/extras/freetype2/src/cache ftccache.c,
1.1.4.1, 1.1.4.2 ftccmap.c, 1.1.4.1, 1.1.4.2 ftcsbits.c,
1.1.4.1, 1.1.4.2 ftlru.c, 1.1.4.1, 1.1.4.2 rules.mk, 1.1, 1.1.4.1
- Next message: [xorg-commit-diffs]
xc/extras/freetype2/src/cid cidgload.c, 1.1.4.1,
1.1.4.2 cidload.c, 1.1.4.1, 1.1.4.2 cidload.h, 1.1.4.1,
1.1.4.2 cidobjs.c, 1.1.4.1, 1.1.4.2 cidparse.c, 1.1.4.1,
1.1.4.2 cidparse.h, 1.1.4.1, 1.1.4.2 cidriver.c, 1.1.4.1,
1.1.4.2 cidtoken.h, 1.1, 1.1.4.1 rules.mk, 1.1, 1.1.4.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
Committed by: eich
Update of /cvs/xorg/xc/extras/freetype2/src/cff
In directory pdx:/home/eich/tstbuild/xc/extras/freetype2/src/cff
Modified Files:
Tag: XORG-CURRENT
cffcmap.c cffcmap.h cffdrivr.c cffgload.c cffgload.h cffload.c
cffload.h cffobjs.c cffobjs.h cffparse.c cffparse.h cfftoken.h
rules.mk
Added Files:
Tag: XORG-CURRENT
cfftypes.h
Log Message:
2004-04-15 Egbert Eich <eich at freedesktop.org>
Merged changes from RELEASE-1 branch
--- NEW FILE: cfftypes.h ---
/***************************************************************************/
/* */
/* cfftypes.h */
/* */
/* Basic OpenType/CFF type definitions and interface (specification */
/* only). */
/* */
/* Copyright 1996-2001, 2002, 2003 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 __CFFTYPES_H__
#define __CFFTYPES_H__
#include <ft2build.h>
#include FT_FREETYPE_H
FT_BEGIN_HEADER
/*************************************************************************/
/* */
/* <Struct> */
/* CFF_IndexRec */
/* */
/* <Description> */
/* A structure used to model a CFF Index table. */
/* */
/* <Fields> */
/* stream :: The source input stream. */
/* */
/* count :: The number of elements in the index. */
/* */
/* off_size :: The size in bytes of object offsets in index. */
/* */
/* data_offset :: The position of first data byte in the index's */
/* bytes. */
/* */
/* offsets :: A table of element offsets in the index. */
/* */
/* bytes :: If the index is loaded in memory, its bytes. */
/* */
typedef struct CFF_IndexRec_
{
FT_Stream stream;
FT_UInt count;
FT_Byte off_size;
FT_ULong data_offset;
FT_ULong* offsets;
FT_Byte* bytes;
} CFF_IndexRec, *CFF_Index;
typedef struct CFF_EncodingRec_
{
FT_UInt format;
FT_ULong offset;
FT_UInt count;
FT_UShort sids [256]; /* avoid dynamic allocations */
FT_UShort codes[256];
} CFF_EncodingRec, *CFF_Encoding;
typedef struct CFF_CharsetRec_
{
FT_UInt format;
FT_ULong offset;
FT_UShort* sids;
} CFF_CharsetRec, *CFF_Charset;
typedef struct CFF_FontRecDictRec_
{
FT_UInt version;
FT_UInt notice;
FT_UInt copyright;
FT_UInt full_name;
FT_UInt family_name;
FT_UInt weight;
FT_Bool is_fixed_pitch;
FT_Fixed italic_angle;
FT_Fixed underline_position;
FT_Fixed underline_thickness;
FT_Int paint_type;
FT_Int charstring_type;
FT_Matrix font_matrix;
FT_UShort units_per_em;
FT_Vector font_offset;
FT_ULong unique_id;
FT_BBox font_bbox;
FT_Pos stroke_width;
FT_ULong charset_offset;
FT_ULong encoding_offset;
FT_ULong charstrings_offset;
FT_ULong private_offset;
FT_ULong private_size;
FT_Long synthetic_base;
FT_UInt embedded_postscript;
FT_UInt base_font_name;
FT_UInt postscript;
/* these should only be used for the top-level font dictionary */
FT_UInt cid_registry;
FT_UInt cid_ordering;
FT_ULong cid_supplement;
FT_Long cid_font_version;
FT_Long cid_font_revision;
FT_Long cid_font_type;
FT_Long cid_count;
FT_ULong cid_uid_base;
FT_ULong cid_fd_array_offset;
FT_ULong cid_fd_select_offset;
FT_UInt cid_font_name;
} CFF_FontRecDictRec, *CFF_FontRecDict;
typedef struct CFF_PrivateRec_
{
FT_Byte num_blue_values;
FT_Byte num_other_blues;
FT_Byte num_family_blues;
FT_Byte num_family_other_blues;
FT_Pos blue_values[14];
FT_Pos other_blues[10];
FT_Pos family_blues[14];
FT_Pos family_other_blues[10];
FT_Fixed blue_scale;
FT_Pos blue_shift;
FT_Pos blue_fuzz;
FT_Pos standard_width;
FT_Pos standard_height;
FT_Byte num_snap_widths;
FT_Byte num_snap_heights;
FT_Pos snap_widths[13];
FT_Pos snap_heights[13];
FT_Bool force_bold;
FT_Fixed force_bold_threshold;
FT_Int lenIV;
FT_Int language_group;
FT_Fixed expansion_factor;
FT_Long initial_random_seed;
FT_ULong local_subrs_offset;
FT_Pos default_width;
FT_Pos nominal_width;
} CFF_PrivateRec, *CFF_Private;
typedef struct CFF_FDSelectRec_
{
FT_Byte format;
FT_UInt range_count;
/* that's the table, taken from the file `as is' */
FT_Byte* data;
FT_UInt data_size;
/* small cache for format 3 only */
FT_UInt cache_first;
FT_UInt cache_count;
FT_Byte cache_fd;
} CFF_FDSelectRec, *CFF_FDSelect;
/* A SubFont packs a font dict and a private dict together. They are */
/* needed to support CID-keyed CFF fonts. */
typedef struct CFF_SubFontRec_
{
CFF_FontRecDictRec font_dict;
CFF_PrivateRec private_dict;
CFF_IndexRec local_subrs_index;
FT_UInt num_local_subrs;
FT_Byte** local_subrs;
} CFF_SubFontRec, *CFF_SubFont;
/* maximum number of sub-fonts in a CID-keyed file */
#define CFF_MAX_CID_FONTS 16
typedef struct CFF_FontRec_
{
FT_Stream stream;
FT_Memory memory;
FT_UInt num_faces;
FT_UInt num_glyphs;
FT_Byte version_major;
FT_Byte version_minor;
FT_Byte header_size;
FT_Byte absolute_offsize;
CFF_IndexRec name_index;
CFF_IndexRec top_dict_index;
CFF_IndexRec string_index;
CFF_IndexRec global_subrs_index;
CFF_EncodingRec encoding;
CFF_CharsetRec charset;
CFF_IndexRec charstrings_index;
CFF_IndexRec font_dict_index;
CFF_IndexRec private_index;
CFF_IndexRec local_subrs_index;
FT_String* font_name;
FT_UInt num_global_subrs;
FT_Byte** global_subrs;
CFF_SubFontRec top_font;
FT_UInt num_subfonts;
CFF_SubFont subfonts[CFF_MAX_CID_FONTS];
CFF_FDSelectRec fd_select;
/* interface to PostScript hinter */
void* pshinter;
/* interface to Postscript Names service */
void* psnames;
} CFF_FontRec, *CFF_Font;
FT_END_HEADER
#endif /* __CFFTYPES_H__ */
/* END */
Index: cffcmap.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffcmap.c,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/cffcmap.c 25 Nov 2003 19:27:19 -0000 1.1
+++ b/cffcmap.c 15 Apr 2004 10:14:34 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* CFF character mapping table (cmap) support (body). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -19,6 +19,8 @@
#include "cffcmap.h"
#include "cffload.h"
+#include "cfferrs.h"
+
/*************************************************************************/
/*************************************************************************/
@@ -36,9 +38,8 @@
CFF_Encoding encoding = &cff->encoding;
- cmap->count = encoding->count;
cmap->gids = encoding->codes;
-
+
return 0;
}
@@ -46,7 +47,6 @@
FT_CALLBACK_DEF( void )
cff_cmap_encoding_done( CFF_CMapStd cmap )
{
- cmap->count = 0;
cmap->gids = NULL;
}
@@ -58,9 +58,9 @@
FT_UInt result = 0;
- if ( char_code < cmap->count )
+ if ( char_code < 256 )
result = cmap->gids[char_code];
-
+
return result;
}
@@ -71,27 +71,27 @@
{
FT_UInt result = 0;
FT_UInt32 char_code = *pchar_code;
-
+
*pchar_code = 0;
- if ( char_code < cmap->count )
+ if ( char_code < 255 )
{
FT_UInt code = (FT_UInt)(char_code + 1);
-
+
for (;;)
{
- if ( code >= cmap->count )
+ if ( code >= 256 )
break;
-
+
result = cmap->gids[code];
if ( result != 0 )
{
*pchar_code = code;
break;
}
-
+
code++;
}
}
@@ -125,28 +125,28 @@
{
FT_UInt32 u1 = ((CFF_CMapUniPair)pair1)->unicode;
FT_UInt32 u2 = ((CFF_CMapUniPair)pair2)->unicode;
-
+
if ( u1 < u2 )
return -1;
-
+
if ( u1 > u2 )
return +1;
-
+
return 0;
- }
+ }
FT_CALLBACK_DEF( FT_Error )
cff_cmap_unicode_init( CFF_CMapUnicode cmap )
{
- FT_Error error;
- FT_UInt count;
- TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
- FT_Memory memory = FT_FACE_MEMORY( face );
- CFF_Font cff = (CFF_Font)face->extra.data;
- CFF_Charset charset = &cff->charset;
- PSNames_Service psnames = (PSNames_Service)cff->psnames;
+ FT_Error error;
+ FT_UInt count;
+ TT_Face face = (TT_Face)FT_CMAP_FACE( cmap );
+ FT_Memory memory = FT_FACE_MEMORY( face );
+ CFF_Font cff = (CFF_Font)face->extra.data;
+ CFF_Charset charset = &cff->charset;
+ FT_Service_PsCMaps psnames = (FT_Service_PsCMaps)cff->psnames;
cmap->num_pairs = 0;
@@ -164,12 +164,12 @@
pair = cmap->pairs;
for ( n = 0; n < count; n++ )
{
- FT_UInt sid = charset->sids[n];
+ FT_UInt sid = charset->sids[n];
const char* gname;
gname = cff_index_get_sid_string( &cff->string_index, sid, psnames );
-
+
/* build unsorted pair table by matching glyph names */
if ( gname )
{
@@ -181,7 +181,7 @@
pair->gindex = n;
pair++;
}
-
+
FT_FREE( gname );
}
}
@@ -191,7 +191,7 @@
{
/* there are no unicode characters in here! */
FT_FREE( cmap->pairs );
- error = FT_Err_Invalid_Argument;
+ error = CFF_Err_Invalid_Argument;
}
else
{
@@ -223,7 +223,7 @@
FT_Face face = FT_CMAP_FACE( cmap );
FT_Memory memory = FT_FACE_MEMORY( face );
-
+
FT_FREE( cmap->pairs );
cmap->num_pairs = 0;
}
Index: cffcmap.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffcmap.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/cffcmap.h 25 Nov 2003 19:27:19 -0000 1.1
+++ b/cffcmap.h 15 Apr 2004 10:14:34 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* CFF character mapping table (cmap) support (specification). */
/* */
-/* Copyright 2002 by */
+/* Copyright 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -38,7 +38,6 @@
typedef struct CFF_CMapStdRec_
{
FT_CMapRec cmap;
- FT_UInt count;
FT_UShort* gids; /* up to 256 elements */
} CFF_CMapStdRec;
Index: cffdrivr.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffdrivr.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffdrivr.c 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffdrivr.c 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType font driver implementation (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -22,7 +22,8 @@
#include FT_INTERNAL_STREAM_H
#include FT_INTERNAL_SFNT_H
#include FT_TRUETYPE_IDS_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
+#include FT_SERVICE_POSTSCRIPT_INFO_H
#include "cffdrivr.h"
#include "cffgload.h"
@@ -30,6 +31,8 @@
#include "cfferrs.h"
+#include FT_SERVICE_XFREE86_NAME_H
+#include FT_SERVICE_GLYPH_DICT_H
/*************************************************************************/
/* */
@@ -165,7 +168,7 @@
/* glyph_index :: The index of the glyph in the font file. */
/* */
/* load_flags :: A flag indicating what to load for this glyph. The */
- /* FTLOAD_??? constants can be used to control the */
+ /* FT_LOAD_??? constants can be used to control the */
/* glyph loading process (e.g., whether the outline */
/* should be scaled, whether to load bitmaps or not, */
/* whether to hint the outline, etc). */
@@ -210,17 +213,10 @@
}
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
- /**** ****/
- /**** ****/
- /**** C H A R A C T E R M A P P I N G S ****/
- /**** ****/
- /**** ****/
- /*************************************************************************/
- /*************************************************************************/
- /*************************************************************************/
+ /*
+ * GLYPH DICT SERVICE
+ *
+ */
static FT_Error
cff_get_glyph_name( CFF_Face face,
@@ -228,17 +224,15 @@
FT_Pointer buffer,
FT_UInt buffer_max )
{
- CFF_Font font = (CFF_Font)face->extra.data;
- FT_Memory memory = FT_FACE_MEMORY( face );
- FT_String* gname;
- FT_UShort sid;
- PSNames_Service psnames;
- FT_Error error;
-
+ CFF_Font font = (CFF_Font)face->extra.data;
+ FT_Memory memory = FT_FACE_MEMORY( face );
+ FT_String* gname;
+ FT_UShort sid;
+ FT_Service_PsCMaps psnames;
+ FT_Error error;
- psnames = (PSNames_Service)FT_Get_Module_Interface(
- face->root.driver->root.library, "psnames" );
+ FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
if ( !psnames )
{
FT_ERROR(( "cff_get_glyph_name:" ));
@@ -255,7 +249,7 @@
/* now, lookup the name itself */
gname = cff_index_get_sid_string( &font->string_index, sid, psnames );
- if ( buffer_max > 0 )
+ if ( gname && buffer_max > 0 )
{
FT_UInt len = (FT_UInt)ft_strlen( gname );
@@ -267,7 +261,7 @@
((FT_Byte*)buffer)[len] = 0;
}
- FT_FREE ( gname );
+ FT_FREE( gname );
error = CFF_Err_Ok;
Exit:
@@ -275,44 +269,24 @@
}
-
- /*************************************************************************/
- /* */
- /* <Function> */
- /* cff_get_name_index */
- /* */
- /* <Description> */
- /* Uses the psnames module and the CFF font's charset to to return a */
- /* a given glyph name's glyph index. */
- /* */
- /* <Input> */
- /* face :: A handle to the source face object. */
- /* */
- /* glyph_name :: The glyph name. */
- /* */
- /* <Return> */
- /* Glyph index. 0 means `undefined character code'. */
- /* */
static FT_UInt
cff_get_name_index( CFF_Face face,
FT_String* glyph_name )
{
- CFF_Font cff;
- CFF_Charset charset;
- PSNames_Service psnames;
- FT_Memory memory = FT_FACE_MEMORY( face );
- FT_String* name;
- FT_UShort sid;
- FT_UInt i;
- FT_Int result;
+ CFF_Font cff;
+ CFF_Charset charset;
+ FT_Service_PsCMaps psnames;
+ FT_Memory memory = FT_FACE_MEMORY( face );
+ FT_String* name;
+ FT_UShort sid;
+ FT_UInt i;
+ FT_Int result;
cff = (CFF_FontRec *)face->extra.data;
charset = &cff->charset;
- psnames = (PSNames_Service)FT_Get_Module_Interface(
- face->root.driver->root.library, "psnames" );
-
+ FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
for ( i = 0; i < cff->num_glyphs; i++ )
{
sid = charset->sids[i];
@@ -335,6 +309,33 @@
}
+ static const FT_Service_GlyphDictRec cff_service_glyph_dict =
+ {
+ (FT_GlyphDict_GetNameFunc) cff_get_glyph_name,
+ (FT_GlyphDict_NameIndexFunc)cff_get_name_index,
+ };
+
+
+ /*
+ * POSTSCRIPT INFO SERVICE
+ *
+ */
+
+ static FT_Int
+ cff_ps_has_glyph_names( FT_Face face )
+ {
+ FT_UNUSED( face );
+ return 1;
+ }
+
+
+ static const FT_Service_PsInfoRec cff_service_ps_info =
+ {
+ (PS_GetFontInfoFunc) NULL, /* unsupported with CFF fonts */
+ (PS_HasGlyphNamesFunc)cff_ps_has_glyph_names
+ };
+
+
/*************************************************************************/
/*************************************************************************/
/*************************************************************************/
@@ -347,24 +348,30 @@
/*************************************************************************/
/*************************************************************************/
+ static const FT_ServiceDescRec cff_services[] =
+ {
+ { FT_SERVICE_ID_XF86_NAME, FT_XF86_FORMAT_CFF },
+ { FT_SERVICE_ID_POSTSCRIPT_INFO, &cff_service_ps_info },
+#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
+ { FT_SERVICE_ID_GLYPH_DICT, &cff_service_glyph_dict },
+#endif
+ { NULL, NULL }
+ };
+
+
static FT_Module_Interface
cff_get_interface( CFF_Driver driver,
const char* module_interface )
{
- FT_Module sfnt;
-
-
-#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES
-
- if ( ft_strcmp( (const char*)module_interface, "glyph_name" ) == 0 )
- return (FT_Module_Interface)cff_get_glyph_name;
+ FT_Module sfnt;
+ FT_Module_Interface result;
- if ( ft_strcmp( (const char*)module_interface, "name_index" ) == 0 )
- return (FT_Module_Interface)cff_get_name_index;
-#endif
+ result = ft_service_list_lookup( cff_services, module_interface );
+ if ( result != NULL )
+ return result;
- /* we simply pass our request to the `sfnt' module */
+ /* we pass our request to the `sfnt' module */
sfnt = FT_Get_Module( driver->root.root.library, "sfnt" );
return sfnt ? sfnt->clazz->get_interface( sfnt, module_interface ) : 0;
@@ -378,9 +385,9 @@
{
/* begin with the FT_Module_Class fields */
{
- ft_module_font_driver |
- ft_module_driver_scalable |
- ft_module_driver_has_hinter,
+ FT_MODULE_FONT_DRIVER |
+ FT_MODULE_DRIVER_SCALABLE |
+ FT_MODULE_DRIVER_HAS_HINTER,
sizeof( CFF_DriverRec ),
"cff",
Index: cffgload.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffgload.c,v
retrieving revision 1.1.4.2
retrieving revision 1.1.4.3
diff -u -d -r1.1.4.2 -r1.1.4.3
--- a/cffgload.c 5 Mar 2004 13:38:43 -0000 1.1.4.2
+++ b/cffgload.c 15 Apr 2004 10:14:34 -0000 1.1.4.3
@@ -4,7 +4,7 @@
/* */
/* OpenType Glyph Loader (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -15,7 +15,6 @@
/* */
/***************************************************************************/
-/* $XFree86: xc/extras/freetype2/src/cff/cffgload.c,v 1.2tsi Exp $ */
#include <ft2build.h>
@@ -248,7 +247,6 @@
builder->current = &loader->current.outline;
FT_GlyphLoader_Rewind( loader );
- builder->hint_flags = FT_FACE(face)->internal->hint_flags;
builder->hints_globals = 0;
builder->hints_funcs = 0;
@@ -369,7 +367,7 @@
decoder->num_globals = cff->num_global_subrs;
decoder->globals = cff->global_subrs;
decoder->globals_bias = cff_compute_bias( decoder->num_globals );
-
+
decoder->hint_mode = hint_mode;
}
@@ -820,7 +818,7 @@
seed = (FT_Fixed)(char*)&seed ^
(FT_Fixed)(char*)&decoder ^
(FT_Fixed)(char*)&charstring_base;
- seed = ( seed ^ ( seed >> 10 ) ^ ( seed >> 20 ) ) & 0xFFFF;
+ seed = ( seed ^ ( seed >> 10 ) ^ ( seed >> 20 ) ) & 0xFFFFL;
if ( seed == 0 )
seed = 0x7384;
@@ -905,7 +903,7 @@
*decoder->top++ = val;
#ifdef FT_DEBUG_LEVEL_TRACE
- if ( !( val & 0xFFFF ) )
+ if ( !( val & 0xFFFFL ) )
FT_TRACE4(( " %d", (FT_Int32)( val >> 16 ) ));
else
FT_TRACE4(( " %.2f", val / 65536.0 ));
@@ -1772,7 +1770,7 @@
hinter->apply( hinter->hints,
builder->current,
(PSH_Globals)builder->hints_globals,
- (FT_Render_Mode)builder->hint_flags );
+ decoder->hint_mode );
}
/* add current outline to the glyph slot */
@@ -1826,7 +1824,7 @@
FT_TRACE4(( " rand" ));
Rand = seed;
- if ( Rand >= 0x8000 )
+ if ( Rand >= 0x8000L )
Rand++;
args[0] = Rand;
@@ -2365,18 +2363,19 @@
cff_builder_done( &decoder.builder );
}
-#ifdef FT_CONFIG_OPTION_INCREMENTAL
+ #ifdef FT_CONFIG_OPTION_INCREMENTAL
/* Incremental fonts can optionally override the metrics. */
- if ( !error &&
- face->root.internal->incremental_interface &&
+ if ( !error &&
+ face->root.internal->incremental_interface &&
face->root.internal->incremental_interface->funcs->get_glyph_metrics )
{
FT_Incremental_MetricsRec metrics;
+
metrics.bearing_x = decoder.builder.left_bearing.x;
- metrics.bearing_y = decoder.builder.left_bearing.y;
- metrics.advance = decoder.builder.advance.x;
+ metrics.bearing_y = decoder.builder.left_bearing.y;
+ metrics.advance = decoder.builder.advance.x;
error = face->root.internal->incremental_interface->funcs->get_glyph_metrics(
face->root.internal->incremental_interface->object,
glyph_index, FALSE, &metrics );
@@ -2413,6 +2412,7 @@
{
FT_BBox cbox;
FT_Glyph_Metrics* metrics = &glyph->root.metrics;
+ FT_Vector advance;
/* copy the _unscaled_ advance width */
@@ -2442,6 +2442,15 @@
font_offset.x,
font_offset.y );
+ advance.x = metrics->horiAdvance;
+ advance.y = 0;
+ FT_Vector_Transform( &advance, &font_matrix );
+ metrics->horiAdvance = advance.x + font_offset.x;
+ advance.x = 0;
+ advance.y = metrics->vertAdvance;
+ FT_Vector_Transform( &advance, &font_matrix );
+ metrics->vertAdvance = advance.y + font_offset.y;
+
if ( ( load_flags & FT_LOAD_NO_SCALE ) == 0 )
{
/* scale the outline and the metrics */
Index: cffgload.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffgload.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffgload.h 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffgload.h 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType Glyph Loader (specification). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -114,8 +114,6 @@
FT_Error error; /* only used for memory errors */
FT_Bool metrics_only;
- FT_UInt32 hint_flags;
-
void* hints_funcs; /* hinter-specific */
void* hints_globals; /* hinter-specific */
Index: cffload.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffload.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffload.c 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffload.c 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType and CFF data/program tables loader (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -20,7 +20,7 @@
#include FT_INTERNAL_DEBUG_H
#include FT_INTERNAL_OBJECTS_H
#include FT_INTERNAL_STREAM_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
#include FT_TRUETYPE_TAGS_H
#include "cffload.h"
@@ -1312,9 +1312,9 @@
FT_LOCAL_DEF( FT_String* )
- cff_index_get_sid_string( CFF_Index idx,
- FT_UInt sid,
- PSNames_Service psnames_service )
+ cff_index_get_sid_string( CFF_Index idx,
+ FT_UInt sid,
+ FT_Service_PsCMaps psnames )
{
/* if it is not a standard string, return it */
if ( sid > 390 )
@@ -1323,7 +1323,7 @@
/* that's a standard string, fetch a copy from the PSName module */
{
FT_String* name = 0;
- const char* adobe_name = psnames_service->adobe_std_strings( sid );
+ const char* adobe_name = psnames->adobe_std_strings( sid );
FT_UInt len;
@@ -1505,8 +1505,8 @@
FT_ULong base_offset,
FT_ULong offset )
{
- FT_Memory memory = stream->memory;
- FT_Error error = 0;
+ FT_Memory memory = stream->memory;
+ FT_Error error = 0;
FT_UShort glyph_sid;
@@ -1557,7 +1557,6 @@
while ( j < num_glyphs )
{
-
/* Read the first glyph sid of the range. */
if ( FT_READ_USHORT( glyph_sid ) )
goto Exit;
@@ -1595,7 +1594,7 @@
/* In order to use a predefined charset, the following must be */
/* true: The charset constructed for the glyphs in the font's */
/* charstrings dictionary must match the predefined charset in */
- /* the first num_glyphs */
+ /* the first num_glyphs. */
charset->offset = offset; /* record charset type */
@@ -1680,7 +1679,6 @@
}
-
static void
cff_encoding_done( CFF_Encoding encoding )
{
@@ -1690,7 +1688,6 @@
}
-
static FT_Error
cff_encoding_load( CFF_Encoding encoding,
CFF_Charset charset,
@@ -1699,11 +1696,11 @@
FT_ULong base_offset,
FT_ULong offset )
{
- FT_Error error = 0;
- FT_UInt count;
- FT_UInt j;
- FT_UShort glyph_sid;
- FT_UInt glyph_code;
+ FT_Error error = 0;
+ FT_UInt count;
+ FT_UInt j;
+ FT_UShort glyph_sid;
+ FT_UInt glyph_code;
/* Check for charset->sids. If we do not have this, we fail. */
@@ -1720,8 +1717,8 @@
encoding->codes[j] = 0;
}
- /* Note: The encoding table in a CFF font is indexed by glyph index, */
- /* where the first encoded glyph index is 1. Hence, we read the char */
+ /* Note: The encoding table in a CFF font is indexed by glyph index; */
+ /* the first encoded glyph index is 1. Hence, we read the character */
/* code (`glyph_code') at index j and make the assignment: */
/* */
/* encoding->codes[glyph_code] = j + 1 */
@@ -1734,7 +1731,6 @@
if ( offset > 1 )
{
-
encoding->offset = base_offset + offset;
/* we need to parse the table to determine its size */
@@ -1749,9 +1745,10 @@
{
FT_Byte* p;
- /* by convention, GID 0 is always ".notdef" and is never */
- /* coded in the font. Hence, the number of codes found */
- /* in the table is 'count+1' */
+
+ /* By convention, GID 0 is always ".notdef" and is never */
+ /* coded in the font. Hence, the number of codes found */
+ /* in the table is `count+1'. */
/* */
encoding->count = count + 1;
@@ -1781,7 +1778,7 @@
case 1:
{
- FT_Byte nleft;
+ FT_UInt nleft;
FT_UInt i = 1;
FT_UInt k;
@@ -1821,7 +1818,7 @@
}
}
- /* simple check, one never knows what can be found in a font */
+ /* simple check; one never knows what can be found in a font */
if ( encoding->count > 256 )
encoding->count = 256;
}
@@ -1856,13 +1853,13 @@
/* Assign code to SID mapping. */
encoding->sids[glyph_code] = glyph_sid;
- /* First, lookup GID which has been assigned to */
- /* SID glyph_sid. */
+ /* First, look up GID which has been assigned to */
+ /* SID glyph_sid. */
for ( gindex = 0; gindex < num_glyphs; gindex++ )
{
if ( charset->sids[gindex] == glyph_sid )
{
- encoding->codes[glyph_code] = (FT_UShort) gindex;
+ encoding->codes[glyph_code] = (FT_UShort)gindex;
break;
}
}
@@ -1874,10 +1871,10 @@
FT_UInt i;
- /* We take into account the fact a CFF font can use a predefined */
- /* encoding without containing all of the glyphs encoded by this */
- /* encoding (see the note at the end of section 12 in the CFF */
- /* specification). */
+ /* We take into account the fact a CFF font can use a predefined */
+ /* encoding without containing all of the glyphs encoded by this */
+ /* encoding (see the note at the end of section 12 in the CFF */
+ /* specification). */
switch ( (FT_UInt)offset )
{
@@ -1899,7 +1896,6 @@
encoding->count = 0;
-
for ( j = 0; j < 256; j++ )
{
/* If j is encoded, find the GID for it. */
@@ -1923,8 +1919,8 @@
encoding->codes[j] = (FT_UShort)i;
/* update encoding count */
- if ( encoding->count < j+1 )
- encoding->count = j+1;
+ if ( encoding->count < j + 1 )
+ encoding->count = j + 1;
}
}
}
@@ -1964,8 +1960,8 @@
/* set defaults */
FT_MEM_ZERO( top, sizeof ( *top ) );
- top->underline_position = -100;
- top->underline_thickness = 50;
+ top->underline_position = -100L << 16;
+ top->underline_thickness = 50L << 16;
top->charstring_type = 2;
top->font_matrix.xx = 0x10000L;
top->font_matrix.yy = 0x10000L;
@@ -1992,8 +1988,8 @@
priv->blue_shift = 7;
priv->blue_fuzz = 1;
priv->lenIV = -1;
- priv->expansion_factor = (FT_Fixed)0.06 * 0x10000L;
- priv->blue_scale = (FT_Fixed)0.039625 * 0x10000L;
+ priv->expansion_factor = (FT_Fixed)( 0.06 * 0x10000L );
+ priv->blue_scale = (FT_Fixed)( 0.039625 * 0x10000L * 1000 );
cff_parser_init( &parser, CFF_CODE_PRIVATE, priv );
@@ -2207,7 +2203,7 @@
if ( font->num_glyphs > 0 )
{
error = cff_charset_load( &font->charset, font->num_glyphs, stream,
- base_offset, dict->charset_offset );
+ base_offset, dict->charset_offset );
if ( error )
goto Exit;
Index: cffload.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffload.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffload.h 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffload.h 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType & CFF data/program tables loader (specification). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -21,8 +21,8 @@
#include <ft2build.h>
-#include FT_INTERNAL_CFF_TYPES_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include "cfftypes.h"
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
FT_BEGIN_HEADER
@@ -36,9 +36,9 @@
FT_UInt element );
FT_LOCAL( FT_String* )
- cff_index_get_sid_string( CFF_Index idx,
- FT_UInt sid,
- PSNames_Service psnames_interface );
+ cff_index_get_sid_string( CFF_Index idx,
+ FT_UInt sid,
+ FT_Service_PsCMaps psnames );
FT_LOCAL( FT_Error )
Index: cffobjs.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffobjs.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffobjs.c 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffobjs.c 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType objects manager (body). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -24,7 +24,7 @@
#include FT_TRUETYPE_IDS_H
#include FT_TRUETYPE_TAGS_H
#include FT_INTERNAL_SFNT_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
#include FT_INTERNAL_POSTSCRIPT_HINTS_H
#include "cffobjs.h"
#include "cffload.h"
@@ -253,24 +253,31 @@
FT_Int num_params,
FT_Parameter* params )
{
- FT_Error error;
- SFNT_Service sfnt;
- PSNames_Service psnames;
- PSHinter_Service pshinter;
- FT_Bool pure_cff = 1;
- FT_Bool sfnt_format = 0;
+ FT_Error error;
+ SFNT_Service sfnt;
+ FT_Service_PsCMaps psnames;
+ PSHinter_Service pshinter;
+ FT_Bool pure_cff = 1;
+ FT_Bool sfnt_format = 0;
+#if 0
+ FT_FACE_FIND_GLOBAL_SERVICE( face, sfnt, SFNT );
+ FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_NAMES );
+ FT_FACE_FIND_GLOBAL_SERVICE( face, pshinter, POSTSCRIPT_HINTER );
+ if ( !sfnt )
+ goto Bad_Format;
+#else
sfnt = (SFNT_Service)FT_Get_Module_Interface(
face->root.driver->root.library, "sfnt" );
if ( !sfnt )
goto Bad_Format;
- psnames = (PSNames_Service)FT_Get_Module_Interface(
- face->root.driver->root.library, "psnames" );
+ FT_FACE_FIND_GLOBAL_SERVICE( face, psnames, POSTSCRIPT_CMAPS );
pshinter = (PSHinter_Service)FT_Get_Module_Interface(
face->root.driver->root.library, "pshinter" );
+#endif
/* create input stream from resource */
if ( FT_STREAM_SEEK( 0 ) )
@@ -293,7 +300,7 @@
sfnt_format = 1;
/* now, the font can be either an OpenType/CFF font, or an SVG CEF */
- /* font in the later case; it doesn't have a `head' table */
+ /* font; in the later case it doesn't have a `head' table */
error = face->goto_table( face, TTAG_head, stream, 0 );
if ( !error )
{
@@ -347,7 +354,7 @@
goto Exit;
cff->pshinter = pshinter;
- cff->psnames = psnames;
+ cff->psnames = (void*)psnames;
/* Complement the root flags with some interesting information. */
/* Note that this is only necessary for pure CFF and CEF fonts. */
@@ -396,6 +403,11 @@
else
root->units_per_EM = 1000;
+ root->underline_position =
+ (FT_Short)( dict->underline_position >> 16 );
+ root->underline_thickness =
+ (FT_Short)( dict->underline_thickness >> 16 );
+
/* retrieve font family & style name */
root->family_name = cff_index_get_name( &cff->name_index, face_index );
if ( dict->cid_registry )
@@ -463,7 +475,7 @@
CFF_Encoding encoding = &cff->encoding;
- for ( nn = 0; nn < (FT_UInt) root->num_charmaps; nn++ )
+ for ( nn = 0; nn < (FT_UInt)root->num_charmaps; nn++ )
{
cmap = root->charmaps[nn];
@@ -482,12 +494,12 @@
cmaprec.encoding_id = 1;
cmaprec.encoding = FT_ENCODING_UNICODE;
- nn = (FT_UInt) root->num_charmaps;
+ nn = (FT_UInt)root->num_charmaps;
FT_CMap_New( &cff_cmap_unicode_class_rec, NULL, &cmaprec, NULL );
/* if no Unicode charmap was previously selected, select this one */
- if ( root->charmap == NULL && nn != (FT_UInt) root->num_charmaps )
+ if ( root->charmap == NULL && nn != (FT_UInt)root->num_charmaps )
root->charmap = root->charmaps[nn];
Skip_Unicode:
@@ -501,26 +513,25 @@
if ( encoding->offset == 0 )
{
- cmaprec.encoding_id = 0;
+ cmaprec.encoding_id = TT_ADOBE_ID_STANDARD;
cmaprec.encoding = FT_ENCODING_ADOBE_STANDARD;
clazz = &cff_cmap_encoding_class_rec;
}
else if ( encoding->offset == 1 )
{
- cmaprec.encoding_id = 1;
+ cmaprec.encoding_id = TT_ADOBE_ID_EXPERT;
cmaprec.encoding = FT_ENCODING_ADOBE_EXPERT;
clazz = &cff_cmap_encoding_class_rec;
}
else
{
- cmaprec.encoding_id = 3;
+ cmaprec.encoding_id = TT_ADOBE_ID_CUSTOM;
cmaprec.encoding = FT_ENCODING_ADOBE_CUSTOM;
clazz = &cff_cmap_encoding_class_rec;
}
FT_CMap_New( clazz, NULL, &cmaprec, NULL );
}
-
}
}
Index: cffobjs.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffobjs.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffobjs.h 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffobjs.h 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* OpenType objects manager (specification). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -22,9 +22,9 @@
#include <ft2build.h>
#include FT_INTERNAL_OBJECTS_H
-#include FT_INTERNAL_CFF_TYPES_H
+#include "cfftypes.h"
#include FT_INTERNAL_TRUETYPE_TYPES_H
-#include FT_INTERNAL_POSTSCRIPT_NAMES_H
+#include FT_SERVICE_POSTSCRIPT_CMAPS_H
FT_BEGIN_HEADER
Index: cffparse.c
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffparse.c,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffparse.c 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffparse.c 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -4,7 +4,7 @@
/* */
/* CFF token stream parser (body) */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -38,6 +38,7 @@
cff_kind_none = 0,
cff_kind_num,
cff_kind_fixed,
+ cff_kind_fixed_thousand,
cff_kind_string,
cff_kind_bool,
cff_kind_delta,
@@ -429,6 +430,8 @@
CFF_FIELD( code, name, cff_kind_num )
#define CFF_FIELD_FIXED( code, name ) \
CFF_FIELD( code, name, cff_kind_fixed )
+#define CFF_FIELD_FIXED_1000( code, name ) \
+ CFF_FIELD( code, name, cff_kind_fixed_thousand )
#define CFF_FIELD_STRING( code, name ) \
CFF_FIELD( code, name, cff_kind_string )
#define CFF_FIELD_BOOL( code, name ) \
@@ -579,6 +582,10 @@
case cff_kind_fixed:
val = cff_parse_fixed( parser->stack );
+ goto Store_Number;
+
+ case cff_kind_fixed_thousand:
+ val = cff_parse_fixed_thousand( parser->stack );
Store_Number:
switch ( field->size )
Index: cffparse.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cffparse.h,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/cffparse.h 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/cffparse.h 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -21,7 +21,7 @@
#include <ft2build.h>
-#include FT_INTERNAL_CFF_TYPES_H
+#include "cfftypes.h"
#include FT_INTERNAL_OBJECTS_H
Index: cfftoken.h
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/cfftoken.h,v
retrieving revision 1.1
retrieving revision 1.1.4.1
diff -u -d -r1.1 -r1.1.4.1
--- a/cfftoken.h 14 Nov 2003 16:48:24 -0000 1.1
+++ b/cfftoken.h 15 Apr 2004 10:14:34 -0000 1.1.4.1
@@ -4,7 +4,7 @@
/* */
/* CFF token definitions (specification only). */
/* */
-/* Copyright 1996-2001, 2002 by */
+/* Copyright 1996-2001, 2002, 2003 by */
/* David Turner, Robert Wilhelm, and Werner Lemberg. */
/* */
/* This file is part of the FreeType project, and may only be used, */
@@ -30,8 +30,8 @@
CFF_FIELD_STRING ( 4, weight )
CFF_FIELD_BOOL ( 0x101, is_fixed_pitch )
CFF_FIELD_FIXED ( 0x102, italic_angle )
- CFF_FIELD_NUM ( 0x103, underline_position )
- CFF_FIELD_NUM ( 0x104, underline_thickness )
+ CFF_FIELD_FIXED ( 0x103, underline_position )
+ CFF_FIELD_FIXED ( 0x104, underline_thickness )
CFF_FIELD_NUM ( 0x105, paint_type )
CFF_FIELD_NUM ( 0x106, charstring_type )
CFF_FIELD_CALLBACK( 0x107, font_matrix )
@@ -72,26 +72,26 @@
#undef CFFCODE
#define CFFCODE CFFCODE_PRIVATE
- CFF_FIELD_DELTA( 6, blue_values, 14 )
- CFF_FIELD_DELTA( 7, other_blues, 10 )
- CFF_FIELD_DELTA( 8, family_blues, 14 )
- CFF_FIELD_DELTA( 9, family_other_blues, 10 )
- CFF_FIELD_FIXED( 0x109, blue_scale )
- CFF_FIELD_NUM ( 0x10A, blue_shift )
- CFF_FIELD_NUM ( 0x10B, blue_fuzz )
- CFF_FIELD_NUM ( 10, standard_width )
- CFF_FIELD_NUM ( 11, standard_height )
- CFF_FIELD_DELTA( 0x10C, snap_widths, 13 )
- CFF_FIELD_DELTA( 0x10D, snap_heights, 13 )
- CFF_FIELD_BOOL ( 0x10E, force_bold )
- CFF_FIELD_FIXED( 0x10F, force_bold_threshold )
- CFF_FIELD_NUM ( 0x110, lenIV )
- CFF_FIELD_NUM ( 0x111, language_group )
- CFF_FIELD_FIXED( 0x112, expansion_factor )
- CFF_FIELD_NUM ( 0x113, initial_random_seed )
- CFF_FIELD_NUM ( 19, local_subrs_offset )
- CFF_FIELD_NUM ( 20, default_width )
- CFF_FIELD_NUM ( 21, nominal_width )
+ CFF_FIELD_DELTA ( 6, blue_values, 14 )
+ CFF_FIELD_DELTA ( 7, other_blues, 10 )
+ CFF_FIELD_DELTA ( 8, family_blues, 14 )
+ CFF_FIELD_DELTA ( 9, family_other_blues, 10 )
+ CFF_FIELD_FIXED_1000( 0x109, blue_scale )
+ CFF_FIELD_NUM ( 0x10A, blue_shift )
+ CFF_FIELD_NUM ( 0x10B, blue_fuzz )
+ CFF_FIELD_NUM ( 10, standard_width )
+ CFF_FIELD_NUM ( 11, standard_height )
+ CFF_FIELD_DELTA ( 0x10C, snap_widths, 13 )
+ CFF_FIELD_DELTA ( 0x10D, snap_heights, 13 )
+ CFF_FIELD_BOOL ( 0x10E, force_bold )
+ CFF_FIELD_FIXED ( 0x10F, force_bold_threshold )
+ CFF_FIELD_NUM ( 0x110, lenIV )
+ CFF_FIELD_NUM ( 0x111, language_group )
+ CFF_FIELD_FIXED ( 0x112, expansion_factor )
+ CFF_FIELD_NUM ( 0x113, initial_random_seed )
+ CFF_FIELD_NUM ( 19, local_subrs_offset )
+ CFF_FIELD_NUM ( 20, default_width )
+ CFF_FIELD_NUM ( 21, nominal_width )
/* END */
Index: rules.mk
===================================================================
RCS file: /cvs/xorg/xc/extras/freetype2/src/cff/rules.mk,v
retrieving revision 1.1.4.1
retrieving revision 1.1.4.2
diff -u -d -r1.1.4.1 -r1.1.4.2
--- a/rules.mk 26 Nov 2003 22:48:26 -0000 1.1.4.1
+++ b/rules.mk 15 Apr 2004 10:14:34 -0000 1.1.4.2
@@ -3,7 +3,7 @@
#
-# Copyright 1996-2000, 2001 by
+# Copyright 1996-2000, 2001, 2003 by
# David Turner, Robert Wilhelm, and Werner Lemberg.
#
# This file is part of the FreeType project, and may only be used, modified,
@@ -15,27 +15,26 @@
# OpenType driver directory
#
-CFF_DIR := $(SRC_)cff
-CFF_DIR_ := $(CFF_DIR)$(SEP)
+CFF_DIR := $(SRC_DIR)/cff
-CFF_COMPILE := $(FT_COMPILE) $I$(CFF_DIR)
+CFF_COMPILE := $(FT_COMPILE) $I$(subst /,$(COMPILER_SEP),$(CFF_DIR))
# CFF driver sources (i.e., C files)
#
-CFF_DRV_SRC := $(CFF_DIR_)cffobjs.c \
- $(CFF_DIR_)cffload.c \
- $(CFF_DIR_)cffgload.c \
- $(CFF_DIR_)cffparse.c \
- $(CFF_DIR_)cffcmap.c \
- $(CFF_DIR_)cffdrivr.c
+CFF_DRV_SRC := $(CFF_DIR)/cffobjs.c \
+ $(CFF_DIR)/cffload.c \
+ $(CFF_DIR)/cffgload.c \
+ $(CFF_DIR)/cffparse.c \
+ $(CFF_DIR)/cffcmap.c \
+ $(CFF_DIR)/cffdrivr.c
# CFF driver headers
#
CFF_DRV_H := $(CFF_DRV_SRC:%.c=%.h) \
- $(CFF_DIR_)cfftoken.h \
- $(CFF_DIR_)cfferrs.h
+ $(CFF_DIR)/cfftoken.h \
+ $(CFF_DIR)/cfferrs.h
# CFF driver object(s)
@@ -43,24 +42,24 @@
# CFF_DRV_OBJ_M is used during `multi' builds
# CFF_DRV_OBJ_S is used during `single' builds
#
-CFF_DRV_OBJ_M := $(CFF_DRV_SRC:$(CFF_DIR_)%.c=$(OBJ_)%.$O)
-CFF_DRV_OBJ_S := $(OBJ_)cff.$O
+CFF_DRV_OBJ_M := $(CFF_DRV_SRC:$(CFF_DIR)/%.c=$(OBJ_DIR)/%.$O)
+CFF_DRV_OBJ_S := $(OBJ_DIR)/cff.$O
# CFF driver source file for single build
#
-CFF_DRV_SRC_S := $(CFF_DIR_)cff.c
+CFF_DRV_SRC_S := $(CFF_DIR)/cff.c
# CFF driver - single object
#
$(CFF_DRV_OBJ_S): $(CFF_DRV_SRC_S) $(CFF_DRV_SRC) $(FREETYPE_H) $(CFF_DRV_H)
- $(CFF_COMPILE) $T$@ $(CFF_DRV_SRC_S)
+ $(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $(CFF_DRV_SRC_S))
# CFF driver - multiple objects
#
-$(OBJ_)%.$O: $(CFF_DIR_)%.c $(FREETYPE_H) $(CFF_DRV_H)
- $(CFF_COMPILE) $T$@ $<
+$(OBJ_DIR)/%.$O: $(CFF_DIR)/%.c $(FREETYPE_H) $(CFF_DRV_H)
+ $(CFF_COMPILE) $T$(subst /,$(COMPILER_SEP),$@ $<)
# update main driver object lists
@@ -68,4 +67,5 @@
DRV_OBJS_S += $(CFF_DRV_OBJ_S)
DRV_OBJS_M += $(CFF_DRV_OBJ_M)
+
# EOF
- Previous message: [xorg-commit-diffs] xc/extras/freetype2/src/cache ftccache.c,
1.1.4.1, 1.1.4.2 ftccmap.c, 1.1.4.1, 1.1.4.2 ftcsbits.c,
1.1.4.1, 1.1.4.2 ftlru.c, 1.1.4.1, 1.1.4.2 rules.mk, 1.1, 1.1.4.1
- Next message: [xorg-commit-diffs]
xc/extras/freetype2/src/cid cidgload.c, 1.1.4.1,
1.1.4.2 cidload.c, 1.1.4.1, 1.1.4.2 cidload.h, 1.1.4.1,
1.1.4.2 cidobjs.c, 1.1.4.1, 1.1.4.2 cidparse.c, 1.1.4.1,
1.1.4.2 cidparse.h, 1.1.4.1, 1.1.4.2 cidriver.c, 1.1.4.1,
1.1.4.2 cidtoken.h, 1.1, 1.1.4.1 rules.mk, 1.1, 1.1.4.1
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xorg-commit-diffs
mailing list