20#include FT_INTERNAL_DEBUG_H
21#include FT_INTERNAL_OBJECTS_H
22#include FT_INTERNAL_STREAM_H
23#include FT_TRUETYPE_TAGS_H
24#include FT_TYPE1_TABLES_H
25#include FT_INTERNAL_POSTSCRIPT_AUX_H
27#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
28#include FT_MULTIPLE_MASTERS_H
29#include FT_SERVICE_MULTIPLE_MASTERS_H
38#define FT_FIXED_ONE ( (FT_Fixed)0x10000 )
45 0, 1, 2, 3, 4, 5, 6, 7,
46 8, 9, 10, 11, 12, 13, 14, 15,
47 16, 17, 18, 19, 20, 21, 22, 23,
48 24, 25, 26, 27, 28, 29, 30, 31,
49 32, 33, 34, 35, 36, 37, 38, 39,
50 40, 41, 42, 43, 44, 45, 46, 47,
51 48, 49, 50, 51, 52, 53, 54, 55,
52 56, 57, 58, 59, 60, 61, 62, 63,
53 64, 65, 66, 67, 68, 69, 70, 71,
54 72, 73, 74, 75, 76, 77, 78, 79,
55 80, 81, 82, 83, 84, 85, 86, 87,
56 88, 89, 90, 91, 92, 93, 94, 95,
57 96, 97, 98, 99, 100, 101, 102, 103,
58 104, 105, 106, 107, 108, 109, 110, 111,
59 112, 113, 114, 115, 116, 117, 118, 119,
60 120, 121, 122, 123, 124, 125, 126, 127,
61 128, 129, 130, 131, 132, 133, 134, 135,
62 136, 137, 138, 139, 140, 141, 142, 143,
63 144, 145, 146, 147, 148, 149, 150, 151,
64 152, 153, 154, 155, 156, 157, 158, 159,
65 160, 161, 162, 163, 164, 165, 166, 167,
66 168, 169, 170, 171, 172, 173, 174, 175,
67 176, 177, 178, 179, 180, 181, 182, 183,
68 184, 185, 186, 187, 188, 189, 190, 191,
69 192, 193, 194, 195, 196, 197, 198, 199,
70 200, 201, 202, 203, 204, 205, 206, 207,
71 208, 209, 210, 211, 212, 213, 214, 215,
72 216, 217, 218, 219, 220, 221, 222, 223,
73 224, 225, 226, 227, 228
78 0, 1, 229, 230, 231, 232, 233, 234,
79 235, 236, 237, 238, 13, 14, 15, 99,
80 239, 240, 241, 242, 243, 244, 245, 246,
81 247, 248, 27, 28, 249, 250, 251, 252,
82 253, 254, 255, 256, 257, 258, 259, 260,
83 261, 262, 263, 264, 265, 266, 109, 110,
84 267, 268, 269, 270, 271, 272, 273, 274,
85 275, 276, 277, 278, 279, 280, 281, 282,
86 283, 284, 285, 286, 287, 288, 289, 290,
87 291, 292, 293, 294, 295, 296, 297, 298,
88 299, 300, 301, 302, 303, 304, 305, 306,
89 307, 308, 309, 310, 311, 312, 313, 314,
90 315, 316, 317, 318, 158, 155, 163, 319,
91 320, 321, 322, 323, 324, 325, 326, 150,
92 164, 169, 327, 328, 329, 330, 331, 332,
93 333, 334, 335, 336, 337, 338, 339, 340,
94 341, 342, 343, 344, 345, 346, 347, 348,
95 349, 350, 351, 352, 353, 354, 355, 356,
96 357, 358, 359, 360, 361, 362, 363, 364,
97 365, 366, 367, 368, 369, 370, 371, 372,
98 373, 374, 375, 376, 377, 378
103 0, 1, 231, 232, 235, 236, 237, 238,
104 13, 14, 15, 99, 239, 240, 241, 242,
105 243, 244, 245, 246, 247, 248, 27, 28,
106 249, 250, 251, 253, 254, 255, 256, 257,
107 258, 259, 260, 261, 262, 263, 264, 265,
108 266, 109, 110, 267, 268, 269, 270, 272,
109 300, 301, 302, 305, 314, 315, 158, 155,
110 163, 320, 321, 322, 323, 324, 325, 326,
111 150, 164, 169, 327, 328, 329, 330, 331,
112 332, 333, 334, 335, 336, 337, 338, 339,
113 340, 341, 342, 343, 344, 345, 346
118 0, 0, 0, 0, 0, 0, 0, 0,
119 0, 0, 0, 0, 0, 0, 0, 0,
120 0, 0, 0, 0, 0, 0, 0, 0,
121 0, 0, 0, 0, 0, 0, 0, 0,
122 1, 2, 3, 4, 5, 6, 7, 8,
123 9, 10, 11, 12, 13, 14, 15, 16,
124 17, 18, 19, 20, 21, 22, 23, 24,
125 25, 26, 27, 28, 29, 30, 31, 32,
126 33, 34, 35, 36, 37, 38, 39, 40,
127 41, 42, 43, 44, 45, 46, 47, 48,
128 49, 50, 51, 52, 53, 54, 55, 56,
129 57, 58, 59, 60, 61, 62, 63, 64,
130 65, 66, 67, 68, 69, 70, 71, 72,
131 73, 74, 75, 76, 77, 78, 79, 80,
132 81, 82, 83, 84, 85, 86, 87, 88,
133 89, 90, 91, 92, 93, 94, 95, 0,
134 0, 0, 0, 0, 0, 0, 0, 0,
135 0, 0, 0, 0, 0, 0, 0, 0,
136 0, 0, 0, 0, 0, 0, 0, 0,
137 0, 0, 0, 0, 0, 0, 0, 0,
138 0, 96, 97, 98, 99, 100, 101, 102,
139 103, 104, 105, 106, 107, 108, 109, 110,
140 0, 111, 112, 113, 114, 0, 115, 116,
141 117, 118, 119, 120, 121, 122, 0, 123,
142 0, 124, 125, 126, 127, 128, 129, 130,
143 131, 0, 132, 133, 0, 134, 135, 136,
144 137, 0, 0, 0, 0, 0, 0, 0,
145 0, 0, 0, 0, 0, 0, 0, 0,
146 0, 138, 0, 139, 0, 0, 0, 0,
147 140, 141, 142, 143, 0, 0, 0, 0,
148 0, 144, 0, 0, 0, 145, 0, 0,
149 146, 147, 148, 149, 0, 0, 0, 0
154 0, 0, 0, 0, 0, 0, 0, 0,
155 0, 0, 0, 0, 0, 0, 0, 0,
156 0, 0, 0, 0, 0, 0, 0, 0,
157 0, 0, 0, 0, 0, 0, 0, 0,
158 1, 229, 230, 0, 231, 232, 233, 234,
159 235, 236, 237, 238, 13, 14, 15, 99,
160 239, 240, 241, 242, 243, 244, 245, 246,
161 247, 248, 27, 28, 249, 250, 251, 252,
162 0, 253, 254, 255, 256, 257, 0, 0,
163 0, 258, 0, 0, 259, 260, 261, 262,
164 0, 0, 263, 264, 265, 0, 266, 109,
165 110, 267, 268, 269, 0, 270, 271, 272,
166 273, 274, 275, 276, 277, 278, 279, 280,
167 281, 282, 283, 284, 285, 286, 287, 288,
168 289, 290, 291, 292, 293, 294, 295, 296,
169 297, 298, 299, 300, 301, 302, 303, 0,
170 0, 0, 0, 0, 0, 0, 0, 0,
171 0, 0, 0, 0, 0, 0, 0, 0,
172 0, 0, 0, 0, 0, 0, 0, 0,
173 0, 0, 0, 0, 0, 0, 0, 0,
174 0, 304, 305, 306, 0, 0, 307, 308,
175 309, 310, 311, 0, 312, 0, 0, 312,
176 0, 0, 314, 315, 0, 0, 316, 317,
177 318, 0, 0, 0, 158, 155, 163, 319,
178 320, 321, 322, 323, 324, 325, 0, 0,
179 326, 150, 164, 169, 327, 328, 329, 330,
180 331, 332, 333, 334, 335, 336, 337, 338,
181 339, 340, 341, 342, 343, 344, 345, 346,
182 347, 348, 349, 350, 351, 352, 353, 354,
183 355, 356, 357, 358, 359, 360, 361, 362,
184 363, 364, 365, 366, 367, 368, 369, 370,
185 371, 372, 373, 374, 375, 376, 377, 378
206#define FT_COMPONENT trace_cffload
225 for ( nn = 0; nn <
idx->off_size; nn++ )
274 if ( offsize < 1 || offsize > 4 )
281 idx->off_size = offsize;
349 if (
idx->count > 0 && !
idx->offsets )
358 data_size = (
FT_ULong)(
idx->count + 1 ) * offsize;
367 p_end =
p + data_size;
372 for ( ;
p < p_end;
p++, poff++ )
377 for ( ;
p < p_end;
p += 2, poff++ )
382 for ( ;
p < p_end;
p += 3, poff++ )
387 for ( ;
p < p_end;
p += 4, poff++ )
428 new_size =
idx->data_size +
idx->count;
430 if (
idx->count > 0 &&
440 cur_offset =
idx->offsets[0] - 1;
443 if ( cur_offset != 0 )
446 " invalid first offset value %d set to zero\n",
452 t[0] = org_bytes + cur_offset;
454 t[0] = new_bytes + cur_offset;
456 for (
n = 1;
n <=
idx->count;
n++ )
462 if ( next_offset < cur_offset )
463 next_offset = cur_offset;
464 else if ( next_offset >
idx->data_size )
465 next_offset =
idx->data_size;
468 t[
n] = org_bytes + next_offset;
471 t[
n] = new_bytes + next_offset +
extra;
473 if ( next_offset != cur_offset )
482 cur_offset = next_offset;
489 *pool_size = new_size;
533 }
while ( off2 == 0 && element < idx->
count );
546 }
while ( off2 == 0 && element < idx->
count );
555 FT_ERROR((
"cff_index_access_element:"
556 " offset to next entry (%d)"
557 " exceeds the end of stream (%d)\n",
563 if ( off1 && off2 > off1 )
565 *pbyte_len = off2 - off1;
570 *pbytes =
idx->bytes + off1 - 1;
599 if (
idx->bytes == 0 )
649 return ( element < font->num_strings )
660 if (
sid == 0xFFFFU )
668 if ( !
font->psnames )
689 if ( fdselect->
data )
728 FT_TRACE0((
"CFF_Load_FD_Select: empty FDSelect array\n" ));
733 fdselect->
data_size = num_ranges * 3 + 2;
758 if ( !fdselect->data )
761 switch ( fdselect->format )
764 fd = fdselect->data[glyph_index];
769 if ( (
FT_UInt)( glyph_index - fdselect->cache_first ) <
770 fdselect->cache_count )
772 fd = fdselect->cache_fd;
779 FT_Byte* p_limit =
p + fdselect->data_size;
787 if ( glyph_index <
first )
793 if ( glyph_index <
limit )
798 fdselect->cache_first =
first;
800 fdselect->cache_fd = fd2;
805 }
while (
p < p_limit );
840 for (
i = 0;
i < num_glyphs;
i++ )
852 for (
j = (
FT_Long)num_glyphs - 1;
j >= 0;
j-- )
870 if ( cid <= charset->max_cid )
938 if ( num_glyphs > 0 )
943 for (
j = 1;
j < num_glyphs;
j++ )
959 while (
j < num_glyphs )
978 if ( glyph_sid > 0xFFFFL - nleft )
980 FT_ERROR((
"cff_charset_load: invalid SID range trimmed"
981 " nleft=%d -> %d\n", nleft, 0xFFFFL - glyph_sid ));
982 nleft = (
FT_UInt )( 0xFFFFL - glyph_sid );
986 for (
i = 0;
j < num_glyphs &&
i <= nleft;
i++,
j++, glyph_sid++ )
993 FT_ERROR((
"cff_charset_load: invalid table format\n" ));
1013 if ( num_glyphs > 229 )
1015 FT_ERROR((
"cff_charset_load: implicit charset larger than\n"
1016 "predefined charset (Adobe ISO-Latin)\n" ));
1031 if ( num_glyphs > 166 )
1033 FT_ERROR((
"cff_charset_load: implicit charset larger than\n"
1034 "predefined charset (Adobe Expert)\n" ));
1049 if ( num_glyphs > 87 )
1051 FT_ERROR((
"cff_charset_load: implicit charset larger than\n"
1052 "predefined charset (Adobe Expert Subset)\n" ));
1117 #define FT_fdot14ToFixed( x ) ( (FT_Fixed)( (FT_ULong)(x) << 2 ) )
1236 for (
j = 0;
j <
data->regionIdxCount;
j++ )
1264 subFont->blend_top = subFont->blend_stack;
1265 subFont->blend_used = 0;
1299 if ( numOperands >
count )
1301 FT_TRACE4((
" cff_blend_doBlend: Stack underflow %d argument%s\n",
1303 count == 1 ?
"" :
"s" ));
1310 size = 5 * numBlends;
1311 if ( subFont->blend_used +
size > subFont->blend_alloc )
1313 FT_Byte* blend_stack_old = subFont->blend_stack;
1314 FT_Byte* blend_top_old = subFont->blend_top;
1320 subFont->blend_alloc,
1321 subFont->blend_alloc +
size ) )
1324 subFont->blend_top = subFont->blend_stack + subFont->blend_used;
1325 subFont->blend_alloc +=
size;
1329 if ( blend_stack_old &&
1330 subFont->blend_stack != blend_stack_old )
1338 if ( *
p >= blend_stack_old && *
p < blend_top_old )
1343 subFont->blend_used +=
size;
1346 delta =
base + numBlends;
1348 for (
i = 0;
i < numBlends;
i++ )
1350 const FT_Int32*
weight = &blend->
BV[1];
1357 for (
j = 1;
j < blend->
lenBV;
j++ )
1367 *subFont->blend_top++ = 255;
1368 *subFont->blend_top++ = (
FT_Byte)(
sum >> 24 );
1369 *subFont->blend_top++ = (
FT_Byte)(
sum >> 16 );
1370 *subFont->blend_top++ = (
FT_Byte)(
sum >> 8 );
1403 blend->builtBV =
FALSE;
1405 vs = &blend->font->vstore;
1408 if ( lenNDV != 0 && lenNDV !=
vs->axisCount )
1410 FT_TRACE4((
" cff_blend_build_vector: Axis count mismatch\n" ));
1415 if ( vsindex >=
vs->dataCount )
1417 FT_TRACE4((
" cff_blend_build_vector: vsindex out of range\n" ));
1423 varData = &
vs->varData[vsindex];
1428 blend->lenBV *
sizeof( *blend->BV ),
1429 len *
sizeof( *blend->BV ) ) )
1435 for ( master = 0; master <
len; master++ )
1446 FT_TRACE4((
" build blend vector len %d\n"
1449 blend->BV[master] / 65536.0 ));
1455 varRegion = &
vs->varRegionList[
idx];
1457 if (
idx >=
vs->regionCount )
1460 " region index out of range\n" ));
1469 blend->BV[master] = 0;
1478 for (
j = 0;
j < lenNDV;
j++ )
1518 blend->BV[master] =
FT_MulFix( blend->BV[master], axisScalar );
1522 blend->BV[master] / 65536.0 ));
1528 blend->lastVsindex = vsindex;
1534 blend->lenNDV *
sizeof ( *NDV ),
1535 lenNDV *
sizeof ( *NDV ) ) )
1540 lenNDV *
sizeof ( *NDV ) );
1543 blend->lenNDV = lenNDV;
1544 blend->builtBV =
TRUE;
1559 if ( !blend->builtBV ||
1560 blend->lastVsindex != vsindex ||
1561 blend->lenNDV != lenNDV ||
1565 lenNDV *
sizeof ( *NDV ) ) != 0 ) )
1575#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
1584 FT_Service_MultiMasters mm = (FT_Service_MultiMasters)
face->mm;
1598 FT_Service_MultiMasters mm = (FT_Service_MultiMasters)
face->mm;
1640 for (
j = 0;
j < 256;
j++ )
1691 if (
j < num_glyphs )
1715 for (
j = 0;
j <
count;
j++,
i += nleft )
1733 for (
k =
i;
k < nleft +
i;
k++, glyph_code++ )
1736 if (
k < num_glyphs && glyph_code < 256 )
1754 FT_ERROR((
"cff_encoding_load: invalid table format\n" ));
1780 encoding->sids[glyph_code] = glyph_sid;
1784 for ( gindex = 0; gindex < num_glyphs; gindex++ )
1824 for (
j = 0;
j < 256;
j++ )
1847 FT_ERROR((
"cff_encoding_load: invalid table format\n" ));
1880 subfont->blend.font =
font;
1881 subfont->blend.usedBV =
FALSE;
1883 if ( !
top->private_offset || !
top->private_size )
1897 subfont->
lenNDV = lenNDV;
1901 stackSize =
font->cff2 ?
font->top_font.font_dict.maxstack + 1
1917 FT_TRACE4((
" private dictionary:\n" ));
1993 top->underline_position = -( 100L << 16 );
1994 top->underline_thickness = 50L << 16;
1995 top->charstring_type = 2;
1996 top->font_matrix.xx = 0x10000L;
1997 top->font_matrix.yy = 0x10000L;
1998 top->cid_count = 8720;
2002 top->version = 0xFFFFU;
2003 top->notice = 0xFFFFU;
2004 top->copyright = 0xFFFFU;
2005 top->full_name = 0xFFFFU;
2006 top->family_name = 0xFFFFU;
2007 top->weight = 0xFFFFU;
2008 top->embedded_postscript = 0xFFFFU;
2010 top->cid_registry = 0xFFFFU;
2011 top->cid_ordering = 0xFFFFU;
2012 top->cid_font_name = 0xFFFFU;
2029 dict_len =
idx->data_size;
2048 if (
top->cid_registry != 0xFFFFU )
2075 if (
face->root.internal->random_seed == -1 )
2088 }
while (
driver->random_seed < 0 );
2093 subfont->
random = (FT_UInt32)
face->root.internal->random_seed;
2094 if (
face->root.internal->random_seed )
2098 face->root.internal->random_seed =
2100 (FT_UInt32)
face->root.internal->random_seed );
2102 }
while (
face->root.internal->random_seed < 0 );
2162#define FT_STRUCTURE CFF_FontRec
2182 dict = &
font->top_font.font_dict;
2189 font->base_offset = base_offset;
2197 if (
font->version_major != 2 ||
2198 font->header_size < 5 )
2200 FT_TRACE2((
" not a CFF2 font header\n" ));
2216 if (
font->version_major != 1 ||
2217 font->header_size < 4 ||
2218 absolute_offset > 4 )
2220 FT_TRACE2((
" not a CFF font header\n" ));
2251 font->font_dict_index.data_size =
font->top_dict_length;
2278 if (
font->name_index.count > 1 &&
2279 font->name_index.data_size <
font->name_index.count )
2297 &
font->string_pool_size ) ) )
2301 if (
font->name_index.count >
font->font_dict_index.count )
2304 " not enough entries in Top DICT index\n" ));
2315 subfont_index = (
FT_UInt)( face_index & 0xFFFF );
2317 if ( face_index > 0 && subfont_index >=
font->name_index.count )
2320 " invalid subfont index for pure CFF font (%d)\n",
2326 font->num_faces =
font->name_index.count;
2332 if (
font->name_index.count > 1 )
2335 " invalid CFF font with multiple subfonts\n"
2337 " in SFNT wrapper\n" ));
2344 if ( face_index < 0 )
2350 &
font->font_dict_index,
2398 FT_TRACE0((
"cff_font_load: FD array too large in CID font\n" ));
2403 font->num_subfonts = fd_index.count;
2408 for (
idx = 0;
idx < fd_index.count;
idx++ )
2431 if ( !cff2 || fd_index.count > 1 )
2433 font->charstrings_index.count,
2444 font->num_subfonts = 0;
2449 FT_ERROR((
"cff_font_load: no charstrings offset\n" ));
2454 font->num_glyphs =
font->charstrings_index.count;
2463 if ( !cff2 &&
font->num_glyphs > 0 )
2512 if (
font->num_subfonts > 0 )
2536 if (
font->cf2_instance.finalizer )
2538 font->cf2_instance.finalizer(
font->cf2_instance.data );
static unsigned char bytes[4]
static FT_ULong cff_index_read_offset(CFF_Index idx, FT_Error *errorp)
static FT_Error cff_index_load_offsets(CFF_Index idx)
static FT_Error cff_charset_load(CFF_Charset charset, FT_UInt num_glyphs, FT_Stream stream, FT_ULong base_offset, FT_ULong offset, FT_Bool invert)
cff_get_standard_encoding(FT_UInt charcode)
static void cff_subfont_done(FT_Memory memory, CFF_SubFont subfont)
cff_blend_clear(CFF_SubFont subFont)
cff_blend_build_vector(CFF_Blend blend, FT_UInt vsindex, FT_UInt lenNDV, FT_Fixed *NDV)
static void cff_charset_free_cids(CFF_Charset charset, FT_Memory memory)
static FT_Error cff_encoding_load(CFF_Encoding encoding, CFF_Charset charset, FT_UInt num_glyphs, FT_Stream stream, FT_ULong base_offset, FT_ULong offset)
cff_charset_cid_to_gindex(CFF_Charset charset, FT_UInt cid)
cff_index_forget_element(CFF_Index idx, FT_Byte **pbytes)
static void cff_index_done(CFF_Index idx)
cff_font_done(CFF_Font font)
static const FT_UShort cff_expertsubset_charset[87]
static const FT_UShort cff_expert_encoding[256]
#define FT_fdot14ToFixed(x)
static void CFF_Done_FD_Select(CFF_FDSelect fdselect, FT_Stream stream)
static FT_Error cff_subfont_load(CFF_SubFont subfont, CFF_Index idx, FT_UInt font_index, FT_Stream stream, FT_ULong base_offset, FT_UInt code, CFF_Font font, CFF_Face face)
cff_fd_select_get(CFF_FDSelect fdselect, FT_UInt glyph_index)
static FT_Error cff_charset_compute_cids(CFF_Charset charset, FT_UInt num_glyphs, FT_Memory memory)
static const FT_UShort cff_expert_charset[166]
cff_blend_doBlend(CFF_SubFont subFont, CFF_Parser parser, FT_UInt numBlends)
static void cff_vstore_done(CFF_VStoreRec *vstore, FT_Memory memory)
static FT_Error cff_index_init(CFF_Index idx, FT_Stream stream, FT_Bool load, FT_Bool cff2)
static const FT_UShort cff_standard_encoding[256]
cff_index_access_element(CFF_Index idx, FT_UInt element, FT_Byte **pbytes, FT_ULong *pbyte_len)
cff_index_get_string(CFF_Font font, FT_UInt element)
cff_font_load(FT_Library library, FT_Stream stream, FT_Int face_index, CFF_Font font, CFF_Face face, FT_Bool pure_cff, FT_Bool cff2)
cff_load_private_dict(CFF_Font font, CFF_SubFont subfont, FT_UInt lenNDV, FT_Fixed *NDV)
cff_index_get_sid_string(CFF_Font font, FT_UInt sid)
static void cff_encoding_done(CFF_Encoding encoding)
cff_blend_check_vector(CFF_Blend blend, FT_UInt vsindex, FT_UInt lenNDV, FT_Fixed *NDV)
static const FT_UShort cff_isoadobe_charset[229]
static FT_Error CFF_Load_FD_Select(CFF_FDSelect fdselect, FT_UInt num_glyphs, FT_Stream stream, FT_ULong offset)
static FT_Error cff_vstore_load(CFF_VStoreRec *vstore, FT_Stream stream, FT_ULong base_offset, FT_ULong offset)
static void cff_charset_done(CFF_Charset charset, FT_Stream stream)
cff_index_get_name(CFF_Font font, FT_UInt element)
static FT_Error cff_index_get_pointers(CFF_Index idx, FT_Byte ***table, FT_Byte **pool, FT_ULong *pool_size)
FT_BEGIN_HEADER typedef TT_Face CFF_Face
cff_parser_init(CFF_Parser parser, FT_UInt code, void *object, FT_Library library, FT_UInt stackSize, FT_UShort num_designs, FT_UShort num_axes)
cff_parse_num(CFF_Parser parser, FT_Byte **d)
cff_parser_done(CFF_Parser parser)
cff_parser_run(CFF_Parser parser, FT_Byte *start, FT_Byte *limit)
#define CFF2_DEFAULT_STACK
#define CFF2_CODE_PRIVATE
#define CFF2_CODE_FONTDICT
#define CFF_MAX_STACK_DEPTH
#define CFF2_CODE_TOPDICT
FT_BEGIN_HEADER struct CFF_IndexRec_ * CFF_Index
FT_BEGIN_HEADER struct CFF_IndexRec_ CFF_IndexRec
#define CFF_MAX_CID_FONTS
FT_DivFix(FT_Long a, FT_Long b)
FT_MulFix(FT_Long a, FT_Long b)
#define FT_ASSERT(condition)
#define FT_TRACE0(varformat)
#define FT_ERROR(varformat)
#define FT_TRACE2(varformat)
#define FT_TRACE4(varformat)
#define FT_REALLOC(ptr, cursz, newsz)
#define FT_NEW_ARRAY(ptr, count)
#define FT_SET_ERROR(expression)
#define FT_ALLOC(ptr, size)
#define FT_ARRAY_COPY(dest, source, count)
#define FT_MEM_COPY(dest, source, count)
#define FT_FACE_DRIVER(x)
#define FT_FRAME_ENTER(size)
#define FT_READ_USHORT(var)
#define FT_FRAME_RELEASE(bytes)
#define FT_STREAM_SEEK(position)
#define FT_READ_ULONG(var)
#define FT_NEXT_USHORT(buffer)
#define FT_PEEK_USHORT(p)
#define FT_READ_BYTE(var)
#define FT_FRAME_EXTRACT(size, bytes)
#define FT_STREAM_READ_FIELDS(fields, object)
#define FT_STREAM_SKIP(distance)
#define FT_STREAM_READ(buffer, count)
#define FT_FRAME_START(size)
#define FT_READ_SHORT(var)
typedefFT_BEGIN_HEADER struct FT_MemoryRec_ * FT_Memory
FT_BEGIN_HEADER typedef unsigned char FT_Bool
GLuint GLuint GLsizei count
GLint GLenum GLsizei GLsizei GLsizei GLint GLsizei const GLvoid * data
GLdouble GLdouble GLdouble GLdouble top
GLenum GLuint GLint GLenum face
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static char memory[1024 *256]
struct @1678::@1679 driver
FT_BEGIN_HEADER struct PS_DriverRec_ * PS_Driver
struct PSAux_ServiceRec_ * PSAux_Service
static int sum(int x_, int y_)
FT_ULong cid_fd_array_offset
FT_ULong cid_fd_select_offset
FT_ULong charstrings_offset
FT_Long initial_random_seed
FT_Fixed expansion_factor
FT_ULong local_subrs_offset
CFF_IndexRec local_subrs_index
CFF_PrivateRec private_dict
CFF_FontRecDictRec font_dict
CFF_VarRegion * varRegionList
CFF_AxisCoords * axisList
FT_UInt32(* cff_random)(FT_UInt32 r)
enum parser_state stack[4]
ActualNumberDriverObjects * sizeof(PDRIVER_OBJECT)) PDRIVER_OBJECT *DriverObjectList