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 struct OpenTypeVDMXGroup { 28 uint16_t recs; 29 uint8_t startsz; 30 uint8_t endsz; 31 std::vector<OpenTypeVDMXVTable> entries; 32 }; 33 34 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_ 46