]> git.tdb.fi Git - libs/gl.git/blobdiff - source/font.h
Improve interface documentation a bit
[libs/gl.git] / source / font.h
index fea97a11feb026688d56028e8804b4539677b311..bb8bd0a29a1c5c45612d4def0476824817e602a6 100644 (file)
@@ -13,6 +13,9 @@ namespace GL {
 class PrimitiveBuilder;
 class Texture2D;
 
+/**
+Stores a set of glyphs and creates strings out of them.
+*/
 class Font
 {
 public:
@@ -66,12 +69,21 @@ public:
 
        void set_texture(const Texture2D &);
        const Texture2D &get_texture() const;
+
+       /** Adds a glyph to the font.  There must not be an existing glyph with the
+       same code. */
        void add_glyph(const Glyph &);
        void set_kerning(unsigned, unsigned, float);
+
+       /** Returns the size used to generate the font texture.  This serves as a
+       hint for obtaining the best quality when rendering strings. */
        float get_native_size() const { return native_size; }
+
        float get_ascent() const { return ascent; }
        float get_descent() const { return descent; }
 
+       /** Returns the width of a string, in multiples of the font size.  Scale the
+       result according to the size used in rendering. */
        float get_string_width(const std::string &, StringCodec::Decoder &) const;
 
        template<class C>
@@ -84,7 +96,8 @@ public:
        float get_string_width(const std::string &str) const
        { return get_string_width<StringCodec::Utf8>(str); }
 
-       /// Draws a string to the framebuffer with Immediate.
+       /** Draws a string to the framebuffer with Immediate.  It is drawn with size
+       1.0; set up matrices for the desired size before the call. */
        void draw_string(const std::string &, StringCodec::Decoder &, const Color & = Color()) const;
 
        template<class C>
@@ -97,10 +110,10 @@ public:
        void draw_string(const std::string &str, const Color &color = Color()) const
        { draw_string<StringCodec::Utf8>(str, color); }
 
-       /** Builds the primitives for a string.  The PrimitiveBuilder should be
-       associated with a target that has at least VERTEX2 and TEXCOORD2 components.
-       The texture is not bound, to avoid unnecessary bindings when creating
-       meshes. */
+       /** Builds the primitives for a string.  Two-dimensional vertex and texture
+       coordinates are generated.  Size 1.0 is used for building; set up the
+       builder's matrix before the call.  The texture is not bound, to avoid
+       unnecessary bindings when creating meshes. */
        void build_string(const std::string &, StringCodec::Decoder &, PrimitiveBuilder &) const;
 
        template<class C>