+#include <msp/core/maputils.h>
#include <msp/datafile/collection.h>
#include "bindable.h"
#include "gl.h"
return *texture;
}
-void Font::add_glyph(unsigned code, float x1, float y1, float x2, float y2, float w, float h, float ox, float oy, float adv)
-{
- Glyph glyph;
- glyph.code = code;
- glyph.x1 = x1;
- glyph.y1 = y1;
- glyph.x2 = x2;
- glyph.y2 = y2;
- glyph.w = w;
- glyph.h = h;
- glyph.off_x = ox;
- glyph.off_y = oy;
- glyph.advance = adv;
- glyphs.insert(GlyphMap::value_type(code, glyph));
+void Font::add_glyph(const Glyph &g)
+{
+ insert_unique(glyphs, g.code, g);
}
float Font::get_string_width(const string &str, StringCodec::Decoder &dec) const
void texture_ref(const std::string &);
};
-private:
struct Glyph
{
class Loader: public Msp::DataFile::ObjectLoader<Glyph>
float advance;
};
+private:
typedef std::map<unsigned, Glyph> GlyphMap;
RefPtr<const Texture2D> texture;
void set_texture(const Texture2D &);
const Texture2D &get_texture() const;
- void add_glyph(unsigned, float, float, float, float, float, float, float, float, float);
+ void add_glyph(const Glyph &);
float get_native_size() const { return native_size; }
float get_ascent() const { return ascent; }
float get_descent() const { return descent; }