OLD | NEW |
| (Empty) |
1 // Copyright (c) 2009 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 #ifndef OTS_CMAP_H_ | |
6 #define OTS_CMAP_H_ | |
7 | |
8 #include <vector> | |
9 | |
10 #include "ots.h" | |
11 | |
12 namespace ots { | |
13 | |
14 struct OpenTypeCMAPSubtableRange { | |
15 uint32_t start_range; | |
16 uint32_t end_range; | |
17 uint32_t start_glyph_id; | |
18 }; | |
19 | |
20 struct OpenTypeCMAPSubtableVSRange { | |
21 uint32_t unicode_value; | |
22 uint8_t additional_count; | |
23 }; | |
24 | |
25 struct OpenTypeCMAPSubtableVSMapping { | |
26 uint32_t unicode_value; | |
27 uint16_t glyph_id; | |
28 }; | |
29 | |
30 struct OpenTypeCMAPSubtableVSRecord { | |
31 uint32_t var_selector; | |
32 uint32_t default_offset; | |
33 uint32_t non_default_offset; | |
34 std::vector<OpenTypeCMAPSubtableVSRange> ranges; | |
35 std::vector<OpenTypeCMAPSubtableVSMapping> mappings; | |
36 }; | |
37 | |
38 struct OpenTypeCMAP { | |
39 OpenTypeCMAP() | |
40 : subtable_0_3_4_data(NULL), | |
41 subtable_0_3_4_length(0), | |
42 subtable_0_5_14_length(0), | |
43 subtable_3_0_4_data(NULL), | |
44 subtable_3_0_4_length(0), | |
45 subtable_3_1_4_data(NULL), | |
46 subtable_3_1_4_length(0) { | |
47 } | |
48 | |
49 // Platform 0, Encoding 3, Format 4, Unicode BMP table. | |
50 const uint8_t *subtable_0_3_4_data; | |
51 size_t subtable_0_3_4_length; | |
52 | |
53 // Platform 0, Encoding 5, Format 14, Unicode Variation Sequence table. | |
54 size_t subtable_0_5_14_length; | |
55 std::vector<OpenTypeCMAPSubtableVSRecord> subtable_0_5_14; | |
56 | |
57 // Platform 3, Encoding 0, Format 4, MS Symbol table. | |
58 const uint8_t *subtable_3_0_4_data; | |
59 size_t subtable_3_0_4_length; | |
60 // Platform 3, Encoding 1, Format 4, MS Unicode BMP table. | |
61 const uint8_t *subtable_3_1_4_data; | |
62 size_t subtable_3_1_4_length; | |
63 | |
64 // Platform 3, Encoding 10, Format 12, MS Unicode UCS-4 table. | |
65 std::vector<OpenTypeCMAPSubtableRange> subtable_3_10_12; | |
66 // Platform 3, Encoding 10, Format 13, MS UCS-4 Fallback table. | |
67 std::vector<OpenTypeCMAPSubtableRange> subtable_3_10_13; | |
68 // Platform 1, Encoding 0, Format 0, Mac Roman table. | |
69 std::vector<uint8_t> subtable_1_0_0; | |
70 }; | |
71 | |
72 } // namespace ots | |
73 | |
74 #endif | |
OLD | NEW |