Line data Source code
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_VDMX_H_
6 : #define OTS_VDMX_H_
7 :
8 : #include <vector>
9 :
10 : #include "ots.h"
11 :
12 : namespace ots {
13 :
14 : struct OpenTypeVDMXRatioRecord {
15 : uint8_t charset;
16 : uint8_t x_ratio;
17 : uint8_t y_start_ratio;
18 : uint8_t y_end_ratio;
19 : };
20 :
21 : struct OpenTypeVDMXVTable {
22 : uint16_t y_pel_height;
23 : int16_t y_max;
24 : int16_t y_min;
25 : };
26 :
27 0 : struct OpenTypeVDMXGroup {
28 : uint16_t recs;
29 : uint8_t startsz;
30 : uint8_t endsz;
31 : std::vector<OpenTypeVDMXVTable> entries;
32 : };
33 :
34 0 : struct OpenTypeVDMX {
35 : uint16_t version;
36 : uint16_t num_recs;
37 : uint16_t num_ratios;
38 : std::vector<OpenTypeVDMXRatioRecord> rat_ranges;
39 : std::vector<uint16_t> offsets;
40 : std::vector<OpenTypeVDMXGroup> groups;
41 : };
42 :
43 : } // namespace ots
44 :
45 : #endif // OTS_VDMX_H_
|