[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