GL.draw_text: use baseline_offset when rendering text
This commit is contained in:
parent
807e61dc8a
commit
8a7c3d8112
@ -48,6 +48,7 @@ static VALUE GL_draw_text(VALUE klass,
|
|||||||
VALUE r, VALUE g, VALUE b, VALUE a)
|
VALUE r, VALUE g, VALUE b, VALUE a)
|
||||||
{
|
{
|
||||||
int x_int = FIX2INT(x);
|
int x_int = FIX2INT(x);
|
||||||
|
int y_int = FIX2INT(y) + FIX2INT(rb_iv_get(font, "@baseline_offset"));
|
||||||
glUseProgram(programs[PROGRAM_TEXT]->id);
|
glUseProgram(programs[PROGRAM_TEXT]->id);
|
||||||
glUniform1i(programs[PROGRAM_TEXT]->uniforms[UNIFORM_TEXTURE], 0);
|
glUniform1i(programs[PROGRAM_TEXT]->uniforms[UNIFORM_TEXTURE], 0);
|
||||||
glUniform4f(programs[PROGRAM_TEXT]->uniforms[UNIFORM_COLOR],
|
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"));
|
int advance = FIX2INT(rb_iv_get(font, "@advance"));
|
||||||
for (int i = 0; i < length; i++)
|
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]);
|
Font_RenderGlyph(font, string_ptr[i]);
|
||||||
x_int += advance;
|
x_int += advance;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user