[Bf-blender-cvs] [e21853a] blender2.8: OpenGL: streamline font rendering
Mike Erwin
noreply at git.blender.org
Sat Sep 17 13:54:59 CEST 2016
Commit: e21853abb9fee9936f0a2d257a5b110535f0937e
Author: Mike Erwin
Date: Sat Sep 17 13:54:30 2016 +0200
Branches: blender2.8
https://developer.blender.org/rBe21853abb9fee9936f0a2d257a5b110535f0937e
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.
===================================================================
M source/blender/blenfont/intern/blf.c
M source/blender/gpu/shaders/gpu_shader_text_frag.glsl
M source/blender/gpu/shaders/gpu_shader_text_vert.glsl
===================================================================
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index ec1f3d1..d7fcb2c 100644
--- a/source/blender/blenfont/intern/blf.c
+++ b/source/blender/blenfont/intern/blf.c
@@ -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)
diff --git a/source/blender/gpu/shaders/gpu_shader_text_frag.glsl b/source/blender/gpu/shaders/gpu_shader_text_frag.glsl
index 4869a63..c8c90d8 100644
--- a/source/blender/gpu/shaders/gpu_shader_text_frag.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_text_frag.glsl
@@ -1,6 +1,6 @@
flat varying vec4 color;
-varying vec2 texcoord;
+noperspective varying vec2 texcoord;
uniform sampler2D glyph;
diff --git a/source/blender/gpu/shaders/gpu_shader_text_vert.glsl b/source/blender/gpu/shaders/gpu_shader_text_vert.glsl
index 8449c42..7247940 100644
--- a/source/blender/gpu/shaders/gpu_shader_text_vert.glsl
+++ b/source/blender/gpu/shaders/gpu_shader_text_vert.glsl
@@ -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;
}
More information about the Bf-blender-cvs
mailing list