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_KERN_H_
6#define OTS_KERN_H_
7
8#include <vector>
9
10#include "ots.h"
11
12namespace ots {
13
14struct OpenTypeKERNFormat0Pair {
15  uint16_t left;
16  uint16_t right;
17  int16_t value;
18};
19
20struct OpenTypeKERNFormat0 {
21  uint16_t version;
22  uint16_t coverage;
23  uint16_t search_range;
24  uint16_t entry_selector;
25  uint16_t range_shift;
26  std::vector<OpenTypeKERNFormat0Pair> pairs;
27};
28
29// Format 2 is not supported. Since the format is not supported by Windows,
30// WebFonts unlikely use it. I've checked thousands of proprietary fonts and
31// free fonts, and found no font uses the format.
32
33struct OpenTypeKERN {
34  uint16_t version;
35  std::vector<OpenTypeKERNFormat0> subtables;
36};
37
38}  // namespace ots
39
40#endif  // OTS_KERN_H_
41