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 12namespace ots { 13 14struct OpenTypeVDMXRatioRecord { 15 uint8_t charset; 16 uint8_t x_ratio; 17 uint8_t y_start_ratio; 18 uint8_t y_end_ratio; 19}; 20 21struct OpenTypeVDMXVTable { 22 uint16_t y_pel_height; 23 int16_t y_max; 24 int16_t y_min; 25}; 26 27struct OpenTypeVDMXGroup { 28 uint16_t recs; 29 uint8_t startsz; 30 uint8_t endsz; 31 std::vector<OpenTypeVDMXVTable> entries; 32}; 33 34struct 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