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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cffdrivr.c

?? a very goog book
?? C
?? 第 1 頁 / 共 2 頁
字號:
    if ( buffer_max > 0 )    {      FT_UInt  len = ft_strlen( gname );      if ( len >= buffer_max )        len = buffer_max - 1;      FT_MEM_COPY( buffer, gname, len );      ((FT_Byte*)buffer)[len] = 0;    }    FT_FREE ( gname );    error = CFF_Err_Ok;    Exit:      return error;  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    cff_get_char_index                                                 */  /*                                                                       */  /* <Description>                                                         */  /*    Uses a charmap to return a given character code's glyph index.     */  /*                                                                       */  /* <Input>                                                               */  /*    charmap  :: A handle to the source charmap object.                 */  /*    charcode :: The character code.                                    */  /*                                                                       */  /* <Return>                                                              */  /*    Glyph index.  0 means `undefined character code'.                  */  /*                                                                       */  static FT_UInt  cff_get_char_index( TT_CharMap  charmap,                      FT_Long     charcode )  {    FT_Error      error;    CFF_Face      face;    TT_CMapTable  cmap;    cmap = &charmap->cmap;    face = (CFF_Face)charmap->root.face;    /* Load table if needed */    if ( !cmap->loaded )    {      SFNT_Service  sfnt = (SFNT_Service)face->sfnt;      error = sfnt->load_charmap( face, cmap, face->root.stream );      if ( error )        return 0;      cmap->loaded = TRUE;    }    return ( cmap->get_index ? cmap->get_index( cmap, charcode ) : 0 );  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    cff_get_next_char                                                  */  /*                                                                       */  /* <Description>                                                         */  /*    Uses a charmap to return the next encoded charcode.                */  /*                                                                       */  /* <Input>                                                               */  /*    charmap  :: A handle to the source charmap object.                 */  /*    charcode :: The character code.                                    */  /*                                                                       */  /* <Return>                                                              */  /*    Char code.  0 means `no encoded chars above the given one'.        */  /*                                                                       */  static FT_Long  cff_get_next_char( TT_CharMap  charmap,                     FT_Long     charcode )  {    FT_Error      error;    CFF_Face      face;    TT_CMapTable  cmap;    cmap = &charmap->cmap;    face = (CFF_Face)charmap->root.face;    /* Load table if needed */    if ( !cmap->loaded )    {      SFNT_Service  sfnt = (SFNT_Service)face->sfnt;      error = sfnt->load_charmap( face, cmap, face->root.stream );      if ( error )        return 0;      cmap->loaded = TRUE;    }    return ( cmap->get_next_char ? cmap->get_next_char( cmap, charcode )                                 : 0 );  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    cff_get_name_index                                                 */  /*                                                                       */  /* <Description>                                                         */  /*    Uses the psnames module and the CFF font's charset to to return a  */  /*    a given glyph name's glyph index.                                  */  /*                                                                       */  /* <Input>                                                               */  /*    face       :: A handle to the source face object.                  */  /*                                                                       */  /*    glyph_name :: The glyph name.                                      */  /*                                                                       */  /* <Return>                                                              */  /*    Glyph index.  0 means `undefined character code'.                  */  /*                                                                       */  static FT_UInt  cff_get_name_index( CFF_Face    face,                      FT_String*  glyph_name )  {    CFF_Font         cff;    CFF_Charset      charset;    PSNames_Service  psnames;    FT_Memory        memory = FT_FACE_MEMORY( face );    FT_String*       name;    FT_UShort        sid;    FT_UInt          i;    FT_Int           result;    cff     = (CFF_FontRec *)face->extra.data;    charset = &cff->charset;    psnames = (PSNames_Service)FT_Get_Module_Interface(                face->root.driver->root.library, "psnames" );    for ( i = 0; i < cff->num_glyphs; i++ )    {      sid = charset->sids[i];      if ( sid > 390 )        name = CFF_Get_Name( &cff->string_index, sid - 391 );      else        name = (FT_String *)psnames->adobe_std_strings( sid );      result = ft_strcmp( glyph_name, name );      if ( sid > 390 )        FT_FREE( name );      if ( !result )        return i;    }    return 0;  }  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /****                                                                 ****/  /****                                                                 ****/  /****                D R I V E R  I N T E R F A C E                   ****/  /****                                                                 ****/  /****                                                                 ****/  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  static FT_Module_Interface  cff_get_interface( CFF_Driver   driver,                     const char*  module_interface )  {    FT_Module  sfnt;#ifndef FT_CONFIG_OPTION_NO_GLYPH_NAMES    if ( ft_strcmp( (const char*)module_interface, "glyph_name" ) == 0 )      return (FT_Module_Interface)cff_get_glyph_name;    if ( ft_strcmp( (const char*)module_interface, "name_index" ) == 0 )      return (FT_Module_Interface)cff_get_name_index;#endif    /* we simply pass our request to the `sfnt' module */    sfnt = FT_Get_Module( driver->root.root.library, "sfnt" );    return sfnt ? sfnt->clazz->get_interface( sfnt, module_interface ) : 0;  }  /* The FT_DriverInterface structure is defined in ftdriver.h. */  FT_CALLBACK_TABLE_DEF  const FT_Driver_ClassRec  cff_driver_class =  {    /* begin with the FT_Module_Class fields */    {      ft_module_font_driver       |      ft_module_driver_scalable   |      ft_module_driver_has_hinter,            sizeof( CFF_DriverRec ),      "cff",      0x10000L,      0x20000L,      0,   /* module-specific interface */      (FT_Module_Constructor)CFF_Driver_Init,      (FT_Module_Destructor) CFF_Driver_Done,      (FT_Module_Requester)  cff_get_interface,    },    /* now the specific driver fields */    sizeof( TT_FaceRec ),    sizeof( FT_SizeRec ),    sizeof( CFF_GlyphSlotRec ),    (FT_Face_InitFunc)        CFF_Face_Init,    (FT_Face_DoneFunc)        CFF_Face_Done,    (FT_Size_InitFunc)        CFF_Size_Init,    (FT_Size_DoneFunc)        CFF_Size_Done,    (FT_Slot_InitFunc)        CFF_GlyphSlot_Init,    (FT_Slot_DoneFunc)        CFF_GlyphSlot_Done,    (FT_Size_ResetPointsFunc) CFF_Size_Reset,    (FT_Size_ResetPixelsFunc) CFF_Size_Reset,    (FT_Slot_LoadFunc)        Load_Glyph,    (FT_CharMap_CharIndexFunc)cff_get_char_index,    (FT_Face_GetKerningFunc)  Get_Kerning,    (FT_Face_AttachFunc)      0,    (FT_Face_GetAdvancesFunc) 0,        (FT_CharMap_CharNextFunc) cff_get_next_char  };/* END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美国产精品v| 国产二区国产一区在线观看| 久久 天天综合| 欧洲精品一区二区三区在线观看| 日韩欧美激情四射| 亚洲一区在线电影| 成人av影视在线观看| 精品剧情在线观看| 亚洲成av人片一区二区梦乃| 成人一道本在线| 精品久久久久久久久久久久久久久| 亚洲欧美日韩在线播放| 国产精品一卡二卡在线观看| 日韩一区二区视频| 亚洲一线二线三线视频| 91久久精品一区二区二区| 国产精品久久久久久久久久久免费看 | 成人美女视频在线观看| 欧美videossexotv100| 日韩专区欧美专区| 欧美精品在线视频| 亚洲一区视频在线观看视频| 在线欧美小视频| 亚洲麻豆国产自偷在线| 99精品欧美一区二区蜜桃免费| 国产亚洲一区字幕| 国产精品影音先锋| 国产校园另类小说区| 国产成人午夜电影网| 国产亚洲精久久久久久| 国产成人在线视频播放| 国产亚洲女人久久久久毛片| 国产一区在线看| 国产亚洲精品超碰| av在线不卡免费看| 亚洲男人的天堂在线aⅴ视频| 99国产精品国产精品久久| 亚洲人妖av一区二区| 色综合久久综合中文综合网| 亚洲自拍偷拍av| 欧美精品电影在线播放| 久久成人18免费观看| 国产午夜精品在线观看| av在线不卡观看免费观看| 曰韩精品一区二区| 欧美一级久久久久久久大片| 久久av中文字幕片| 欧美国产日韩精品免费观看| 91视频观看视频| 亚洲无人区一区| 欧美成人精品高清在线播放| 国产精品一区二区在线观看网站| 国产欧美日韩麻豆91| 91香蕉视频mp4| 亚洲国产日产av| 精品福利二区三区| 99精品黄色片免费大全| 视频在线在亚洲| 国产欧美日韩精品a在线观看| 99re成人精品视频| 日韩av一区二区在线影视| 久久久久久久久久久久久久久99| 91视频精品在这里| 久久www免费人成看片高清| 中文字幕+乱码+中文字幕一区| 欧美无砖砖区免费| 国产自产高清不卡| 一区二区三国产精华液| 精品奇米国产一区二区三区| 91原创在线视频| 久久国产福利国产秒拍| 一区二区三区四区在线免费观看| 日韩三级.com| 91国偷自产一区二区开放时间| 久久精品国产第一区二区三区| 亚洲欧美偷拍卡通变态| 26uuu另类欧美| 欧美综合视频在线观看| 成人开心网精品视频| 美国三级日本三级久久99| 一区二区视频免费在线观看| 国产日韩三级在线| 精品剧情v国产在线观看在线| 欧洲人成人精品| 99视频在线精品| 国产福利一区二区三区视频| 日本中文字幕一区| 一区二区三区色| 中文字幕中文字幕中文字幕亚洲无线| 91精品国产欧美一区二区成人| 99精品黄色片免费大全| 国产成人啪免费观看软件| 日本女人一区二区三区| 香港成人在线视频| 一区二区日韩电影| 亚洲精品中文在线| 国产精品久久久久婷婷| 国产亚洲精品免费| 久久网这里都是精品| 精品国产乱码久久久久久图片| 欧美日本一区二区在线观看| 色噜噜狠狠一区二区三区果冻| 国产精品一卡二| 欧美日韩免费在线视频| 中文字幕在线播放不卡一区| 成人午夜免费电影| 国产精品免费看片| 欧美日韩成人综合| 丰满亚洲少妇av| 国产麻豆一精品一av一免费| 国产成人免费视| 麻豆视频观看网址久久| 免费国产亚洲视频| 久久国产欧美日韩精品| 日韩国产精品久久久久久亚洲| 亚洲一区二区精品视频| 一区二区在线观看视频| 一个色综合网站| 亚洲高清在线精品| 图片区日韩欧美亚洲| 免费成人av在线| 精品一区二区免费视频| 国产一区二区久久| 国产成人亚洲精品青草天美| 成人动漫视频在线| 日本久久一区二区| 欧美色综合网站| 欧美一区二区三区婷婷月色| 欧美电影免费观看高清完整版在 | 激情综合色播激情啊| 国产在线精品视频| 成人激情免费网站| 色婷婷亚洲婷婷| 91精品黄色片免费大全| 久久久久久影视| 中文字幕一区二区三区视频| 亚洲影视资源网| 久久99精品国产麻豆婷婷| 国产成人av一区二区三区在线 | 91精品国产色综合久久 | 欧美电影影音先锋| 精品播放一区二区| 国产精品久久免费看| 亚洲一区视频在线观看视频| 久久草av在线| 91网站黄www| 91麻豆精品国产自产在线| 久久久久久免费网| 亚洲一区在线视频观看| 九色|91porny| 91麻豆国产自产在线观看| 日韩欧美色综合网站| 最新不卡av在线| 久久激五月天综合精品| 一本大道久久a久久综合婷婷| 欧美一二三区精品| 亚洲男同1069视频| 国产精品一二三在| 在线播放亚洲一区| 亚洲天堂精品视频| 狠狠色综合日日| 欧美日韩不卡一区二区| 中文无字幕一区二区三区| 五月综合激情网| 色视频欧美一区二区三区| 久久久久久久电影| 日韩精品国产精品| 91欧美一区二区| 久久久久久久国产精品影院| 日韩精品电影一区亚洲| 91一区二区在线观看| 国产亚洲成aⅴ人片在线观看 | 亚洲免费观看高清完整版在线观看熊| 日本中文在线一区| 欧美中文字幕不卡| 中文字幕中文字幕一区二区| 国产一区在线观看麻豆| 日韩一二三区视频| 亚洲已满18点击进入久久| 99精品欧美一区二区三区小说| 国产亚洲精品久| 久久精品国内一区二区三区| 欧美日韩电影一区| 伊人开心综合网| 91老师国产黑色丝袜在线| 国产精品久久久久久久久快鸭 | 亚洲高清一区二区三区| 91日韩一区二区三区| 国产精品灌醉下药二区| 国产二区国产一区在线观看| 久久久久97国产精华液好用吗| 国产一区二区伦理| 精品剧情在线观看| 久久精品理论片| 2017欧美狠狠色| 国产成人精品三级| 国产亚洲综合性久久久影院| 国产98色在线|日韩| 国产精品久久久爽爽爽麻豆色哟哟 | 在线观看国产一区二区|