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

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

?? winfnt.c

?? a very goog book
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
/***************************************************************************//*                                                                         *//*  winfnt.c                                                               *//*                                                                         *//*    FreeType font driver for Windows FNT/FON files                       *//*                                                                         *//*  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 FT_INTERNAL_STREAM_H#include FT_INTERNAL_OBJECTS_H#include FT_INTERNAL_FNT_TYPES_H#include "winfnt.h"#include "fnterrs.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_winfnt  static  const FT_Frame_Field  winmz_header_fields[] =  {#undef  FT_STRUCTURE#define FT_STRUCTURE  WinMZ_HeaderRec    FT_FRAME_START( 64 ),      FT_FRAME_USHORT_LE ( magic ),      FT_FRAME_SKIP_BYTES( 29 * 2 ),      FT_FRAME_ULONG_LE  ( lfanew ),    FT_FRAME_END  };  static  const FT_Frame_Field  winne_header_fields[] =  {#undef  FT_STRUCTURE#define FT_STRUCTURE  WinNE_HeaderRec    FT_FRAME_START( 40 ),      FT_FRAME_USHORT_LE ( magic ),      FT_FRAME_SKIP_BYTES( 34 ),      FT_FRAME_USHORT_LE ( resource_tab_offset ),      FT_FRAME_USHORT_LE ( rname_tab_offset ),    FT_FRAME_END  };  static  const FT_Frame_Field  winfnt_header_fields[] =  {#undef  FT_STRUCTURE#define FT_STRUCTURE  WinFNT_HeaderRec    FT_FRAME_START( 134 ),      FT_FRAME_USHORT_LE( version ),      FT_FRAME_ULONG_LE ( file_size ),      FT_FRAME_BYTES    ( copyright, 60 ),      FT_FRAME_USHORT_LE( file_type ),      FT_FRAME_USHORT_LE( nominal_point_size ),      FT_FRAME_USHORT_LE( vertical_resolution ),      FT_FRAME_USHORT_LE( horizontal_resolution ),      FT_FRAME_USHORT_LE( ascent ),      FT_FRAME_USHORT_LE( internal_leading ),      FT_FRAME_USHORT_LE( external_leading ),      FT_FRAME_BYTE     ( italic ),      FT_FRAME_BYTE     ( underline ),      FT_FRAME_BYTE     ( strike_out ),      FT_FRAME_USHORT_LE( weight ),      FT_FRAME_BYTE     ( charset ),      FT_FRAME_USHORT_LE( pixel_width ),      FT_FRAME_USHORT_LE( pixel_height ),      FT_FRAME_BYTE     ( pitch_and_family ),      FT_FRAME_USHORT_LE( avg_width ),      FT_FRAME_USHORT_LE( max_width ),      FT_FRAME_BYTE     ( first_char ),      FT_FRAME_BYTE     ( last_char ),      FT_FRAME_BYTE     ( default_char ),      FT_FRAME_BYTE     ( break_char ),      FT_FRAME_USHORT_LE( bytes_per_row ),      FT_FRAME_ULONG_LE ( device_offset ),      FT_FRAME_ULONG_LE ( face_name_offset ),      FT_FRAME_ULONG_LE ( bits_pointer ),      FT_FRAME_ULONG_LE ( bits_offset ),      FT_FRAME_BYTE     ( reserved ),      FT_FRAME_ULONG_LE ( flags ),      FT_FRAME_USHORT_LE( A_space ),      FT_FRAME_USHORT_LE( B_space ),      FT_FRAME_USHORT_LE( C_space ),      FT_FRAME_USHORT_LE( color_table_offset ),      FT_FRAME_BYTES    ( reserved, 4 ),    FT_FRAME_END  };  static void  fnt_font_done( FNT_Font   font,                 FT_Stream  stream )  {    if ( font->fnt_frame )      FT_FRAME_RELEASE( font->fnt_frame );    font->fnt_size  = 0;    font->fnt_frame = 0;  }  static FT_Error  fnt_font_load( FNT_Font   font,                 FT_Stream  stream )  {    FT_Error       error;    WinFNT_Header  header = &font->header;    /* first of all, read the FNT header */    if ( FT_STREAM_SEEK( font->offset )                   ||         FT_STREAM_READ_FIELDS( winfnt_header_fields, header ) )      goto Exit;    /* check header */    if ( header->version != 0x200 &&         header->version != 0x300 )    {      FT_TRACE2(( "[not a valid FNT file]\n" ));      error = FNT_Err_Unknown_File_Format;      goto Exit;    }    if ( header->file_type & 1 )    {      FT_TRACE2(( "[can't handle vector FNT fonts]\n" ));      error = FNT_Err_Unknown_File_Format;      goto Exit;    }    /* small fixup -- some fonts have the `pixel_width' field set to 0 */    if ( header->pixel_width == 0 )      header->pixel_width = header->pixel_height;    /* this is a FNT file/table, we now extract its frame */    if ( FT_STREAM_SEEK( font->offset )                         ||         FT_FRAME_EXTRACT( header->file_size, font->fnt_frame ) )      goto Exit;  Exit:    return error;  }  static void  fnt_face_done_fonts( FNT_Face  face )  {    FT_Memory  memory = FT_FACE( face )->memory;    FT_Stream  stream = FT_FACE( face )->stream;    FNT_Font   cur    = face->fonts;    FNT_Font   limit  = cur + face->num_fonts;    for ( ; cur < limit; cur++ )      fnt_font_done( cur, stream );    FT_FREE( face->fonts );    face->num_fonts = 0;  }  static FT_Error  fnt_face_get_dll_fonts( FNT_Face  face )  {    FT_Error         error;    FT_Stream        stream = FT_FACE( face )->stream;    FT_Memory        memory = FT_FACE( face )->memory;    WinMZ_HeaderRec  mz_header;    face->fonts     = 0;    face->num_fonts = 0;    /* does it begin with a MZ header? */    if ( FT_STREAM_SEEK( 0 )                                 ||         FT_STREAM_READ_FIELDS( winmz_header_fields, &mz_header ) )      goto Exit;    error = FNT_Err_Unknown_File_Format;    if ( mz_header.magic == WINFNT_MZ_MAGIC )    {      /* yes, now look for a NE header in the file */      WinNE_HeaderRec  ne_header;      if ( FT_STREAM_SEEK( mz_header.lfanew )                  ||           FT_STREAM_READ_FIELDS( winne_header_fields, &ne_header ) )        goto Exit;      error = FNT_Err_Unknown_File_Format;      if ( ne_header.magic == WINFNT_NE_MAGIC )      {        /* good, now look in the resource table for each FNT resource */        FT_ULong   res_offset = mz_header.lfanew +                                ne_header.resource_tab_offset;        FT_UShort  size_shift;        FT_UShort  font_count  = 0;        FT_ULong   font_offset = 0;        if ( FT_STREAM_SEEK( res_offset ) ||             FT_FRAME_ENTER( ne_header.rname_tab_offset -                             ne_header.resource_tab_offset ) )          goto Exit;        size_shift = FT_GET_USHORT_LE();        for (;;)        {          FT_UShort  type_id, count;          type_id = FT_GET_USHORT_LE();          if ( !type_id )            break;          count = FT_GET_USHORT_LE();          if ( type_id == 0x8008 )          {            font_count  = count;            font_offset = (FT_ULong)( FT_STREAM_POS() + 4 +                                      ( stream->cursor - stream->limit ) );            break;          }          stream->cursor += 4 + count * 12;        }        FT_FRAME_EXIT();        if ( !font_count || !font_offset )        {          FT_TRACE2(( "this file doesn't contain any FNT resources!\n" ));          error = FNT_Err_Unknown_File_Format;          goto Exit;        }        if ( FT_STREAM_SEEK( font_offset )           ||             FT_NEW_ARRAY( face->fonts, font_count ) )          goto Exit;        face->num_fonts = font_count;        if ( FT_FRAME_ENTER( (FT_Long)font_count * 12 ) )          goto Exit;        /* now read the offset and position of each FNT font */        {          FNT_Font  cur   = face->fonts;          FNT_Font  limit = cur + font_count;          for ( ; cur < limit; cur++ )          {            cur->offset     = (FT_ULong)FT_GET_USHORT_LE() << size_shift;            cur->fnt_size   = (FT_ULong)FT_GET_USHORT_LE() << size_shift;            cur->size_shift = size_shift;            stream->cursor += 8;          }        }        FT_FRAME_EXIT();        /* finally, try to load each font there */        {          FNT_Font  cur   = face->fonts;          FNT_Font  limit = cur + font_count;          for ( ; cur < limit; cur++ )          {            error = fnt_font_load( cur, stream );            if ( error )              goto Fail;          }        }      }    }  Fail:    if ( error )      fnt_face_done_fonts( face );  Exit:    return error;  }#ifdef FT_CONFIG_OPTION_USE_CMAPS  typedef struct  FNT_CMapRec_  {    FT_CMapRec  cmap;    FT_UInt32   first;    FT_UInt32   count;  } FNT_CMapRec, *FNT_CMap;  static FT_Error  fnt_cmap_init( FNT_CMap  cmap )  {    FNT_Face  face = (FNT_Face)FT_CMAP_FACE( cmap );    FNT_Font  font = face->fonts;    cmap->first = (FT_UInt32)  font->header.first_char;    cmap->count = (FT_UInt32)( font->header.last_char - cmap->first + 1 );    return 0;  }  static FT_UInt  fnt_cmap_char_index( FNT_CMap   cmap,                       FT_UInt32  char_code )  {    FT_UInt  gindex = 0;    char_code -= cmap->first;    if ( char_code < cmap->count )      gindex = char_code + 1;    return gindex;  }  static FT_UInt  fnt_cmap_char_next( FNT_CMap    cmap,                      FT_UInt32  *pchar_code )  {    FT_UInt    gindex = 0;    FT_UInt32  result = 0;    FT_UInt32  char_code = *pchar_code + 1;    if ( char_code <= cmap->first )    {      result = cmap->first;      gindex = 1;    }    else    {      char_code -= cmap->first;      if ( char_code < cmap->count )      {        result = cmap->first + char_code;        gindex = char_code + 1;      }    }    *pchar_code = result;    return gindex;  }  static FT_CMap_ClassRec  fnt_cmap_class_rec =  {    sizeof ( FNT_CMapRec ),    (FT_CMap_InitFunc)     fnt_cmap_init,    (FT_CMap_DoneFunc)     NULL,    (FT_CMap_CharIndexFunc)fnt_cmap_char_index,

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合久久久久综合体桃花网| 国产91色综合久久免费分享| 色婷婷综合五月| 国产精品久久久久久久久免费丝袜| 国产91精品一区二区麻豆亚洲| 国产精品嫩草影院com| 成人爽a毛片一区二区免费| 国产精品久久久久久久久免费樱桃 | 国产精品毛片无遮挡高清| 97久久超碰精品国产| 亚洲免费观看高清完整版在线观看熊 | 精品国产一区二区国模嫣然| 久久国产三级精品| 久久久久综合网| 风间由美一区二区三区在线观看 | 91污片在线观看| 性久久久久久久| 精品成人在线观看| 北岛玲一区二区三区四区| 一二三区精品视频| 日韩欧美不卡在线观看视频| 风间由美一区二区av101| 亚洲精品国产精华液| 欧美一区二区大片| 丁香啪啪综合成人亚洲小说| 亚洲一区成人在线| 久久综合国产精品| 91精品1区2区| 国产在线日韩欧美| 亚洲尤物在线视频观看| 精品国产电影一区二区| 97国产一区二区| 美腿丝袜在线亚洲一区| 国产精品久久久久毛片软件| 欧美福利视频导航| 丁香婷婷综合网| 日本欧美一区二区| 日韩一区欧美一区| 欧美成人aa大片| 在线国产亚洲欧美| 国产一区二区导航在线播放| 一区二区三区久久| 欧美激情中文字幕| 日韩视频中午一区| 91免费看片在线观看| 精品一区二区三区免费视频| 一区二区三区小说| 中文字幕免费一区| 欧美一卡二卡三卡| 91黄色免费看| 成人午夜视频在线| 激情综合亚洲精品| 视频精品一区二区| 亚洲啪啪综合av一区二区三区| 91精品国产手机| 欧美日韩综合一区| 色综合久久久网| 成人av资源在线| 国产福利一区在线| 美女性感视频久久| 免费观看在线综合色| 亚洲一区二区三区免费视频| 亚洲三级视频在线观看| 国产精品免费观看视频| 久久美女艺术照精彩视频福利播放 | 国产一区视频导航| 日韩成人dvd| 亚洲.国产.中文慕字在线| 亚洲欧美国产高清| 国产精品久久看| 国产精品美女久久久久aⅴ国产馆| 久久美女艺术照精彩视频福利播放| 91.com视频| 欧美一区二区二区| 日韩精品一区二区三区四区| 精品人在线二区三区| 欧美一区二区三区视频| 日韩午夜在线播放| 日韩一级免费一区| 日韩一二三区视频| 日韩亚洲电影在线| 久久蜜桃av一区精品变态类天堂 | 欧美午夜精品久久久久久超碰| 色哟哟一区二区| 欧美在线看片a免费观看| 91蜜桃传媒精品久久久一区二区| 97久久超碰国产精品电影| 91美女蜜桃在线| 欧美午夜在线观看| 欧美欧美欧美欧美| 精品国产一区二区三区久久影院 | 加勒比av一区二区| 国产精品2024| eeuss鲁一区二区三区| 99国产精品久| 欧美色区777第一页| 精品免费国产二区三区 | 91小视频免费看| 精品视频在线免费看| 欧美大片拔萝卜| 中文字幕久久午夜不卡| 亚洲综合色网站| 看电影不卡的网站| 99热精品国产| 欧美一区二区人人喊爽| 中文在线一区二区| 亚洲第一在线综合网站| 国产做a爰片久久毛片| 91免费在线看| 日韩女优av电影在线观看| 国产精品不卡视频| 日本欧美一区二区| 99久久99久久精品国产片果冻 | 精品一区二区三区av| av激情亚洲男人天堂| 欧美亚洲国产一区二区三区| 久久嫩草精品久久久精品| 一区二区三区在线观看动漫| 久久精品国产亚洲高清剧情介绍| 国产精品99久久久| 欧美性感一区二区三区| 久久婷婷国产综合精品青草| 亚洲精品高清在线| 韩国精品主播一区二区在线观看| av电影天堂一区二区在线| 欧美刺激脚交jootjob| 亚洲视频一区在线观看| 久久99国内精品| 欧美偷拍一区二区| 日本一区二区免费在线| 日韩综合小视频| 不卡在线观看av| 日韩欧美一级在线播放| 一区二区三区四区精品在线视频| 九九九久久久精品| 欧美在线小视频| 国产精品国产三级国产普通话99| 日韩精品久久理论片| 91福利小视频| 中文久久乱码一区二区| 精品一区二区三区免费| 欧美日韩黄色一区二区| 亚洲女人小视频在线观看| 国产一区二区导航在线播放| 日韩限制级电影在线观看| 亚洲大片免费看| 色婷婷香蕉在线一区二区| 中文久久乱码一区二区| 国产在线精品一区二区三区不卡 | 国产视频一区二区在线| 视频一区视频二区中文字幕| 欧美亚洲精品一区| 亚洲人123区| 99这里都是精品| 国产精品欧美精品| 成人黄色小视频| 亚洲国产成人自拍| 高清视频一区二区| 久久久五月婷婷| 国产毛片一区二区| 26uuu色噜噜精品一区二区| 美女精品一区二区| 日韩一二三区不卡| 青青草97国产精品免费观看 | 国产精品综合在线视频| 欧美成人精品福利| 麻豆成人91精品二区三区| 91精品国产福利在线观看| 视频在线在亚洲| 欧美丰满嫩嫩电影| 全国精品久久少妇| 久久日韩粉嫩一区二区三区| 国产激情91久久精品导航| 国产日韩欧美一区二区三区乱码| 国产精品一区二区在线看| 国产欧美日韩在线看| 99re成人精品视频| 亚洲最色的网站| 欧美一区二区视频在线观看2022 | 国产成人免费视频一区| 欧美韩国日本综合| 91丨porny丨最新| 亚洲成国产人片在线观看| 91精品国产综合久久精品麻豆| 久久精品国产一区二区三| 国产欧美日韩综合精品一区二区| 99精品热视频| 一级中文字幕一区二区| 欧美一级片在线观看| 国产成人亚洲综合a∨婷婷| 亚洲人吸女人奶水| 欧美丰满嫩嫩电影| 国产在线播精品第三| 国产精品久久久久一区二区三区 | 日韩精品五月天| 欧美精品乱人伦久久久久久| 图片区小说区国产精品视频| 日韩欧美123| 国产成人精品免费| **性色生活片久久毛片|