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 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++ )
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;
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 );
1402 if ( !( lenNDV == 0 || NDV ) )
1405 " Malformed Normalize Design Vector data\n" ));
1410 blend->builtBV =
FALSE;
1412 vs = &blend->font->vstore;
1415 if ( lenNDV != 0 && lenNDV !=
vs->axisCount )
1417 FT_TRACE4((
" cff_blend_build_vector: Axis count mismatch\n" ));
1422 if ( vsindex >=
vs->dataCount )
1424 FT_TRACE4((
" cff_blend_build_vector: vsindex out of range\n" ));
1430 varData = &
vs->varData[vsindex];
1435 blend->lenBV *
sizeof( *blend->BV ),
1436 len *
sizeof( *blend->BV ) ) )
1442 for ( master = 0; master <
len; master++ )
1453 FT_TRACE4((
" build blend vector len %d\n"
1456 blend->BV[master] / 65536.0 ));
1462 varRegion = &
vs->varRegionList[
idx];
1464 if (
idx >=
vs->regionCount )
1467 " region index out of range\n" ));
1476 blend->BV[master] = 0;
1485 for (
j = 0;
j < lenNDV;
j++ )
1525 blend->BV[master] =
FT_MulFix( blend->BV[master], axisScalar );
1529 blend->BV[master] / 65536.0 ));
1535 blend->lastVsindex = vsindex;
1541 blend->lenNDV *
sizeof ( *NDV ),
1542 lenNDV *
sizeof ( *NDV ) ) )
1547 lenNDV *
sizeof ( *NDV ) );
1550 blend->lenNDV = lenNDV;
1551 blend->builtBV =
TRUE;
1566 if ( !blend->builtBV ||
1567 blend->lastVsindex != vsindex ||
1568 blend->lenNDV != lenNDV ||
1572 lenNDV *
sizeof ( *NDV ) ) != 0 ) )
1582#ifdef TT_CONFIG_OPTION_GX_VAR_SUPPORT
1591 FT_Service_MultiMasters mm = (FT_Service_MultiMasters)
face->mm;
1605 FT_Service_MultiMasters mm = (FT_Service_MultiMasters)
face->mm;
1647 for (
j = 0;
j < 256;
j++ )
1698 if (
j < num_glyphs )
1722 for (
j = 0;
j <
count;
j++,
i += nleft )
1740 for (
k =
i;
k < nleft +
i;
k++, glyph_code++ )
1743 if (
k < num_glyphs && glyph_code < 256 )
1761 FT_ERROR((
"cff_encoding_load: invalid table format\n" ));
1787 encoding->sids[glyph_code] = glyph_sid;
1791 for ( gindex = 0; gindex < num_glyphs; gindex++ )
1831 for (
j = 0;
j < 256;
j++ )
1854 FT_ERROR((
"cff_encoding_load: invalid table format\n" ));
1887 subfont->blend.font =
font;
1888 subfont->blend.usedBV =
FALSE;
1890 if ( !
top->private_offset || !
top->private_size )
1904 subfont->
lenNDV = lenNDV;
1908 stackSize =
font->cff2 ?
font->top_font.font_dict.maxstack + 1
1924 FT_TRACE4((
" private dictionary:\n" ));
1948 " setting unlikely BlueShift value %d to default (7)\n",
1956 " setting unlikely BlueFuzz value %d to default (1)\n",
2018 top->underline_position = -( 100L << 16 );
2019 top->underline_thickness = 50L << 16;
2020 top->charstring_type = 2;
2021 top->font_matrix.xx = 0x10000L;
2022 top->font_matrix.yy = 0x10000L;
2023 top->cid_count = 8720;
2027 top->version = 0xFFFFU;
2028 top->notice = 0xFFFFU;
2029 top->copyright = 0xFFFFU;
2030 top->full_name = 0xFFFFU;
2031 top->family_name = 0xFFFFU;
2032 top->weight = 0xFFFFU;
2033 top->embedded_postscript = 0xFFFFU;
2035 top->cid_registry = 0xFFFFU;
2036 top->cid_ordering = 0xFFFFU;
2037 top->cid_font_name = 0xFFFFU;
2054 dict_len =
idx->data_size;
2073 if (
top->cid_registry != 0xFFFFU )
2100 if (
face->root.internal->random_seed == -1 )
2113 }
while (
driver->random_seed < 0 );
2118 subfont->
random = (FT_UInt32)
face->root.internal->random_seed;
2119 if (
face->root.internal->random_seed )
2123 face->root.internal->random_seed =
2125 (FT_UInt32)
face->root.internal->random_seed );
2127 }
while (
face->root.internal->random_seed < 0 );
2187#define FT_STRUCTURE CFF_FontRec
2207 dict = &
font->top_font.font_dict;
2214 font->base_offset = base_offset;
2222 if (
font->version_major != 2 ||
2223 font->header_size < 5 )
2225 FT_TRACE2((
" not a CFF2 font header\n" ));
2241 if (
font->version_major != 1 ||
2242 font->header_size < 4 ||
2243 absolute_offset > 4 )
2245 FT_TRACE2((
" not a CFF font header\n" ));
2276 font->font_dict_index.data_size =
font->top_dict_length;
2303 if (
font->name_index.count > 1 &&
2304 font->name_index.data_size <
font->name_index.count )
2322 &
font->string_pool_size ) ) )
2326 if (
font->name_index.count >
font->font_dict_index.count )
2329 " not enough entries in Top DICT index\n" ));
2340 subfont_index = (
FT_UInt)( face_index & 0xFFFF );
2342 if ( face_index > 0 && subfont_index >=
font->name_index.count )
2345 " invalid subfont index for pure CFF font (%d)\n",
2351 font->num_faces =
font->name_index.count;
2357 if (
font->name_index.count > 1 )
2360 " invalid CFF font with multiple subfonts\n"
2362 " in SFNT wrapper\n" ));
2369 if ( face_index < 0 )
2375 &
font->font_dict_index,
2423 FT_TRACE0((
"cff_font_load: FD array too large in CID font\n" ));
2428 font->num_subfonts = fd_index.count;
2433 for (
idx = 0;
idx < fd_index.count;
idx++ )
2456 if ( !cff2 || fd_index.count > 1 )
2458 font->charstrings_index.count,
2469 font->num_subfonts = 0;
2474 FT_ERROR((
"cff_font_load: no charstrings offset\n" ));
2479 font->num_glyphs =
font->charstrings_index.count;
2488 if ( !cff2 &&
font->num_glyphs > 0 )
2537 if (
font->num_subfonts > 0 )
2561 if (
font->cf2_instance.finalizer )
2563 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_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 @1709::@1710 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