Distributed under the LGPL
*/
+#include <msp/datafile/collection.h>
#include "gl.h"
#include "font.h"
#include "immediate.h"
Font::Loader::Loader(Font &f):
- font(f),
- coll(0)
+ DataFile::CollectionObjectLoader<Font>(f, 0)
{
init();
}
Font::Loader::Loader(Font &f, Collection &c):
- font(f),
- coll(&c)
+ DataFile::CollectionObjectLoader<Font>(f, &c)
{
init();
}
-DataFile::Collection &Font::Loader::get_collection()
-{
- if(!coll)
- throw InvalidState("No collection");
- return *coll;
-}
-
void Font::Loader::init()
{
add("default_size", &Font::default_size);
Glyph gl;
gl.code=c;
load_sub(gl);
- font.glyphs.insert(GlyphMap::value_type(c, gl));
+ obj.glyphs.insert(GlyphMap::value_type(c, gl));
}
void Font::Loader::texture_inline()
{
RefPtr<Texture2D> tex=new Texture2D;
load_sub(*tex);
- font.tex=tex.release();
- font.own_tex=true;
+ obj.tex=tex.release();
+ obj.own_tex=true;
}
Font::Glyph::Loader::Loader(Glyph &g):
- glyph(g)
+ DataFile::ObjectLoader<Glyph>(g)
{
add("texcoords", &Loader::texcoords);
add("size", &Glyph::w, &Glyph::h);
void Font::Glyph::Loader::texcoords(float x1, float y1, float x2, float y2)
{
- glyph.x1=x1;
- glyph.y1=y1;
- glyph.x2=x2;
- glyph.y2=y2;
+ obj.x1=x1;
+ obj.y1=y1;
+ obj.x2=x2;
+ obj.y2=y2;
}
} // namespace GL