Move shadow option (for text) from editor/interface to blenfont.
[blender.git] / source / blender / blenfont / intern / blf_glyph.c
index 33a435cc5be1104dc4247d1d81d15981ce2a0654..5e0868ea68053664e06e358b286f7a7e66357f9b 100644 (file)
@@ -496,8 +496,18 @@ int blf_glyph_texture_render(FontBLF *font, GlyphBLF *g, float x, float y)
        GLint cur_tex;
        float dx, dx1;
        float y1, y2;
+       float xo, yo;
+       float color[4];
 
        gt= g->tex_data;
+
+       if (font->flags & BLF_SHADOW) {
+               xo= x;
+               yo= y;
+               x += font->shadow_x;
+               y += font->shadow_y;
+       }
+
        dx= floor(x + gt->pos_x);
        dx1= dx + gt->width;
        y1= y + gt->pos_y;
@@ -518,6 +528,27 @@ int blf_glyph_texture_render(FontBLF *font, GlyphBLF *g, float x, float y)
        if (cur_tex != gt->tex)
                glBindTexture(GL_TEXTURE_2D, gt->tex);
 
+       if (font->flags & BLF_SHADOW) {
+               glGetFloatv(GL_CURRENT_COLOR, color);
+               glColor4fv(font->shadow_col);
+
+               if (font->shadow == 3)
+                       blf_texture3_draw(gt->uv, dx, y1, dx1, y2);
+               else if (font->shadow == 5)
+                       blf_texture5_draw(gt->uv, dx, y1, dx1, y2);
+               else
+                       blf_texture_draw(gt->uv, dx, y1, dx1, y2);
+
+               glColor4fv(color);
+               x= xo;
+               y= yo;
+
+               dx= floor(x + gt->pos_x);
+               dx1= dx + gt->width;
+               y1= y + gt->pos_y;
+               y2= y + gt->pos_y - gt->height;
+       }
+
        if (font->blur==3)
                blf_texture3_draw(gt->uv, dx, y1, dx1, y2);
        else if (font->blur==5)