Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Erwin <significant.bit@gmail.com>2016-09-17 14:54:30 +0300
committerMike Erwin <significant.bit@gmail.com>2016-09-17 14:54:30 +0300
commite21853abb9fee9936f0a2d257a5b110535f0937e (patch)
tree332bee4889f0bc6b1fd07291614550347a9f4f77 /source/blender
parent1b1275f0db85101345def817fee486beebaa6b9a (diff)
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.
Diffstat (limited to 'source/blender')
-rw-r--r--source/blender/blenfont/intern/blf.c11
-rw-r--r--source/blender/gpu/shaders/gpu_shader_text_frag.glsl2
-rw-r--r--source/blender/gpu/shaders/gpu_shader_text_vert.glsl4
3 files changed, 5 insertions, 12 deletions
diff --git a/source/blender/blenfont/intern/blf.c b/source/blender/blenfont/intern/blf.c
index ec1f3d1f1f1..d7fcb2c727f 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 4869a6360fa..c8c90d8bf09 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 8449c4229b3..72479401568 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;
}