ref: 9a9315faae0e3efe24a6029ad2ca4f32e726f60f
parent: 6eebf9053eacebdc537cd460f01c6324579832a2
author: David Turner <[email protected]>
date: Tue May 2 06:59:01 EDT 2000
changes to reflect the new files include/tttables.h include/t1tables.h
--- a/src/shared/t1types.h
+++ b/src/shared/t1types.h
@@ -21,7 +21,7 @@
#ifndef T1TYPES_H
#define T1TYPES_H
-#include <freetype.h>
+#include <t1tables.h>
#include <psnames.h>
#ifdef __cplusplus
@@ -310,55 +310,12 @@
{
/* font info dictionary */
+ T1_FontInfo font_info;
- T1_String* version;
- T1_String* notice;
- T1_String* full_name;
- T1_String* family_name;
- T1_String* weight;
- T1_Long italic_angle;
- T1_Bool is_fixed_pitch;
- T1_Short underline_position;
- T1_UShort underline_thickness;
-
/* private dictionary */
+ T1_Private private_dict;
- T1_Int unique_id;
- T1_Int lenIV;
-
- T1_Byte num_blues;
- T1_Byte num_other_blues;
- T1_Byte num_family_blues;
- T1_Byte num_family_other_blues;
-
- T1_Short blue_values[14];
- T1_Short other_blues[10];
-
- T1_Short family_blues [14];
- T1_Short family_other_blues[10];
-
- T1_Fixed blue_scale;
- T1_Int blue_shift;
- T1_Int blue_fuzz;
-
- T1_UShort standard_width;
- T1_UShort standard_height;
-
- T1_Byte num_snap_widths;
- T1_Byte num_snap_heights;
- T1_Bool force_bold;
- T1_Bool round_stem_up;
-
- T1_Short stem_snap_widths [13]; /* reserve one place for the std */
- T1_Short stem_snap_heights[13]; /* reserve one place for the std */
-
- T1_Long language_group;
- T1_Long password;
-
- T1_Short min_feature[2];
-
/* top-level dictionary */
-
FT_String* font_name;
T1_EncodingType encoding_type;
--- a/src/shared/tttypes.h
+++ b/src/shared/tttypes.h
@@ -788,65 +788,11 @@
/* load them by default. See the ttpost.c file. */
} TT_Postscript;
-#endif
- /*************************************************************************/
- /* */
- /* <Struct> */
- /* TT_CMapDir */
- /* */
- /* <Description> */
- /* This structure describes the directory of the `cmap' table, */
- /* containing the font's character mappings table. */
- /* */
- /* <Fields> */
- /* tableVersionNumber :: The version number. */
- /* numCMaps :: The number of charmaps in the font. */
- /* */
- /* <Note> */
- /* This structure is only used during font loading. */
- /* */
- typedef struct TT_CMapDir_
- {
- TT_UShort tableVersionNumber;
- TT_UShort numCMaps;
- } TT_CMapDir;
-
-
/*************************************************************************/
/* */
/* <Struct> */
- /* TT_CMapDirEntry */
- /* */
- /* <Description> */
- /* This structure describes a charmap in a TrueType font. */
- /* */
- /* <Fields> */
- /* platformID :: An ID used to specify for which platform this */
- /* charmap is defined (FreeType manages all platforms). */
- /* */
- /* encodingID :: A platform-specific ID used to indicate which source */
- /* encoding is used in this charmap. */
- /* */
- /* offset :: The offset of the charmap relative to the start of */
- /* the `cmap' table. */
- /* */
- /* <Note> */
- /* This structure is only used during font loading. */
- /* */
- typedef struct TT_CMapDirEntry_
- {
- TT_UShort platformID;
- TT_UShort platformEncodingID;
- TT_Long offset;
-
- } TT_CMapDirEntry;
-
-
- /*************************************************************************/
- /* */
- /* <Struct> */
/* TT_MaxProfile */
/* */
/* <Description> */
@@ -930,6 +876,62 @@
TT_UShort maxComponentDepth;
} TT_MaxProfile;
+
+
+#endif
+
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* TT_CMapDir */
+ /* */
+ /* <Description> */
+ /* This structure describes the directory of the `cmap' table, */
+ /* containing the font's character mappings table. */
+ /* */
+ /* <Fields> */
+ /* tableVersionNumber :: The version number. */
+ /* numCMaps :: The number of charmaps in the font. */
+ /* */
+ /* <Note> */
+ /* This structure is only used during font loading. */
+ /* */
+ typedef struct TT_CMapDir_
+ {
+ TT_UShort tableVersionNumber;
+ TT_UShort numCMaps;
+
+ } TT_CMapDir;
+
+
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* TT_CMapDirEntry */
+ /* */
+ /* <Description> */
+ /* This structure describes a charmap in a TrueType font. */
+ /* */
+ /* <Fields> */
+ /* platformID :: An ID used to specify for which platform this */
+ /* charmap is defined (FreeType manages all platforms). */
+ /* */
+ /* encodingID :: A platform-specific ID used to indicate which source */
+ /* encoding is used in this charmap. */
+ /* */
+ /* offset :: The offset of the charmap relative to the start of */
+ /* the `cmap' table. */
+ /* */
+ /* <Note> */
+ /* This structure is only used during font loading. */
+ /* */
+ typedef struct TT_CMapDirEntry_
+ {
+ TT_UShort platformID;
+ TT_UShort platformEncodingID;
+ TT_Long offset;
+
+ } TT_CMapDirEntry;
/*************************************************************************/
--- a/src/type1/t1hinter.c
+++ b/src/type1/t1hinter.c
@@ -105,7 +105,7 @@
T1_Error t1_set_blue_zones( T1_Size size )
{
T1_Face face = (T1_Face)size->root.face;
- T1_Font* priv = &face->type1;
+ T1_Private* priv = &face->type1.private_dict;
T1_Int n;
T1_Int blues[24];
T1_Int num_bottom;
@@ -286,7 +286,7 @@
T1_Fixed scale;
T1_Face face = (T1_Face)size->root.face;
- T1_Font* priv = &face->type1;
+ T1_Private* priv = &face->type1.private_dict;
T1_Size_Hints* hints = size->hints;
/* start with horizontal snap zones */
@@ -1286,7 +1286,7 @@
void T1_Hint_Stems( T1_Builder* builder )
{
T1_Glyph_Hints* hints = builder->glyph->hints;
- T1_Font* priv = &builder->face->type1;
+ T1_Private* priv = &builder->face->type1.private_dict;
T1_Size size = builder->size;
T1_Fixed scale_x = size->root.metrics.x_scale;
--- a/src/type1/t1load.c
+++ b/src/type1/t1load.c
@@ -44,7 +44,7 @@
parser->encoding_lengths = 0;
parser->dump_tokens = 0;
- face->type1.lenIV = 4; /* XXX : is it sure ?? */
+ face->type1.private_dict.lenIV = 4; /* XXX : is it sure ?? */
}
@@ -309,7 +309,7 @@
break;
case imm_UniqueID:
- type1->unique_id = CopyInteger( parser );
+ type1->private_dict.unique_id = CopyInteger( parser );
break;
case imm_StrokeWidth:
@@ -347,8 +347,8 @@
static
T1_Error Do_Def_FontInfo( T1_Parser* parser )
{
- T1_Token* top = parser->top;
- T1_Font* info = &parser->face->type1;
+ T1_Token* top = parser->top;
+ T1_FontInfo* info = &parser->face->type1.font_info;
switch ( top[0].kind2 )
{
@@ -416,7 +416,7 @@
T1_Error Do_Def_Private( T1_Parser* parser )
{
T1_Token* top = parser->top;
- T1_Font* priv = &parser->face->type1;
+ T1_Private* priv = &parser->face->type1.private_dict;
switch ( top[0].kind2 )
{
@@ -722,8 +722,8 @@
t1_decrypt( base, count, 4330 );
tokzer->cursor += count;
- base += face->type1.lenIV;
- count -= face->type1.lenIV;
+ base += face->type1.private_dict.lenIV;
+ count -= face->type1.private_dict.lenIV;
error = T1_Add_Table( &parser->table, index, base, count );
}
@@ -806,8 +806,8 @@
t1_decrypt( base, count, 4330 );
tokzer->cursor += count; /* skip */
- base += face->type1.lenIV;
- count -= face->type1.lenIV;
+ base += face->type1.private_dict.lenIV;
+ count -= face->type1.private_dict.lenIV;
error = T1_Add_Table( &parser->table, index*2+1, base, count );
}
--- a/src/type1/t1objs.c
+++ b/src/type1/t1objs.c
@@ -243,7 +243,7 @@
root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
- if ( type1->is_fixed_pitch )
+ if ( type1->font_info.is_fixed_pitch )
root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
/* XXX : TO DO - add kerning with .afm support */
@@ -250,10 +250,10 @@
/* get style name - be careful, some broken fonts only */
/* have a /FontName dictionary entry .. !! */
- root->family_name = type1->family_name;
+ root->family_name = type1->font_info.family_name;
if (root->family_name)
{
- char* full = type1->full_name;
+ char* full = type1->font_info.full_name;
char* family = root->family_name;
while ( *family && *full == *family )
@@ -286,10 +286,10 @@
/* now compute the maximum advance width */
- root->max_advance_width = type1->standard_width;
+ root->max_advance_width = type1->private_dict.standard_width;
/* compute max advance width for proportional fonts */
- if (!type1->is_fixed_pitch)
+ if (!type1->font_info.is_fixed_pitch)
{
T1_Int max_advance;
@@ -304,8 +304,8 @@
root->max_advance_height = root->height;
- root->underline_position = type1->underline_position;
- root->underline_thickness = type1->underline_thickness;
+ root->underline_position = type1->font_info.underline_position;
+ root->underline_thickness = type1->font_info.underline_thickness;
root->max_points = 0;
root->max_contours = 0;
--- a/src/type1z/t1load.c
+++ b/src/type1z/t1load.c
@@ -437,8 +437,8 @@
if (!read_binary_data(parser,&size,&base)) return;
T1_Decrypt( base, size, 4330 );
- size -= face->type1.lenIV;
- base += face->type1.lenIV;
+ size -= face->type1.private_dict.lenIV;
+ base += face->type1.private_dict.lenIV;
error = T1_Add_Table( table, index, base, size );
if (error) goto Fail;
@@ -521,8 +521,8 @@
if (!read_binary_data(parser,&size,&base)) return;
T1_Decrypt( base, size, 4330 );
- size -= face->type1.lenIV;
- base += face->type1.lenIV;
+ size -= face->type1.private_dict.lenIV;
+ base += face->type1.private_dict.lenIV;
error = T1_Add_Table( code_table, n, base, size );
if (error) goto Fail;
@@ -688,7 +688,7 @@
t1_init_loader( &loader, face );
/* default lenIV */
- type1->lenIV = 4;
+ type1->private_dict.lenIV = 4;
parser = &loader.parser;
error = T1_New_Parser( parser, face->root.stream, face->root.memory );
--- a/src/type1z/t1objs.c
+++ b/src/type1z/t1objs.c
@@ -215,7 +215,7 @@
root->face_flags |= FT_FACE_FLAG_HORIZONTAL;
- if ( face->type1.is_fixed_pitch )
+ if ( face->type1.font_info.is_fixed_pitch )
root->face_flags |= FT_FACE_FLAG_FIXED_WIDTH;
/* XXX : TO DO - add kerning with .afm support */
@@ -222,10 +222,10 @@
/* get style name - be careful, some broken fonts only */
/* have a /FontName dictionary entry .. !! */
- root->family_name = face->type1.family_name;
+ root->family_name = face->type1.font_info.family_name;
if (root->family_name)
{
- char* full = face->type1.full_name;
+ char* full = face->type1.font_info.full_name;
char* family = root->family_name;
while ( *family && *full == *family )
@@ -258,10 +258,10 @@
/* now compute the maximum advance width */
- root->max_advance_width = face->type1.standard_width;
+ root->max_advance_width = face->type1.private_dict.standard_width;
/* compute max advance width for proportional fonts */
- if (!face->type1.is_fixed_pitch)
+ if (!face->type1.font_info.is_fixed_pitch)
{
T1_Int max_advance;
@@ -276,8 +276,8 @@
root->max_advance_height = root->height;
- root->underline_position = face->type1.underline_position;
- root->underline_thickness = face->type1.underline_thickness;
+ root->underline_position = face->type1.font_info.underline_position;
+ root->underline_thickness = face->type1.font_info.underline_thickness;
root->max_points = 0;
root->max_contours = 0;
--- a/src/type1z/t1tokens.h
+++ b/src/type1z/t1tokens.h
@@ -17,11 +17,10 @@
*
******************************************************************/
+ /* define the font info dictionary parsing callbacks */
#undef FACE
-#define FACE (face->type1)
+#define FACE (face->type1.font_info)
- /* define the font info dictionary parsing callbacks */
-
PARSE_STRING("version",version)
PARSE_STRING("Notice",notice)
PARSE_STRING("FullName",full_name)
@@ -35,6 +34,9 @@
/* define the private dict parsing callbacks */
+#undef FACE
+#define FACE (face->type1.private_dict)
+
PARSE_INT("UniqueID",unique_id)
PARSE_INT("lenIV",lenIV)
@@ -60,6 +62,10 @@
PARSE_COORDS2( "MinFeature", 2, min_feature )
/* define the top-level dictionary parsing callbacks */
+
+#undef FACE
+#define FACE (face->type1)
+
/* PARSE_STRING( "FontName", font_name ) -- handled by special routine */
PARSE_NUM( "PaintType", paint_type, T1_Byte )