summaryrefslogtreecommitdiff
path: root/gfx/ots/src/gdef.h
blob: 7c7cc0ce539ff9588b2230406314c0aae72db215 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
// Copyright (c) 2011-2017 The OTS Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef OTS_GDEF_H_
#define OTS_GDEF_H_

#include "ots.h"

namespace ots {

class OpenTypeGDEF : public Table {
 public:
  explicit OpenTypeGDEF(Font *font, uint32_t tag)
      : Table(font, tag, tag),
        num_mark_glyph_sets(0),
        m_data(NULL),
        m_length(0),
        m_num_glyphs(0) {
  }

  bool Parse(const uint8_t *data, size_t length);
  bool Serialize(OTSStream *out);

  uint16_t num_mark_glyph_sets;

 private:
  bool ParseAttachListTable(const uint8_t *data, size_t length);
  bool ParseLigCaretListTable(const uint8_t *data, size_t length);
  bool ParseMarkGlyphSetsDefTable(const uint8_t *data, size_t length);

  const uint8_t *m_data;
  size_t m_length;
  uint16_t m_num_glyphs;
};

}  // namespace ots

#endif