/* Data model and I/O for glyph data within sfnt format files for the purpose of
performing the preprocessing step of the WOFF 2.0 conversion. */
#ifndef WOFF2_GLYPH_H_ #define WOFF2_GLYPH_H_
#include <inttypes.h> #include <stddef.h>
#include <cstdint> #include <vector>
namespace woff2 {
// Represents a parsed simple or composite glyph. The composite glyph data and // instructions are un-parsed and we keep only pointers to the raw data, // therefore the glyph is valid only so long the data from which it was parsed // is around. class Glyph { public:
Glyph()
: instructions_size(0),
overlap_simple_flag_set(false),
composite_data_size(0) {}
// Data model for simple glyphs. struct Point { int x; int y; bool on_curve;
};
std::vector<std::vector<Point> > contours;
// Data for composite glyphs. const uint8_t* composite_data;
uint32_t composite_data_size; bool have_instructions;
};
// Parses the glyph from the given data. Returns false on parsing failure or // buffer overflow. The glyph is valid only so long the input data pointer is // valid. bool ReadGlyph(const uint8_t* data, size_t len, Glyph* glyph);
// Stores the glyph into the specified dst buffer. The *dst_size is the buffer // size on entry and is set to the actual (unpadded) stored size on exit. // Returns false on buffer overflow. bool StoreGlyph(const Glyph& glyph, uint8_t* dst, size_t* dst_size);
} // namespace woff2
#endif// WOFF2_GLYPH_H_
¤ Dauer der Verarbeitung: 0.17 Sekunden
(vorverarbeitet)
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung ist noch experimentell.