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

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

?? cidriver.c

?? a very goog book
?? C
字號:
/***************************************************************************//*                                                                         *//*  cidriver.c                                                             *//*                                                                         *//*    CID driver interface (body).                                         *//*                                                                         *//*  Copyright 1996-2001, 2002 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 <ft2build.h>#include "cidriver.h"#include "cidgload.h"#include FT_INTERNAL_DEBUG_H#include FT_INTERNAL_STREAM_H#include FT_INTERNAL_POSTSCRIPT_NAMES_H#include "ciderrs.h"  /*************************************************************************/  /*                                                                       */  /* The macro FT_COMPONENT is used in trace mode.  It is an implicit      */  /* parameter of the FT_TRACE() and FT_ERROR() macros, used to print/log  */  /* messages during execution.                                            */  /*                                                                       */#undef  FT_COMPONENT#define FT_COMPONENT  trace_ciddriver  static const char*  cid_get_postscript_name( CID_Face  face )  {    const char*  result = face->cid.cid_font_name;        if ( result && result[0] == '/' )      result++;          return result;  }  static FT_Module_Interface  CID_Get_Interface( FT_Driver         driver,                     const FT_String*  cid_interface )  {    FT_UNUSED( driver );    FT_UNUSED( cid_interface );    if ( ft_strcmp( (const char*)cid_interface, "postscript_name" ) == 0 )      return (FT_Module_Interface)cid_get_postscript_name;    return 0;  }#if 0 /* unimplemented yet */  static FT_Error  cid_Get_Kerning( T1_Face     face,                   FT_UInt     left_glyph,                   FT_UInt     right_glyph,                   FT_Vector*  kerning )  {    CID_AFM*  afm;    kerning->x = 0;    kerning->y = 0;    afm = (CID_AFM*)face->afm_data;    if ( afm )      CID_Get_Kerning( afm, left_glyph, right_glyph, kerning );    return CID_Err_Ok;  }#endif /* 0 */  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    Cid_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  CID_Get_Char_Index( FT_CharMap  charmap,                      FT_Long     charcode )  {    T1_Face          face;    FT_UInt          result = 0;    PSNames_Service  psnames;    face = (T1_Face)charmap->face;    psnames = (PSNames_Service)face->psnames;    if ( psnames )      switch ( charmap->encoding )      {        /*******************************************************************/        /*                                                                 */        /* Unicode encoding support                                        */        /*                                                                 */      case ft_encoding_unicode:        /* use the `PSNames' module to synthetize the Unicode charmap */        result = psnames->lookup_unicode( &face->unicode_map,                                          (FT_ULong)charcode );        /* the function returns 0xFFFF if the Unicode charcode has */        /* no corresponding glyph.                                 */        if ( result == 0xFFFF )          result = 0;        goto Exit;        /*******************************************************************/        /*                                                                 */        /* Custom Type 1 encoding                                          */        /*                                                                 */      case ft_encoding_adobe_custom:        {          T1_Encoding  encoding = &face->type1.encoding;          if ( charcode >= encoding->code_first &&               charcode <= encoding->code_last  )            result = encoding->char_index[charcode];          goto Exit;        }        /*******************************************************************/        /*                                                                 */        /* Adobe Standard & Expert encoding support                        */        /*                                                                 */      default:        if ( charcode < 256 )        {          FT_UInt      code;          FT_Int       n;          const char*  glyph_name;          code = psnames->adobe_std_encoding[charcode];          if ( charmap->encoding == ft_encoding_adobe_expert )            code = psnames->adobe_expert_encoding[charcode];          glyph_name = psnames->adobe_std_strings( code );          if ( !glyph_name )            break;          for ( n = 0; n < face->type1.num_glyphs; n++ )          {            const char*  gname = face->type1.glyph_names[n];            if ( gname && gname[0] == glyph_name[0] &&                 ft_strcmp( gname, glyph_name ) == 0   )            {              result = n;              break;            }          }        }      }  Exit:    return result;  }  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    Cid_Get_Next_Char                                                  */  /*                                                                       */  /* <Description>                                                         */  /*    Uses a charmap to return the next encoded char after.              */  /*                                                                       */  /* <Input>                                                               */  /*    charmap  :: A handle to the source charmap object.                 */  /*                                                                       */  /*    charcode :: The character code.                                    */  /*                                                                       */  /* <Return>                                                              */  /*    Next char code.  0 means `no more char codes'.                     */  /*                                                                       */  static FT_Long  CID_Get_Next_Char( FT_CharMap  charmap,                     FT_Long     charcode )  {    T1_Face          face;    PSNames_Service  psnames;    face    = (T1_Face)charmap->face;    psnames = (PSNames_Service)face->psnames;    if ( psnames )      switch ( charmap->encoding )      {        /*******************************************************************/        /*                                                                 */        /* Unicode encoding support                                        */        /*                                                                 */      case ft_encoding_unicode:        /* use the `PSNames' module to synthetize the Unicode charmap */        return psnames->next_unicode (&face->unicode_map,                                      (FT_ULong)charcode );        /*******************************************************************/        /*                                                                 */        /* Custom Type 1 encoding                                          */        /*                                                                 */      case ft_encoding_adobe_custom:        {          T1_Encoding  encoding = &face->type1.encoding;          charcode++;          if ( charcode < encoding->code_first )            charcode = encoding->code_first;          while ( charcode <= encoding->code_last )          {            if ( encoding->char_index[charcode] )              return charcode;            charcode++;          }        }        break;        /*******************************************************************/        /*                                                                 */        /* Adobe Standard & Expert encoding support                        */        /*                                                                 */      default:        while ( ++charcode < 256 )        {          FT_UInt      code;          FT_Int       n;          const char*  glyph_name;          code = psnames->adobe_std_encoding[charcode];          if ( charmap->encoding == ft_encoding_adobe_expert )            code = psnames->adobe_expert_encoding[charcode];          glyph_name = psnames->adobe_std_strings( code );          if ( !glyph_name )            continue;          for ( n = 0; n < face->type1.num_glyphs; n++ )          {            const char*  gname = face->type1.glyph_names[n];            if ( gname && gname[0] == glyph_name[0] &&                 ft_strcmp( gname, glyph_name ) == 0   )            {              return charcode;            }          }        }      }    return 0;  }  FT_CALLBACK_TABLE_DEF  const FT_Driver_ClassRec  t1cid_driver_class =  {    /* first of all, the FT_Module_Class fields */    {      ft_module_font_driver       |      ft_module_driver_scalable   |      ft_module_driver_has_hinter ,            sizeof( FT_DriverRec ),      "t1cid",   /* module name           */      0x10000L,  /* version 1.0 of driver */      0x20000L,  /* requires FreeType 2.0 */      0,      (FT_Module_Constructor)CID_Driver_Init,      (FT_Module_Destructor) CID_Driver_Done,      (FT_Module_Requester)  CID_Get_Interface    },    /* then the other font drivers fields */    sizeof( CID_FaceRec ),    sizeof( CID_SizeRec ),    sizeof( CID_GlyphSlotRec ),    (FT_Face_InitFunc)        CID_Face_Init,    (FT_Face_DoneFunc)        CID_Face_Done,    (FT_Size_InitFunc)        CID_Size_Init,    (FT_Size_DoneFunc)        CID_Size_Done,    (FT_Slot_InitFunc)        CID_GlyphSlot_Init,    (FT_Slot_DoneFunc)        CID_GlyphSlot_Done,    (FT_Size_ResetPointsFunc) CID_Size_Reset,    (FT_Size_ResetPixelsFunc) CID_Size_Reset,    (FT_Slot_LoadFunc)        CID_Load_Glyph,    (FT_CharMap_CharIndexFunc)CID_Get_Char_Index,    (FT_Face_GetKerningFunc)  0,    (FT_Face_AttachFunc)      0,    (FT_Face_GetAdvancesFunc) 0,        (FT_CharMap_CharNextFunc) CID_Get_Next_Char  };/* END */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲激情自拍偷拍| 国产精品自拍av| 国产在线播放一区| 色网站国产精品| 2022国产精品视频| 亚洲精品福利视频网站| 激情偷乱视频一区二区三区| 91色.com| 国产欧美日韩精品a在线观看| 亚洲国产精品尤物yw在线观看| 国产精品亚洲第一区在线暖暖韩国 | 国产91富婆露脸刺激对白| 欧美视频在线一区| 国产精品第13页| 国内精品视频666| 欧美亚州韩日在线看免费版国语版| 久久综合999| 人人精品人人爱| 欧美久久免费观看| 一区二区三区在线视频免费观看| 国产伦精品一区二区三区免费| 欧美日韩一区成人| 亚洲午夜一二三区视频| 91色porny蝌蚪| 国产精品麻豆一区二区| 国产福利一区在线| 久久嫩草精品久久久精品一| 免费在线视频一区| 91精品午夜视频| 午夜精品一区二区三区三上悠亚| 91视频在线观看| 亚洲同性同志一二三专区| 波多野结衣亚洲一区| 国产日韩影视精品| 国产成人av一区二区三区在线| 欧美精品一区二区不卡| 国产最新精品免费| 精品毛片乱码1区2区3区| 久久国产精品色婷婷| 欧美mv日韩mv亚洲| 久久99精品国产91久久来源| 欧美videos中文字幕| 久久精品国产亚洲aⅴ| 欧美福利电影网| 麻豆一区二区在线| www国产亚洲精品久久麻豆| 国产精品一区二区三区99| 国产偷国产偷精品高清尤物| 国产成人在线观看免费网站| 国产日韩欧美精品电影三级在线 | 亚洲韩国一区二区三区| 欧美三级电影在线观看| 丝袜美腿亚洲综合| 欧美一区二区观看视频| 久久精品国产网站| 国产精品白丝在线| 精品视频在线视频| 久久精品久久综合| 国产精品美女久久久久久| 色综合天天综合给合国产| 亚洲国产成人av网| 精品久久久久久亚洲综合网| 99视频精品全部免费在线| 亚洲久草在线视频| 日韩欧美一二区| 不卡av在线免费观看| 亚洲一区国产视频| 亚洲成人久久影院| 日韩精品一区二| 成人性生交大片免费看在线播放| 亚洲视频图片小说| 日韩精品在线一区二区| 成人黄色小视频| 日日夜夜精品视频免费| 中文久久乱码一区二区| 欧美日韩在线播放三区四区| 狠狠色丁香久久婷婷综| 亚洲一区二区在线免费观看视频| 精品国产乱码久久久久久久久| www..com久久爱| 日本va欧美va精品| 日韩毛片精品高清免费| 精品99一区二区| 在线观看精品一区| 国产成人av一区二区三区在线观看| 午夜视频一区二区三区| 中文字幕成人网| 日韩女优电影在线观看| 91行情网站电视在线观看高清版| 韩国在线一区二区| 亚洲bt欧美bt精品| 亚洲欧美一区二区三区国产精品| 日韩女优制服丝袜电影| 欧美日韩国产影片| 91亚洲大成网污www| 激情综合亚洲精品| 日韩精品视频网站| 亚洲综合在线视频| 亚洲欧洲在线观看av| 久久久综合九色合综国产精品| 欧美日本在线播放| 91久久精品午夜一区二区| 丁香桃色午夜亚洲一区二区三区| 日本欧美在线看| 亚洲成av人片| 亚洲午夜成aⅴ人片| 中文字幕一区二| 国产精品丝袜黑色高跟| 久久人人超碰精品| 精品国产91九色蝌蚪| 欧美一区二区三区日韩视频| 欧美午夜在线观看| 欧美伊人久久久久久午夜久久久久| 岛国精品在线播放| 粉嫩aⅴ一区二区三区四区| 国产美女视频一区| 国产剧情在线观看一区二区| 精品一区二区成人精品| 另类欧美日韩国产在线| 美脚の诱脚舐め脚责91 | 男人的天堂久久精品| 丝袜亚洲另类丝袜在线| 天天综合天天做天天综合| 亚欧色一区w666天堂| 亚洲国产一区二区在线播放| 亚洲影院在线观看| 午夜精品一区二区三区三上悠亚| 亚洲成人动漫av| 三级久久三级久久| 视频一区二区三区中文字幕| 日韩av不卡一区二区| 麻豆精品新av中文字幕| 久久不见久久见免费视频1| 久久国产婷婷国产香蕉| 国产精品系列在线播放| 国产很黄免费观看久久| 成人av网址在线| 在线免费观看日韩欧美| 欧美日韩精品三区| 精品久久久久香蕉网| 国产欧美va欧美不卡在线| 日韩一区在线免费观看| 亚洲国产精品人人做人人爽| 午夜免费欧美电影| 国产综合色产在线精品| 99久久精品免费精品国产| 欧美在线观看一二区| 日韩美女主播在线视频一区二区三区| 精品动漫一区二区三区在线观看| 久久久亚洲高清| 亚洲精品免费在线观看| 蜜臀久久久99精品久久久久久| 国产乱码精品1区2区3区| gogo大胆日本视频一区| 欧美另类高清zo欧美| 日本一区二区综合亚洲| 亚洲午夜在线视频| 国产老妇另类xxxxx| 欧美天堂亚洲电影院在线播放| 精品av久久707| 亚洲一区二区精品久久av| 国产在线播放一区| 欧美乱熟臀69xxxxxx| 欧美激情一区在线观看| 亚洲成人免费视频| 成人免费视频一区| 日韩久久久久久| 亚洲一区二区成人在线观看| 国产在线精品视频| 欧美日韩一区三区四区| 中文字幕av不卡| 美女视频免费一区| 欧美日韩成人综合在线一区二区| 国产片一区二区三区| 图片区日韩欧美亚洲| 99re在线精品| 国产欧美日韩中文久久| 五月婷婷激情综合网| 91最新地址在线播放| 国产色婷婷亚洲99精品小说| 日韩成人午夜精品| 91行情网站电视在线观看高清版| 亚洲国产岛国毛片在线| 久久se精品一区精品二区| 欧美另类久久久品| 亚洲一区在线看| 色婷婷激情综合| 综合欧美亚洲日本| 成人18精品视频| 久久久国产精华| 国产麻豆9l精品三级站| 欧美一二三区在线观看| 五月综合激情网| 欧美日韩一区二区三区高清| 亚洲欧美另类小说| av成人免费在线观看| 国产精品久久久久久久久快鸭| 国产一区二区三区在线观看免费| 日韩一区二区三区免费看 | 91精品国产综合久久香蕉的特点|