X-Git-Url: http://git.tdb.fi/?p=libs%2Fgl.git;a=blobdiff_plain;f=source%2Ffont.h;h=dab09fa400d3ba0381eda46f5f64fb0e5f823883;hp=efef8351830bd45425dc8045ed144884bca3eac5;hb=56beca9d8b4f7b4edac81411d31e24df88e84ac3;hpb=6327ae3d1f8a976f839ce333500c1643f9965fca diff --git a/source/font.h b/source/font.h index efef8351..dab09fa4 100644 --- a/source/font.h +++ b/source/font.h @@ -29,6 +29,7 @@ public: void init(); void glyph(unsigned); void kerning(unsigned, unsigned, float); + void ligature(unsigned, unsigned, unsigned); void texture(); void texture_ref(const std::string &); }; @@ -53,15 +54,19 @@ public: private: typedef std::map GlyphMap; - typedef std::pair KerningKey; - typedef std::map KerningMap; + typedef std::pair CodePair; + typedef std::map KerningMap; + typedef std::map LigatureMap; RefPtr texture; float native_size; float ascent; float descent; + float cap_height; + float x_height; GlyphMap glyphs; KerningMap kerning; + LigatureMap ligatures; public: Font(); @@ -81,6 +86,8 @@ public: float get_ascent() const { return ascent; } float get_descent() const { return descent; } + float get_cap_height() const { return cap_height; } + float get_x_height() const { return x_height; } /** Returns the width of a string, in multiples of the font size. Scale the result according to the size used in rendering. */ @@ -129,6 +136,7 @@ public: private: void create_glyph_quad(const Glyph &, PrimitiveBuilder &) const; float get_glyph_advance(unsigned, unsigned = 0) const; + unsigned get_ligature(unsigned, unsigned) const; }; } // namespace GL