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

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

?? cffcmap.c

?? 智能設(shè)備中PDF閱讀器的源碼!用于windows mobile2003或者WM5以上
?? C
字號(hào):
/***************************************************************************/
/*                                                                         */
/*  cffcmap.c                                                              */
/*                                                                         */
/*    CFF character mapping table (cmap) support (body).                   */
/*                                                                         */
/*  Copyright 2002, 2003, 2004, 2005, 2006 by                              */
/*  David Turner, Robert Wilhelm, and Werner Lemberg.                      */
/*                                                                         */
/*  This file is part of the FreeType project, and may only be used,       */
/*  modified, and distributed under the terms of the FreeType project      */
/*  license, LICENSE.TXT.  By continuing to use, modify, or distribute     */
/*  this file you indicate that you have read the license and              */
/*  understand and accept it fully.                                        */
/*                                                                         */
/***************************************************************************/


#include "cffcmap.h"
#include "cffload.h"

#include "cfferrs.h"


  /*************************************************************************/
  /*************************************************************************/
  /*****                                                               *****/
  /*****           CFF STANDARD (AND EXPERT) ENCODING CMAPS            *****/
  /*****                                                               *****/
  /*************************************************************************/
  /*************************************************************************/

  FT_CALLBACK_DEF( FT_Error )
  cff_cmap_encoding_init( CFF_CMapStd  cmap )
  {
    TT_Face       face     = (TT_Face)FT_CMAP_FACE( cmap );
    CFF_Font      cff      = (CFF_Font)face->extra.data;
    CFF_Encoding  encoding = &cff->encoding;


    cmap->gids  = encoding->codes;

    return 0;
  }


  FT_CALLBACK_DEF( void )
  cff_cmap_encoding_done( CFF_CMapStd  cmap )
  {
    cmap->gids  = NULL;
  }


  FT_CALLBACK_DEF( FT_UInt )
  cff_cmap_encoding_char_index( CFF_CMapStd  cmap,
                                FT_UInt32    char_code )
  {
    FT_UInt  result = 0;


    if ( char_code < 256 )
      result = cmap->gids[char_code];

    return result;
  }


  FT_CALLBACK_DEF( FT_UInt )
  cff_cmap_encoding_char_next( CFF_CMapStd   cmap,
                               FT_UInt32    *pchar_code )
  {
    FT_UInt    result    = 0;
    FT_UInt32  char_code = *pchar_code;


    *pchar_code = 0;

    if ( char_code < 255 )
    {
      FT_UInt  code = (FT_UInt)(char_code + 1);


      for (;;)
      {
        if ( code >= 256 )
          break;

        result = cmap->gids[code];
        if ( result != 0 )
        {
          *pchar_code = code;
          break;
        }

        code++;
      }
    }
    return result;
  }


  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
  cff_cmap_encoding_class_rec =
  {
    sizeof ( CFF_CMapStdRec ),

    (FT_CMap_InitFunc)     cff_cmap_encoding_init,
    (FT_CMap_DoneFunc)     cff_cmap_encoding_done,
    (FT_CMap_CharIndexFunc)cff_cmap_encoding_char_index,
    (FT_CMap_CharNextFunc) cff_cmap_encoding_char_next
  };


  /*************************************************************************/
  /*************************************************************************/
  /*****                                                               *****/
  /*****              CFF SYNTHETIC UNICODE ENCODING CMAP              *****/
  /*****                                                               *****/
  /*************************************************************************/
  /*************************************************************************/

  FT_CALLBACK_DEF( const char* )
  cff_sid_to_glyph_name( CFF_Font  cff,
                         FT_UInt   idx )
  {
    CFF_Charset         charset = &cff->charset;
    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)cff->psnames;
    FT_UInt             sid     = charset->sids[idx];


    return cff_index_get_sid_string( &cff->string_index, sid, psnames );
  }


  FT_CALLBACK_DEF( FT_Error )
  cff_cmap_unicode_init( PS_Unicodes  unicodes )
  {
    TT_Face             face    = (TT_Face)FT_CMAP_FACE( unicodes );
    FT_Memory           memory  = FT_FACE_MEMORY( face );
    CFF_Font            cff     = (CFF_Font)face->extra.data;
    CFF_Charset         charset = &cff->charset;
    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)cff->psnames;


    /* can't build Unicode map for CID-keyed font */
    if ( !charset->sids )
      return CFF_Err_Invalid_Argument;

    return psnames->unicodes_init( memory,
                                   unicodes,
                                   cff->num_glyphs,
                                   (PS_Glyph_NameFunc)&cff_sid_to_glyph_name,
                                   (FT_Pointer)cff );
  }


  FT_CALLBACK_DEF( void )
  cff_cmap_unicode_done( PS_Unicodes  unicodes )
  {
    FT_Face    face   = FT_CMAP_FACE( unicodes );
    FT_Memory  memory = FT_FACE_MEMORY( face );


    FT_FREE( unicodes->maps );
    unicodes->num_maps = 0;
  }


  FT_CALLBACK_DEF( FT_UInt )
  cff_cmap_unicode_char_index( PS_Unicodes  unicodes,
                               FT_UInt32    char_code )
  {
    TT_Face             face    = (TT_Face)FT_CMAP_FACE( unicodes );
    CFF_Font            cff     = (CFF_Font)face->extra.data;
    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)cff->psnames;


    return psnames->unicodes_char_index( unicodes, char_code );
  }


  FT_CALLBACK_DEF( FT_UInt )
  cff_cmap_unicode_char_next( PS_Unicodes  unicodes,
                              FT_UInt32   *pchar_code )
  {
    TT_Face             face    = (TT_Face)FT_CMAP_FACE( unicodes );
    CFF_Font            cff     = (CFF_Font)face->extra.data;
    FT_Service_PsCMaps  psnames = (FT_Service_PsCMaps)cff->psnames;


    return psnames->unicodes_char_next( unicodes, pchar_code );
  }


  FT_CALLBACK_TABLE_DEF const FT_CMap_ClassRec
  cff_cmap_unicode_class_rec =
  {
    sizeof ( PS_UnicodesRec ),

    (FT_CMap_InitFunc)     cff_cmap_unicode_init,
    (FT_CMap_DoneFunc)     cff_cmap_unicode_done,
    (FT_CMap_CharIndexFunc)cff_cmap_unicode_char_index,
    (FT_CMap_CharNextFunc) cff_cmap_unicode_char_next
  };


/* END */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
免费观看在线综合| 成人一区在线看| 国产精品欧美精品| 欧美日产在线观看| 成人不卡免费av| 麻豆精品蜜桃视频网站| 亚洲乱码中文字幕| 国产欧美一区二区精品秋霞影院| 欧美亚洲禁片免费| va亚洲va日韩不卡在线观看| 裸体一区二区三区| 午夜精品久久久久久久99水蜜桃 | 欧美日韩午夜在线视频| 成人精品高清在线| 国产精品影视在线观看| 毛片不卡一区二区| 日韩在线观看一区二区| 亚洲乱码国产乱码精品精小说 | 欧美精品一区二区蜜臀亚洲| 精品视频在线免费看| 不卡电影一区二区三区| 国产精品中文字幕欧美| 免费看黄色91| 日本不卡的三区四区五区| 亚洲一区二区免费视频| 亚洲三级电影网站| 1024成人网色www| 国产精品美女视频| 国产欧美精品区一区二区三区 | 日韩欧美另类在线| 欧美日韩国产另类一区| 欧美在线观看视频在线| 在线观看国产一区二区| 欧美亚洲一区二区在线| 欧美性xxxxxxxx| 91豆麻精品91久久久久久| 色素色在线综合| 一本大道久久a久久精品综合| 不卡高清视频专区| 91免费版在线| 在线视频国产一区| 在线看日韩精品电影| 色屁屁一区二区| 欧美在线观看一区| 91精品国产丝袜白色高跟鞋| 欧美精品一二三四| 91精品国产麻豆| 日韩亚洲欧美成人一区| 日韩精品自拍偷拍| 精品少妇一区二区三区免费观看| 精品国产一区二区三区不卡 | 日韩欧美国产高清| 久久综合狠狠综合久久综合88| 日韩欧美国产综合一区 | 欧美aaaaa成人免费观看视频| 日日噜噜夜夜狠狠视频欧美人 | 国产精品资源网| 成人免费高清视频| 欧美在线免费观看视频| 91精品婷婷国产综合久久性色 | 精品视频1区2区| 4438x亚洲最大成人网| 精品国产一区二区三区忘忧草| 久久久久国产精品麻豆ai换脸| 中文字幕欧美三区| 一区二区三区国产豹纹内裤在线| 午夜欧美在线一二页| 免费高清不卡av| 成人黄页毛片网站| 欧美午夜精品一区二区蜜桃| 欧美一区二区在线播放| 国产午夜精品福利| 亚洲自拍偷拍综合| 捆绑调教美女网站视频一区| 成人精品在线视频观看| 欧美日韩精品一区二区三区| 精品国产电影一区二区| 亚洲欧美色综合| 日韩电影一二三区| 国产iv一区二区三区| 欧美亚洲国产bt| 久久久精品黄色| 午夜精品福利视频网站| 高清免费成人av| 在线电影欧美成精品| 欧美韩日一区二区三区四区| 午夜影院在线观看欧美| 福利一区福利二区| 欧美日韩不卡在线| 中文字幕中文字幕在线一区 | 久久九九久久九九| 亚洲电影在线播放| 成人av资源在线| 日韩一卡二卡三卡国产欧美| 一区二区中文视频| 久久不见久久见免费视频1| 在线欧美日韩精品| 中文字幕不卡在线观看| 免费日本视频一区| 色狠狠综合天天综合综合| 国产亚洲人成网站| 日本sm残虐另类| 欧美自拍丝袜亚洲| 亚洲欧洲日韩av| 国产成人av一区二区三区在线| 欧美日韩国产精品成人| 亚洲精品精品亚洲| jvid福利写真一区二区三区| 欧美精品一区二区三区蜜臀| 午夜a成v人精品| 欧洲另类一二三四区| 国产精品麻豆视频| 国产精品一线二线三线| 欧美成人a在线| 日韩不卡一二三区| 欧美日韩中文精品| 亚洲综合一区二区| 91美女在线看| 综合分类小说区另类春色亚洲小说欧美| 精品中文av资源站在线观看| 欧美精品欧美精品系列| 亚洲一区二区视频在线观看| 91免费在线视频观看| 中文字幕一区二区三区av| 国产成人av一区二区三区在线| 久久综合网色—综合色88| 日本午夜精品视频在线观看| 欧美视频一区二区| 亚洲五码中文字幕| 欧美网站一区二区| 亚洲国产综合色| 色婷婷亚洲一区二区三区| 综合中文字幕亚洲| 色88888久久久久久影院按摩| 亚洲免费观看视频| 在线亚洲免费视频| 天堂一区二区在线| 91精品国产一区二区三区蜜臀| 青青青爽久久午夜综合久久午夜| 欧美日韩高清一区二区三区| 丝袜美腿亚洲一区二区图片| 欧美一区二区三区四区五区| 免费看黄色91| 国产亚洲成av人在线观看导航| 国产精品亚洲成人| 国产精品久久久久婷婷| 91网页版在线| 亚洲国产三级在线| 欧美一区二区性放荡片| 国产美女视频91| 国产精品欧美极品| 色婷婷综合久色| 午夜国产精品一区| 亚洲精品在线电影| 成人美女在线视频| 亚洲综合偷拍欧美一区色| 亚洲午夜影视影院在线观看| 欧美成人综合网站| 欧美自拍丝袜亚洲| 经典三级视频一区| 亚洲电影一区二区三区| 在线成人免费视频| 亚洲午夜一二三区视频| 日韩一区二区在线看| 国产精品系列在线观看| 自拍偷拍国产亚洲| 欧美群妇大交群的观看方式| 国产专区综合网| 亚洲人成人一区二区在线观看| 欧美天天综合网| 久久超级碰视频| 亚洲天堂免费看| 欧美一级一级性生活免费录像| 国产精品亚洲一区二区三区在线 | 美美哒免费高清在线观看视频一区二区| 精品国产乱码久久久久久免费| 粉嫩aⅴ一区二区三区四区| 亚洲精品综合在线| 欧美不卡一区二区| 91在线播放网址| 蜜桃av一区二区| 一区二区三区四区在线播放| 日韩欧美一级二级三级| 色婷婷综合中文久久一本| 欧美日韩精品一区二区天天拍小说| 欧美麻豆精品久久久久久| 中文字幕不卡一区| 韩国三级中文字幕hd久久精品| 在线观看中文字幕不卡| 欧美精品一区二区三区在线播放| 香蕉成人伊视频在线观看| 久久久99精品免费观看不卡| 色乱码一区二区三区88| 黄色成人免费在线| 亚洲午夜在线视频| 中文字幕中文字幕在线一区| 精品免费一区二区三区| 欧美视频完全免费看| 99精品欧美一区二区蜜桃免费| 蜜臀av一区二区|