]> git.tdb.fi Git - libs/gl.git/commitdiff
Default to Utf8 instead of direct mapping in Font
authorMikko Rasa <tdb@tdb.fi>
Tue, 11 Dec 2007 11:30:48 +0000 (11:30 +0000)
committerMikko Rasa <tdb@tdb.fi>
Tue, 11 Dec 2007 11:30:48 +0000 (11:30 +0000)
source/font.cpp
source/font.h

index a19a94e5d13b22670e13c361689669b3d5b71db4..60090e0148de8e3ebc587da94f04261c4b629fe6 100644 (file)
@@ -47,16 +47,6 @@ void Font::add_glyph(unsigned code, float x1, float y1, float x2, float y2, floa
        create_glyph_vertices(glyph, *va_builder);
 }
 
-float Font::get_string_width(const string &str) const
-{
-       float x=0;
-
-       for(string::const_iterator i=str.begin(); i!=str.end(); ++i)
-               x+=get_glyph_advance(static_cast<unsigned char>(*i));
-
-       return x;
-}
-
 float Font::get_string_width(const string &str, Codecs::Decoder &dec) const
 {
        float x=0;
@@ -67,16 +57,6 @@ float Font::get_string_width(const string &str, Codecs::Decoder &dec) const
        return x;
 }
 
-void Font::draw_string(const string &str) const
-{
-       prepare_render();
-
-       for(string::const_iterator i=str.begin(); i!=str.end(); ++i)
-               draw_glyph(static_cast<unsigned char>(*i));
-
-       glPopMatrix();
-}
-
 void Font::draw_string(const string &str, Codecs::Decoder &dec) const
 {
        prepare_render();
index 3178a4c2717ed2f64d6d4e2c72bb413b84056a60..68c035a64d0c4b2d34c6b207b67641d8dadb6e4f 100644 (file)
@@ -11,7 +11,7 @@ Distributed under the LGPL
 #include <map>
 #include <string>
 #include <msp/datafile/collection.h>
-#include <msp/strings/codec.h>
+#include <msp/strings/utf8.h>
 #include "vertexarray.h"
 
 namespace Msp {
@@ -49,10 +49,8 @@ public:
        float get_default_size() const { return default_size; }
        float get_ascent() const { return ascent; }
        float get_descent() const { return descent; }
-       float get_string_width(const std::string &) const;
        float get_string_width(const std::string &, Codecs::Decoder &) const;
        void  draw_glyph(unsigned);
-       void  draw_string(const std::string &) const;
        void  draw_string(const std::string &, Codecs::Decoder &) const;
        void  draw_multiline(const std::string &) const;
 
@@ -63,12 +61,19 @@ public:
                return get_string_width(str, dec);
        }
 
+       float get_string_width(const std::string &str) const
+       { return get_string_width<Codecs::Utf8>(str); }
+
        template<class C>
        void draw_string(const std::string &str) const
        {
                typename C::Decoder dec;
                draw_string(str, dec);
        }
+
+       void draw_string(const std::string &str) const
+       { draw_string<Codecs::Utf8>(str); }
+
 private:
        struct Glyph
        {