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

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

?? ttcmap.c

?? a very goog book
?? C
?? 第 1 頁 / 共 3 頁
字號:
/***************************************************************************//*                                                                         *//*  ttcmap.c                                                               *//*                                                                         *//*    TrueType character mapping table (cmap) support (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 FT_INTERNAL_DEBUG_H#include "ttload.h"#include "ttcmap.h"#include "sferrors.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_ttcmap  FT_CALLBACK_DEF( FT_UInt )  code_to_index0( TT_CMapTable  charmap,                  FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next0( TT_CMapTable  charmap,                 FT_ULong      char_code );  FT_CALLBACK_DEF( FT_UInt )  code_to_index2( TT_CMapTable  charmap,                  FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next2( TT_CMapTable  charmap,                 FT_ULong      char_code );  FT_CALLBACK_DEF( FT_UInt )  code_to_index4( TT_CMapTable  charmap,                  FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next4( TT_CMapTable  charmap,                 FT_ULong      char_code );  FT_CALLBACK_DEF( FT_UInt )  code_to_index6( TT_CMapTable  charmap,                  FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next6( TT_CMapTable  charmap,                 FT_ULong      char_code );  FT_CALLBACK_DEF( FT_UInt )  code_to_index8_12( TT_CMapTable  charmap,                     FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next8_12( TT_CMapTable  charmap,                    FT_ULong      char_code );  FT_CALLBACK_DEF( FT_UInt )  code_to_index10( TT_CMapTable  charmap,                   FT_ULong      char_code );  FT_CALLBACK_DEF( FT_ULong )  code_to_next10( TT_CMapTable  charmap,                  FT_ULong      char_code );  /*************************************************************************/  /*                                                                       */  /* <Function>                                                            */  /*    TT_CharMap_Load                                                    */  /*                                                                       */  /* <Description>                                                         */  /*    Loads a given TrueType character map into memory.                  */  /*                                                                       */  /* <Input>                                                               */  /*    face   :: A handle to the parent face object.                      */  /*                                                                       */  /*    stream :: A handle to the current stream object.                   */  /*                                                                       */  /* <InOut>                                                               */  /*    table  :: A pointer to a cmap object.                              */  /*                                                                       */  /* <Return>                                                              */  /*    FreeType error code.  0 means success.                             */  /*                                                                       */  /* <Note>                                                                */  /*    The function assumes that the stream is already in use (i.e.,      */  /*    opened).  In case of error, all partially allocated tables are     */  /*    released.                                                          */  /*                                                                       */  FT_LOCAL_DEF( FT_Error )  TT_CharMap_Load( TT_Face       face,                   TT_CMapTable  cmap,                   FT_Stream     stream )  {    FT_Error     error;    FT_Memory    memory;    FT_UShort    num_SH, num_Seg, i;    FT_ULong     j, n;    FT_UShort    u, l;    TT_CMap0     cmap0;    TT_CMap2     cmap2;    TT_CMap4     cmap4;    TT_CMap6     cmap6;    TT_CMap8_12  cmap8_12;    TT_CMap10    cmap10;    TT_CMap2SubHeader  cmap2sub;    TT_CMap4Segment    segments;    TT_CMapGroup       groups;    if ( cmap->loaded )      return SFNT_Err_Ok;    memory = stream->memory;    if ( FT_STREAM_SEEK( cmap->offset ) )      return error;    switch ( cmap->format )    {    case 0:      cmap0 = &cmap->c.cmap0;      if ( FT_READ_USHORT( cmap0->language )           ||           FT_ALLOC( cmap0->glyphIdArray, 256L )       ||           FT_STREAM_READ( cmap0->glyphIdArray, 256L ) )        goto Fail;      cmap->get_index     = code_to_index0;      cmap->get_next_char = code_to_next0;      break;    case 2:      num_SH = 0;      cmap2  = &cmap->c.cmap2;      /* allocate subheader keys */      if ( FT_NEW_ARRAY( cmap2->subHeaderKeys, 256 ) ||           FT_FRAME_ENTER( 2L + 512L )               )        goto Fail;      cmap2->language = FT_GET_USHORT();      for ( i = 0; i < 256; i++ )      {        u = (FT_UShort)( FT_GET_USHORT() / 8 );        cmap2->subHeaderKeys[i] = u;        if ( num_SH < u )          num_SH = u;      }      FT_FRAME_EXIT();      /* load subheaders */      cmap2->numGlyphId = l = (FT_UShort)(        ( ( cmap->length - 2L * ( 256 + 3 ) - num_SH * 8L ) & 0xFFFFU ) / 2 );      if ( FT_NEW_ARRAY( cmap2->subHeaders, num_SH + 1 ) ||           FT_FRAME_ENTER( ( num_SH + 1 ) * 8L )         )      {        FT_FREE( cmap2->subHeaderKeys );        goto Fail;      }      cmap2sub = cmap2->subHeaders;      for ( i = 0; i <= num_SH; i++ )      {        cmap2sub->firstCode     = FT_GET_USHORT();        cmap2sub->entryCount    = FT_GET_USHORT();        cmap2sub->idDelta       = FT_GET_SHORT();        /* we apply the location offset immediately */        cmap2sub->idRangeOffset = (FT_UShort)(          FT_GET_USHORT() - ( num_SH - i ) * 8 - 2 );        cmap2sub++;      }      FT_FRAME_EXIT();      /* load glyph IDs */      if ( FT_NEW_ARRAY( cmap2->glyphIdArray, l ) ||           FT_FRAME_ENTER( l * 2L )               )      {        FT_FREE( cmap2->subHeaders );        FT_FREE( cmap2->subHeaderKeys );        goto Fail;      }      for ( i = 0; i < l; i++ )        cmap2->glyphIdArray[i] = FT_GET_USHORT();      FT_FRAME_EXIT();      cmap->get_index = code_to_index2;      cmap->get_next_char = code_to_next2;      break;    case 4:      cmap4 = &cmap->c.cmap4;      /* load header */      if ( FT_FRAME_ENTER( 10L ) )        goto Fail;      cmap4->language      = FT_GET_USHORT();      cmap4->segCountX2    = FT_GET_USHORT();      cmap4->searchRange   = FT_GET_USHORT();      cmap4->entrySelector = FT_GET_USHORT();      cmap4->rangeShift    = FT_GET_USHORT();      num_Seg = (FT_UShort)( cmap4->segCountX2 / 2 );      FT_FRAME_EXIT();      /* load segments */      if ( FT_NEW_ARRAY( cmap4->segments, num_Seg )   ||           FT_FRAME_ENTER( ( num_Seg * 4 + 1 ) * 2L ) )        goto Fail;      segments = cmap4->segments;      for ( i = 0; i < num_Seg; i++ )        segments[i].endCount = FT_GET_USHORT();      (void)FT_GET_USHORT();      for ( i = 0; i < num_Seg; i++ )        segments[i].startCount = FT_GET_USHORT();      for ( i = 0; i < num_Seg; i++ )        segments[i].idDelta = FT_GET_SHORT();      for ( i = 0; i < num_Seg; i++ )        segments[i].idRangeOffset = FT_GET_USHORT();      FT_FRAME_EXIT();      cmap4->numGlyphId = l = (FT_UShort)(        ( ( cmap->length - ( 16L + 8L * num_Seg ) ) & 0xFFFFU ) / 2 );      /* load IDs */      if ( FT_NEW_ARRAY( cmap4->glyphIdArray, l ) ||           FT_FRAME_ENTER( l * 2L )               )      {        FT_FREE( cmap4->segments );        goto Fail;      }      for ( i = 0; i < l; i++ )        cmap4->glyphIdArray[i] = FT_GET_USHORT();      FT_FRAME_EXIT();      cmap4->last_segment = cmap4->segments;      cmap->get_index     = code_to_index4;      cmap->get_next_char = code_to_next4;      break;    case 6:      cmap6 = &cmap->c.cmap6;      if ( FT_FRAME_ENTER( 6L ) )        goto Fail;      cmap6->language   = FT_GET_USHORT();      cmap6->firstCode  = FT_GET_USHORT();      cmap6->entryCount = FT_GET_USHORT();      FT_FRAME_EXIT();      l = cmap6->entryCount;      if ( FT_NEW_ARRAY( cmap6->glyphIdArray, l ) ||           FT_FRAME_ENTER( l * 2L )               )        goto Fail;      for ( i = 0; i < l; i++ )        cmap6->glyphIdArray[i] = FT_GET_USHORT();      FT_FRAME_EXIT();      cmap->get_index     = code_to_index6;      cmap->get_next_char = code_to_next6;      break;    case 8:    case 12:      cmap8_12 = &cmap->c.cmap8_12;      if ( FT_FRAME_ENTER( 8L ) )        goto Fail;      cmap->length       = FT_GET_ULONG();      cmap8_12->language = FT_GET_ULONG();      FT_FRAME_EXIT();      if ( cmap->format == 8 )        if ( FT_STREAM_SKIP( 8192L ) )          goto Fail;      if ( FT_READ_ULONG( cmap8_12->nGroups ) )        goto Fail;      n = cmap8_12->nGroups;      if ( FT_NEW_ARRAY( cmap8_12->groups, n ) ||           FT_FRAME_ENTER( n * 3 * 4L )        )        goto Fail;      groups = cmap8_12->groups;      for ( j = 0; j < n; j++ )      {        groups[j].startCharCode = FT_GET_ULONG();        groups[j].endCharCode   = FT_GET_ULONG();        groups[j].startGlyphID  = FT_GET_ULONG();      }      FT_FRAME_EXIT();      cmap8_12->last_group = cmap8_12->groups;      cmap->get_index     = code_to_index8_12;      cmap->get_next_char = code_to_next8_12;      break;    case 10:      cmap10 = &cmap->c.cmap10;      if ( FT_FRAME_ENTER( 16L ) )        goto Fail;      cmap->length          = FT_GET_ULONG();      cmap10->language      = FT_GET_ULONG();      cmap10->startCharCode = FT_GET_ULONG();      cmap10->numChars      = FT_GET_ULONG();      FT_FRAME_EXIT();

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一级二级三级| 久久久高清一区二区三区| 精品综合免费视频观看| 亚洲视频一二区| 久久久午夜电影| 欧美日韩高清影院| 99久久精品免费精品国产| 免费看日韩a级影片| 一区二区三区在线免费播放| 久久综合九色欧美综合狠狠 | 亚洲精品国产视频| 欧美mv和日韩mv国产网站| 色又黄又爽网站www久久| 国产久卡久卡久卡久卡视频精品| 亚洲最新视频在线播放| 中文字幕av一区二区三区免费看| 日韩一二三区视频| 欧美性猛交xxxx乱大交退制版| 国产美女在线精品| 美女视频网站久久| 五月天亚洲婷婷| 一区二区三区免费网站| 日韩理论片在线| 国产精品久久久久久久久免费相片| 欧美大片一区二区| 欧美一区二区女人| 欧美丰满一区二区免费视频| 色综合天天做天天爱| 成年人午夜久久久| 成人av电影免费观看| 国产成人免费视频| 国产精品1区2区3区| 国内久久精品视频| 美日韩一区二区| 欧美三级午夜理伦三级中视频| 成人一区二区三区在线观看| 狠狠色综合色综合网络| 免费成人在线播放| 免费在线看一区| 美脚の诱脚舐め脚责91| 亚洲国产精品久久久久秋霞影院 | 欧美videos中文字幕| 欧美精品777| 日韩一区二区电影网| 91精品国产91久久久久久一区二区| 欧美日韩你懂的| 日韩欧美一区二区三区在线| 欧美一级在线观看| 精品少妇一区二区三区在线播放 | 中文乱码免费一区二区| 中文字幕二三区不卡| 亚洲三级在线免费观看| 一区二区三区在线看| 一区二区三区在线视频免费 | 日韩美女视频19| 亚洲精品老司机| 偷拍亚洲欧洲综合| 精品一区二区三区香蕉蜜桃 | 老司机精品视频导航| 久久精品久久99精品久久| 久久99精品视频| 成人午夜激情视频| 色吊一区二区三区| 91精品国产综合久久久蜜臀粉嫩| 日韩欧美一级二级| 国产精品污网站| 亚洲最新在线观看| 狠狠色丁香婷综合久久| 不卡av免费在线观看| 欧美三级视频在线观看| 久久综合网色—综合色88| 国产精品久久久久精k8| 亚洲一区二区三区四区五区中文| 日本强好片久久久久久aaa| 国产成人av电影在线| 在线视频一区二区三| 欧美成人一区二区三区片免费| 中文字幕精品一区二区三区精品| 一区二区久久久| 国产美女视频一区| 在线免费观看视频一区| 欧美mv日韩mv| 一个色妞综合视频在线观看| 理论电影国产精品| 色婷婷久久久亚洲一区二区三区 | 国产精品888| 欧美日韩国产一级| 国产精品色呦呦| 日本在线不卡视频| 91在线一区二区| 久久亚洲精华国产精华液 | 亚洲三级在线播放| 日韩国产欧美视频| 99精品视频一区| 精品嫩草影院久久| 亚洲大片免费看| 成人免费av网站| 亚洲精品在线免费观看视频| 一区二区在线观看视频 | 一本大道久久a久久综合| 日韩欧美色综合网站| 亚洲国产中文字幕在线视频综合| 国产经典欧美精品| 日韩欧美你懂的| 亚洲国产成人va在线观看天堂| 不卡免费追剧大全电视剧网站| 欧美精品一区在线观看| 日日摸夜夜添夜夜添国产精品| 99久久精品国产观看| 久久久久高清精品| 久久99热狠狠色一区二区| 欧美美女网站色| 亚洲一区在线播放| 色综合中文字幕国产 | 五月天亚洲精品| 色综合 综合色| 中文字幕一区二区在线播放| 国产福利一区在线| 国产亚洲欧美中文| 国产一区欧美一区| 久久久久久久精| 国产精品一区三区| 久久综合九色综合久久久精品综合| 美女www一区二区| 精品久久一二三区| 精品一区二区在线免费观看| 91麻豆精品国产| 日韩va亚洲va欧美va久久| 7777精品伊人久久久大香线蕉经典版下载| 亚洲男人天堂一区| 91麻豆国产精品久久| 亚洲视频小说图片| 色综合天天综合色综合av| 亚洲精品视频免费看| av一区二区三区| 亚洲乱码中文字幕综合| 日本黄色一区二区| 亚洲自拍偷拍九九九| 欧美日韩一本到| 午夜成人免费视频| 欧美成人精品二区三区99精品| 另类小说综合欧美亚洲| 久久久噜噜噜久久中文字幕色伊伊 | 中文字幕在线免费不卡| 99久久精品国产导航| 亚洲精品国产一区二区三区四区在线 | 欧美国产日本韩| 大陆成人av片| 亚洲精品国产精华液| 欧美日韩精品三区| 久久精品国产一区二区三区免费看 | 免费观看一级欧美片| 久久久综合视频| 91香蕉国产在线观看软件| 夜夜揉揉日日人人青青一国产精品 | 国产成人在线视频网站| 国产精品乱码一区二区三区软件 | 粉嫩在线一区二区三区视频| 国产精品视频在线看| 色88888久久久久久影院按摩| 亚洲国产精品自拍| 日韩精品一区国产麻豆| 国产精品一卡二卡在线观看| 亚洲婷婷综合色高清在线| 欧美色图免费看| 国产在线一区二区综合免费视频| 国产日产欧美一区二区视频| 色哟哟日韩精品| 毛片av一区二区| 国产精品不卡一区二区三区| 欧美日韩一本到| 国产精品99久久久久久似苏梦涵 | 91美女片黄在线观看| 香蕉久久夜色精品国产使用方法 | 亚洲色图一区二区三区| 8v天堂国产在线一区二区| 国产精品一二三四区| 亚洲国产精品综合小说图片区| 2021久久国产精品不只是精品| 95精品视频在线| 激情五月激情综合网| 一区二区不卡在线播放 | 国产精品美女久久久久久久| 欧美日韩精品欧美日韩精品一综合| 精品亚洲porn| 一区二区三区国产精华| 久久综合久久综合九色| 色偷偷久久一区二区三区| 老汉av免费一区二区三区| 亚洲视频1区2区| 精品日韩欧美一区二区| 91福利在线免费观看| 国产一区二区女| 三级欧美韩日大片在线看| 国产精品天干天干在线综合| 日韩视频免费观看高清在线视频| 91免费版在线| 国产传媒久久文化传媒| 奇米888四色在线精品| 亚洲另类春色国产|