mirror of
https://repo.dactyloidae.xyz/Dactyloidae/UXP.git
synced 2026-09-26 02:17:34 +09:00
54 lines
1.4 KiB
C
54 lines
1.4 KiB
C
|
|
// Copyright (c) 2011 The Chromium 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_METRICS_H_
|
||
|
|
#define OTS_METRICS_H_
|
||
|
|
|
||
|
|
#include <new>
|
||
|
|
#include <utility>
|
||
|
|
#include <vector>
|
||
|
|
|
||
|
|
#include "ots.h"
|
||
|
|
|
||
|
|
namespace ots {
|
||
|
|
|
||
|
|
struct OpenTypeMetricsHeader {
|
||
|
|
uint32_t version;
|
||
|
|
int16_t ascent;
|
||
|
|
int16_t descent;
|
||
|
|
int16_t linegap;
|
||
|
|
uint16_t adv_width_max;
|
||
|
|
int16_t min_sb1;
|
||
|
|
int16_t min_sb2;
|
||
|
|
int16_t max_extent;
|
||
|
|
int16_t caret_slope_rise;
|
||
|
|
int16_t caret_slope_run;
|
||
|
|
int16_t caret_offset;
|
||
|
|
uint16_t num_metrics;
|
||
|
|
};
|
||
|
|
|
||
|
|
struct OpenTypeMetricsTable {
|
||
|
|
std::vector<std::pair<uint16_t, int16_t> > entries;
|
||
|
|
std::vector<int16_t> sbs;
|
||
|
|
};
|
||
|
|
|
||
|
|
bool ParseMetricsHeader(Font *font, Buffer *table,
|
||
|
|
OpenTypeMetricsHeader *header);
|
||
|
|
bool SerialiseMetricsHeader(const ots::Font *font,
|
||
|
|
OTSStream *out,
|
||
|
|
const OpenTypeMetricsHeader *header);
|
||
|
|
|
||
|
|
bool ParseMetricsTable(const ots::Font *font,
|
||
|
|
Buffer *table,
|
||
|
|
const uint16_t num_glyphs,
|
||
|
|
const OpenTypeMetricsHeader *header,
|
||
|
|
OpenTypeMetricsTable *metrics);
|
||
|
|
bool SerialiseMetricsTable(const ots::Font *font,
|
||
|
|
OTSStream *out,
|
||
|
|
const OpenTypeMetricsTable *metrics);
|
||
|
|
|
||
|
|
} // namespace ots
|
||
|
|
|
||
|
|
#endif // OTS_METRICS_H_
|
||
|
|
|