亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? quartztext.c

?? VLC Player Source Code
?? C
?? 第 1 頁 / 共 3 頁
字號:
    // Sanity check    if( !p_region_in || !p_region_out ) return VLC_EGENERIC;    psz_string = p_region_in->psz_text;    if( !psz_string || !*psz_string ) return VLC_EGENERIC;    if( VLC_SUCCESS == var_Get( p_filter, "scale", &val ))        i_scale = val.i_int;    if( p_region_in->p_style )    {        i_font_color = __MAX( __MIN( p_region_in->p_style->i_font_color, 0xFFFFFF ), 0 );        i_font_alpha = __MAX( __MIN( p_region_in->p_style->i_font_alpha, 255 ), 0 );        i_font_size  = __MAX( __MIN( p_region_in->p_style->i_font_size, 255 ), 0 ) * i_scale / 1000;    }    else    {        i_font_color = p_sys->i_font_color;        i_font_alpha = 255 - p_sys->i_font_opacity;        i_font_size  = p_sys->i_font_size;    }    if( !i_font_alpha ) i_font_alpha = 255 - p_sys->i_font_opacity;    ConvertToUTF16( EliminateCRLF( psz_string ), &i_string_length, &psz_utf16_str );    p_region_out->i_x = p_region_in->i_x;    p_region_out->i_y = p_region_in->i_y;    if( psz_utf16_str != NULL )    {        ATSUStyle p_style = CreateStyle( p_sys->psz_font_name, i_font_size,                                         (i_font_color & 0xffffff) |                                         ((i_font_alpha & 0xff) << 24),                                         false, false, false );        if( p_style )        {            RenderYUVA( p_filter, p_region_out, psz_utf16_str, i_string_length,                        1, &i_string_length, &p_style );        }        ATSUDisposeStyle( p_style );        free( psz_utf16_str );    }    return VLC_SUCCESS;}static ATSUStyle CreateStyle( char *psz_fontname, int i_font_size, uint32_t i_font_color,                              bool b_bold, bool b_italic, bool b_uline ){    ATSUStyle   p_style;    OSStatus    status;    uint32_t    i_tag_cnt;    float f_red   = (float)(( i_font_color & 0x00FF0000 ) >> 16) / 255.0;    float f_green = (float)(( i_font_color & 0x0000FF00 ) >>  8) / 255.0;    float f_blue  = (float)(  i_font_color & 0x000000FF        ) / 255.0;    float f_alpha = ( 255.0 - (float)(( i_font_color & 0xFF000000 ) >> 24)) / 255.0;    ATSUFontID           font;    Fixed                font_size  = IntToFixed( i_font_size );    ATSURGBAlphaColor    font_color = { f_red, f_green, f_blue, f_alpha };    Boolean              bold       = b_bold;    Boolean              italic     = b_italic;    Boolean              uline      = b_uline;    ATSUAttributeTag tags[]        = { kATSUSizeTag, kATSURGBAlphaColorTag, kATSUQDItalicTag,                                       kATSUQDBoldfaceTag, kATSUQDUnderlineTag, kATSUFontTag };    ByteCount sizes[]              = { sizeof( Fixed ), sizeof( ATSURGBAlphaColor ), sizeof( Boolean ),                                       sizeof( Boolean ), sizeof( Boolean ), sizeof( ATSUFontID )};    ATSUAttributeValuePtr values[] = { &font_size, &font_color, &italic, &bold, &uline, &font };    i_tag_cnt = sizeof( tags ) / sizeof( ATSUAttributeTag );    status = ATSUFindFontFromName( psz_fontname,                                   strlen( psz_fontname ),                                   kFontFullName,                                   kFontNoPlatform,                                   kFontNoScript,                                   kFontNoLanguageCode,                                   &font );    if( status != noErr )    {        // If we can't find a suitable font, just do everything else        i_tag_cnt--;    }    if( noErr == ATSUCreateStyle( &p_style ) )    {        if( noErr == ATSUSetAttributes( p_style, i_tag_cnt, tags, sizes, values ) )        {            return p_style;        }        ATSUDisposeStyle( p_style );    }    return NULL;}static int PushFont( font_stack_t **p_font, const char *psz_name, int i_size,                     uint32_t i_color ){    font_stack_t *p_new;    if( !p_font )        return VLC_EGENERIC;    p_new = malloc( sizeof( font_stack_t ) );    if( ! p_new )        return VLC_ENOMEM;    p_new->p_next = NULL;    if( psz_name )        p_new->psz_name = strdup( psz_name );    else        p_new->psz_name = NULL;    p_new->i_size   = i_size;    p_new->i_color  = i_color;    if( !*p_font )    {        *p_font = p_new;    }    else    {        font_stack_t *p_last;        for( p_last = *p_font;             p_last->p_next;             p_last = p_last->p_next )        ;        p_last->p_next = p_new;    }    return VLC_SUCCESS;}static int PopFont( font_stack_t **p_font ){    font_stack_t *p_last, *p_next_to_last;    if( !p_font || !*p_font )        return VLC_EGENERIC;    p_next_to_last = NULL;    for( p_last = *p_font;         p_last->p_next;         p_last = p_last->p_next )    {        p_next_to_last = p_last;    }    if( p_next_to_last )        p_next_to_last->p_next = NULL;    else        *p_font = NULL;    free( p_last->psz_name );    free( p_last );    return VLC_SUCCESS;}static int PeekFont( font_stack_t **p_font, char **psz_name, int *i_size,                     uint32_t *i_color ){    font_stack_t *p_last;    if( !p_font || !*p_font )        return VLC_EGENERIC;    for( p_last=*p_font;         p_last->p_next;         p_last=p_last->p_next )    ;    *psz_name = p_last->psz_name;    *i_size   = p_last->i_size;    *i_color  = p_last->i_color;    return VLC_SUCCESS;}static ATSUStyle GetStyleFromFontStack( filter_sys_t *p_sys,        font_stack_t **p_fonts, bool b_bold, bool b_italic,        bool b_uline ){    ATSUStyle   p_style = NULL;    char     *psz_fontname = NULL;    uint32_t  i_font_color = p_sys->i_font_color;    int       i_font_size  = p_sys->i_font_size;    if( VLC_SUCCESS == PeekFont( p_fonts, &psz_fontname, &i_font_size,                                 &i_font_color ))    {        p_style = CreateStyle( psz_fontname, i_font_size, i_font_color,                               b_bold, b_italic, b_uline );    }    return p_style;}static int HandleFontAttributes( xml_reader_t *p_xml_reader,                                  font_stack_t **p_fonts, int i_scale ){    int        rv;    char      *psz_fontname = NULL;    uint32_t   i_font_color = 0xffffff;    int        i_font_alpha = 0;    int        i_font_size  = 24;    // Default all attributes to the top font in the stack -- in case not    // all attributes are specified in the sub-font    if( VLC_SUCCESS == PeekFont( p_fonts,                                 &psz_fontname,                                 &i_font_size,                                 &i_font_color ))    {        psz_fontname = strdup( psz_fontname );        i_font_size = i_font_size * 1000 / i_scale;    }    i_font_alpha = (i_font_color >> 24) & 0xff;    i_font_color &= 0x00ffffff;    while ( xml_ReaderNextAttr( p_xml_reader ) == VLC_SUCCESS )    {        char *psz_name = xml_ReaderName( p_xml_reader );        char *psz_value = xml_ReaderValue( p_xml_reader );        if( psz_name && psz_value )        {            if( !strcasecmp( "face", psz_name ) )            {                free( psz_fontname );                psz_fontname = strdup( psz_value );            }            else if( !strcasecmp( "size", psz_name ) )            {                if( ( *psz_value == '+' ) || ( *psz_value == '-' ) )                {                    int i_value = atoi( psz_value );                    if( ( i_value >= -5 ) && ( i_value <= 5 ) )                        i_font_size += ( i_value * i_font_size ) / 10;                    else if( i_value < -5 )                        i_font_size = - i_value;                    else if( i_value > 5 )                        i_font_size = i_value;                }                else                    i_font_size = atoi( psz_value );            }            else if( !strcasecmp( "color", psz_name )  &&                     ( psz_value[0] == '#' ) )            {                i_font_color = strtol( psz_value + 1, NULL, 16 );                i_font_color &= 0x00ffffff;            }            else if( !strcasecmp( "alpha", psz_name ) &&                     ( psz_value[0] == '#' ) )            {                i_font_alpha = strtol( psz_value + 1, NULL, 16 );                i_font_alpha &= 0xff;            }        }        free( psz_name );        free( psz_value );    }    rv = PushFont( p_fonts,                   psz_fontname,                   i_font_size * i_scale / 1000,                   (i_font_color & 0xffffff) | ((i_font_alpha & 0xff) << 24) );    free( psz_fontname );    return rv;}static int ProcessNodes( filter_t *p_filter,                         xml_reader_t *p_xml_reader,                         text_style_t *p_font_style,                         UniChar *psz_text,                         int *pi_len,                         uint32_t *pi_runs,                         uint32_t **ppi_run_lengths,                         ATSUStyle **ppp_styles ){    int           rv             = VLC_SUCCESS;    filter_sys_t *p_sys          = p_filter->p_sys;    UniChar      *psz_text_orig  = psz_text;    font_stack_t *p_fonts        = NULL;    vlc_value_t   val;    int           i_scale        = 1000;    char *psz_node  = NULL;    bool b_italic = false;    bool b_bold   = false;    bool b_uline  = false;    if( VLC_SUCCESS == var_Get( p_filter, "scale", &val ))        i_scale = val.i_int;    if( p_font_style )    {        rv = PushFont( &p_fonts,               p_font_style->psz_fontname,               p_font_style->i_font_size * i_scale / 1000,               (p_font_style->i_font_color & 0xffffff) |                   ((p_font_style->i_font_alpha & 0xff) << 24) );        if( p_font_style->i_style_flags & STYLE_BOLD )            b_bold = true;        if( p_font_style->i_style_flags & STYLE_ITALIC )            b_italic = true;        if( p_font_style->i_style_flags & STYLE_UNDERLINE )            b_uline = true;    }    else    {        rv = PushFont( &p_fonts,                       p_sys->psz_font_name,                       p_sys->i_font_size,                       p_sys->i_font_color );    }    if( rv != VLC_SUCCESS )        return rv;    while ( ( xml_ReaderRead( p_xml_reader ) == 1 ) )    {        switch ( xml_ReaderNodeType( p_xml_reader ) )        {            case XML_READER_NONE:                break;            case XML_READER_ENDELEM:                psz_node = xml_ReaderName( p_xml_reader );                if( psz_node )                {                    if( !strcasecmp( "font", psz_node ) )                        PopFont( &p_fonts );                    else if( !strcasecmp( "b", psz_node ) )                        b_bold   = false;                    else if( !strcasecmp( "i", psz_node ) )                        b_italic = false;                    else if( !strcasecmp( "u", psz_node ) )                        b_uline  = false;                    free( psz_node );                }                break;            case XML_READER_STARTELEM:                psz_node = xml_ReaderName( p_xml_reader );                if( psz_node )                {                    if( !strcasecmp( "font", psz_node ) )                        rv = HandleFontAttributes( p_xml_reader, &p_fonts, i_scale );                    else if( !strcasecmp( "b", psz_node ) )                        b_bold = true;                    else if( !strcasecmp( "i", psz_node ) )                        b_italic = true;                    else if( !strcasecmp( "u", psz_node ) )                        b_uline = true;                    else if( !strcasecmp( "br", psz_node ) )                    {                        uint32_t i_string_length;                        ConvertToUTF16( "\n", &i_string_length, &psz_text );                        psz_text += i_string_length;                        (*pi_runs)++;                        if( *ppp_styles )                            *ppp_styles = (ATSUStyle *) realloc( *ppp_styles, *pi_runs * sizeof( ATSUStyle ) );                        else                            *ppp_styles = (ATSUStyle *) malloc( *pi_runs * sizeof( ATSUStyle ) );                        (*ppp_styles)[ *pi_runs - 1 ] = GetStyleFromFontStack( p_sys, &p_fonts, b_bold, b_italic, b_uline );                        if( *ppi_run_lengths )                            *ppi_run_lengths = (uint32_t *) realloc( *ppi_run_lengths, *pi_runs * sizeof( uint32_t ) );                        else                            *ppi_run_lengths = (uint32_t *) malloc( *pi_runs * sizeof( uint32_t ) );                        (*ppi_run_lengths)[ *pi_runs - 1 ] = i_string_length;                    }                    free( psz_node );                }                break;            case XML_READER_TEXT:                psz_node = xml_ReaderValue( p_xml_reader );                if( psz_node )                {

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re热视频精品| 精品国产91久久久久久久妲己| 亚洲视频免费在线观看| 国产天堂亚洲国产碰碰| 欧美视频中文一区二区三区在线观看| 99久久精品费精品国产一区二区| 国产一区二区91| 国内精品伊人久久久久av一坑| 狠狠色狠狠色综合| aaa国产一区| 91在线播放网址| 欧亚洲嫩模精品一区三区| 欧美日韩国产色站一区二区三区| 日本久久电影网| 日韩视频免费观看高清在线视频| 精品久久久久久久久久久久包黑料 | 亚洲一区影音先锋| 日韩精品在线网站| 久久精品亚洲乱码伦伦中文| 日韩一区在线免费观看| 亚洲国产中文字幕在线视频综合 | 国产精品高潮久久久久无| 亚洲欧美国产77777| 五月天一区二区三区| 国产一区二区三区日韩| 成人午夜伦理影院| 日韩午夜激情av| 亚洲精品国久久99热| 91免费看视频| 亚洲手机成人高清视频| 国产美女在线观看一区| 欧美精品三级日韩久久| 亚洲国产成人tv| 一本色道**综合亚洲精品蜜桃冫| 日韩欧美你懂的| 免费久久99精品国产| 欧美日韩视频不卡| 国产网红主播福利一区二区| 亚洲精品日日夜夜| 国产中文字幕精品| 欧美日韩国产综合久久 | 亚洲电影第三页| 欧美午夜精品理论片a级按摩| 日韩午夜精品视频| 亚洲欧洲另类国产综合| 激情综合网最新| 7777精品久久久大香线蕉| 国产精品美女久久久久久2018 | 图片区小说区国产精品视频| 丁香五精品蜜臀久久久久99网站| 久久综合九色综合欧美就去吻| 国产一区二三区| 国产精品成人午夜| 成人app在线| 久久精品亚洲精品国产欧美 | 在线影院国内精品| 麻豆精品一二三| 国产精品久久久久久久久免费相片 | 蜜桃视频在线观看一区| 日韩你懂的在线播放| 久久成人羞羞网站| 国产欧美一区二区三区鸳鸯浴| 久久精品国产精品亚洲红杏| 精品sm捆绑视频| 粉嫩av亚洲一区二区图片| 一区二区三区在线观看网站| 欧美日本视频在线| 国产成人午夜高潮毛片| 亚洲成人一二三| 中文字幕在线不卡| 日韩欧美一二三区| 欧美影视一区在线| 成人免费av网站| 久久国产精品99久久人人澡| 一区二区三区久久| 日韩理论片网站| 久久久久久久久岛国免费| 日韩欧美中文一区二区| 99精品久久99久久久久| 精品一区二区三区免费毛片爱| 一区二区成人在线| 亚洲日本中文字幕区| 中文字幕av在线一区二区三区| 精品久久久久久久久久久久久久久| 欧美视频在线一区| 欧美伦理影视网| 69堂精品视频| 久久综合色天天久久综合图片| 日韩精品一区二区三区视频| 欧美电视剧免费观看| 精品欧美一区二区在线观看| 欧美性猛交xxxxxxxx| 99久久精品免费观看| 国产**成人网毛片九色| 国产精品综合在线视频| 国产不卡在线播放| av一二三不卡影片| 色哟哟欧美精品| 欧美另类videos死尸| 在线观看亚洲精品视频| 欧美日韩国产中文| 日韩欧美专区在线| 日本一区二区三区四区在线视频| 精品卡一卡二卡三卡四在线| 中文字幕精品一区二区精品绿巨人| 中日韩免费视频中文字幕| 亚洲第一搞黄网站| 国产一区二区h| 欧美日韩国产a| 日本一区二区三级电影在线观看| 亚洲宅男天堂在线观看无病毒| 蜜桃av一区二区三区| 国产91综合网| 欧美一区二区三区人| 一区二区三区欧美| 国产黑丝在线一区二区三区| 欧美性猛交xxxx黑人交| 亚洲精品中文在线影院| 成人美女在线视频| 国产欧美一区二区在线| 毛片av中文字幕一区二区| av一区二区三区黑人| 国产人成亚洲第一网站在线播放 | 久久一区二区三区国产精品| 亚洲午夜在线电影| 91片黄在线观看| 日韩伦理电影网| jiyouzz国产精品久久| 久久综合久久综合久久综合| 日本不卡视频在线观看| 欧美色国产精品| 亚洲gay无套男同| 欧美性大战久久| 一区二区三区成人| 91成人看片片| 亚洲成年人网站在线观看| 欧洲人成人精品| 亚洲自拍与偷拍| 欧美日韩激情一区| 激情av综合网| 国产欧美日韩中文久久| 99re成人精品视频| 日本中文在线一区| 久久久久国色av免费看影院| 成人在线视频一区| 一区二区三区美女| 色婷婷精品大视频在线蜜桃视频 | 免费视频一区二区| 国产日产欧美一区二区视频| 99精品国产热久久91蜜凸| 五月激情丁香一区二区三区| 国产无遮挡一区二区三区毛片日本| av男人天堂一区| 麻豆91在线播放| 国产性天天综合网| 日本精品一区二区三区四区的功能| 亚洲国产精品一区二区久久| 日韩色视频在线观看| 91在线码无精品| 久久99深爱久久99精品| 国产精品美女久久久久久2018| 91麻豆精品国产无毒不卡在线观看| 久久er99精品| 一区二区欧美视频| 国产人伦精品一区二区| 欧美美女bb生活片| 色综合久久久久综合体| 精品一区二区久久| 五月天欧美精品| 一区二区三区免费观看| 国产精品丝袜91| 亚洲精品一区二区三区在线观看| 欧美日韩国产综合草草| 色婷婷av久久久久久久| 91视频一区二区三区| 色偷偷一区二区三区| 99精品国产99久久久久久白柏| 国产二区国产一区在线观看| 精品一区二区三区在线视频| 国产精品综合在线视频| 免费成人在线观看视频| 丝袜美腿亚洲色图| 免费看精品久久片| 精一区二区三区| 国产资源在线一区| 国产一区二区三区免费播放| 韩国欧美一区二区| 99天天综合性| 欧美日韩一区二区三区视频| 欧美日韩一级黄| 国产精品卡一卡二卡三| 国产精品国产a级| 亚洲午夜久久久久久久久久久 | 亚洲综合色噜噜狠狠| 亚洲图片自拍偷拍| 狠狠色丁香久久婷婷综合_中| 高清久久久久久| 欧美亚男人的天堂| 精品久久久久久久久久久久久久久| 日本一区二区成人|