1d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org// Copyright (c) 2009 The Chromium Authors. All rights reserved. 2d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org// Use of this source code is governed by a BSD-style license that can be 3d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org// found in the LICENSE file. 4d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 5d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org#ifndef OTS_VDMX_H_ 6d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org#define OTS_VDMX_H_ 7d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 8d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org#include <vector> 9d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 10d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org#include "ots.h" 11d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 12d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.orgnamespace ots { 13d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 14d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.orgstruct OpenTypeVDMXRatioRecord { 15d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t charset; 16d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t x_ratio; 17d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t y_start_ratio; 18d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t y_end_ratio; 19d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org}; 20d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 21d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.orgstruct OpenTypeVDMXVTable { 22d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint16_t y_pel_height; 23d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org int16_t y_max; 24d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org int16_t y_min; 25d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org}; 26d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 27d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.orgstruct OpenTypeVDMXGroup { 28d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint16_t recs; 29d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t startsz; 30d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint8_t endsz; 31d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org std::vector<OpenTypeVDMXVTable> entries; 32d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org}; 33d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 34d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.orgstruct OpenTypeVDMX { 35d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint16_t version; 36d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint16_t num_recs; 37d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org uint16_t num_ratios; 38d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org std::vector<OpenTypeVDMXRatioRecord> rat_ranges; 39d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org std::vector<uint16_t> offsets; 40d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org std::vector<OpenTypeVDMXGroup> groups; 41d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org}; 42d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 43d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org} // namespace ots 44d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org 45d257d186ae2a08042a412824678f98241a1a4f3cyusukes@chromium.org#endif // OTS_VDMX_H_ 46