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

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

?? ftobjs.c

?? a very goog book
?? C
?? 第 1 頁 / 共 5 頁
字號:
  }  /* documentation is in freetype.h */#ifdef FT_CONFIG_OPTION_USE_CMAPS  FT_EXPORT_DEF( FT_UInt )  FT_Get_Char_Index( FT_Face   face,                     FT_ULong  charcode )  {    FT_UInt  result = 0;    if ( face && face->charmap )    {      FT_CMap  cmap = FT_CMAP( face->charmap );      result = cmap->clazz->char_index( cmap, charcode );    }    return  result;  }#else /* !FT_CONFIG_OPTION_USE_CMAPS */  FT_EXPORT_DEF( FT_UInt )  FT_Get_Char_Index( FT_Face   face,                     FT_ULong  charcode )  {    FT_UInt    result = 0;    FT_Driver  driver;    if ( face && face->charmap )    {      driver = face->driver;      result = driver->clazz->get_char_index( face->charmap, charcode );    }    return result;  }#endif /* !FT_CONFIG_OPTION_USE_CMAPS */  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_ULong )  FT_Get_First_Char( FT_Face   face,                     FT_UInt  *agindex )  {    FT_ULong  result = 0;    FT_UInt   gindex = 0;    if ( face && face->charmap )    {      gindex = FT_Get_Char_Index( face, 0 );      if ( gindex == 0 )        result = FT_Get_Next_Char( face, 0, &gindex );    }    if ( agindex  )      *agindex = gindex;    return result;  }  /* documentation is in freetype.h */#ifdef FT_CONFIG_OPTION_USE_CMAPS  FT_EXPORT_DEF( FT_ULong )  FT_Get_Next_Char( FT_Face   face,                    FT_ULong  charcode,                    FT_UInt  *agindex )  {    FT_ULong  result = 0;    FT_UInt   gindex = 0;    if ( face && face->charmap )    {      FT_UInt32  code = (FT_UInt32)charcode;      FT_CMap    cmap = FT_CMAP( face->charmap );      gindex = cmap->clazz->char_next( cmap, &code );      result = ( gindex == 0 ) ? 0 : code;    }    if ( agindex )      *agindex = gindex;    return result;  }#else /* !FT_CONFIG_OPTION_USE_CMAPS */  FT_EXPORT_DEF( FT_ULong )  FT_Get_Next_Char( FT_Face   face,                    FT_ULong  charcode,                    FT_UInt  *agindex )  {    FT_ULong   result = 0;    FT_UInt    gindex = 0;    FT_Driver  driver;    if ( face && face->charmap )    {      driver = face->driver;      result = driver->clazz->get_next_char( face->charmap, charcode );      if ( result != 0 )      {        gindex = driver->clazz->get_char_index( face->charmap, result );        if ( gindex == 0 )          result = 0;      }    }    if ( agindex )      *agindex = gindex;    return result;  }#endif /* !FT_CONFIG_OPTION_USE_CMAPS */  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_UInt )  FT_Get_Name_Index( FT_Face     face,                     FT_String*  glyph_name )  {    FT_UInt  result = 0;    if ( face && FT_HAS_GLYPH_NAMES( face ) )    {      /* now, lookup for glyph name */      FT_Driver         driver = face->driver;      FT_Module_Class*  clazz  = FT_MODULE_CLASS( driver );      if ( clazz->get_interface )      {        FT_Face_GetGlyphNameIndexFunc  requester;        requester = (FT_Face_GetGlyphNameIndexFunc)clazz->get_interface(                      FT_MODULE( driver ), "name_index" );        if ( requester )          result = requester( face, glyph_name );      }    }    return result;  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( FT_Error )  FT_Get_Glyph_Name( FT_Face     face,                     FT_UInt     glyph_index,                     FT_Pointer  buffer,                     FT_UInt     buffer_max )  {    FT_Error  error = FT_Err_Invalid_Argument;    /* clean up buffer */    if ( buffer && buffer_max > 0 )      ((FT_Byte*)buffer)[0] = 0;    if ( face                                     &&         glyph_index <= (FT_UInt)face->num_glyphs &&         FT_HAS_GLYPH_NAMES( face )               )    {      /* now, lookup for glyph name */      FT_Driver         driver = face->driver;      FT_Module_Class*  clazz  = FT_MODULE_CLASS( driver );      if ( clazz->get_interface )      {        FT_Face_GetGlyphNameFunc  requester;        requester = (FT_Face_GetGlyphNameFunc)clazz->get_interface(                      FT_MODULE( driver ), "glyph_name" );        if ( requester )          error = requester( face, glyph_index, buffer, buffer_max );      }    }    return error;  }  /* documentation is in freetype.h */  FT_EXPORT_DEF( const char* )  FT_Get_Postscript_Name( FT_Face  face )  {    const char*  result = NULL;    if ( !face )      goto Exit;    result = face->internal->postscript_name;    if ( !result )    {      /* now, look up glyph name */      FT_Driver         driver = face->driver;      FT_Module_Class*  clazz  = FT_MODULE_CLASS( driver );      if ( clazz->get_interface )      {        FT_Face_GetPostscriptNameFunc  requester;        requester = (FT_Face_GetPostscriptNameFunc)clazz->get_interface(                      FT_MODULE( driver ), "postscript_name" );        if ( requester )          result = requester( face );      }    }  Exit:    return result;  }  /* documentation is in tttables.h */  FT_EXPORT_DEF( void* )  FT_Get_Sfnt_Table( FT_Face      face,                     FT_Sfnt_Tag  tag )  {    void*                   table = 0;    FT_Get_Sfnt_Table_Func  func;    FT_Driver               driver;    if ( !face || !FT_IS_SFNT( face ) )      goto Exit;    driver = face->driver;    func = (FT_Get_Sfnt_Table_Func)driver->root.clazz->get_interface(                                     FT_MODULE( driver ), "get_sfnt" );    if ( func )      table = func( face, tag );  Exit:    return table;  }  FT_EXPORT_DEF( FT_Error )  FT_Activate_Size( FT_Size  size )  {    FT_Face  face;    if ( size == NULL )      return FT_Err_Bad_Argument;    face = size->face;    if ( face == NULL || face->driver == NULL )      return FT_Err_Bad_Argument;    /* we don't need anything more complex than that; all size objects */    /* are already listed by the face                                  */    face->size = size;    return FT_Err_Ok;  }  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /****                                                                 ****/  /****                                                                 ****/  /****                        R E N D E R E R S                        ****/  /****                                                                 ****/  /****                                                                 ****/  /*************************************************************************/  /*************************************************************************/  /*************************************************************************/  /* lookup a renderer by glyph format in the library's list */  FT_BASE_DEF( FT_Renderer )  FT_Lookup_Renderer( FT_Library       library,                      FT_Glyph_Format  format,                      FT_ListNode*     node )  {    FT_ListNode  cur;    FT_Renderer  result = 0;    if ( !library )      goto Exit;    cur = library->renderers.head;    if ( node )    {      if ( *node )        cur = (*node)->next;      *node = 0;    }    while ( cur )    {      FT_Renderer  renderer = FT_RENDERER( cur->data );      if ( renderer->glyph_format == format )      {        if ( node )          *node = cur;        result = renderer;        break;      }      cur = cur->next;    }  Exit:    return result;  }  static FT_Renderer  ft_lookup_glyph_renderer( FT_GlyphSlot  slot )  {    FT_Face      face    = slot->face;    FT_Library   library = FT_FACE_LIBRARY( face );    FT_Renderer  result  = library->cur_renderer;    if ( !result || result->glyph_format != slot->format )      result = FT_Lookup_Renderer( library, slot->format, 0 );    return result;  }  static void  ft_set_current_renderer( FT_Library  library )  {    FT_Renderer  renderer;    renderer = FT_Lookup_Renderer( library, ft_glyph_format_outline, 0 );    library->cur_renderer = renderer;  }  static FT_Error  ft_add_renderer( FT_Module  module )  {    FT_Library   library = module->library;    FT_Memory    memory  = library->memory;    FT_Error     error;    FT_ListNode  node;    if ( FT_NEW( node ) )      goto Exit;    {      FT_Renderer         render = FT_RENDERER( module );      FT_Renderer_Class*  clazz  = (FT_Renderer_Class*)module->clazz;      render->clazz        = clazz;      render->glyph_format = clazz->glyph_format;      /* allocate raster object if needed */      if ( clazz->glyph_format == ft_glyph_format_outline &&           clazz->raster_class->raster_new )      {        error = clazz->raster_class->raster_new( memory, &render->raster );        if ( error )          goto Fail;        render->raster_render = clazz->raster_class->raster_render;        render->render        = clazz->render_glyph;      }      /* add to list */      node->data = module;      FT_List_Add( &library->renderers, node );      ft_set_current_renderer( library );    }  Fail:    if ( error )      FT_FREE( node );  Exit:    return error;  }  static void  ft_remove_renderer( FT_Module  module )  {    FT_Library   library = module->library;    FT_Memory    memory  = library->memory;    FT_ListNode  node;    node = FT_List_Find( &library->renderers, module );    if ( node )    {      FT_Renderer  render = FT_RENDERER( module );      /* release raster object, if any */      if ( render->raster )        render->clazz->raster_class->raster_done( render->raster );      /* remove from list */      FT_List_Remove( &library->renderers, node );      FT_FREE( node );      ft_set_current_renderer( library );    }  }  /* documentation is in ftrender.h */  FT_EXPORT_DEF( FT_Renderer )  FT_Get_Renderer( FT_Library       library,                   FT_Glyph_Format  format )  {    /* test for valid `library' delayed to FT_Lookup_Renderer() */    return FT_Lookup_Renderer( library, format, 0 );  }  /* documentation is in ftrender.h */  FT_EXPORT_DEF( FT_Error )  FT_Set_Renderer( FT_Library     library,                   FT_Renderer    renderer,                   FT_UInt        num_params,                   FT_Parameter*  parameters )  {    FT_ListNode  node;    FT_Error     error = FT_Err_Ok;    if ( !library )      return FT_Err_Invalid_Library_Handle;    if ( !renderer )      return FT_Err_Invalid_Argument;    node = FT_List_Find( &library->renderers, renderer );    if ( !node )    {      error = FT_Err_Invalid_Argument;      goto Exit;    }    FT_List_Up( &library->renderers, node );    if ( renderer->glyph_format == ft_glyph_format_outline )      library->cur_renderer = renderer;    if ( num_params > 0 )    {      FTRenderer_setMode  set_mode = renderer->clazz->set_mode;      for ( ; num_params > 0; num_params-- )      {        error = set_mode( renderer, parameters->tag, parameters->data );        if ( error )          break;      }    }  Exit:    return error;  }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日日摸夜夜添夜夜添精品视频| 欧美久久一区二区| 精品sm捆绑视频| 蜜桃视频在线观看一区| 精品美女一区二区| 国产一区二区在线观看视频| 日韩久久久久久| 精品一区二区免费| 国产亚洲成年网址在线观看| 国产不卡免费视频| 中文字幕一区二区三区在线不卡| 一本久久精品一区二区| 亚洲一区中文在线| 日韩一区二区在线观看视频| 国产一区视频在线看| 国产精品欧美一区喷水| 欧美性受xxxx黑人xyx性爽| 伊人一区二区三区| 宅男噜噜噜66一区二区66| 久久99在线观看| 日韩三级中文字幕| 国产一区二区久久| 国产精品免费av| 成人国产精品免费网站| 一区二区三区在线观看网站| 日韩亚洲国产中文字幕欧美| 国产成人免费视频网站高清观看视频| 国产精品二三区| 欧美一区二区三区视频免费播放 | 国产综合久久久久久久久久久久| 国产午夜精品一区二区三区嫩草| 色悠久久久久综合欧美99| 日本中文字幕不卡| 国产女人水真多18毛片18精品视频 | 麻豆freexxxx性91精品| 国产精品久久精品日日| 欧美日本不卡视频| 国产福利一区在线观看| 亚洲国产欧美一区二区三区丁香婷| 欧美不卡在线视频| gogo大胆日本视频一区| 天堂va蜜桃一区二区三区| 国产精品久久久久久久久晋中| 欧美色涩在线第一页| 国产精品中文字幕日韩精品 | 欧美日本免费一区二区三区| 精品夜夜嗨av一区二区三区| 一区二区三区中文字幕| 2023国产精品自拍| 色吊一区二区三区| 成人性生交大片免费| 蜜臀久久99精品久久久久久9| 日韩电影免费在线看| 91搞黄在线观看| 国产aⅴ精品一区二区三区色成熟| 欧美日本国产视频| 久久国产乱子精品免费女| 99re这里都是精品| 亚洲综合在线第一页| 欧美视频三区在线播放| 亚洲一级二级在线| 91精品国产综合久久精品 | 日本黄色一区二区| 中文字幕一区在线观看视频| 欧美电视剧免费全集观看| 91麻豆免费视频| 国产激情偷乱视频一区二区三区| 自拍视频在线观看一区二区| 国产视频911| 久久久久综合网| 精品精品国产高清一毛片一天堂| 欧美浪妇xxxx高跟鞋交| 欧美亚洲精品一区| 欧美性欧美巨大黑白大战| 91网站最新地址| 99久久精品国产麻豆演员表| 成人毛片视频在线观看| 成人午夜又粗又硬又大| 国产成人免费视频网站高清观看视频| 亚洲一区二区黄色| 亚洲综合丝袜美腿| 亚洲一区二区美女| 午夜成人免费电影| 欧美aaa在线| 青青青爽久久午夜综合久久午夜| 免费看黄色91| 久久99精品久久久久| 蜜臀av性久久久久蜜臀aⅴ流畅| 午夜精品久久一牛影视| 亚洲精品亚洲人成人网| 亚洲精品大片www| 亚洲一区二区三区视频在线播放| 一区二区三区中文在线观看| 一区二区三区在线免费观看 | 久久久久久电影| 国产人久久人人人人爽| 中文字幕第一区第二区| 国产精品日日摸夜夜摸av| 国产精品对白交换视频| 午夜视频一区二区三区| 美女在线观看视频一区二区| 国产一区二区不卡老阿姨| 成人综合日日夜夜| 欧美综合天天夜夜久久| 69久久夜色精品国产69蝌蚪网| 欧美mv日韩mv亚洲| 中文字幕日本乱码精品影院| 亚洲国产一区二区在线播放| 美女国产一区二区| 粉嫩高潮美女一区二区三区| 欧洲精品在线观看| 欧美v日韩v国产v| 国产精品免费免费| 中文字幕第一区二区| 国产女人18毛片水真多成人如厕| 91国内精品野花午夜精品| 91丝袜美腿高跟国产极品老师 | 性欧美大战久久久久久久久| 亚洲女同一区二区| 综合久久一区二区三区| 久久免费午夜影院| 亚洲精品精品亚洲| 一区二区三区在线观看欧美| 亚洲国产人成综合网站| 亚洲欧美日本韩国| 久久丁香综合五月国产三级网站| 久久99深爱久久99精品| 国产精选一区二区三区| 91传媒视频在线播放| 在线观看av不卡| 欧美日韩精品三区| 91精品久久久久久久99蜜桃| 中文字幕日本乱码精品影院| 亚洲精品乱码久久久久| 亚洲黄色免费电影| 日本系列欧美系列| 国产成人av电影在线观看| 色综合网色综合| 欧美二区在线观看| 在线看国产一区二区| 欧美一区二区三区四区高清| 一区二区三区在线观看国产| 日本不卡一区二区| 国产在线精品免费| 亚洲成va人在线观看| 99久久精品国产导航| 欧美日韩国产综合一区二区三区 | 美腿丝袜亚洲综合| 国产一区二区免费视频| 99国产精品久久久久久久久久 | 国产精品一区三区| 日韩欧美一区二区视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 91在线观看下载| 国产成人亚洲综合a∨婷婷图片 | 欧美午夜免费电影| 欧美大片一区二区| 中文字幕日本不卡| 极品尤物av久久免费看| 国产精品一区免费在线观看| 欧美精品一区二| 成人免费一区二区三区视频| 日韩影视精彩在线| 亚洲va国产va欧美va观看| 日本道色综合久久| 久久男人中文字幕资源站| 一区二区三区在线免费视频| 色综合久久久久久久久久久| 日韩一区二区在线播放| 欧美激情在线观看视频免费| 91精品婷婷国产综合久久性色| 国产午夜亚洲精品不卡| 日本美女一区二区三区视频| 伊人性伊人情综合网| 国产成人午夜精品影院观看视频| 欧美图区在线视频| 国产一区二区精品久久| 日本一区二区成人| 日本成人中文字幕在线视频| www.欧美日韩| 一区二区三区中文字幕| 国产精品一二三四五| 777色狠狠一区二区三区| 日韩有码一区二区三区| 在线视频中文字幕一区二区| 国产网站一区二区| 91精品午夜视频| 国产乱码精品一品二品| 日韩小视频在线观看专区| 国产色综合一区| 色综合中文综合网| www.日本不卡| 国产日韩欧美麻豆| 麻豆一区二区99久久久久| 久久久午夜精品理论片中文字幕| 亚洲mv大片欧洲mv大片精品| 在线看国产一区二区| av一区二区不卡| 亚洲成av人片在线观看| 欧美午夜一区二区三区|