OLD | NEW |
| (Empty) |
1 /* | |
2 * Copyright (C) 1998-2004 David Turner and Werner Lemberg | |
3 * Copyright (C) 2006 Behdad Esfahbod | |
4 * | |
5 * This is part of HarfBuzz, an OpenType Layout engine library. | |
6 * | |
7 * Permission is hereby granted, without written agreement and without | |
8 * license or royalty fees, to use, copy, modify, and distribute this | |
9 * software and its documentation for any purpose, provided that the | |
10 * above copyright notice and the following two paragraphs appear in | |
11 * all copies of this software. | |
12 * | |
13 * IN NO EVENT SHALL THE COPYRIGHT HOLDER BE LIABLE TO ANY PARTY FOR | |
14 * DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES | |
15 * ARISING OUT OF THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN | |
16 * IF THE COPYRIGHT HOLDER HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH | |
17 * DAMAGE. | |
18 * | |
19 * THE COPYRIGHT HOLDER SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING, | |
20 * BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND | |
21 * FITNESS FOR A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS | |
22 * ON AN "AS IS" BASIS, AND THE COPYRIGHT HOLDER HAS NO OBLIGATION TO | |
23 * PROVIDE MAINTENANCE, SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS. | |
24 */ | |
25 | |
26 #ifndef HARFBUZZ_GDEF_PRIVATE_H | |
27 #define HARFBUZZ_GDEF_PRIVATE_H | |
28 | |
29 #include "harfbuzz-impl.h" | |
30 #include "harfbuzz-stream-private.h" | |
31 #include "harfbuzz-buffer-private.h" | |
32 #include "harfbuzz-gdef.h" | |
33 | |
34 HB_BEGIN_HEADER | |
35 | |
36 | |
37 #ifdef HB_USE_PACKED_STRUCTS | |
38 #pragma pack(push, 1) | |
39 #endif | |
40 | |
41 /* Attachment related structures */ | |
42 | |
43 struct HB_AttachPoint_ | |
44 { | |
45 HB_UShort* PointIndex; /* array of contour points */ | |
46 HB_UShort PointCount; /* size of the PointIndex array */ | |
47 }; | |
48 | |
49 /* Ligature Caret related structures */ | |
50 | |
51 struct HB_CaretValueFormat1_ | |
52 { | |
53 HB_Short Coordinate; /* x or y value (in design units) */ | |
54 }; | |
55 | |
56 typedef struct HB_CaretValueFormat1_ HB_CaretValueFormat1; | |
57 | |
58 | |
59 struct HB_CaretValueFormat2_ | |
60 { | |
61 HB_UShort CaretValuePoint; /* contour point index on glyph */ | |
62 }; | |
63 | |
64 typedef struct HB_CaretValueFormat2_ HB_CaretValueFormat2; | |
65 | |
66 | |
67 struct HB_CaretValueFormat3_ | |
68 { | |
69 HB_Device* Device; /* Device table for x or y value */ | |
70 HB_Short Coordinate; /* x or y value (in design units) */ | |
71 }; | |
72 | |
73 typedef struct HB_CaretValueFormat3_ HB_CaretValueFormat3; | |
74 | |
75 | |
76 #ifdef HB_SUPPORT_MULTIPLE_MASTER | |
77 struct HB_CaretValueFormat4_ | |
78 { | |
79 HB_UShort IdCaretValue; /* metric ID */ | |
80 }; | |
81 | |
82 typedef struct HB_CaretValueFormat4_ HB_CaretValueFormat4; | |
83 #endif | |
84 | |
85 | |
86 struct HB_CaretValue_ | |
87 { | |
88 union | |
89 { | |
90 HB_CaretValueFormat1 cvf1; | |
91 HB_CaretValueFormat2 cvf2; | |
92 HB_CaretValueFormat3 cvf3; | |
93 #ifdef HB_SUPPORT_MULTIPLE_MASTER | |
94 HB_CaretValueFormat4 cvf4; | |
95 #endif | |
96 } cvf; | |
97 | |
98 HB_Byte CaretValueFormat; /* 1, 2, 3, or 4 */ | |
99 }; | |
100 | |
101 typedef struct HB_CaretValue_ HB_CaretValue; | |
102 | |
103 | |
104 struct HB_LigGlyph_ | |
105 { | |
106 HB_CaretValue* CaretValue; /* array of caret values */ | |
107 HB_UShort CaretCount; /* number of caret values */ | |
108 HB_Bool loaded; | |
109 }; | |
110 | |
111 | |
112 HB_INTERNAL HB_Error | |
113 _HB_GDEF_Add_Glyph_Property( HB_GDEFHeader* gdef, | |
114 HB_UShort glyphID, | |
115 HB_UShort property ); | |
116 | |
117 HB_INTERNAL HB_Error | |
118 _HB_GDEF_Check_Property( HB_GDEFHeader* gdef, | |
119 HB_GlyphItem item, | |
120 HB_UShort flags, | |
121 HB_UShort* property ); | |
122 | |
123 HB_INTERNAL HB_Error | |
124 _HB_GDEF_LoadMarkAttachClassDef_From_LookupFlags( HB_GDEFHeader* gdef, | |
125 HB_Stream input, | |
126 HB_Lookup* lo, | |
127 HB_UShort num_lookups ); | |
128 | |
129 #ifdef HB_USE_PACKED_STRUCTS | |
130 #pragma pack(pop) | |
131 #endif | |
132 | |
133 HB_END_HEADER | |
134 | |
135 #endif /* HARFBUZZ_GDEF_PRIVATE_H */ | |
OLD | NEW |