[vlc-commits] freetype: update default font only if size has really changed

Francois Cartegnie git at videolan.org
Mon Aug 17 23:43:05 CEST 2020


vlc | branch: master | Francois Cartegnie <fcvlcdev at free.fr> | Wed Aug 12 19:51:28 2020 +0200| [a09e61e6076c2fff904681b14134a68fd8483fcb] | committer: Francois Cartegnie

freetype: update default font only if size has really changed

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=a09e61e6076c2fff904681b14134a68fd8483fcb
---

 modules/text_renderer/freetype/freetype.c | 16 +++++++++-------
 modules/text_renderer/freetype/freetype.h |  1 +
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/modules/text_renderer/freetype/freetype.c b/modules/text_renderer/freetype/freetype.c
index d65e22bc6d..ee5212ff39 100644
--- a/modules/text_renderer/freetype/freetype.c
+++ b/modules/text_renderer/freetype/freetype.c
@@ -1163,14 +1163,16 @@ static int Render( filter_t *p_filter, subpicture_region_t *p_region_out,
 
     UpdateDefaultLiveStyles( p_filter );
 
-    /*
-     * Update the default face to reflect changes in video size or text scaling
-     */
-    p_sys->p_face = SelectAndLoadFace( p_filter, p_sys->p_default_style, ' ' );
-    if( !p_sys->p_face )
+    int i_font_default_size = ConvertToLiveSize( p_filter, p_sys->p_default_style );
+    if( !p_sys->p_face || i_font_default_size != p_sys->i_font_default_size )
     {
-        msg_Err( p_filter, "Render(): Error loading default face" );
-        return VLC_EGENERIC;
+        /* Update the default face to reflect changes in video size or text scaling */
+        p_sys->p_face = SelectAndLoadFace( p_filter, p_sys->p_default_style, ' ' );
+        if( !p_sys->p_face )
+        {
+            msg_Err( p_filter, "Render(): Error loading default face" );
+            return VLC_EGENERIC;
+        }
     }
 
     layout_text_block_t text_block = { 0 };
diff --git a/modules/text_renderer/freetype/freetype.h b/modules/text_renderer/freetype/freetype.h
index 847616062f..59fb3fa30c 100644
--- a/modules/text_renderer/freetype/freetype.h
+++ b/modules/text_renderer/freetype/freetype.h
@@ -111,6 +111,7 @@ typedef struct
 
     /* Current scaling of the text, default is 100 (%) */
     int               i_scale;
+    int               i_font_default_size;
 
     vlc_font_select_t *fs;
 



More information about the vlc-commits mailing list