]> git.sesse.net Git - vlc/commitdiff
freetype: Try to use non-bitmap fonts first and fallback to bitmap ones
author김정은 <sunqueen@paran.com>
Sat, 29 May 2010 17:08:18 +0000 (20:08 +0300)
committerIlkka Ollakka <ileoo@videolan.org>
Sat, 29 May 2010 17:08:18 +0000 (20:08 +0300)
Signed-off-by: Ilkka Ollakka <ileoo@videolan.org>
(commited with --author, no git-format patch was send to vlc-devel even if requested)

modules/misc/freetype.c

index 6422a3881715a323d26046e60cb58dc78796d041..7ea939e1312294194e9de020077f4132ab17cb36 100644 (file)
@@ -1221,12 +1221,16 @@ static int RenderText( filter_t *p_filter, subpicture_region_t *p_region_out,
         }
         p_line->p_glyph_pos[ i ].x = i_pen_x;
         p_line->p_glyph_pos[ i ].y = i_pen_y;
-        i_error = FT_Load_Glyph( face, i_glyph_index, FT_LOAD_DEFAULT );
+        i_error = FT_Load_Glyph( face, i_glyph_index, FT_LOAD_NO_BITMAP | FT_LOAD_DEFAULT );
         if( i_error )
         {
-            msg_Err( p_filter, "unable to render text FT_Load_Glyph returned"
-                               " %d", i_error );
-            goto error;
+               i_error = FT_Load_Glyph( face, i_glyph_index, FT_LOAD_DEFAULT );
+               if( i_error )
+               {
+                   msg_Err( p_filter, "unable to render text FT_Load_Glyph returned"
+                                      " %d", i_error );
+                   goto error;
+               }
         }
         i_error = FT_Get_Glyph( glyph, &tmp_glyph );
         if( i_error )
@@ -1507,13 +1511,17 @@ static int RenderTag( filter_t *p_filter, FT_Face p_face, int i_font_color,
         p_line->p_glyph_pos[ i ].x = *pi_pen_x;
         p_line->p_glyph_pos[ i ].y = i_pen_y;
 
-        i_error = FT_Load_Glyph( p_face, i_glyph_index, FT_LOAD_DEFAULT );
+        i_error = FT_Load_Glyph( p_face, i_glyph_index, FT_LOAD_NO_BITMAP | FT_LOAD_DEFAULT );
         if( i_error )
         {
-            msg_Err( p_filter,
-                   "unable to render text FT_Load_Glyph returned %d", i_error );
-            p_line->pp_glyphs[ i ] = NULL;
-            return VLC_EGENERIC;
+               i_error = FT_Load_Glyph( p_face, i_glyph_index, FT_LOAD_DEFAULT );
+               if( i_error )
+               {
+                   msg_Err( p_filter,
+                          "unable to render text FT_Load_Glyph returned %d", i_error );
+                   p_line->pp_glyphs[ i ] = NULL;
+                   return VLC_EGENERIC;
+               }
         }
 
         /* Do synthetic styling now that Freetype supports it;