#include "bindable.h"
#include "gl.h"
#include "font.h"
-#include "immediate.h"
-#include "primitivetype.h"
+#include "primitivebuilder.h"
#include "texture2d.h"
using namespace std;
return x;
}
-void Font::draw_string(const string &str, StringCodec::Decoder &dec, const Color &color) const
-{
- BindRestore bind_tex(get_texture());
- Immediate imm((TEXCOORD2, COLOR4_UBYTE, VERTEX2));
- imm.color(color);
- build_string(str, dec, imm);
-}
-
void Font::build_string(const string &str, StringCodec::Decoder &dec, PrimitiveBuilder &bld) const
{
- MatrixStack::Push push_mtx(bld.matrix());
+ VertexBuilder::PushMatrix push_mtx(bld);
unsigned prev = 0;
unsigned next = 0;
continue;
if(prev)
- bld.matrix() *= Matrix::translation(get_glyph_advance(prev, c), 0, 0);
+ bld.transform(Matrix::translation(get_glyph_advance(prev, c), 0, 0));
create_glyph_quad(j->second, bld);
prev = c;
}
+Font::Glyph::Glyph():
+ code(0),
+ x1(0),
+ y1(0),
+ x2(1),
+ y2(1),
+ w(1),
+ h(1),
+ off_x(0),
+ off_y(0),
+ advance(1)
+{ }
+
+
Font::Loader::Loader(Font &f):
DataFile::CollectionObjectLoader<Font>(f, 0)
{