]> git.tdb.fi Git - libs/gl.git/blobdiff - source/font.h
Add simple ligature support to Font
[libs/gl.git] / source / font.h
index 4eaed9635361ecca51ae5604b84c3c0d533c1109..dab09fa400d3ba0381eda46f5f64fb0e5f823883 100644 (file)
@@ -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,8 +54,9 @@ public:
 
 private:
        typedef std::map<unsigned, Glyph> GlyphMap;
-       typedef std::pair<unsigned, unsigned> KerningKey;
-       typedef std::map<KerningKey, float> KerningMap;
+       typedef std::pair<unsigned, unsigned> CodePair;
+       typedef std::map<CodePair, float> KerningMap;
+       typedef std::map<CodePair, unsigned> LigatureMap;
 
        RefPtr<const Texture2D> texture;
        float native_size;
@@ -64,6 +66,7 @@ private:
        float x_height;
        GlyphMap glyphs;
        KerningMap kerning;
+       LigatureMap ligatures;
 
 public:
        Font();
@@ -133,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