1 /***************************************************************************/
2 /* */
3 /* cffload.h */
4 /* */
5 /* OpenType & CFF data/program tables loader (specification). */
6 /* */
7 /* Copyright 1996-2001 by */
8 /* David Turner, Robert Wilhelm, and Werner Lemberg. */
9 /* */
10 /* This file is part of the FreeType project, and may only be used, */
11 /* modified, and distributed under the terms of the FreeType project */
12 /* license, LICENSE.TXT. By continuing to use, modify, or distribute */
13 /* this file you indicate that you have read the license and */
14 /* understand and accept it fully. */
15 /* */
16 /***************************************************************************/
19 #ifndef __CFFLOAD_H__
20 #define __CFFLOAD_H__
23 #include <ft2build.h>
24 #include FT_INTERNAL_CFF_TYPES_H
25 #include FT_INTERNAL_POSTSCRIPT_NAMES_H
28 FT_BEGIN_HEADER
30 const FT_UShort cff_isoadobe_charset[229] =
31 {
32 0,
33 1,
34 2,
35 3,
36 4,
37 5,
38 6,
39 7,
40 8,
41 9,
42 10,
43 11,
44 12,
45 13,
46 14,
47 15,
48 16,
49 17,
50 18,
51 19,
52 20,
53 21,
54 22,
55 23,
56 24,
57 25,
58 26,
59 27,
60 28,
61 29,
62 30,
63 31,
64 32,
65 33,
66 34,
67 35,
68 36,
69 37,
70 38,
71 39,
72 40,
73 41,
74 42,
75 43,
76 44,
77 45,
78 46,
79 47,
80 48,
81 49,
82 50,
83 51,
84 52,
85 53,
86 54,
87 55,
88 56,
89 57,
90 58,
91 59,
92 60,
93 61,
94 62,
95 63,
96 64,
97 65,
98 66,
99 67,
100 68,
101 69,
102 70,
103 71,
104 72,
105 73,
106 74,
107 75,
108 76,
109 77,
110 78,
111 79,
112 80,
113 81,
114 82,
115 83,
116 84,
117 85,
118 86,
119 87,
120 88,
121 89,
122 90,
123 91,
124 92,
125 93,
126 94,
127 95,
128 96,
129 97,
130 98,
131 99,
132 100,
133 101,
134 102,
135 103,
136 104,
137 105,
138 106,
139 107,
140 108,
141 109,
142 110,
143 111,
144 112,
145 113,
146 114,
147 115,
148 116,
149 117,
150 118,
151 119,
152 120,
153 121,
154 122,
155 123,
156 124,
157 125,
158 126,
159 127,
160 128,
161 129,
162 130,
163 131,
164 132,
165 133,
166 134,
167 135,
168 136,
169 137,
170 138,
171 139,
172 140,
173 141,
174 142,
175 143,
176 144,
177 145,
178 146,
179 147,
180 148,
181 149,
182 150,
183 151,
184 152,
185 153,
186 154,
187 155,
188 156,
189 157,
190 158,
191 159,
192 160,
193 161,
194 162,
195 163,
196 164,
197 165,
198 166,
199 167,
200 168,
201 169,
202 170,
203 171,
204 172,
205 173,
206 174,
207 175,
208 176,
209 177,
210 178,
211 179,
212 180,
213 181,
214 182,
215 183,
216 184,
217 185,
218 186,
219 187,
220 188,
221 189,
222 190,
223 191,
224 192,
225 193,
226 194,
227 195,
228 196,
229 197,
230 198,
231 199,
232 200,
233 201,
234 202,
235 203,
236 204,
237 205,
238 206,
239 207,
240 208,
241 209,
242 210,
243 211,
244 212,
245 213,
246 214,
247 215,
248 216,
249 217,
250 218,
251 219,
252 220,
253 221,
254 222,
255 223,
256 224,
257 225,
258 226,
259 227,
260 228
261 };
263 const FT_UShort cff_expert_charset[166] =
264 {
265 0,
266 1,
267 229,
268 230,
269 231,
270 232,
271 233,
272 234,
273 235,
274 236,
275 237,
276 238,
277 13,
278 14,
279 15,
280 99,
281 239,
282 240,
283 241,
284 242,
285 243,
286 244,
287 245,
288 246,
289 247,
290 248,
291 27,
292 28,
293 249,
294 250,
295 251,
296 252,
297 253,
298 254,
299 255,
300 256,
301 257,
302 258,
303 259,
304 260,
305 261,
306 262,
307 263,
308 264,
309 265,
310 266,
311 109,
312 110,
313 267,
314 268,
315 269,
316 270,
317 271,
318 272,
319 273,
320 274,
321 275,
322 276,
323 277,
324 278,
325 279,
326 280,
327 281,
328 282,
329 283,
330 284,
331 285,
332 286,
333 287,
334 288,
335 289,
336 290,
337 291,
338 292,
339 293,
340 294,
341 295,
342 296,
343 297,
344 298,
345 299,
346 300,
347 301,
348 302,
349 303,
350 304,
351 305,
352 306,
353 307,
354 308,
355 309,
356 310,
357 311,
358 312,
359 313,
360 314,
361 315,
362 316,
363 317,
364 318,
365 158,
366 155,
367 163,
368 319,
369 320,
370 321,
371 322,
372 323,
373 324,
374 325,
375 326,
376 150,
377 164,
378 169,
379 327,
380 328,
381 329,
382 330,
383 331,
384 332,
385 333,
386 334,
387 335,
388 336,
389 337,
390 338,
391 339,
392 340,
393 341,
394 342,
395 343,
396 344,
397 345,
398 346,
399 347,
400 348,
401 349,
402 350,
403 351,
404 352,
405 353,
406 354,
407 355,
408 356,
409 357,
410 358,
411 359,
412 360,
413 361,
414 362,
415 363,
416 364,
417 365,
418 366,
419 367,
420 368,
421 369,
422 370,
423 371,
424 372,
425 373,
426 374,
427 375,
428 376,
429 377,
430 378
431 };
433 const FT_UShort cff_expertsubset_charset[87] =
434 {
435 0,
436 1,
437 231,
438 232,
439 235,
440 236,
441 237,
442 238,
443 13,
444 14,
445 15,
446 99,
447 239,
448 240,
449 241,
450 242,
451 243,
452 244,
453 245,
454 246,
455 247,
456 248,
457 27,
458 28,
459 249,
460 250,
461 251,
462 253,
463 254,
464 255,
465 256,
466 257,
467 258,
468 259,
469 260,
470 261,
471 262,
472 263,
473 264,
474 265,
475 266,
476 109,
477 110,
478 267,
479 268,
480 269,
481 270,
482 272,
483 300,
484 301,
485 302,
486 305,
487 314,
488 315,
489 158,
490 155,
491 163,
492 320,
493 321,
494 322,
495 323,
496 324,
497 325,
498 326,
499 150,
500 164,
501 169,
502 327,
503 328,
504 329,
505 330,
506 331,
507 332,
508 333,
509 334,
510 335,
511 336,
512 337,
513 338,
514 339,
515 340,
516 341,
517 342,
518 343,
519 344,
520 345,
521 346
522 };
524 const FT_UShort cff_standard_encoding[256] =
525 {
526 0,
527 0,
528 0,
529 0,
530 0,
531 0,
532 0,
533 0,
534 0,
535 0,
536 0,
537 0,
538 0,
539 0,
540 0,
541 0,
542 0,
543 0,
544 0,
545 0,
546 0,
547 0,
548 0,
549 0,
550 0,
551 0,
552 0,
553 0,
554 0,
555 0,
556 0,
557 0,
558 1,
559 2,
560 3,
561 4,
562 5,
563 6,
564 7,
565 8,
566 9,
567 10,
568 11,
569 12,
570 13,
571 14,
572 15,
573 16,
574 17,
575 18,
576 19,
577 20,
578 21,
579 22,
580 23,
581 24,
582 25,
583 26,
584 27,
585 28,
586 29,
587 30,
588 31,
589 32,
590 33,
591 34,
592 35,
593 36,
594 37,
595 38,
596 39,
597 40,
598 41,
599 42,
600 43,
601 44,
602 45,
603 46,
604 47,
605 48,
606 49,
607 50,
608 51,
609 52,
610 53,
611 54,
612 55,
613 56,
614 57,
615 58,
616 59,
617 60,
618 61,
619 62,
620 63,
621 64,
622 65,
623 66,
624 67,
625 68,
626 69,
627 70,
628 71,
629 72,
630 73,
631 74,
632 75,
633 76,
634 77,
635 78,
636 79,
637 80,
638 81,
639 82,
640 83,
641 84,
642 85,
643 86,
644 87,
645 88,
646 89,
647 90,
648 91,
649 92,
650 93,
651 94,
652 95,
653 0,
654 0,
655 0,
656 0,
657 0,
658 0,
659 0,
660 0,
661 0,
662 0,
663 0,
664 0,
665 0,
666 0,
667 0,
668 0,
669 0,
670 0,
671 0,
672 0,
673 0,
674 0,
675 0,
676 0,
677 0,
678 0,
679 0,
680 0,
681 0,
682 0,
683 0,
684 0,
685 0,
686 0,
687 96,
688 97,
689 98,
690 99,
691 100,
692 101,
693 102,
694 103,
695 104,
696 105,
697 106,
698 107,
699 108,
700 109,
701 110,
702 0,
703 111,
704 112,
705 113,
706 114,
707 0,
708 115,
709 116,
710 117,
711 118,
712 119,
713 120,
714 121,
715 122,
716 0,
717 123,
718 0,
719 124,
720 125,
721 126,
722 127,
723 128,
724 129,
725 130,
726 131,
727 0,
728 132,
729 133,
730 0,
731 134,
732 135,
733 136,
734 137,
735 0,
736 0,
737 0,
738 0,
739 0,
740 0,
741 0,
742 0,
743 0,
744 0,
745 0,
746 0,
747 0,
748 0,
749 0,
750 0,
751 138,
752 0,
753 139,
754 0,
755 0,
756 0,
757 0,
758 140,
759 141,
760 142,
761 143,
762 0,
763 0,
764 0,
765 0,
766 0,
767 144,
768 0,
769 0,
770 0,
771 145,
772 0,
773 0,
774 146,
775 147,
776 148,
777 149,
778 0,
779 0,
780 0,
781 0
782 };
784 const FT_UShort cff_expert_encoding[256] =
785 {
786 0,
787 0,
788 0,
789 0,
790 0,
791 0,
792 0,
793 0,
794 0,
795 0,
796 0,
797 0,
798 0,
799 0,
800 0,
801 0,
802 0,
803 0,
804 0,
805 0,
806 0,
807 0,
808 0,
809 0,
810 0,
811 0,
812 0,
813 0,
814 0,
815 0,
816 0,
817 0,
818 1,
819 229,
820 230,
821 0,
822 231,
823 232,
824 233,
825 234,
826 235,
827 236,
828 237,
829 238,
830 13,
831 14,
832 15,
833 99,
834 239,
835 240,
836 241,
837 242,
838 243,
839 244,
840 245,
841 246,
842 247,
843 248,
844 27,
845 28,
846 249,
847 250,
848 251,
849 252,
850 0,
851 253,
852 254,
853 255,
854 256,
855 257,
856 0,
857 0,
858 0,
859 258,
860 0,
861 0,
862 259,
863 260,
864 261,
865 262,
866 0,
867 0,
868 263,
869 264,
870 265,
871 0,
872 266,
873 109,
874 110,
875 267,
876 268,
877 269,
878 0,
879 270,
880 271,
881 272,
882 273,
883 274,
884 275,
885 276,
886 277,
887 278,
888 279,
889 280,
890 281,
891 282,
892 283,
893 284,
894 285,
895 286,
896 287,
897 288,
898 289,
899 290,
900 291,
901 292,
902 293,
903 294,
904 295,
905 296,
906 297,
907 298,
908 299,
909 300,
910 301,
911 302,
912 303,
913 0,
914 0,
915 0,
916 0,
917 0,
918 0,
919 0,
920 0,
921 0,
922 0,
923 0,
924 0,
925 0,
926 0,
927 0,
928 0,
929 0,
930 0,
931 0,
932 0,
933 0,
934 0,
935 0,
936 0,
937 0,
938 0,
939 0,
940 0,
941 0,
942 0,
943 0,
944 0,
945 0,
946 0,
947 304,
948 305,
949 306,
950 0,
951 0,
952 307,
953 308,
954 309,
955 310,
956 311,
957 0,
958 312,
959 0,
960 0,
961 312,
962 0,
963 0,
964 314,
965 315,
966 0,
967 0,
968 316,
969 317,
970 318,
971 0,
972 0,
973 0,
974 158,
975 155,
976 163,
977 319,
978 320,
979 321,
980 322,
981 323,
982 324,
983 325,
984 0,
985 0,
986 326,
987 150,
988 164,
989 169,
990 327,
991 328,
992 329,
993 330,
994 331,
995 332,
996 333,
997 334,
998 335,
999 336,
1000 337,
1001 338,
1002 339,
1003 340,
1004 341,
1005 342,
1006 343,
1007 344,
1008 345,
1009 346,
1010 347,
1011 348,
1012 349,
1013 350,
1014 351,
1015 352,
1016 353,
1017 354,
1018 355,
1019 356,
1020 357,
1021 358,
1022 359,
1023 360,
1024 361,
1025 362,
1026 363,
1027 364,
1028 365,
1029 366,
1030 367,
1031 368,
1032 369,
1033 370,
1034 371,
1035 372,
1036 373,
1037 374,
1038 375,
1039 376,
1040 377,
1041 378
1042 };
1045 FT_LOCAL FT_String*
1046 CFF_Get_Name( CFF_Index* index,
1047 FT_UInt element );
1049 FT_LOCAL FT_String*
1050 CFF_Get_String( CFF_Index* index,
1051 FT_UInt sid,
1052 PSNames_Interface* interface );
1055 FT_LOCAL FT_Error
1056 CFF_Access_Element( CFF_Index* index,
1057 FT_UInt element,
1058 FT_Byte** pbytes,
1059 FT_ULong* pbyte_len );
1061 FT_LOCAL void
1062 CFF_Forget_Element( CFF_Index* index,
1063 FT_Byte** pbytes );
1066 FT_LOCAL FT_Error
1067 CFF_Load_Font( FT_Stream stream,
1068 FT_Int face_index,
1069 CFF_Font* font );
1071 FT_LOCAL void
1072 CFF_Done_Font( CFF_Font* font );
1075 FT_LOCAL FT_Byte
1076 CFF_Get_FD( CFF_FD_Select* select,
1077 FT_UInt glyph_index );
1080 FT_END_HEADER
1082 #endif /* __CFFLOAD_H__ */
1085 /* END */