1 // Copyright (c) 2011-2017 The OTS 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_GDEF_H_
6 #define OTS_GDEF_H_
7 
8 #include "ots.h"
9 
10 namespace ots {
11 
12 class OpenTypeGDEF : public Table {
13  public:
OpenTypeGDEF(Font * font,uint32_t tag)14   explicit OpenTypeGDEF(Font *font, uint32_t tag)
15       : Table(font, tag, tag),
16         num_mark_glyph_sets(0),
17         m_data(NULL),
18         m_length(0),
19         m_num_glyphs(0) {
20   }
21 
22   bool Parse(const uint8_t *data, size_t length);
23   bool Serialize(OTSStream *out);
24 
25   uint16_t num_mark_glyph_sets;
26 
27  private:
28   bool ParseAttachListTable(const uint8_t *data, size_t length);
29   bool ParseLigCaretListTable(const uint8_t *data, size_t length);
30   bool ParseMarkGlyphSetsDefTable(const uint8_t *data, size_t length);
31 
32   const uint8_t *m_data;
33   size_t m_length;
34   uint16_t m_num_glyphs;
35 };
36 
37 }  // namespace ots
38 
39 #endif
40 
41