OpenGL: streamline font rendering

Ignore texture matrix in the shader, stop messing with texture matrix in BLF code.

Use linear screen-space interpolation instead of perspective.

Avoid redundant call to glMatrixMode.
This commit is contained in:
Mike Erwin 2016-09-17 13:54:30 +02:00
parent 1b1275f0db
commit e21853abb9
3 changed files with 5 additions and 12 deletions

View File

@ -507,11 +507,8 @@ static void blf_draw_gl__start(FontBLF *font, GLint *mode)
/* Save the current matrix mode. */
glGetIntegerv(GL_MATRIX_MODE, mode);
glMatrixMode(GL_TEXTURE);
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_MODELVIEW);
if (*mode != GL_MODELVIEW)
glMatrixMode(GL_MODELVIEW);
glPushMatrix();
if (font->flags & BLF_MATRIX)
@ -534,10 +531,6 @@ static void blf_draw_gl__start(FontBLF *font, GLint *mode)
static void blf_draw_gl__end(GLint mode)
{
glMatrixMode(GL_TEXTURE);
glPopMatrix();
glMatrixMode(GL_MODELVIEW);
glPopMatrix();
if (mode != GL_MODELVIEW)

View File

@ -1,6 +1,6 @@
flat varying vec4 color;
varying vec2 texcoord;
noperspective varying vec2 texcoord;
uniform sampler2D glyph;

View File

@ -5,12 +5,12 @@
// - generic attrib inputs (2D pos, tex coord)
flat varying vec4 color;
varying vec2 texcoord;
noperspective varying vec2 texcoord;
void main()
{
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
color = gl_Color;
texcoord = (gl_TextureMatrix[0] * gl_MultiTexCoord0).st;
texcoord = gl_MultiTexCoord0.st;
}