Changeset 5efb1f0118bdd2bc7f1836476b02b52dda468c6c

Show
Ignore:
Timestamp:
11/08/07 07:57:28 (1 year ago)
Author:
Bernie Purcell <bitmap@videolan.org>
git-committer:
Bernie Purcell <bitmap@videolan.org> 1186811848 +0000
git-parent:

[7b246662a8b51c5e10676b4010865cdc26fa163e]

git-author:
Bernie Purcell <bitmap@videolan.org> 1186811848 +0000
Message:

Prescaled output support

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • modules/misc/freetype.c

    r6df5e4e r5efb1f0  
    965965    vlc_iconv_t iconv_handle = (vlc_iconv_t)(-1); 
    966966    int i_font_color, i_font_alpha, i_font_size, i_red, i_green, i_blue; 
     967    vlc_value_t val; 
     968    int i_scale = 1000; 
    967969 
    968970    FT_BBox line; 
     
    976978    if( !psz_string || !*psz_string ) return VLC_EGENERIC; 
    977979 
     980    if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) 
     981        i_scale = val.i_int; 
     982  
    978983    if( p_region_in->p_style ) 
    979984    { 
    980985        i_font_color = __MAX( __MIN( p_region_in->p_style->i_font_color, 0xFFFFFF ), 0 ); 
    981986        i_font_alpha = __MAX( __MIN( p_region_in->p_style->i_font_alpha, 255 ), 0 ); 
    982         i_font_size  = __MAX( __MIN( p_region_in->p_style->i_font_size, 255 ), 0 )
     987        i_font_size  = __MAX( __MIN( p_region_in->p_style->i_font_size, 255 ), 0 ) * i_scale / 1000
    983988    } 
    984989    else 
     
    986991        i_font_color = p_sys->i_font_color; 
    987992        i_font_alpha = 255 - p_sys->i_font_opacity; 
    988         i_font_size  = p_sys->i_default_font_size
     993        i_font_size  = p_sys->i_default_font_size * i_scale / 1000
    989994    } 
    990995 
     
    16341639 
    16351640static int HandleFontAttributes( xml_reader_t *p_xml_reader, 
    1636                                   font_stack_t **p_fonts
     1641                                  font_stack_t **p_fonts, int i_scale
    16371642{ 
    16381643    int        rv; 
     
    16531658    { 
    16541659        psz_fontname = strdup( psz_fontname ); 
     1660        i_font_size = i_font_size * 1000 / i_scale; 
    16551661    } 
    16561662    i_font_alpha = (i_font_color >> 24) & 0xff; 
     
    17031709    rv = PushFont( p_fonts, 
    17041710                   psz_fontname, 
    1705                    i_font_size
     1711                   i_font_size * i_scale / 1000
    17061712                   (i_font_color & 0xffffff) | ((i_font_alpha & 0xff) << 24), 
    17071713                   i_karaoke_bg_color ); 
     
    18651871    uint32_t     *psz_text_orig  = psz_text; 
    18661872    font_stack_t *p_fonts        = NULL; 
     1873    vlc_value_t   val; 
     1874    int           i_scale        = 1000; 
    18671875 
    18681876    char *psz_node  = NULL; 
     
    18721880    vlc_bool_t b_uline  = VLC_FALSE; 
    18731881 
     1882    if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) 
     1883        i_scale = val.i_int; 
     1884  
    18741885    if( p_font_style ) 
    18751886    { 
    18761887        rv = PushFont( &p_fonts, 
    18771888               p_font_style->psz_fontname, 
    1878                p_font_style->i_font_size
     1889               p_font_style->i_font_size * i_scale / 1000
    18791890               (p_font_style->i_font_color & 0xffffff) | 
    18801891                   ((p_font_style->i_font_alpha & 0xff) << 24), 
     
    18931904        rv = PushFont( &p_fonts, 
    18941905                       FC_DEFAULT_FONT, 
    1895                        p_sys->i_font_size
     1906                       p_sys->i_font_size * i_scale / 1000
    18961907                       0x00ffffff, 
    18971908                       0x00ffffff ); 
     
    19281939                { 
    19291940                    if( !strcasecmp( "font", psz_node ) ) 
    1930                         rv = HandleFontAttributes( p_xml_reader, &p_fonts ); 
     1941                        rv = HandleFontAttributes( p_xml_reader, &p_fonts, i_scale ); 
    19311942                    else if( !strcasecmp( "b", psz_node ) ) 
    19321943                        b_bold = VLC_TRUE; 
     
    27372748        if( p_sys->i_default_font_size ) 
    27382749        { 
    2739             i_size = p_sys->i_default_font_size; 
     2750            if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) 
     2751                i_size = p_sys->i_default_font_size * val.i_int / 1000; 
     2752            else 
     2753                i_size = p_sys->i_default_font_size; 
    27402754        } 
    27412755        else 
     
    27492763        { 
    27502764            msg_Warn( p_filter, "invalid fontsize, using 12" ); 
    2751             i_size = 12; 
     2765            if( VLC_SUCCESS == var_Get( p_filter, "scale", &val )) 
     2766                i_size = 12 * val.i_int / 1000; 
     2767            else 
     2768                i_size = 12; 
    27522769        } 
    27532770