#include "glyf.h"
#include <algorithm>
#include <limits>
#include "head.h"
#include "loca.h"
#include "maxp.h"
namespace ots {
bool OpenTypeGLYF::ParseFlagsForSimpleGlyph(Buffer &glyph,
uint32_t num_flags,
uint32_t *flag_index,
uint32_t *coordinates_length) { … }
bool OpenTypeGLYF::ParseSimpleGlyph(Buffer &glyph,
int16_t num_contours) { … }
#define ARG_1_AND_2_ARE_WORDS …
#define WE_HAVE_A_SCALE …
#define MORE_COMPONENTS …
#define WE_HAVE_AN_X_AND_Y_SCALE …
#define WE_HAVE_A_TWO_BY_TWO …
#define WE_HAVE_INSTRUCTIONS …
bool OpenTypeGLYF::ParseCompositeGlyph(
Buffer &glyph,
ComponentPointCount* component_point_count) { … }
bool OpenTypeGLYF::Parse(const uint8_t *data, size_t length) { … }
bool OpenTypeGLYF::TraverseComponentsCountingPoints(
Buffer &glyph,
uint16_t base_glyph_id,
uint32_t level,
ComponentPointCount* component_point_count) { … }
Buffer OpenTypeGLYF::GetGlyphBufferSection(
const uint8_t *data,
size_t length,
const std::vector<uint32_t>& loca_offsets,
unsigned glyph_id) { … }
bool OpenTypeGLYF::Serialize(OTSStream *out) { … }
}