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.
10 // hmtx - Horizontal Metrics
11 // http://www.microsoft.com/typography/otspec/hmtx.htm
13 #define TABLE_NAME "hmtx"
17 bool ots_hmtx_parse(OpenTypeFile
*file
, const uint8_t *data
, size_t length
) {
18 Buffer
table(data
, length
);
19 OpenTypeHMTX
*hmtx
= new OpenTypeHMTX
;
22 if (!file
->hhea
|| !file
->maxp
) {
23 return OTS_FAILURE_MSG("Missing hhea or maxp tables in font, needed by hmtx");
26 if (!ParseMetricsTable(file
, &table
, file
->maxp
->num_glyphs
,
27 &file
->hhea
->header
, &hmtx
->metrics
)) {
28 return OTS_FAILURE_MSG("Failed to parse hmtx metrics");
34 bool ots_hmtx_should_serialise(OpenTypeFile
*file
) {
35 return file
->hmtx
!= NULL
;
38 bool ots_hmtx_serialise(OTSStream
*out
, OpenTypeFile
*file
) {
39 if (!SerialiseMetricsTable(file
, out
, &file
->hmtx
->metrics
)) {
40 return OTS_FAILURE_MSG("Failed to serialise htmx metrics");
45 void ots_hmtx_free(OpenTypeFile
*file
) {