GL.draw_text: use baseline_offset when rendering text

This commit is contained in:
Josh Holtrop 2014-08-07 21:05:40 -04:00
parent 807e61dc8a
commit 8a7c3d8112

View File

@ -48,6 +48,7 @@ static VALUE GL_draw_text(VALUE klass,
VALUE r, VALUE g, VALUE b, VALUE a)
{
int x_int = FIX2INT(x);
int y_int = FIX2INT(y) + FIX2INT(rb_iv_get(font, "@baseline_offset"));
glUseProgram(programs[PROGRAM_TEXT]->id);
glUniform1i(programs[PROGRAM_TEXT]->uniforms[UNIFORM_TEXTURE], 0);
glUniform4f(programs[PROGRAM_TEXT]->uniforms[UNIFORM_COLOR],
@ -61,7 +62,7 @@ static VALUE GL_draw_text(VALUE klass,
int advance = FIX2INT(rb_iv_get(font, "@advance"));
for (int i = 0; i < length; i++)
{
glUniform2i(programs[PROGRAM_TEXT]->uniforms[UNIFORM_POSITION], x_int, FIX2INT(y));
glUniform2i(programs[PROGRAM_TEXT]->uniforms[UNIFORM_POSITION], x_int, y_int);
Font_RenderGlyph(font, string_ptr[i]);
x_int += advance;
}