OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg | 2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg |
3 * Copyright (C) 2006 Behdad Esfahbod | 3 * Copyright (C) 2006 Behdad Esfahbod |
4 * | 4 * |
5 * This is part of HarfBuzz, an OpenType Layout engine library. | 5 * This is part of HarfBuzz, an OpenType Layout engine library. |
6 * | 6 * |
7 * Permission is hereby granted, without written agreement and without | 7 * Permission is hereby granted, without written agreement and without |
8 * license or royalty fees, to use, copy, modify, and distribute this | 8 * license or royalty fees, to use, copy, modify, and distribute this |
9 * software and its documentation for any purpose, provided that the | 9 * software and its documentation for any purpose, provided that the |
10 * above copyright notice and the following two paragraphs appear in | 10 * above copyright notice and the following two paragraphs appear in |
(...skipping 26 matching lines...) Expand all Loading... |
37 #define HB_GPOS_LOOKUP_SINGLE 1 | 37 #define HB_GPOS_LOOKUP_SINGLE 1 |
38 #define HB_GPOS_LOOKUP_PAIR 2 | 38 #define HB_GPOS_LOOKUP_PAIR 2 |
39 #define HB_GPOS_LOOKUP_CURSIVE 3 | 39 #define HB_GPOS_LOOKUP_CURSIVE 3 |
40 #define HB_GPOS_LOOKUP_MARKBASE 4 | 40 #define HB_GPOS_LOOKUP_MARKBASE 4 |
41 #define HB_GPOS_LOOKUP_MARKLIG 5 | 41 #define HB_GPOS_LOOKUP_MARKLIG 5 |
42 #define HB_GPOS_LOOKUP_MARKMARK 6 | 42 #define HB_GPOS_LOOKUP_MARKMARK 6 |
43 #define HB_GPOS_LOOKUP_CONTEXT 7 | 43 #define HB_GPOS_LOOKUP_CONTEXT 7 |
44 #define HB_GPOS_LOOKUP_CHAIN 8 | 44 #define HB_GPOS_LOOKUP_CHAIN 8 |
45 #define HB_GPOS_LOOKUP_EXTENSION 9 | 45 #define HB_GPOS_LOOKUP_EXTENSION 9 |
46 | 46 |
| 47 #ifdef HB_SUPPORT_MULTIPLE_MASTER |
47 /* A pointer to a function which accesses the PostScript interpreter. | 48 /* A pointer to a function which accesses the PostScript interpreter. |
48 Multiple Master fonts need this interface to convert a metric ID | 49 Multiple Master fonts need this interface to convert a metric ID |
49 (as stored in an OpenType font version 1.2 or higher) `metric_id' | 50 (as stored in an OpenType font version 1.2 or higher) `metric_id' |
50 into a metric value (returned in `metric_value'). | 51 into a metric value (returned in `metric_value'). |
51 | 52 |
52 `data' points to the user-defined structure specified during a | 53 `data' points to the user-defined structure specified during a |
53 call to HB_GPOS_Register_MM_Function(). | 54 call to HB_GPOS_Register_MM_Function(). |
54 | 55 |
55 `metric_value' must be returned as a scaled value (but shouldn't | 56 `metric_value' must be returned as a scaled value (but shouldn't |
56 be rounded). */ | 57 be rounded). */ |
57 | 58 |
58 typedef HB_Error (*HB_MMFunction)(HB_Font font, | 59 typedef HB_Error (*HB_MMFunction)(HB_Font font, |
59 HB_UShort metric_id, | 60 HB_UShort metric_id, |
60 HB_Fixed* metric_value, | 61 HB_Fixed* metric_value, |
61 void* data ); | 62 void* data ); |
| 63 #endif |
62 | 64 |
63 | 65 |
64 struct HB_GPOSHeader_ | 66 struct HB_GPOSHeader_ |
65 { | 67 { |
66 HB_16Dot16 Version; | 68 HB_16Dot16 Version; |
67 | 69 |
68 HB_ScriptList ScriptList; | 70 HB_ScriptList ScriptList; |
69 HB_FeatureList FeatureList; | 71 HB_FeatureList FeatureList; |
70 HB_LookupList LookupList; | 72 HB_LookupList LookupList; |
71 | 73 |
72 HB_GDEFHeader* gdef; | 74 HB_GDEFHeader* gdef; |
73 | 75 |
| 76 #ifdef HB_SUPPORT_MULTIPLE_MASTER |
74 /* this is OpenType 1.2 -- Multiple Master fonts need this | 77 /* this is OpenType 1.2 -- Multiple Master fonts need this |
75 callback function to get various metric values from the | 78 callback function to get various metric values from the |
76 PostScript interpreter. */ | 79 PostScript interpreter. */ |
77 | 80 |
78 HB_MMFunction mmfunc; | 81 HB_MMFunction mmfunc; |
79 void* data; | 82 void* data; |
| 83 #endif |
80 }; | 84 }; |
81 | 85 |
82 typedef struct HB_GPOSHeader_ HB_GPOSHeader; | 86 typedef struct HB_GPOSHeader_ HB_GPOSHeader; |
83 typedef HB_GPOSHeader* HB_GPOS; | 87 typedef HB_GPOSHeader* HB_GPOS; |
84 | 88 |
85 | 89 |
86 HB_Error HB_Load_GPOS_Table( HB_Stream stream, | 90 HB_Error HB_Load_GPOS_Table( HB_Stream stream, |
87 HB_GPOSHeader** gpos, | 91 HB_GPOSHeader** gpos, |
88 HB_GDEFHeader* gdef, | 92 HB_GDEFHeader* gdef, |
89 HB_Stream gdefStream ); | 93 HB_Stream gdefStream ); |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
122 HB_UInt** feature_tag_list ); | 126 HB_UInt** feature_tag_list ); |
123 | 127 |
124 | 128 |
125 HB_Error HB_GPOS_Add_Feature( HB_GPOSHeader* gpos, | 129 HB_Error HB_GPOS_Add_Feature( HB_GPOSHeader* gpos, |
126 HB_UShort feature_index, | 130 HB_UShort feature_index, |
127 HB_UInt property ); | 131 HB_UInt property ); |
128 | 132 |
129 HB_Error HB_GPOS_Clear_Features( HB_GPOSHeader* gpos ); | 133 HB_Error HB_GPOS_Clear_Features( HB_GPOSHeader* gpos ); |
130 | 134 |
131 | 135 |
| 136 #ifdef HB_SUPPORT_MULTIPLE_MASTER |
132 HB_Error HB_GPOS_Register_MM_Function( HB_GPOSHeader* gpos, | 137 HB_Error HB_GPOS_Register_MM_Function( HB_GPOSHeader* gpos, |
133 HB_MMFunction mmfunc, | 138 HB_MMFunction mmfunc, |
134 void* data ); | 139 void* data ); |
| 140 #endif |
135 | 141 |
136 /* If `dvi' is TRUE, glyph contour points for anchor points and device | 142 /* If `dvi' is TRUE, glyph contour points for anchor points and device |
137 tables are ignored -- you will get device independent values. */ | 143 tables are ignored -- you will get device independent values. */ |
138 | 144 |
139 | 145 |
140 HB_Error HB_GPOS_Apply_String( HB_Font font, | 146 HB_Error HB_GPOS_Apply_String( HB_Font font, |
141 HB_GPOSHeader* gpos, | 147 HB_GPOSHeader* gpos, |
142 HB_UShort load_flags, | 148 HB_UShort load_flags, |
143 HB_Buffer buffer, | 149 HB_Buffer buffer, |
144 HB_Bool dvi, | 150 HB_Bool dvi, |
145 HB_Bool r2l ); | 151 HB_Bool r2l ); |
146 | 152 |
147 HB_END_HEADER | 153 HB_END_HEADER |
148 | 154 |
149 #endif /* HARFBUZZ_GPOS_H */ | 155 #endif /* HARFBUZZ_GPOS_H */ |
OLD | NEW |